Yang’s status report for 03/27/2021

I ran into some issues earlier this week with doing speech processing, since I realized we needed a way to trigger the recording instead of simply recording at set intervals. To do this, I found pvporcupine, which is a python module that has the best accuracy on trigger words, out of all the free software that aims to do this.

After doing this, I set up the threading to handle each of the different portions of our system, and have managed to get our speech recognition system to record only after being triggered by the wake word. With this, I am able to actually get text out of the input audio in the format of a command that we specified, to be sent to the recommendation system. 

Next week, I’ll be looking into actually parsing the text we have into intent, which can be used by the recommendation system, and start creating the framework for that.

Nanxi’s Status Report for 03/27/2021

Last week I spent up till Wednesday composing design review with my teammates. It took a lot of time, since we got some feedback from the instructor for our presentation and we changed some of the contents for the report. We got the power supply for Jetson Nano last week, I flashed the sd card and prepared it for use.

This week on Friday we finally got the network adapter, but we are experiencing some difficulty for installing the driver. I am using ethernet cable for now, but need to figure out the adapter situation next week. I tested the GPIO library we wanted to use for LED strip, and a demo application is working. I will spend tomorrow and Monday and testing and debugging our own application.

 

Team Status Report for 03/27/2021

We received advice from instructors that we need to test how well the Image Recognition API performs on recognizing our ingredients. We agree that it is important to consider this because this part is very important for the entire pipeline to work. We are currently working on the testing part, and if the performance is not ideal, we will consider train the pre-trained model with our dataset or implement a CNN model that focuses on the dataset we are using to manage the risks of this part.

Another suggestion we got is that we should also consider sending the text version of the recipe to the user through email so that the users can easily check the recipe if they want to. We bought wifi adapters and received them yesterday, and we are working on the email functionality now. We are still trying to figure out how to get the wifi adapter to work on Jetson nano.

The next step of our project is to connect every part together. We will research the pipeline and start implementing the connections between sub-systems in the coming week and also continue explorations on our own parts individually. There are no changes to our planned schedule.

Elena’s Status Report for 03/27/2021

This week I focused on my work for the recommendation part as well as supporting tests for image recognition. I collected a set of images of the candidate items posted in the previous status report, and my teammate will use the image data set to test the performance of Google Vision on these candidate items.  Some example images are posted below.

For the recommendation part, I built two functionalities. The first function will accept an input including two keys, tags and ingredients. It will output a list of recipe names for users to select from. Some sample input and output is as follows:

Input:

test_request = {‘tag’: [‘non-dairy’];’ingredient’: [‘apple’, ‘orange’,’tuna’]}

Output:

[Apple and orange jam’]

If no recipe can be matched to the request, then it will return the following output:

[‘No results found’]

All samples above are the real inputs and outputs of the system.

Also, after the user selects the recipe they want to use, the next function will accept input of recipe index, and return a list of instructions. A sample output will be the following:

[‘Cut 2 apples and 2 oranges into small chunks’, ‘boil 200ml of water in a pot’,
‘add apples, oranges and 50g of sugar into the pot, and stew with medium heat’, ‘when the content becomes thick, turn off the heat and add 2 table spoons of lemon juice’]

The progress is on schedule. I will use the performance result from Google Vision to decide the 9 items and 30 recipes next week and generate more test cases to test on the recipe recommendations. Also, I am currently working on the email sending recipes to user functionality. There are some issues with the authentication, but I will try to figure it out next week.

 

 

 

Nanxi’s Status Report for 03/13/2021

Our hardware arrived this week. I tested that all the peripherals (camera, microphone, speaker) work as expected with the library we want to use. We have not received the power supply we checked out, so we cannot test Jetson Nano. I will follow up on that. The acrylic board and peripheral holder is the same dimension as we expected. With the acrylic board, I have started designing the LED grid. I decided to make them serial while being individually addressable. This will require more logic in our light-up-LED algorithm, but less hardware connection. This implementation only requires 1 GPIO pin. I plan on finishing it and testing it next week. I am on schedule for the project. (Picture: layout of LED strip, will securely it on acrylic board later)

I also worked on design review this week. I prepared the presentation slide and practiced for the presentation. We also started working on the design review report.

