Lucky’s Status Report for February 19, 2022

This week I did the following tasks:

  • Attended the mandatory meeting, asked questions and took notes
    • One important take away was understanding the nature of the course as more of one where we build a recip, testing which ingredients work best where, rather than all the raw ingredients
    • Another takeaway was to consider the scarcity of raspberry pi’s and beginning to think of alternatives
  • Began some actual code for the detection algorithms
    • Created a jupyter file on Google Colab to test SIFT, SURF, BRISK, color detection
    • Wrote some code and read through various docs
    • Learned about matching and feature extraction processes
      • Introduced to FLANN and Brute Force
    • Learned more about ways to speed up detection
      • In addition to gray scale, learned about converting to HSV
        • This enables one channel (H – Hue) for the colors, I’m thinking this could speed up color detection

 

In terms of schedule, I did some more work, but not as much as I anticipated with a couple hiccups like finding that SIFT / SURF are patented algorithms. Also, I need to improve on my time management as well if I am honest.

 

The main way I intend to catch up and do better this upcoming week is the following

  • Continue testing the open source options such as BRISK
  • See if we can find a workaround i.e. use older versions of open cv / python to implement SIFT
  • Break down my schedule to a more micro scale for the week and have smaller milestones to try to manage my time better and avoid going down rabbit trails of non-essential research / information 

 

This next week, I hope to complete a testable version of BRISK object detection for various grocery items. I hope to also begin shifting to interconnectivity requirements (i.e. raspberry pi, camera, computer, cloud) and the location of processing as we become more familiar and have tested some algorithms

Allen’s Status Report for February 19, 2022

During this week, I mainly researched Web Frameworks, Databases, Object-Detection Algorithms, met with my team during class time, discussed through messenger when we were home, and created an overall (and potentially near final draft) design diagram of our product.

After doing research, I have decided that we will use Flask rather than Django for our web framework. Why? Even though I am familiar with Django and haven’t used Flask before, Django is very comprehensive and for the purposes of our web application, we don’t need all of the features that Django provides. As a result, a more lightweight framework (Flask) will be faster, and since it can do all the things I need it to do, it made more sense to me to move on with Flask. Also, Flask is python-based, which is my most comfortable language.

As for the database, I decided to move forward with MySQL with the help of SQLAlchemy. This is because I have experience with MySQL, it’s an ORM structure, and it’s not lightweight. Essentially SQLAlchemy is a library that allows users to write python code that will translate to SQL. Having SQLAlchemy will improve my implementation speed and process since I am much more comfortable with Python than SQL.

In terms of the Object Detection Algorithms, we have seen many. We decided that instead of trying to decide which one to stick with for the semester, we are going to try implementing a few of the ones we have researched. Then, we will evaluate the performances of each and choose the best one.

Lastly, I spent time during the tail-end of the weekend (Friday and Saturday) to create an overall design diagram and tried to be as specific as possible. This diagram encompasses our entire project and also includes submodules for modules that cannot be explained with just one block.

Overall, I spent roughly ~10 hours this week on Capstone.

My progress I believe is behind. I wanted to create the base web application and test out the RPI and ARDUCAM. I did not do either this week and I intend to work much harder next week to compensate so that I can get back on track and/or be ahead of schedule. If I am not on track (standard is based on our defined schedule from the previous presentation) by this time next week, I will ask my TA/Professor for assistance on how to catch up and inform them that I am behind.

In the coming week, I plan to achieve the following: Watch a tutorial video on Flask/SQLAlchemy, create the base web application, start designing the Front-End UI, test out the RPI/ARDUCAM (not just taking pictures because that was supposed to be this week, but also test the transfer of data to a local machine), and work on the design presentation.

Team Status Report for February 19, 2022

An overview of what we did:

  • Received feedback from our Professor/TA during our weekly meetings on Monday, took notes from the meeting, and discussed as a team afterwards
  • Researched deeper into various object detection algorithms (i.e. SIFT, SURF, BRISK, and more)
  • Determined a list of grocery items to test with and why we chose them
  • Determined the algorithms/approaches we will use for CV (will explain in-depth during the design presentation)
  • Researched into what web application/database to proceed with and determined which ones we will use
  • Created and fleshed out an overall design diagram for our product
  • In the process of testing SIFT, BRISK, and color detection with Google Collab

