Hands On While it's fair to say Amazon Web Services' upgraded DeepLens AI camera is essentially a mini PC with a cloud-connected HD camera, it also has many slick features.
The gear is now available in Europe – the first version was only available in the US. The new edition is now in seven new countries, including the UK.
DeepLens is a cloud-connected camera intended for prototyping AI applications using AWS Machine Learning (ML) services. It is also aimed at hobbyists taking first steps into the world of AI based on camera input. The earlier edition was first presented at the AWS re:Invent conference in 2017.
The product is the result of work between AWS and Intel. DeepLens's hardware consists of a mini PC running Ubuntu 16.4 LTS (Long Term Servicing) upon which is mounted an HD camera.
The specifications are nothing special: dual-core Intel Atom x5 E3930 1.3GHz with HD Graphics 500, 8GB RAM, 16GB storage, micro SD slot, annoying micro HDMI port so you need an adapter, and two USB 3.0 ports.
Go fourth and multi-Pi: Raspberry Pi 4 lands today with quad 1.5GHz Arm Cortex-A72 CPU cores, up to 4GB RAM...READ MORE
The new 1.1 hardware, available from 10 July priced at £235 or $249, has USB 3.0 rather than USB 2.0, and adds support for the Intel RealSense depth sensor as well as the Intel Movidius Neural Compute Stick 2, a 16-core add-on VPU (Visual Processing Unit) accelerator – which for £100 or so will get you much nicer performance for AI applications. There is no microphone, which is surprising, but you could plug one in if needed.
DeepLens is a neat package and hackable – you get root access to Ubuntu out of the box – but in hardware terms poor value compared to the new Raspberry Pi 4 with a suitable camera, or Google's AIY Vision Kit, which comes with a Pi Zero and a Movidius VPU for half the price of DeepLens, though with a cardboard self-assembly case.
The advantage of DeepLens is that it is ready to go, presuming you want to use AWS for your ML project. The pre-installed software includes AWS IoT Greengrass, which does local processing of IoT data such as the stream of images from your DeepLens camera.
IoT Greengrass lets you run AWS Lambda functions, deploy machine learning models, and perform MQTT (a publish-subscribe messaging protocol) locally. This means that you can do local inference; you do not have to send images to the cloud for processing.
Another key piece in the AWS ML story is SageMaker, which is for building and training ML models. The workflow for DeepLens is that you use SageMaker to build your ML model and then deploy it to DeepLens for local inference. There is also an optimisation piece called SageMaker Neo, which combines an efficient common model format with a runtime for DeepLens and other devices, making inference up to two times faster.
Hands on with DeepLens
This being a cloud-oriented device, there is not much in the box other than the hardware and a link to the AWS DeepLens site. The documentation suggests you create an AWS IAM user with the requisite permissions to manage DeepLens.
The only supported region is US East, but one hopes this will change after the launch date. Click "Register your DeepLens" and you're asked to enter a name for the device and download a security certificate. Then you connect the actual device to your Wi-Fi network and continue configuration on the device itself. At least, that is what is meant to happen. In my case, the device started updating itself, which broke the registration process. There is a handy pinhole on DeepLens which resets its AWS configuration (it is not a full OS reset) and I was successful on the second attempt.
The next step is to download a sample project. The projects on offer are not inspiring, including face recognition (but not of course identification), detect 20 popular objects, hot dog or not hot dog and so on. I picked object detection.
At this point AWS warns you that you are about to spend money on "various services" but does not indicate the likely cost. Costs should be modest but it is easy to run up lots of AWS experiments and lose track.
After taking the plunge, I got a success message and an invitation to click "View project stream" – but no button to click. I am not sure what is wrong here, but there is separate documentation on how to SSH into your device, copy a streaming certificate, install it into Firefox or Chrome, and view the stream on port 4000. This worked and I was able to enjoy object detection, though I was amused to see a tape measure and mains adapter on my desk identified as 29 per cent likely to be a person. This is all part of the fun; the sample is only meant to show that the system works.
The DeepLens device does quickly heat up, as confirmed by a warning label. When it is doing local inference as well as streaming video, the little thing is working hard, and Intel chips have never been as good as Arm for keeping cool.
The "Object detection" project is not really much use for getting started. You cannot easily modify it to detect more objects or to improve accuracy. In order to learn about DeepLens, it is better to follow the tutorial for "Head pose detection", which explains how to train a model from scratch using a set of images with various head poses of 15 persons. You also copy-and-paste a chunk of Python code, and whether you learn a lot from doing that, I am not sure. Pre-processing the data typically takes 15 to 20 hours on a local PC, or you can use a high-end EC2 (Amazon Elastic Compute Cloud) instance. Then you train the model in AWS SageMaker – about seven hours at around $0.90 per hour, according to the docs. This isn't much, but it is how AWS makes its money, and training models on large datasets does get expensive.
Other DeepLens projects
There are also a bunch of DeepLens "community projects" and these turn out to be more convincing use cases than the AWS tutorials. There is a project to read sign language, and another to help dementia patients to recognise family members. There is also DeepAds, "an advertising platform allowing real-time targeting of customers". This last is a subject of intense interest to marketing folk, but does AWS take any steps to help its customers respect privacy and observe regulations, like the EU's General Data Protection Regulation?
You will... obtain any necessary consent from End Users for the collection, use, transfer, and storage of any Personal Information.
"We try to educate customers and make sure they understand what this technology can and cannot do," said Simon. "Our own services are GDPR compliant. As of today I don't know of any misuses of DeepLens, but if it was to happen you can report it to us. If we get a report that a service is breaching local law we can investigate and terminate it."
AWS is limited in its ability to verify compliance because, Simon said, "we don't want to see what our customers are doing. What they do inside of AWS is completely private."
Is DeepLens a good deal? As a device to help AWS customers get started with ML and AI it makes sense, thanks to the instant setup on offer rather than any particular merit in the hardware.
It is also worth noting that while TensorFlow and PyTorch work on DeepLens, it does seem to push you towards Apache MXNet, which is where Intel has invested most optimisation effort. TensorFlow was invented by Google, and Google's cloud offers TPUs – Tensor Processing Units – which is custom hardware optimised for TensorFlow. AWS has its own forthcoming Inferentia project, custom hardware for processing all the common ML frameworks, but currently it seems Google Cloud Platform has an advantage for TensorFlow.
In summary, DeepLens is fine for doing some prototyping even if the hardware is not the best value. Getting started could be smoother, though – the example projects are looking tired, and AWS could do better with its tutorials if it really wants to democratise AI. ®