- Figuring out how to do more complex tasks. Considering DeepLens and SageMaker are both still in their nascent stages, one of the main challenges is the lack of documentation and tutorials. It was relatively simple to set up the device and use the default template models, but when we tried to use custom models and modify the video stream, we found it’s difficult to get detailed information about what to do.
- Finding out how to fix an issue. The DeepLens forum is helpful sometimes, but there aren’t enough established QA and only have a very small community on the forum to help troubleshooting. It leads to the result of spending unpredictably long time on troubleshooting during the project.
- Building our own model with the Intel DeepLearning deployment toolkit. Model conversion using Intel DeepLearning deployment toolkit with SageMaker trained model always fails, making it difficult for us to test our own model.
- Debugging and deploying our program. It’s difficult to debug a Lambda function because an important library called "awscam" is only available on the device. We needed to either setup a development environment locally on the device or we had to wait for the lengthy deployment process to finish to be able to debug.
Dealing with the limited hardware capacity of the DeepLens device. The DeepLens struggles to handle inserting graphical overlays onto the project stream which caused us to reconsider our original concept of how to display advertising images on top of the video stream.
Accomplishments that we're proud of
- Developing a feasible cool idea that helps industry
- Training a custom deep learning model on SageMaker
- Using OpenCV to modify the project video output stream
What we learned
- DeepLens’ capabilities
- How to use SageMaker to train a custom model and use it on DeepLens
- How to develop software on the DeepLens platform
A brand new advertisement system
We believe that machine learning should be a fundamental driver for future marketing strategies. For brands to remain relevant they need to generate insights from an increasingly complex data set. There are 2 main areas of development for DeepAds beyond this point.
1. Classifier Maturity: our current implementation of DeepAds distinguishes on consumer gender, however there are many ways that we would look to classify consumers moving forward. As well as gender we would build out our classifier to cover:
- Facial features, e.g. beard, hairstyle, skin colour etc.
2. Stereotyping safeguards: a critical part of the next phase of development for DeepAds would be to implement safeguards against perpetuating stereotypes. This is fundamental to building a platform that provides value to consumers in a safe and appropriate manner.
For this we would look to implement a number of features:
- Create more robust rules around defaulting to neutral adverts when the model hasn’t been able to classify with high accuracy
- Implement mandatory A/B testing of adverts at scheduled points regardless of classification
- Place an increased weighting on mood as a measurable characteristic for our model, evaluating how people are reacting to the advert being shown and using this to tailor future ads.