Heidi’s Status Report for 3/6

This week I worked with my team members on the design presentation. From last week, I was able to follow along with an existing example to get a simple face detection python script to work. The script uses OpenCV to read in the frames from my laptop webcam and using dlib’s HoG Face Detector. Additionally, with the face detector working I was able to also continue and follow a facial landmark example using dlib shape predictor. From observation, detection works pretty well, head pose does effect detection, if I look down or up the bounding box no longer appears over my face. The dataset that dlib’s face detector uses is the LFW (Labeled Faces in the Wild). This dataset has 2585 images. Last week I was looking at the CMU Multi-pie face dataset and was hoping to train the dlib face detector with this one instead. This dataset is extremely large with about 750,000 images of 337 people with 19 illumination conditions. As I’m not sure if we will be able to use this dataset (since we would require a license), this data set and the Yale face database did help consider how we would label our own dataset, to build upon the LFW dataset. We can classify images as either center-light, left-light, or right-light which is what the Yale face database does, but we could also classify as bright-light, normal-light, and low-light. I also looked at an example of face landmarking training that uses dlib for a custom shape predictor.  Both code examples were uploaded to our team’s GitHub repo.

Progress is still on schedule. We ordered our equipment on Monday and in the meantime I am trying to play around with pre-trained models to see how the face detection would work with landmarking and continue to research how we will be training our models. Design presentation is on Monday/Wednesday and based on the feedback we receive we can start writing the design report. 

This next week I hope to use this face detection script but with a different dataset to practice training a model with a new dataset. The dataset I plan to train with is the DriveFacce or the Yale face database. Additionally we can hopefully build on top of these and create our custom dataset following this format, especially when considering different light conditions. Also this next week, I will be working with my teammates on the design report.

 

Sources:

Face Detection Example

https://learnopencv.com/face-detection-opencv-dlib-and-deep-learning-c-python/

Face Landmark Model

https://github.com/davisking/dlib-models/blob/master/shape_predictor_68_face_landmarks.dat.bz2

Face Datasets

http://vis-www.cs.umass.edu/lfw/

https://search.wellspringsoftware.net/opportunity/FBX2:4283?qd=CMU%20Multi-pie

http://adas.cvc.uab.es/elektra/enigma-portfolio/cvc11-drivface-dataset/

Dlib official Face Landmark Example:

http://dlib.net/train_shape_predictor.py.html

http://dlib.net/imaging.html#shape_predictor

Training Example:

http://dlib.net/train_object_detector.py.html

 

Heidi’s Status Report for 2/27

This week I practiced for the proposal presentation on Wednesday. Based on the feedback we received about upgrading from the Jetson Nano to the Jetson Xavier NX, I went back and did some more research between the two microprocessor options. The Xavier NX has a plug-in WLAN and Bluetooth module with antennas which would save us the cost of buying an Intel Wifi Card to add onto the Nano. From the introduction video, one of the demo’s they showed included Gaze estimation which used NVIDIA facial landmarks which uses the CMU Multi-PIE Face Database. This gave a bit more clarification for me on the region keypoint pixel error that was mentioned during our proposal presentation for facial landmarking metrics. From our feedback on our status reports, I moved away from research papers to project examples. I looked into an example with OpenCV, Dlib and Python to begin experimenting with facial detection and landmarking. I have downloaded the necessary packages, including Dlib and its requirements to my laptop to begin working. There were various updates I needed to add to my laptop for Dlib to properly install. I also looked into data sets for head poses, as an option instead of our data collection. The DriveAHead data set and UAH-DriveSet seem like they will be the best for our needs, particularly the UAH-DriveSet.

 

Progress is on schedule. The proposal presentation went well and we have discussed as a group how to address the suggestions we received and will bring this up in our meeting on Monday with Abha. Our plans to order immediately after the presentation were pushed back because we received the suggestion to upgrade to Xavier NX but after discussing with Abha we should be able to submit the order on Monday.

 

This next week, we will order the Xavier NX and other hardware components. I will work with my teammates to prepare our design presentation and ensure that we have updated our requirement metrics. I hope to also have a simple facial detection python script working with Dlib and OpenCV. 

 

Sources:

NVIDIA Jetson Xavier NX Developer Kit

