Experimental Camera
Experimental Camera Project
Goals of this Project
I wanted to design a program that could mask the users face while on a video call. Zoom is a constant part of people like for things like work and school. All popular platforms have issues with the users privacy, so I thought it would be nice if everyone could adopt a Zoom persona aka a video chat persona. This could serve as a way to hide the users real face and protect their privacy while as providing a way to convey emotions and facial expressions while on a video call. I orignally decided to create a pixelator that tracks the users face, however I eventualy decide to create a vector face using clmtracker.
Like all of my projects I wanted an interactive element to it as well. Since we can spend so much time on video call it can sometime get boring. So I decided to build game that can be played while on zoom.
Design Process
I started by capturing the users video data and using clmtracker to track points on the users face. With these points I used a for loop to would draw vector point tofor the shape a human face. I then place an all black canvas overlayed over the video capture to completely hide the user. The Vector face is still visible over the black canvas which allows the users face location to be tracked. I really liked the look of this asthetic and decided to build an interactive element on top of this.
By tracking the center point on the vector face I can determine which quadrant the vector face enhabits. I highlight each quadrant the face is overlaping. Using a 2D Array placed words in random quadrants for the users to follow with their face. If the user's face is overlapping the same quadrant as the random word the users can earn points. Earning 5000 points would end the game.
Reflection
With this project I encountered my obsticles. The first of which was the technical performance of the program. I trying pixelating portions of the screen and having that pixelated area track the users face movement. This however proved to be too resource intensive for the program to handle without slowing down and would require a lot of optiminzation. Placing the black background allows me to keep the users face hidden and also not waste computer resources.
The second big issue I encountered was the accuracy of the face tracking with my own face. The clmtracker had a very hard accurately recognizing my face even when it was well lit. I thought it was not implemented properly. However, I asked my wife to try it and it was able to track her face perfectly. It seems that since I am a black man with a small amounts of facial hair it could not recognize my face shape. My wife who is Japanese and has lighter skin than I and a bare face it could track her face without issue. I wanted to find a way to corrct this within the program but I did not understand enough about clmtracker to improve it. I decided to have my wife test the game portion.
Finally, debugging was my final obsticale. This program has many moving parts ths creating more bugs in my code. I spent a lof of ime fixing the but there are some I could not fix. Overall I am happy this the end product. Its a simple program but people trying it out seem to quickly pick up on what to do and enjoy it as a same distract. I would really love to see a zoom can with everyone using this simple vector face and study how their interacts with each other change.