Milestone #4

4.1 Optimization

For the GAN model, the team made many modifications from tests conducted during development, especially concerning model hyperparameters and data engineering. The team used trial-and-error to figure out the ideal number of epochs to train the model on that would produce good results without overfitting. The group ended up increasing the amount of epochs to train from 400 to 500 for the final model as well as augmenting the training image data with more examples for the model to use from 25 to 49. One interesting thing that the team noticed during testing was that a single image of a woman in a red sweater had heavy impact on the model's output due to the scarcity of other large torso areas in the other training images. Thus, when it was time to predict the pixel values of large torso areas, the red sweater showed up heavily on predicted images with large torso areas, even if the input had a completely different color of clothing as shown below:

The group also designed an application to serve as middleware between the video chat app and the GAN model to more smoothly complete the end-to-end data pipeline. This program, however, was designed but not fully implemented in the final model since not enough time remained to create a stable version that worked without errors or crashing.

4.2 Delivery

GAN Model:

Main Application:

4.3 Management

Although the project went smoothly and successfully, we encountered several roadblocks when it came to project management. The primary obstacle for the project was finding time that all four group members could work together without being interrupted. In addition to this, we changed the base model several times which cause some confusion with the team's cohesiveness. We were required to be fairly flexible with our approach to the project since new information on our topic was constantly coming in, forcing us to be in a constant state of flux and make use of trial-and-error to see what would work best for this particular project.