Week 2 (6/9 - 10/9)

Familiarisation and experimentation

In this week I mostly worked on my documentation (project plan and research report) and some experiments with OpenFace and how I could use it.

Documentation

As I received the current prototype at the start of the week, I was better able to describe it in the research report. There was some difficulty in getting it up and running, but this was not much of an issue. The main interest for me was in the code itself. It will be invaluable when implementing the features that OpenFace does not have out-of-the-box. Furthermore, I edited sections such as the choice of technology. This is partly based on my own tests using C++ scripts.

Further editing of the project plan was also done. It was sent off for feedback to both Bart and Luuk. Next week, I aim to fully update and hopefully finish it.

Experimentation

My main focus was familiarising myself with OpenFace, as that is likely the facial analysis library I will use for the rest of the project. To do this, I installed it both using the GUI on Windows and headlessly on Ubuntu. The latter is what I was really interested in: OpenFace supports command-line input out-of-the-box. This means that it might not be necessary to actually implement OpenFace: I could run it concurrently with my own application and run commands using my own scripts. To try this out I wanted to try 2 different scripts: one hosting a REST server and the other running OpenFace commands in the terminal.

Even though I have little to no prior experience with it, I decided to create these scripts using C++ for 3 reasons:

  • Much of OpenFace is created using C++. This would both allow me to familiarise myself with the language and, hopefully, allow me to interface with it more easily.

  • C++ is very fast and has little to no boilerplate code, meaning I could get simple scripts up and running with very little code.

  • As mentioned, I have no experience with C++. It is, however, a very popular and useful language (especially in the game industry). I therefore saw an opportunity to use a new language that both interests me and is useful, and took it.

As these now work, I aim to combine them and make it so commands can be run remotely using a REST call. Analysis data is exported to a .csv file, meaning the flow would look as follows:

Spoilers for next week

  • Testing FaceReader

  • Combine the two test scripts to allow for a headless, remote-accessible OpenFace implementation

  • Finalise project plan

  • Receive feedback on research report

Last updated

Was this helpful?