We envision creating a desktop application that will be run on the worker's computer and be able to slim down the workload of their angler boat traffic data collection.
We want to create an easy-to-use desktop application where our users will be able to insert thousands of images for our program to process.
After our program finishes processing each image it will provide the user with sorted image folders along with an Excel spreadsheet.
Our solution should reduce the number of images that need to be manually worked on, ultimately saving our customer hours of work.
Our Solution
Functionality
Upon opening our desktop application the user will be greated with a straight forward, easy to navigate GUI. Our GUI pop-up window consists of three tabs at the top of the window labled from left to right, "Prepare Images", "Process Images", and "Excel". Each tab serves its own purpose in our desktop application processing workflow.
This tab is meant to take in a folder of dock images and sort them into sub-folders based on the day it was captured. So let's say they retrieved the pictures from their dock camera after a week of capturing images. The user would then input the folder containing all of those images and have the images sorted based on the day it was captured into another subfolder. So, one subfolder will contain all of the images taken on Monday, another subfolder will have all the images taken on Tuesday, etc. These subfolders will come in handy for the Process Images tab.
This tab is meant to take in a folder containing one days worth of images to be processed. Our program will iterate through every image in the folder and check to see if a boat or kayak is on the water. If the program spots one of these objects and its “confidence level” is above the user's set threshold, it will move the image to the “Review” folder. If the recognition model does not see any boats or kayaks in the frame, then it will be put in the “Discard” folder.
This tab will create a “Shell” Excel Spreadsheet based on the folder of images the user provides. This tab will not contain real boat/kayak counts but rather mock data that the user will be able to replace with real findings. It is recommended to use the “Review” folder for the input field. This will allow the user to move between the important images in the “Review” folder and fill out the generated “shell” Excel spreadsheet with their findings.
Technology
Python
Our desktop application will be mainly built using the Python programming language. We will utilize Python and its many supportive libraries to build a reliable desktop application. We are going to use the Python Library "Tkinter" to create an easy-to-use GUI since this framework is meant for straight forward GUI models. We will also rely on the "OS module" library to accomplish our IO operations like moving images into folders. Lastly, we will use the "Pandas" library to populate our exel spreadsheet with our data.
YOLOv8
YOLOv8 will be the Python library that we will utilize for our boat/kayak object recognition process. We will train our model to recognize boat/kayak objects from far off distances and give us back a confidence interval. We will use this boat object confidence interval to decide wheather or not to place the image in the "Review Folder".