MOT, TF model customization and distributed training

Python project, TensorFlow.

First, this article will describe how to convert a simple object detector to Multi-Object Tracking (MOT) capable of keeping identities to follow subjects along a sequence. Second, it will show how to customize and retrain a model from TensorFlow Object Detection API. Contrary to the previous article, we will parse the VOC2012 dataset with modern methods instead of implementing our own parser from scratch. We will also distribute the training on multiple GPUs.

Continue reading “MOT, TF model customization and distributed training”

SSD300 implementation

Python project, TensorFlow.

This article describes how to implement a Deep Learning algorithm for object detection, following the Single Shot Detector architecture. It explains the implementation of the VGG16 backbone network, the SSD cone, the default box principle and the convolutions used to predict the box classes and to regress the offsets for their location. Finally, how to convert the .xml annotations to data used by such a network for training.

Continue reading “SSD300 implementation”

Homemade Drawing/Engraving Machine

CAM project (computer-aided manufacturing)

This article describes, step by step, how to build a drawing machine in Solidworks. It also shows how to use stepper motors and microcontrollers to control a pen capable of drawing any image. Two versions were created, one using profiles, the other being fully 3D printable. This machine will be transformed into an engraving machine in the future.

Continue reading “Homemade Drawing/Engraving Machine”

Neural Network from scratch: Part 4; control a drone with hand signals

Python project.

This article shows how to build a dataset for a specific task and train a neural network through the homemade Deep Learning framework implemented in the previous articles. This neural network will allow controlling a drone with hand signals.

We will create a dataset of hand signals, train several neural networks on it and convert their outputs to commands. The full pipeline will be connected to an Anafi drone to control it through an USB camera.

Continue reading “Neural Network from scratch: Part 4; control a drone with hand signals”

Neural Network from scratch: Part 3; Deep Learning Framework Implementation

Python project.

This article describes, step by step, how to implement a Deep Learning Framework from scratch using only the numpy library. It will show how to implement Convolution, Flatten, Max and Mean Pooling layers. It will also explain how to implement features such as: saving and loading a model to deploy it somewhere, getting its number of parameters, drawing learning curves, printing its description.

Continue reading “Neural Network from scratch: Part 3; Deep Learning Framework Implementation”

Neural Network from scratch: Part 2; FCN implementation

Python project.

This article describes, step by step, how to implement a fully-connected neural network from scratch using only the numpy library. First, it shows how to create a set of non-linearly separable data, and then, how to implement a neural network. Finally, it will explain how to train such a network.

Continue reading “Neural Network from scratch: Part 2; FCN implementation”

Data Aug. and Generative auto-encoder

Python project, Tensorflow.

This article shows how to get familiar with Tensorflow and how to use its great tool TensorBoard.

We will train a CNN on the MNIST dataset with few samples and show how to artificially increase our dataset (rotation, zoom, contrast, etc) to improve its accuracy. Then, we will explain how to implement a generative autoencoder to “dream up” new digits to improve our accuracy on real digits.

Continue reading “Data Aug. and Generative auto-encoder”