Amazon takes every opportunity it sees. Through AWS DeepLens it's brought deep learning closer to developers of all skills. Although it looks like an oversized web cam, it's more of a fully integrated software platform than a camera.
What is AWS DeepLens?
DeepLens is a wireless video camera device which runs machine learning models and integrates ultimate AI tools to develop computer vision programs. The unit uses Apache MXNet learning framework but will soon support Caffe and TensorFlow.
It's pre-configured to integrate with Amazon Kinesis Video Streams, Greengrass and Amazon SageMaker. However, you can also integrate other services including AWS Lambda, Amazon Dynamo, Amazon Rekognition and Amazon S3. You can run models on the local camera data stream using Python 2.7 programming language.
How Does AWS DeepLens Work?
DeepLens captures video streams through the camera and develops two outputs:
- The unit's stream mode acts like a normal camera and allows video streams to pass through unprocessed.
- In project mode, the unprocessed video streams are received by the Lambda function. The frames are processed in the deep learning model and returned to the inference Lambda function which pushes them into the project stream.
Deploying A Model into AWS DeepLens
You can deploy a model into AWS DeepLens through Amazon SageMaker which is found in the Machine Learning section of the AWS console. Models are trained in Amazon SageMaker but you can import other models into DeepLens by indicating their 3S location.
You'll only require internet connectivity to deploy the model to your device from AWS unless your project requires interaction with the cloud. Once the project is received by the DeepLens unit, all inferences are performed locally. However, it only connects with Wi-Fi networks which only have alphanumeric characters.
The unit comes with 6 pre-configured models including:
- Object Recognition
- Hot Dog No Hot Dog
- Cat and Dog
- Artistic Style Transfer
- Activity Detection and Face Detection
For example, the sample Object Recognition pre-set by Amazon includes a ResNet-50 on MXNet model and a Lambda function which identifies objects by rendering detection boxes around them. It sends JSON messages including the identified objects and related confidence levels to the AWS IoT MQTT topic.
Users can modify and extend the sample project by sending DeepLens data towards other related visualization and analysis services. Modifications can be made to the model's logic by making it more sensitive in detecting multiple objects by editing the Deeplens-Object-Identification code in the Lambda function.
Once users make changes they can update the Lambda function and then deploy the new project to the DeepLens unit. You can also redirect MQTT messages to different storage and processing services such as IoT Analytics, DynamoDB, and S3.
You can easily create new sample projects with SageMaker and customize DeepLens projects such as security systems with specific alerts. Although DeepLens doesn't include Alexa it does integrate a 2D microphone which can run personalized audio models, but it requires supplementary programming.
Other Project Ideas with AWS DeepLens
By using the AWS Lambda functions, you can develop a wide range of projects based on DeepLens's sample models. For example, sending emails or SMS notifications once an object is detected or even sign language identification capabilities. Other projects could include detection of human emotions such as smiles.
With such a wide variety of applications and user-friendly interface, DeepLens is one of the best tools available for improving AI and machine learning skills.
Image source: amazon.com
Maybe you'll find this ebook interesting: