a real-time, mobile-accessible facial detection pipeline
When we were first dividing up the workflow between our four team members, I wanted to make sure I chose a portion that would teach me a good deal. I was allotted the video processing portion of the pipeline, that is, using FFMPEG, OpenCV, Dlib, and such. I wrote the whole Python script (with the exception of the finalized DB calls and first couple of time stamps) which made use of all these dependencies. It required that I learn various different concepts, such as IPC, and even Python itself. I also programmed many flags and options within the script to extend its usability. Furthermore, I contributed by modifying Tristan Hume’s source-code in various areas to make it compatible with our own pipeline (via IPC). I did all the debugging for this part of the pipeline. I also explored IPC with Python to leverage real-time efficiency. This was a failure within the time constraints. Finally, I bought the domain name (redirected from P. L.’s previous domain name) so called Faceline.stream.
My teammates handled the various other parts around the core pipeline that I developed. Two of our members were dedicated to the web portion of the program, and their work was the most arcane to me. P. L. worked on the frontend of the website, which quickly looked very appealing. From what I could tell after that, he worked with L. T. to integrate the website with L. T.'s servers. P. L. also finalized the Postgres database, and he was also available to help with any questions that I had via Slack. L. T. worked to set up the servers and backend that ran our pipeline. He also worked to parallelize the pipeline, ultimately running three servers. He worked with P. L. to integrate the frontend with the backend, and was likewise available to help me with questions I had, about the database, networking, or otherwise. L. T. also brought a lot of moral support (he’s a pretty funny guy).
A. A. handled the logistical issues rather well; he handled project proposal materials and charts, as well as organizing various team meetings. He checked the project’s requirements several times and gave reminders. He wrote the documentation, and handled the final submission at the end of the project. A. A. additionally divined the table structures during the beginning of the project, with input from the rest of the team at our meetups. After the database was finalized with P. L.’s structure, A. A. valiantly fought Postgres to test and fix the database calls initially provided by L. T.
The project was largely a success, in that we accomplished almost everything we set out to do. However, the road to success was very rocky. From the outset, P. L. and L. T. largely disappeared into their own work. I ended up just writing my portion into a folder which was abducted by them into the aether of their web and server components. Additionally, I was at first indignant with A. A.’s contribution. He dedicated most of his working hours to another project that had no upper bound. I gave him a few tasks but increasingly found it easier and faster to rely on myself as I got more acquainted with the codebase. If we could do it all over again, I should have been more insistent on the database developer as its own proper role.