This week, Iris and I worked together to debug the face/mask detection program and add the IR sensor module to the Jetson Nano. The original program that we were trying to run for face/mask detection uses OpenCV for the analysis. However, we found out that the Jetson Nano doesn’t support the OpenCV libraries that are required for the program. As a result, the program wasn’t being optimized when run on a Nano and the frame rate was extremely slow.
We had to look for a different library to use for our face/mask detection and decided to try out YOLOV3. This is a more lightweight library that can often be used to run computer vision programs on a Nano with a decent frame rate (10~13 fps). We downloaded all the necessary packages and are currently waiting for the training step to finish (it usually takes ~90 minutes).
We ran into many problems when using the MLX90614 IR sensor. It requires an I2C connection with the Nano, so we hooked up the I2C SCL and SDA pins to the Nano’s corresponding GPIO I2C pins. However, we found out that the Nano wasn’t able to detect the I2C connection to the sensor when we tried running the i2cdetect command. We decided to go through several steps of debugging: (1) check if the sensor works with other boards (Arduino Uno, RPi), (2) check if the sensor is getting powered properly by the Nano’s 3.3V output pin, (3) check if the sensor has enough current flow. We went through all of the steps above and concluded that there were no issues with the sensor or the sensor’s power connection/current.
After some research, we found out that it might be an issue with the i2cdetect program not recognizing our specific sensor’s I2C connection. We decided to write up a quick script that tries to read bytes from the I2C bus at a specific address. This was possible because we knew that the sensor’s I2C address is at 0x5A. After executing the script, we discovered that we were actually reading valid data from the sensor! So we were able to produce valid temperature measurements from the MLX90614 sensor and output it from the Nano. The demo video of this short script can be found in this week’s team status report.