Yang’s Status Report for 3/14/2021

This week I did some more testing on the NeMo speech recognition package that we are planning on testing and also picked up and started looking at the hardware we ordered (still need to place orders for the network adaptor for the jetson nano, which we missed on the first go around). My plan for this upcoming week is to fully figure out the package with our hardware and be able to send the software system fully parsed requests. Additionally, another agenda item is to have the recorded audio tests ready since we have the microphone.

Elena’s Status Report for 03/13/2021

Personally, I focused on the work of the design review report.  After reviewing more related works and analyzing the ingredients that might result in high recognition accuracy and lower false cases, I built a table of ingredient candidates that we might count as the final 10 items that we will be recognizing and relating recipes to. The table is attached in the post.

In addition, I learned about the current popular recommendation systems and how to build them from scratch. I followed these tutorials: https://www.toptal.com/algorithms/predicting-likes-inside-a-simple-recommendation-engine and https://www.analyticsvidhya.com/blog/2018/06/comprehensive-guide-recommendation-engine-python/ to help me design the algorithms for a small scale recommendation system.

I am in the right place of the schedule we planned and not behind. For the deliverables for next week, we will first finish up the report together, and next personally I will be focusing on grabbing the recipes related to the candidates listed in the table and finalize our 10 items on the list and 30 recipes as well.

Team Status Report for 03/13/2021

We have received both copies of the hardware and tested that they work as expected. Since LED grid is being made, a risk is that while working remotely, it is hard to communicate the exact specs, so that we might have 2 copies of slightly different LED grids. We will minimize the risk by assembling the LED grid together and write test files to ensure that they behave the same way as expected.

Another challenge is that our power supply didn’t arrive on time, so we cannot embed the program yet. We are testing the peripherals from the computer directly. We might need to pay more attention testing these application we wrote once it’s flashed on Jetson Nano.

We decided to change the LED gridding from 2*5 to 3*3. That is, instead of 10 food items, we aim to target 9 items instead. We made the change since it allows clearer gridding while also simplifies the logic for LED light up algorithm.

In general, we do not have any changes to our proposed schedule. This week we worked on the design review presentation and also the report together. At this stage, we are very clear with what we want as a product and how to implement it.

Team Status Report for 03/06/2021

One of the most significant risks that could harm the success of the project is that we may have to work separately in order to make sure that different tasks can be tackled at the same pace. We will manage the risk by ordering two pieces of the same hardware parts so that we will be able to do our own work at the same time. The hardware parts will not be wasted because there is the possibility that we will add a second layer to our fridge so that we will use two hardware pieces.

Another risk that we currently met is that even though we order all parts using the form last Sunday and expected that the orders would have been placed on Tuesday, we did not know that we needed to inform TAs in order for the orders to be confirmed. Thus, we didn’t get the orders placed until Friday, which may influence our schedule. Fortunately, our models and codes will not be run on jetson Nano until we tested them on PC, so the delay in these parts will not be a big problem. For the acrylic boards and the LED grids, we will try to work on the building work together to shorten the time we need for this part of the work.

In general, we do not have any changes to our proposed schedule. This week we worked on the design review presentation together, and we tried to specify the implementations of the software part and support our ideas with related works and details. We also decided on the bill of materials and placed the orders. For the next week, we will work on the design review report and start working on our own tasks as planned.

 

Elena’s Status Report for 03/06/2021

This week I worked with my teammates on the design review presentation. Personally, I first worked on the schematic diagram. I simulated the ideal product in the real-world application by renovating my own fridge, taking a photo of this real fridge, and adding components to the photo(below shows the photo in the process; the final pic exceeds the 8Mb limit and will be displayed in presentation). In addition, I also sketched a diagram of how our final product for proof of concept will look like.

For the recommendation system, I read many related works available online and some popular implementation of recommendation system training networks. From all articles and works, I found a paper that focused on a cooking recipe recommendation system that runs on a consumer smartphone. https://online-journals.org/index.php/i-jim/article/view/3623/3116

I compared their applications of bag of features with my previous related projects to help me build my own training models.

I think we are on the schedule planned before. For the next week, we will first focus on finishing the design review report; if I have extra time, I will start building the baseline model by first implementing the feature extraction and test on the accuracy.