In terms of what we will do this upcoming week, we hope to do the following:

  • Go through a tutorial of Flask/SQLAlchemy
  • Create the base web application and initial UI
  • Test RPI and ARDUCAM
    • Use RPI to control the ARDUCAM to take a picture
    • Use the RPI to send that picture to a local machine
  • Continue testing SIFT, SURF, and BRISK and getting comfortable with the algorithms in practice
  • Research more on gray-scaling, background subtraction, and color detection
  • Get back on track and/or be ahead by this time next week
  • Assign specific tasks and deadlines for preliminary implementation moving forward

The most significant risks that we know of thus far are:

  • While testing SIFT, we ran into patent issues and we pivoted to testing BRISK
    • Mitigation: Look into how to use a specific version of a library since SIFT was available on cv2 (cv4 is the current version)
  • Using algorithms that demand too much computing power or take too long for the systems we run them on
    • Mitigation: comparing processing on cloud vs local machine
  • Accurate trigger mechanism for when to run object detection
    • Mitigation: Researching fast motion detection processes i.e. background subtraction
  • Poor understanding => poor implementation => non functioning product
    • Mitigation: through research stage, and asking questions on slack to probe the experienced minds of the professors and TA’s

There were no changes made to the schedule.

As for the design, we transitioned from using Django (wasn’t set in stone before, but was heavily leaning towards it) to Flask. Additionally, when researching about databases and Flask, we decided to use a library called SQLAlchemy that assists us in writing high-level (python) SQL code. We also discussed adding the process of gray-scaling images to reduce computation power and increase speed. When needed, (i.e. fruits and vegetables since some are similar in size and color) we will use color detection.

Takshsheel’s Status Report for February 19, 2022

Through this week, most of my time was spent researching background reduction for openCV, working with our team during class time, to discuss different frameworks for the webapp network as well as different background subtraction algorithms. 

With this time through research, I’ve found there to be a few different algorithms for background subtraction, which is an important step for our openCV processing. The 2 primary algorithms that I believe we’d like to use for our project for background subtraction would be one of BackgroundSubtractorCNT or BackgroundSubtractorMOG2 since these algorithms were designed for detection of foreground motion along with being able to differentiate between movement and their shadows moving. I’m not sure which detection algorithm would be the fastest and accurate enough since our goal is just detection of some motion to begin with. So, I think we shall try to use BackgroundSubtractorMOG2 since I was able to find better documentation with public access for the same, and test if we would need a better algorithm to meet our goals. Should that be the case, I’d like to have a working implementation to test soon.

Beyond that, in terms of intangible time spent, I worked on my presentation delivery since it is an area I struggle with. I don’t have any way to show this at the moment, but I hope to show it through the design review presentation that shall be next week. I spent about 2 hours working on learning our design well as well as practicing my delivery for random presentations. I don’t know if it was worth it, but I needed this time to do it well.

In total, including class time and research time, I spent about 10 hours on capstone this week. It needed to be more, but I had an emergency situation take up more of my time. This situation put me behind on my schedule, but now that it has passed, I plan on using more of that time into the project and have tangible deliverable files next week.

 

For next week I plan to have a deliverable openCV background reduction process, and hopefully tests for different algorithms integrated into it too. Completion and a good presentation of the design review is also something that needs to be done next week and I hope to do well there as well.

 

 

Lucky’s Status Report for February 12, 2022

This week I did the following tasks:

  • Presented project proposal
  • Continued research on SIFT algorithm to get a better understanding of how to incorporate it into our computer vision component of our project
  • Researched the differences between SIFT, SURF, OBS to gain a better understanding on the alternatives to ensure we are pursuing the best algorithm to meet our proposed user requirements
  • Did some preliminary research on background subtraction to consider it for our detection of motion in an aisle as referenced by the professor because I had not heard about it before
  • Looked into some comparison of popular methods to track and count people e.g. HOG vs YOLO
  • Did some preliminary research on which database we would use
    • Compared and contrasted SQL and NoSQL
    • Looked into the popular databases used for image classification applications  e.g. Apache Cassandra, MLDB, MySQL, and MangoDB
  • Reconsidered where we would be perform the image processing: on the cloud or on the local machine, and began looking into the pros and cons of both

 

In terms of schedule I feel slightly behind if I am honest due to uncertainty on which steps to take moving forward. I feel as though I am at a state of choice overload for technologies to choose

 

The main way I intend to overcome this hiccup in the process is to go over the options with my teammates in our first meeting this up to make a final decision on what we will attempt first before moving on to testing and implementation

 

