What Have We Learned?

What we have learned so far (3/29):

  • Nathan Geddes: I have learned from this project so far, a significant amount about the SIFT and the SURF algorithms using Matlab. Going through different university lectures on SIFT and SURF, I feel like I fully understand the process and importance of what these algorithms can do. I have found it very interesting that the code that we created to run the SIFT/SURF algorithm is similar to autonomous driving vehicles and what they do in real time to determine what signs/objects they detect while driving on the roads.
  • Alison Hake: Processing the image data for lane detection has significantly clarified 2D convolution, edge effects, and zero-padding to obtain 2D DFTs of the same dimensions. This came as a result of trying to calculate a threshold for the image in the frequency domain similar to a previous homework problem dealing with audio signals. Converting to the frequency domain and then back to the space domain was not working properly until I understood these concepts better. In the end, I simply used convolution in the space domain and defined a threshold on those values, but the frequency domain method may be considered moving forward.
  • Michael Shi: What I've learnt is the importance of looking into the SIFT algorithm to understand it before using the toolbox. The existed toolbox may be handy for similar situations as examples given, but it’s crucial to know how to fit it into our application efficiently.
  • Megan Tran: Thus far, I have learned about histogram based object descriptors such as SIFT and SURF. SIFT uses local extrema detection to find key points within a given threshold and excels more in scaled areas than the SURF algorithm. On the other hand, SURF is less consuming by the use of box filters. As the project progresses, I hope to understand these processes more in depth because I think they are both very cool and are essentially the first steps to designing a program for facial recognition as how Google Photos and Facebook can do.

What we have learned so far (4/23):

  • Nathan Geddes: So far from this project, I have learned about what and how the SIFT and SURF algorithms work. It was very interesting to look at the two different algorithms and figure out which one of the two would work best for our images and our situations. I have also learned many different functions in MatLab, when it comes to forming videos and looking at the videos frame by frame. Using our MatLab codes, we can basically dissect videos into their individual frames and run our code for each frame, then recreate the frames into a video. One of the biggest things I learned from working on this project is experience. Working as a team for one project is a great feeling because it brings all the members together and collectively use the information we have learned from class. We all have different things we were strong at, and we applied all of it to create one final project. This project gave me the perfect experience I needed before going into my MDE final project in the coming years.
  • Alison Hake: In the process of researching the different methods of edge detection in images, I learned about the ways that certain filters affect images that I didn't understand previously. In this project, I implemented Sobel filters to detect edges in images which works based on gradient detection. But I tested Laplacian of Gaussian filters and Gaussian filters as second derivative zero-crossing detection methods. They did not work as well on these test images, but the process helped me understand how there are many ways to use the image data to gather information.
  • Michael Shi: For lane detection, it's quite helpful to see how professionals handle the problems, and simplifies it to fit into our application without too much logic loss. For example, auto-masking can be too challenging for our current stage, but maybe we can figure out how to let user manually change the RIO without inputing the masking shape and size but using some inputs such as "enlarge" or "change shape". Somestimes it's important to choose the right algorism, but the key may be figuring out the most suitable and comfortable way to merge it into the level we can handle.
  • Megan Tran: From this project, I was able to learn about object detection and identification in detail. I never would have thought that these processes involved creating matrices and using those values to be able to compare images. I learned that using integral image speeds up the process by 3x because less calculations are needed to create the matrix. I also learned that to decrease processing time while using the SURF algorithm, we should only apply the search on part of the image. For example, when driving in the U.S., the only signs relevant will be on the right side, so we will only scan the right side for a road sign and this will decrease how long it takes to detect the object. I think the project topic is super cool not only is object identification related to face detection, but one of the vital components to autonomous vehicles which is what I want to explore more. I am really grateful for this opportunity and excited to learn more either through self research or courses at the university!