This is a new series looking at practical applications of Machine Learning from a Linux perspective. We only feature free and open source software in this series (except where stated).
Let’s clear up one potential source of confusion at the outset. What’s the difference between Machine Learning and Deep Learning? The two terms mean different things.
In essence, Machine Learning is the practice of using algorithms to parse data, learn insights from that data, and then make a determination or prediction. The machine is ‘trained’ using huge amounts of data.
Deep Learning is a subset of Machine Learning that uses multi-layers artificial neural networks to deliver state-of-the-art accuracy in tasks such as object detection, speech recognition, language translation and others. Think of Machine Learning as cutting-edge, and Deep Learning as the cutting-edge of the cutting-edge.
Both Machine Learning and Deep Learning are changing the world. Deep Learning is trending.
We’ve written short reviews for each application. And there are many more reviews currently under preparation.
|CodeFormer - command-line software which offers blind face restoration. This aims at recovering high-quality faces from the low-quality counterparts suffering from unknown degradation. This is freeware.|
|DeOldify - A modern way to colorize black and white images using deep learning technology. The software provides pre-trained weights which allows you to colorize images and video without needing to train your own models|
|Easy Diffusion - web interface to Stable Diffusion designed to be as easy-to-use as possible.|
|FBCNN - Flexible Blind Convolutional Neural Network is software which seeks to remove artifacts from JPEGs while preserving the integrity of the images.|
|GFPGAN - perform real-world face restoration. This software can radically improve the quality of photos.|
|Imaginer - extremely easy-to-use GTK4 software which lets you generate pictures using AI.|
|InvokeAI - a Stable Diffusion toolkit. Generate highly detailed images based on text descriptions, or from images/drawings.|
|Lama Cleaner - Fully self-hostable inpainting tool powered by state-of-the-art AI models|
|Old Photo Restoration - use deep learning to restore old photos via deep latent space translation.|
|PhotoPrism - AI-powered photos app for the decentralized web. It uses modern technologies to tag and find pictures. The software can be run at home, on a private server, or in the cloud.|
|Real-ESRGAN - create practical algorithms for general image/video restoration.|
|Rembg - remove backgrounds from images. The tool relies on the U2Net model, a machine learning model that performs object cropping in a single shot.|
|Stable Diffusion web UI - web interface to Stable Diffusion, a deep learning text-to-image diffusion model capable of generating photo-realistic images given any text input.|
|Upscaler - GTK4 software that uses sophisticated AI models to enhance your images by guessing what the details could be. It's a frontend for Real-ESRGAN.|
|Upscayl - GUI software that uses sophisticated AI models to enhance your images by guessing what the details could be. Like Upscaler, it's a frontend for Real-ESRGAN.|
|Coqui STT - a deep-learning toolkit for training and deploying speech-to-text models.|
|Demucs - billed as “a state-of-the-art music source separation model, currently capable of separating drums, bass, and vocals from the rest of the accompaniment”.|
|Spleeter - Command-line source separation library with pre-trained models.|
|StemRoller - GUI software which lets you separate vocal and instrumental stems from any song with a single click.|
|Ultimate Vocal Remover - GUI that lets you isolate stems from music. It offers convenient access to a wide range of different models.|
|Whisper - an automatic speech recognition (ASR) system trained on 680,000 hours of multilingual and multitask supervised data collected from the web. Whisper is a natural language processing system that’s built on PyTorch.|
|Bavarder - GTK4/libadwaita based app that offers an easy way to experiment with ChatGPT.|
|ChatGPT (by lencx) - a desktop application wrapper for the ChatGPT website. The chatbot generates human-like text in a conversational style and can be used for a variety of natural language processing tasks.|
|chatGPT-shell-cli is a simple script to use OpenAI’s chatGPT and DALL-E from the terminal without needing to install either Python or Node.js.|
|Dalai - bills itself as “the simplest way to run LLaMA on your local machine”. Large Languages Models trained on massive amount of text can perform new tasks from textual instructions.|
|GPT4All - GUI and CLI locally-running AI chat application powered by the GPT4All-J Apache 2 Licensed chatbot.|
|astroML - a Python module which offers statistical data analysis in astronomy and astrophysics.|
|scikit-learn - a machine learning library built on top of SciPy that supports supervised and unsupervised learning. It also provides various tools for model fitting, data preprocessing, model selection, model evaluation, and many other utilities|
If you would have recommendations for other good free and open source machine learning software for Linux, please comment below.
Machine learning science apps please!
There are so many interesting projects here to try. The Stable Diffusion ones are particularly useful.
One thing I hate is that so many of these programs take up so much hard disk space. I’m not talking about the size of their models but rather the virtual environments with tons of Python libraries. Python is really a mess