In this article, I will focus on 10 Open Source projects applying MXNet to various use cases:
- Deployment using Docker containers or Lambda functions,
- Face recognition & detection,
- Object detection & classification,
- Optical character recognition,
- Machine translation.
Do you feel your project should be on this list?
Get in touch :)
So far, we ran our MXNet code on Amazon EC2 instances, just like any other Python application. As you may know, there are alternative ways to run code on AWS and they can be obviously applied to MXNet.
#1 — Continuous Delivery of MXNet APIs using Code* and Amazon ECS
Using a CloudFormation template, this project will create an automated workflow that will provision, configure and orchestrate a pipeline triggering deployment of any changes to your MXNet model or application code. You will orchestrate all of the changes into a deployment pipeline to achieve continuous delivery using CodePipeline and CodeBuild. You can deploy new MXNet APIs and make those available to your users in just minutes, not days or weeks.
ecs-mxnet-example - An example project to deploy MXNet inference API with Docker on Amazon ECS. Uses CodePipeline and…
More information in the companion blog post:
Deploy Deep Learning Models on Amazon ECS | AWS AI Blog
In this post, I show you how to connect the workflow between the data scientists and DevOps. Using a number of AWS…
#2 — Deploying MXNet in a Lambda function
This is a reference application that predicts labels along with their probabilities for an image using a pre-trained model with Apache MXNet deployed on AWS Lambda. A Serverless Application Model template (SAM) and instructions are provided to automate the creation of an API endpoint.
mxnet-lambda - Reference Lambda function that predicts image labels for a image using an MXNet-built deep learning…
You can leverage this package and its precompiled libraries to build your prediction pipeline on AWS Lambda with MXNet. Additional models can be found in the Model Zoo
More information the companion blog post:
#3 — Face detection
This project performs face and landmark detection.
It’s based on the following research article:
K. Zhang and Z. Zhang and Z. Li and Y. Qiao Joint: Face Detection and Alignment Using Multitask Cascaded Convolutional Networks.
#4 — Face identification & facial features detection
This project provides features comparable to Amazon Rekognition. If you need the extra flexibility and are ready to dive deep, this could be a good starting point.
It’s based on the following research articles:
- Wu X, He R, Sun Z. A Lightened CNN for Deep Face Representation
- Rudd E, Günther M, Boult T. MOON: A Mixed Objective Optimization Network for the Recognition of Facial Attributes
- Jiang H, Learned-Miller E. Face detection with the faster R-CNN
#5 — Single Shot Detector
This project lets you detect and classify multiple objects in a single picture. It’s a reimplementation of an original Caffe project.
mxnet-ssd - MXNet port of SSD: Single Shot MultiBox Object Detector. Reimplementation of https://github.com/weiliu89…
It is based on the following research article:
Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg: Single Shot MultiBox DetectorSSD
#6 — Faster Single Shot Detector
This projects improves on the previous one by leveraging the multi-GPU capabilities of MXNet to speed up training and inference.
mx-rcnn - Faster R-CNN, an MXNet implementation with distributed implementation and data parallelization.
It’s based on the following research papers:
- Ross Girshick: Fast R-CNN
- Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun: Faster R-CNN: Towards real-time object detection with region proposal networks
#7 #8 — Object detection on smartphones
These twin projects use a pre-trained Inception model to perform object detection on iOS and Android.
ImageRecognizer-iOS - Neural Network image classifier (inception-bn network architecture), developed via MxNet
Optical Character Recognition
#9 — Reading licence plates
This project performs license plate recognition at 9 images/second on a Mac Book Pro with 81% accuracy. With a little effort, this can surely be adapted to other OCR use cases :)
#10 — Sockeye
The Sockeye project is a sequence-to-sequence framework for Neural Machine Translation based on MXNet. It implements the encoder-decoder architecture with attention.
sockeye - Sequence-to-sequence framework with a focus on Neural Machine Translation based on MXNet
This one makes me VERY curious. I need to find out more ;)
That’s it for today. Kudos to all project authors for their fascinating work. I hope they will inspire you to get started with Deep Learning and MXNet.
And once again, thanks a lot for reading!