Why we built it
We are all facing the new normal in the whole world. Coming from a health crisis, it is crucial that we follow the new society rules to be in closed spaces.
This means that one with a high body temperature must not enter a room in order to prevent contagions. Once inside a room, it must not be filled to its full capacity but to 30%.
We have seen that in most places there's a guard at every entrance that checks body temperature for everyone that gets in, yet they do it wrong most of the time by measuring in random places such as arms and hands instead of foreheads. Keep in mind that they are the only persons that have contact with all the visitors, if they get infected, chances are that they become a point of mass infection within visitors.
What it does
Utilizing computer vision, temperature sensors, and motors, we can track the forehead of a person that wants to get in a room, then we can keep a log of the temperature of all the visitors with our web application.
By doing a correct measurement of the temperature at the entrance of any room, we can decrease the spread of any disease (including COVID-19 and any others that might come in the future).
Having a log of all the people that go in a room, if someone of the room gets infected within a reasonable time frame, all the users that were near them can be notified so they can take action.
With this temperature log, we can further analyze the behavior of people in the new normal, which remains unexplored since it's very new. This information will be of high value to businesses and group administrators.
How we built it
Firmware Built on OpenCV over Python, developed on Ubuntu 16.04 Haarcascade training for facial recognition and QR readings.
Hardware - Built with a microcontroller that establishes a serial connection to any HTTP capable device with a camera in order to track a person's forehead and measure their temperature. The temperature and id are then posted to a mongo database.
Web App - We created an Express App in Node.js for the back-end of the web app. In Express we defined the routes that we used for the web pages as well as the routes for the API that the hardware uses to communicate with the database. User authentification is done with Passport.js. The design was done with React.
API and Database We created a RESTful API for the data stored in the Mongo database. From this API, read and write operations can be performed from arbitrary devices such as a camera or any other HTTP capable device.
Challenges we ran into
OpenCV can be hard to install on Windows, we solved this problem migrating the firmware to Ubuntu. We had several problems with UI because we aren't experts in this area, but this led us to learn about the principles and concepts of UX/UI. Sleep. We haven't solved this problem yet.
Accomplishments that we're proud of
Getting opencv to read qr codes and recognize faces all at the same time was not an easy task, yet we solved it and we are proud of it.
The mathematical model for the motor movement. We developed a mathematical model to control the motors to accomplish the forehead tracking with the data obtained from the webcam. We think this is pretty cool.
What we learned
We learned about the process of converting a simple design or sketch into code in a way that can reflect the usability that we were aiming for. We learned that having knowledge in multiple OS's is important to solve many problems.
What's next for TempLogger
Implement our first prototype in a real room to start refining the process of capturing real data. Implement a room camera to be sure that people are following social distancing rules, specifically the 1.5 meters rule. Analyze the data once we get a substantial amount, a deep learning algorithm might be implemented to alert administrators when there's a potential risk within their groups.