This next week, I hope to perform the next steps as outlined in the team status next tasks, and in terms of individual deliverable, I hope to establish the mechanism we will use to communicate between the different cv components, and design an updated model of our system with those decisions in mind.

Takshsheel’s Status Report for February 12, 2022

What I researched/worked on this week:

  • Researched initial openCV algorithms to use for detection of people in a stationary environment.
  • Looked in depth into background subtraction and understood the different steps involved in the algorithm. 
  • Preliminary research into keeping count and detecting multiple objects along with background reduction. 
  • Research into a possible changing background vs not having our items not be in the background. Research to reason about would we want to use 2 cameras for people vs objects vs 1 camera with 2 settings. (2 cameras is expensive vs 1 camera has more algorithmic complexity) 
  • Varying background possibilities due to objects being taken off the shelves one at a time, many at a time etc. 

 

I feel like as a team we are still on track even though post our proposal which was very fleshed out and detailed for which a lot of preliminary research was already done, this week due to the proposals and peer reviewing during the 2 class times which were previously also used for research, but we have made progress with some of the details. On a personal note I think I’m a little behind on the outcomes of the research I wanted to achieve. Eg: Answers to some of the questions that I currently have preliminary research for. To catch up to my perceived readiness, I’d like to ask for advice through our faculty advisor and the TAs, and perform further research as well. 


For next week, I’d like to finish my research and be able to provide a first draft (albeit buggy) of some background subtraction code. So we can check what is visible and what isn’t. I’d also like to finalize what approach I’d like to take with regards to SIFT vs OBS vs SURF etc as well. 

Team Status Report for February 12, 2022

An overview of what we did:

  • Finished and presented our project proposal
  • Went over feedback such as reconsidering which algorithm / process to use to track people and took notes on it
  • Viewed other’s research proposals and gave feedback when necessary, we also noted some tools and technologies we could consider for own project
  • We continued to research independently for tools on our project
  • We will meet to go over our research items and discuss next steps in the coming week

 

In terms of what we will do this upcoming week, we hope to do the following:

  • Decide which web framework we will use
  • Decide which database we will use
  • Decide whether processing will be done in the cloud or a local machine
    • Decide which cloud platform we will use
  • Decide which algorithm we will move forward with for object detection
  • Decide how we will detect when there has been motion in the aisle and which algorithm to use for people detection
  • Assign specific tasks and deadlines for preliminary implementation moving forward

 

The most significant risks that we know of thus far are:

  • Using algorithms that demand too much computing power or take too long for the systems we run them on
    • Mitigation: comparing processing on cloud vs local machine
  • Accurate trigger mechanism for when to run object detection
    • Mitigation: Researching fast motion detection processes i.e. background subtraction
  • Poor understanding => poor implementation => non functioning product
    • Mitigation: through research stage, and asking questions on slack to probe the experienced minds of the professors and TA’s

 

There were no changes made to the existing design or schedule

Allen’s Status Report for February 12, 2022

For this week, I worked mainly on the tail ends (last Saturday/Sunday) and today (current Saturday). On the front end of the week, I worked on researching SIFT (i.e. how it works and it’s nominal speed/accuracy rates), how an RPI camera (i.e. ARDUCAM) would be controlled with an RPI, how an RPI would transfer data to a web server, and an ideal web framework to use for the web app (the section that I am heading up). This took roughly ~5-6 hours of work and including class time with our presentations and peer reviews, that’s an additional ~4 hours. Today, I was looking over how an RPI would interact with the Django framework (web framework that I am most comfortable with) and refresh myself on how the Django framework works. This took roughly ~3 hours of my day.

I think our progress is just right on track. My team and I should get into the habit of spacing out work throughout the week, which ensures that we clock in hours consistently. This also helps with progress moving along consistently. We have met up roughly 2-3 times each week since school started for around ~2-3 hours each, so our project abstract/proposal were a bit more fleshed out than we probably needed, so we were off to a good start. However, this week definitely could have been more productive, which is why I say that we are just right on track.

In the upcoming week (by Wednesday), I want to firmly decide on what web framework I am going to use for the web application. I am already heavily leaning towards Django, but I want to explore other options as well as different databases too. Additionally, by the end of next week, I want to have setup the backend and frontend (i.e. create the project and begin with initial UI). Lastly, our parts for our system have been picked up recently this week and we want to start testing that the RPI can control the ARDUCAM to take pictures and try to send that information to the backend.