Inspiration
A few weeks before HT6, Randy received a poorly shipped package with too much plastic filler. Coincidentally, Ryan received a package with almost 90% empty space and was packed even worse. This prompted our team to want to tackle a major problem: reducing packaging waste (and as a result, logistics efficiency).
What it does
Our application optimally reduces the empty package volume when packaging multiple items through computer vision and NP-hard algorithms.
Steps:
- User inputs all boxes which can be used for packing
- User places items in the scanner box, which uses computer vision to measure the dimensions of all products to be packed
- Our program sends this data into the algorithm to come up with a solution to optimally pack the items given the boxes available
- User optimally packs items by following the 3D visual solution
How we built it
- Computer vision: Used OpenCV and supporting libraries to create a duo-image pipeline to detect items through contours, and measure items using reference pixel to centimetre conversions.
- Algorithm: We used an algorithm based off an existing heuristic outlined in https://github.com/enzoruiz/3dbinpacking
- Visualizer: Our 3d canvas was built using the react-fibre-library. We created blocks to represent the items that need to be shipped and laid them out according to the configuration generated by our algorithm.
- Fullstack: Used a React frontend and a Flask backend and to store images we used Amazon S3. For styling, ChakraUI is used.
Challenges we ran into
- OpenCV detection Contour detection proved to be more difficult than expected since we had to continually make adjustments to hyperparameters and the environment.
- Connecting various components For most on our team, this was the first time developing an application with a Flask backend. And so routing all the api calls and handling data transfer from Python to Javascript and vice verse was a challenge.
Accomplishments that we're proud of
- Creating a functional fullstack application
- Visualization of our 3d solution
- Accurate object detection through OpenCV
What we learned
- Computer Vision (OpenCV)
- Algorithm
- AWS and Flask
What's next for Package Optimizer
Implement hardware: Add a conveyor belt to it so that we can automatically scan objects Improve our algorithm to take into account parameters such as weight, material etc.
Log in or sign up for Devpost to join the conversation.