https://www.jetsonhacks.com/2020/05/16/nvidia-jetson-xavier-nx-developer-kit/

https://developer.nvidia.com/embedded/learn/get-started-jetson-xavier-nx-devkit#intro

Facial Landmarks Estimation

https://ngc.nvidia.com/catalog/models/nvidia:tlt_fpenet

Facial landmarks with Dlib, OpenCV, and Python

https://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/

https://towardsdatascience.com/facial-mapping-landmarks-with-dlib-python-160abcf7d672

Dlib Setup

https://stackoverflow.com/questions/54719496/installing-dlib-in-python-on-mac

Data set

http://www.robesafe.uah.es/personal/eduardo.romera/uah-driveset/

https://cvhci.anthropomatik.kit.edu/download/publications/2017_CVPR_Haurilet.pdf

The CMU Multi-PIE Face Database

http://www.cs.cmu.edu/afs/cs/project/PIE/MultiPie/Multi-Pie/Home.html

 

Team Status Report for 2/20

The most significant risks at the moment that could jeopardize the success of the project is integrating all the software algorithms we have together and integrating the hardware components. We plan on testing each algorithm extensively before integrating in steps with the others. Once the algorithms are fully integrated for each hardware part. The plan to test communication between the two devices is to start with simple messaging examples and then proceed to our actual software connecting between the devices. We have done research about each of the components to ensure compatibility. Additional research will be done throughout the project as needed. Another concern will be making sure we are able to power both the Nano and Pi with power banks and enough power is received for multiple hours to run software on each. Before integration we will make sure that they work with charging cables, to observe performance and then move to using power banks. Another risk with the power source will be having scripts automatically run the algorithms when power is plugged in or to switch to using a switch to turn the Pi and Nano on and off. Our plan for this to test our script that runs the algorithms in the correct sequence to ensure it works properly without us intervening. Once this is working fully, we will add the command to start upon plugged into outlet, and then plugged into power bank.

So far no changes have been made, but there might be after the proposal presentation on Monday. Thus, there is no updated schedule.

Heidi’s Status Report for 2/20

This week I worked with my team members on the proposal presentation. I created the gantt chart template in excel for our group to use and primarily worked on the requirements and design slides of the presentation. Since I’ve been assigned to work on the facial detection, landmarking and head pose aspects of our project, I have collected a few sources in these areas to help familiarize myself with the technology and algorithms behind them, including some tutorials. From these sources, I’ve decided to code in Python for the face detection and head pose algorithms because I am most familiar with Python and it is compatible with OpenCV. I have also collected tutorials for the initial set up of the Jetson Nano and setup with the wifi bluetooth card and camera module.

Progress is on schedule since the proposal presentation is this coming Monday. In the gantt chart the time before receiving the materials, we will be researching. Once we receive feedback from the professors I will go ahead and order the hardware we agreed to use. 

This next week I hope to use the sources that I found to work out some simple face detection examples on my laptop to better understand how to use OpenCV and determine if any other libraries will be necessary before switching code over to the Jetson Nano. Unless we receive feedback that tells us otherwise, ordering the Nano and the other hardware components will also happen this week, and while waiting for the equipment to arrive, I’ll practice on my laptop.

Sources

Jetson Nano + Wifi + Bluetooth

https://desertbot.io/blog/how-to-add-a-dual-wifi-bluetooth-card-to-a-jetson-nano-intel-8265

https://www.jetsonhacks.com/2019/04/08/jetson-nano-intel-wifi-and-bluetooth/

https://learn.sparkfun.com/tutorials/adding-wifi-to-the-nvidia-jetson/all

Jetson Nano + Raspberry Pi Camera

https://www.jetsonhacks.com/2019/04/02/jetson-nano-raspberry-pi-camera/

Face Detection

https://towardsdatascience.com/face-detection-in-2-minutes-using-opencv-python-90f89d7c0f81

https://realpython.com/face-detection-in-python-using-a-webcam/

https://ieeexplore.ieee.org/abstract/document/8203730?casa_token=5ykY6xwCRgIAAAAA:BFeXXcQDtJOs7EvsYlFwoBGgsddHWTLQpzI4VrZz3EFs5QAztw2gbq5hBaHs7IgUuX2Bwi4a9A