In the last couple of years, machine learning has opened up new horizons in a wide range of industries, with advanced use cases emerging: Facebook’s facial recognition, Netflix’s recommended movies, PrismaAI’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
Originally developed by the Google Brain team for internal Google use, TensorFlow was released under the Apache 2.0 open source license on November 9, 2015.
The latest version of TensorFlow supports Keras, which is high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. There are also interfaces for Javascript and Swift.
scikit-learn
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.
MXNet
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.
PyTorch
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
The main repo is for use with Python, but for the Javascript version there is also magenta.js. Magenta is a perfect project to showcase advanced machine learning uses most of us never think of. To be amazed by Magenta, check out some demos with sound and drawing generators.
style2paints
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.
Image-to-image translation in PyTorch
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.
Deep voice conversion
We have some style transfer tools for images and video, but what about voice? Deep voice conversation is a perfect example of this capability.
If you are not convinced yet, head over to SoundCloud for some demos with Kate Winslet’s voice.
StarGAN in PyTorch
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.
Face detection
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.
Deep universal probabilistic programming
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.
ParlAI
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
Facets is a tool for visualizing machine learning datasets.
ELF with AlphaGoZero
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
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.
Fast Style Transfer
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.
Face recognition
This tool provides simple APIs for facial recognition. It can find facial features and can guess who is in a given photo.
Deep photo style transfer
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.
Fast Text
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
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.
Image restoration
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
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.
pirateAT
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).
EmojiIntelligence
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
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.
Where to go from here
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.
Discuss this post on Hacker News and Reddit
Comments 0 Responses