Siyuan’s Status Report for 4/6

Accomplishments This Week

This week, I focused on testing of newly arrived temperature and humidity sensor. The key accomplishments include:

Testing of Temperature and Humidity Sensor: Upon receiving the temperature and humidity sensors, I conducted comprehensive testing to assess their functionality with the Raspberry Pi. These tests were designed to ensure that the sensors operate accurately and reliably under various conditions, providing the data essential for our system’s environmental monitoring capabilities.

Project Schedule and Progress

I am on schedule, and my progress is still good.

 

Goals for the Next Week

Next week, I will complete the development of the software required to manage data requests from the temperature and humidity sensors. With the software development completed, the next step will be to integrate the temperature and humidity sensors into the scanner module.

Jason’s Status Report for 4/6

Accomplishments This Week

This week I started integrating the OCR model, camera function, and pipeline to the rest of the modules. This took tweaking some of the code to properly function as intended. Also, the new camera arrived with the specs that we wanted and has been tested to be better than all of our previous cameras.

Project Schedule and Progress
We will follow our revised schedule which will keep us busy for the next few weeks, but manageable at the same time. I will talk about plans about verification in the next step.

Verification

For my individual verification, I have divided into 3 parts. 1 is to verify that my pipeline is sending and receiving all of the components to the central module in a timely manner. This will be done by running test cases and timing the process on the scanner module. I have mitigated potential risks by saving the data into memory instead of disk, so that it can reduce latency. 2 is to test the image acquisition process with the barcode scanning. I need to make sure nothing hinders both processes running at the same time, and make sure the images are what we want. This will be done by hand taking photos at a real setting with real products with expiration dates, and see if barcode scanning works as well. Last would be verifying that the OCR model works as planned with the rbpi, and that the model is producing the expected results. This will also be done by testing with real inputs at a real scenario.

Goals for the Next Week
I will continue to integrate the modules together, and verify that my submodule are working with the integrated module.

Jason’s Status Report for 3/30

Accomplishments This Week

This week I finished the camera pipeline and worked with the new expiration date database in order to achieve the 90% accuracy model. A new camera was ordered that would possibly get better results, as we figured a more close range, autofocus camera would be fit. The integration of the camera will not take any more time, as the code has already been written. Importantly, I have totally revamped the OCR model which was a lot of work but would guaranteed better results if completed.

Project Schedule and Progress
Our schedule has been revised in order to keep up with all of the updates of the project. This includes my expiration date algorithm, which took quite more time than anticipated due to the lack of available datasets in the web and infrastructure.

Goals for the Next Week
I am hoping that I will be able to train the model with the given dataset before the Interim Demo, and showcase the handmade expiration date OCR model. After that, I will move on from the model itself, and work with Yuma and Siyuan on integrating the camera module with the rest of the module.

Yuma’s Status Report 3/30

Accomplishments This Week

We have been coding on our laptops the past couple of weeks, and this week we were able to test on the real hardware. This was partially fueled in motivation due to the interim demo, which we are looking forward to demo the barcode scanner and system performance. Jason has been experimenting with other OCR methods, so that is why we were not able to integrate the expiration date part yet. In terms of real hardware, I took a while to understand the broadcasting mechanisms for python, and was able to test message passing between two different nodes. It worked great, and the recommendation algorithm was also implemented. Although the UI is not developed yet, we are able to write commands on the console to simulate this feature (i.e. display the current item list, clear the item list, give recommendations, etc).

Code for this recent week should be viewable at the link: https://github.com/Yumam20/d3-intellistorage

Project Schedule and Progress
Progress has returned back to schedule, where we have started system integration onto the real hardware. Although a big bottleneck is the OCR integration (when it is actually done), the integration part should be the easiest with the framework mentioned in last week’s report.

Goals for the Next Week
I hope to develop more features into the base code regarding the data resiliency portion. I hope to implement the distributed consensus protocol while making sure the code functions.

Siyuan’s Status Report for 3/30

Accomplishments This Week

This week, I focused on integration of additional sensors to further enhance the capabilities of our inventory management system. The key accomplishments include:

Further Integration of Scanner Module Software: Continued efforts were made to integrate the scanner module software more deeply within our system. This involved refining the interaction between the scanner module and other system components.

Research of New Sensors: I conducted thorough research into temperature sensors, humidity sensors. These components were selected for their potential to provide valuable environmental data, enhancing our inventory management capabilities. Following the research, orders were placed for these parts from DigiKey.

 

Project Schedule and Progress

I am on schedule, and my progress is still good.

 

Goals for the Next Week

Next week, upon the arrival of the temperature sensor and humidity sensor, I will conduct initial tests to verify their functionality and compatibility with the Raspberry Pi and our existing system components. Following successful testing, I will begin the process of integrating these sensors into the scanner module. This involves developing the necessary software.

