Yasser’s Status Report for 02/18/23

This week I personally accomplished drawing the diagrams included in the Design review dealing with the computer component, specifically with how the OpenCV DNN module works and how to incorporate the Caffe learning module used for facial detection and the landmark detector used to obtain eye and mouth detection.

In addition, I started reading OpenCV’s CUDA API in order to optimize our image processing code and obtain our desired frame rate of 5 fps however, CUDA applications were not originally intended to be used on the Volta architecture. There are documentation for making CUDA applications compatible with the Volta architecture ( https://docs.nvidia.com/cuda/volta-compatibility-guide/#about-this-document). Furthermore I read tutorials on how to detect eyes with OpenCV with the use of thresholding which creates binary masks used to segment out the eyeballs from the rest of the eye (useful for eye tracking) and for segmenting out the mouth from the rest of the face.

My progress is up to schedule at the moment as I have researched the computer vision algorithms necessary for this project: OpenCV DNN for facial detection, CNN-facial-landmarks for obtaining facial landmarks (used to obtain eye and mouth detection), and creating a region of interest on a binary mask with the size of a driver’s eye and mouth for eye and mouth detection.

Deliverables that I hope to complete by next week are writing the initial facial detection algorithm and facial landmark algorithm using OpenCV’s DNN and CNN-facial-landmark model.

Yasser’s Status Report for 02/11/23

This week I did more research on what computer vision components to implement/design for the project. I focused more on how to utilize the OpenCV library for facial detection and eye tracking by following some of the OpenCV deep learning tutorials from PyImageSearch (https://pyimagesearch.com/2017/08/21/deep-learning-with-opencv/). In addition to this, I researched how to incorporate OpenCV with a GPU to make the computation faster, thus allowing us to reach our goal of a quick feedback response to the driver. That is how I stumbled upon this video
(https://www.youtube.com/watchv=LQymI4uOL7w&list=PLkmvobsnE0GEkJXGxOjV9uuyozS8QGx3M&index=2&ab_channel=NicolaiNielsen-ComputerVision%26AI). All in all, my personal accomplishment was having a rough idea on how to use OpenCV DNN in this project, as well as using other OpenCV packages with a GPU to make computations faster. My progress is on schedule now. I still must specifically research how to incorporate a DNN
module into the Xavier Jetson’s GPU, such as an API. Deliverables that I hope to complete in the next week is the design review, specifically my
section which deals with the computer vision software. This will involve researching any APIs that connect with the Jetson’s GPU for faster computation as well as researching libraries that aid in image classification.