In the last couple of years, machine learning has opened up new horizons in a wide range of industries, with advanced use cases emerging: facial recognition Facebook’s facial recognition, Netflix’s recommended movies, PrimaAI’s image style transfer, Siri’s voice recognition, Google Allo’s natural language processing, and the list goes on.
Alongside these use cases are tons of fantastic open-source machine learning projects hosted on GitHub. Below are a list of the most popular projects. I hope you learn something new and always stay inspired.
TensorFlow is an open-source machine learning library for research and production. TensorFlow offers APIs for beginners and experts to develop for desktop, mobile, web, and cloud.
Scikit-learn was originally written by David Cournapeau at a Summer Google of Code event. Its name more or less references a SciPy Toolkit. Scikit-learn has simple and efficient tools for data mining and data analysis, built on NumPy, SciPy, and Matplotlib. It’s a popular choice to use alongside TensorFlow because of its simplicity and handy functions.
Besides TensorFlow, Keras, and Scikit-learn, there is also the MXNet deep learning framework from Apache . It’s designed for both efficiency and flexibility—it allows you to mix symbolic and imperative programming to maximize efficiency and productivity. There is a model zoo you can visit for many models implemented in MXNet.
This list would be incomplete without the mention of PyTorch, another popular choice among machine learning enthusiasts. PyTorch is based on Torch and was distributed by Facebook as their machine learning framework. PyTorch is a Python package that provides two high-level features: Tensor computation (like NumPy) with strong GPU acceleration and deep neural networks built on a tape-based autograd system.
Magenta is a research project exploring the role of machine learning in the process of creating art and music. Primarily this involves developing new deep learning and reinforcement learning algorithms for generating songs, images, drawings, and other materials. But it’s also an exploration in building smart tools and interfaces that allow artists and musicians to extend (not replace!) their processes using these models.
This project is aimed to colorize line art. The AI can paint on a sketch according to a given color style, create its own color style to paint on a sketch, or transfer another illustration’s style.
There are some new features like image anchor and image transition, which are worth taking a look at.
This project has two components—CycleGAN and pix2pix—which contain PyTorch implementations for both unpaired and paired image-to-image translation. At first, it looks like another fairly ordinary style transfer solutions, but it can do some different things, like convert a horse to a zebra or from live photo to a Monet. And process is fast enough that it can be used on live video.
We have some style transfer tools for images and video, but what about voice? Deep voice conversation is a perfect example of this capability.
What if you could imitate a famous celebrity’s voice or sing like a famous singer? This project started with a goal to convert someone’s voice to a specific target voice. So called, it’s voice style transfer. We worked on this project that aims to convert someone’s voice to a famous English actress Kate Winslet’s voice. We implemented a deep neural networks to achieve that and more than 2 hours of audio book sentences read by Kate Winslet are used as a dataset.
If you are not convinced yet, head over to SoundCloud for some demos with Kate Winslet’s voice.
StarGAN is a PyTorch implementation of this paper: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation.
It goes beyond style transfer to convert source images by applying different hair styles, skin types, ages, gender, and different moods. Quite awesome.
This may not sound intriguing because now we can do this easily with the help of Core ML or ML Kit on iOS and Android. But a deeper look shows how awesome this is. Not only can it detect faces, but also emotions and genders.
Real-time face detection and emotion/gender classification using fer2013/IMDB datasets with a Keras CNN model and OpenCV.
Uber AI Labs built this deep probabilistic programming library to help streamline prediction and optimization gain for its transportation service. This library will be of interest for anyone who deals with probabilistic modeling.
Opportunities range from matching riders to drivers, to suggesting optimal routes, finding sensible pool combinations, and even creating the next generation of intelligent vehicles. To solve these challenges, we are combining state-of-the-art artificial intelligence (AI) techniques with the rich expertise of data scientists, engineers, and other users. We are exploring a tool-first approach that will enable us and others to make the next generation of AI solutions.
Part of the Facebook Research project, ParlAI is a framework for training and evaluating AI models on a variety of openly available dialog datasets. ParlAI will give researchers access to many popular datasets while having a unified framework for sharing and testing dialog models. You can read more about ParlAI here.
Facets is a tool for visualizing machine learning datasets.
The visualizations are implemented as Polymer web components, backed by Typescript code and can be easily embedded into Jupyter notebooks or webpages.
Key aspects of the visualization are outlier detection and distribution comparison across multiple datasets. Interesting values (such as a high proportion of missing data, or very different distributions of a feature across multiple datasets) are highlighted in red.
ELF is a platform for game research with AlphaGoZero/AlphaZero reimplementation. ELF provides an end-to-end solution for game research. It includes miniature real-time strategy game environments, concurrent simulation, distributed training over thousands of machines, intuitive APIs, web-based visualizations, and a reinforcement learning framework powered by PyTorch.
Detectron is Facebook AI Research’s software system that implements state-of-the-art object detection algorithms, including Mask R-CNN. It’s written in Python and powered by the Caffe2 deep learning framework.
Implemented with a TensorFlow CNN, this is maybe one of the best examples of image style transfer, and as its name suggests, it’s done pretty fast. The implementation is based on of a combination of Gatys’ A Neural Algorithm of Artistic Style, Johnson’s Perceptual Losses for Real-Time Style Transfer and Super-Resolution, and Ulyanov’s Instance Normalization.
This tool provides simple APIs for facial recognition. It can find facial features and can guess who is in a given photo.
Built using dlib’s state-of-the-art face recognition built with deep learning. The model has an accuracy of 99.38% on the Labeled Faces in the Wild benchmark.
This also provides a simple
face_recognitioncommand line tool that lets you do face recognition on a folder of images from the command line!
Another fantastic style transfer project. This repo contains code and a research paper: Deep Photo Style Transfer. It provides simple APIs to play with merging style and source images. Very impressive for image style transfer.
fastText is a library for efficient learning of word representations and sentence classification.
To get a better sense of this project, head over to their text classification tutorial that shows how to use the library in supervised learning. The goal of text classification is to assign documents (such as emails, posts, text messages, product reviews, etc…) to one or multiple categories.
AirSim is a simulator for drones, cars, and more built on Unreal Engine. It’s open-sourced, cross platform, and it supports hardware-in-loop with popular flight controllers such as PX4 for physically and visually realistic simulations. It’s an Unreal plugin that can simply be dropped in to any Unreal environment you want.
Machine learning can do more than we can imagine. With Deep Image Prior, it’s about fixing images with neural networks—but without learning.
This tool can restore corrupted images with scratches, bad spots, and/or unwanted text marks.
Open Pose represents the first real-time, multi-person system to jointly detect human body, hand, facial, and foot keypoints (in total 135 keypoints) on single images. It can detect feet, bodies, faces, and hands.
PirateAI trains autonomous agents (pirates) in a simulated environment (island). This repo runs a training pipeline that alternates between a game (find the treasure) and model training sessions (Keras + hyperopt).
This is fairly simple compared to many projects on this list, but it’s a good starting point for learning how neural network works. The implementation is in pure Swift without any libraries, and it’s easy to follow.
Deep Exemplar-Based Colorization is the first deep learning approach for exemplar-based local colorization. Given a reference color image, our convolutional neural network directly maps a grayscale image to an output colorized image. This is the implementation of the paper Deep Exemplar-based Colorization.
Thanks for exploring this list. I hope you’ve found something that inspires and interests you. Relatively speaking, machine learning is just at its inception, so there will certainly many more new interesting projects in the future. For now, here are some more resources for further exploration:
- GitHub Machine Learning Collection: Discover trending machine learning projects every day
- Awesome machine learning: There is an “Awesome list” for everything—this one centers on machine learning, and its curation is impressive.
- Fantastic machine learning: This list is mostly about Core ML related projects.