Team Status Report for 3/30

Risk Identification and Mitigation Strategies
Primary Risk Concern: Our primary concern currently is the OCR accuracy. Our current camera setting and training dataset are not able to provide enough OCR accuracy.

Mitigation Measures:
We are currently trying to find another camera with autofocus and wider focus range. We have ordered another camera with autofocus and 40mm to infinit focus range. Another mitigation measure could be switching to another dataset to train our OCR model.

Project Design Updates
As of the current reporting period, there have been no modifications to the initial design of the project.

Schedule and Timeline
We are not on track with our timeline. The development for the OCR algorithm detecting expiration dates has been falling behind and we haven’t been able to integrate that portion of the scanner module yet.
The updated Gantt Chart is attached below. We still have one week of slack.

Jason’s Status Report for 3/23

Accomplishments This Week

This week I was able to further improve on the OCR model and was able to test it out locally on some example expiration dates. It now detects various formats of dates, with a 80%+ accuracy. I also worked with Siyuan and Yuma to get the camera take pictures and send them to the OCR engine. I will work on making the interface and flow of the OCR more smoothly.

Project Schedule and Progress
Progress is being made, and OCR has been implemented. Now we need the camera to take the photos to extract the expiration dates and save them to the database.

Goals for the Next Week
My goal is to get the pipeline working for image acquisition and processing by this week, and with the OCR giving promising results I am confident that I will achieve by the deadline.

Siyuan’s Status Report for 3/23

Accomplishments This Week

This week, I focused on the software development aspects of the project. The key accomplishments include:

Scanner Module Software Integration: I successfully carried out further integration of the scanner module software, ensuring that it seamlessly interfaces with other components of our inventory management system.

Development of Photo Capture Function: In collaboration with Jason, we initiated the development of a photo capture function, aiming to capture images for OCR. Despite our efforts, we encountered technical difficulties with setting up the OpenCV environment required for the photo capture function. These challenges have temporarily hindered our progress in implementing this feature but have not impacted our overall project timeline.

 

Project Schedule and Progress

I am on schedule, and my progress is still good.

 

Goals for the Next Week

Next week, the focus will continue to be on the integration of the scanner module software with the broader system. Alongside development, I will try resolving the OpenCV challenges, and I will resume development of the photo capture function, aiming to integrate this feature into our system.

Yuma’s Status Report 3/23

Accomplishments This Week

We were able to start system integration this week, with my base code and Siyuan’s barcode & API look-up code being integrated. Though the base code needs to be multi-threaded to accommodate multiple scanners, the case with one scanner has been tested locally. Integration with the OCR portion of the code has not been done due its incompleteness, but it should be relatively straightforward. Message passing between the nodes occur by pickle-ing (compressing) a python dictionary, and adding another field in the dictionary for expiration dates should be the bulk of that system integration.

DEMO: https://drive.google.com/file/d/1H2cDMiZZZ_PCPCaR0H5_NAW3WiDHjY_h/view?usp=sharing
[One central computer and one scanner node is instantiated, a barcode is scanned (simulated by entering a PLU), and the user checks if the item is right. The item information then is sent to the central computer, which is confirmed by the consistency of text displayed on the scanner and central modules)]

Project Schedule and Progress
Progress has been good, in terms of catching up from the deficit these past two weeks. We are close to being back on track, with the bottleneck being the OCR integration. I still hope to make more progress on the base code so that there can be some slack during the week of Carnival.

Goals for the Next Week
I hope to start multi-threading the base code to accommodate for multiple scanners. I imagine that this may be complex in terms of synchronization, but I hope to base my code off of the 15-440 KV-store project code.

Team Status Report for 3/23

Risk Identification and Mitigation Strategies
Primary Risk Concern: Our primary concern currently is the camera image acquisition rate. We did not expect to run into a problem where the camera is not able to stream images continuously, instead it happens at the frequency that a python function is called. Since this rate limits the amount of images we are able to acquire in a single period of time, we are not able to gather images that we may want for good classification.
Mitigation Measures:
We are currently trying to find alternative methods of acquiring images, such as a screen capture or photos being dumped to disk before we read off of it. These methods add latency, so we are also experimenting with multi-threading the main python function in hopes of getting better image acquisition performance. Another mitigation measure could be strengthening the OCR algorithm, though this is a last resort due to the nature of its complexity.
Project Design Updates
As of the current reporting period, there have been no modifications to the initial design of the project.
Schedule and Timeline
We are not on track with our timeline. The development for the OCR algorithm detecting expiration dates has been falling behind and we haven’t been able to integrate that portion of the scanner module yet.