dida Logo

Blog

About machine learning, its practical applications and some theoretical considerations

Computer Vision

Teaching Machines to see

Computer Vision

An Introduction to Metric Learning

By William Clemens (PhD) September 26th, 2022

This blog post gives a brief introduction to metric learning. It explains common distance measures and loss functions such as triplet loss.

Introductions

Recommendation systems - an overview

By Konrad Mundinger August 29th, 2022

In this blog post, I will give an overview of the underlying basic concepts, common use cases and limitations of recommendation systems. Among other topics, I will discuss content-based and collaborative filtering.

Computer Vision

The best (Python) tools for remote sensing

By Emilius Richter August 2nd, 2022

I present the best (Python) tools for remote sensing and processing of satellite data, based on our practical experience with them at dida. For some I provide application examples including code.

Computer Vision

Image Captioning with Attention

By Madina Kasymova May 31st, 2022

In this article, we examine how an image caption generation pipeline works. In particular, we look at the attention mechanism - a very promising approach to image captioning.

Computer Vision

How to implement a labeling tool for image classification in a Jupyter notebook

By Felix Brunner March 21st, 2022

I will walk you step-by-step through creating a simple annotation tool to easily assign class labels to a set of images. The tool can be written and used within a Jupyter Notebook, making use of ipywidgets.

Computer Vision

Data-centric Machine Learning: Making customized ML solutions production-ready

By David Berscheid October 6th, 2021

In this article, we will see why many ML Projects do not make it into production, introduce the concepts of model- and data-centric ML, and give examples how we at dida improve projects by applying data-centric techniques.

Computer Vision

Classification of Crop Fields through Satellite Image Time Series

By Tiago Sanona August 19th, 2021

Following the paper by Garnot et al., we utilize an altered version of the Transformer to classify crop fields from time series of satellite images. With this, we achieve better results than traditional methods (e. g. random forests) and with less resources than recurrent networks.

Computer Vision

Extracting information from technical drawings

By Frank Weilandt (PhD) July 16th, 2021

In this blogpost we show how both traditional and deep learning-based computer vision techniques can be applied for information extraction from exploded-view technical drawings.

Computer Vision

Visual Transformers: How an architecture designed for NLP enters the field of Computer Vision

By Konrad Mundinger July 5th, 2021

Visual Transformers apply the underlying ideas of the Transformer to the field of computer vision. In this blogpost, we will have a closer look at how this works and what it means to tokenize an image.

Computer Vision

CLIP: Mining the treasure trove of unlabeled image data

By Fabian Gringel June 21st, 2021

Contrastive Language-Image Pretraining (short: CLIP) makes use of image captions to train a zero-shot image classifier. In this blog article I will give a rough non-technical outline of how CLIP works, and I will also show how you can try CLIP out yourself!

Computer Vision

Migrating labels from Planet Scope to Sentinel-2

By Moritz Besser June 4th, 2021

In this blog article, I want to briefly describe the process of migrating labels from Planet Scope to Sentinel-2 images.

Projects

21 questions we ask our clients: Starting a successful ML project

By Emilius Richter May 21st, 2021

We discuss what questions should be considered and answered up front to launch a successful machine learning software project.

Tools

The best image labeling tools for Computer Vision

By The best image labeling tools for Computer Vision April 8th, 2021

Here we have a closer look at some of the best image labeling tools for Computer Vision tasks. We will install and configure the tools and illustrate their capabilities by applying them to label real images for an object detection task.

Natural Language Processing

dida's tech stack

By Fabian Gringel March 29th, 2021

This blog article provides an overview of our tech stack at dida. I will describe the tools that shape our software development process and our favourite Python libraries for machine and deep learning.

Computer Vision

Using satellite imagery for greenfield exploration

By Fabian Dechent March 19th, 2021

In this article, we will have a look at the possibilities that remote sensing via spaceborne imaging provides for greenfield exploration, i.e. locating areas where the soil bears high grade minerals of interest.

Tools

Deploying software with Docker containers

By Fabian Gringel February 26th, 2021

Here I will a give a brief walkthrough on using Docker containers for software deployment. I assume that we want to deploy a Python application with a web API.

Computer Vision

Understanding graph neural networks by way of convolutional nets

By Augusto Stoffel (PhD) February 5th, 2021

We will introduce the basic ideas behind graph neural networks (GNNs) and explain how the generalize the approach behind convolutional nets. Then we survey some applications of GNNs.

Computer Vision

Understanding and converting MGRS coordinates in Python

By Tiago Sanona January 18th, 2021

In this post I show how MGRS (and UTM) work and how to use the mgrs library from python to convert from MGRS coordinates to Latitude/Longitude in degrees and vice versa.

Computer Vision

Monitoring urban development from space

By Johan Dettmar October 12th, 2020

We show how we used satellite images and computer vision to monitor the urban development over time of rapidly growing cities. Horizontal growth was predicted by a U-Net, vertical growth by a Im2Height model.

Computer Vision

Detecting illegal mines from space

By Detecting illegal mines from space September 1st, 2020

In this blog post I describe an approach to detect illegal mines based on deep learning and remote sensing, that we have developed to support the conservation efforts of governments and NGOs. In particular, we use a U-Net for semantic segmentation, a branch of computer vision.

Introductions

What is Reinforcement Learning? (Part 2)

By What is Reinforcement Learning? (Part 2) August 3rd, 2020

In the previous post we introduced the basics of reinforcement learning. The discussed setting was limited in the sense that we were dealing with a single agent acting in a stationary environment. Now we will take it one step further and discuss Multi-Agent Reinforcement Learning (MARL).

Computer Vision

Pretraining for Remote Sensing

By William Clemens (PhD) May 11th, 2020

In this blog post I will describe a number of pretraining tasks one can use either separately or in combination to get good “starting” weights before you train a model on your actual labelled satellite/aerial images.

Introductions

What is Reinforcement Learning? (Part 1)

By What is Reinforcement Learning? (Part 1) April 27th, 2020

In this post we will give a quick introduction to the general framework of Reinforcement Learning (RL) and look at a few basic solution attempts in more detail. Finally, we will give a visual example of RL at work and discuss further approaches.

Introductions

Can we do without labeled data? (Un)supervised ML

By Lorenzo Melchior April 14th, 2020

In this blog post I examine how well I can train an unsupervised machine learning algorithm for an image classification task. Afterwards I analyze how the amount of training data affects the performance.

Computer Vision

How to recognise objects in videos with PyTorch

By William Clemens (PhD) March 16th, 2020

Here I will walk you through streaming a YouTube video into Python and then applying a pre-trained PyTorch model to it in order to detect objects.

Theory & Algorithms

What is Bayesian Linear Regression? (Part 2)

By What is Bayesian Linear Regression? (Part 2) March 4th, 2020

This is the second part of a blog post explaining the Bayesian approach towards linear regression, focussing on the math behind the method.

Theory & Algorithms

What is Bayesian Linear Regression? (Part 1)

By What is Bayesian Linear Regression? (Part 1) February 17th, 2020

This blog posts explains the Bayesian approach towards linear regression, motivating the method by an easy example and then unraveling the math behind it.

Theory & Algorithms

Beat Tracking with Deep Neural Networks

By Beat Tracking with Deep Neural Networks January 31st, 2020

In this post I will present a beat tracking algorithm, which is a computational method for extracting the beat positions from audio signals. The presented beat tracking system (Davies, 2019) is based on a temporal convolutional network (TCN). I have published the code on GitHub.

Theory & Algorithms

Machine Learning Approaches for Time Series

By Machine Learning Approaches for Time Series December 18th, 2019

This blog post provides an introduction into time series and serial sequences and shows how Recurrent Neural Networks (RNN) can deal with them.

Software Development

How to distribute a Tensorflow model as a JavaScript web app

By Johan Dettmar December 2nd, 2019

This article shows how to train a TensorFlow model in Python and then deploy it as a JavaScript app which can be distributed online. As an example case we use handwriting recognition.

Computer Vision

Detecting clouds in satellite images using convolutional neural networks

By William Clemens (PhD) November 11th, 2019

This blog post explains how to detect convective clouds in satellite data using a U-Net-type ConvNet.

Tools

How Google Cloud facilitates Machine Learning projects

By Johan Dettmar October 25th, 2019

While most PCs and laptops today can handle a significant workload, the performance is often not enough for Machine Learning purposes. In the following article, we walk you through some of the most common bottlenecks and show how cloud services can help to speed things up.

Computer Vision

Data Augmentation with GANs for Defect Detection

By Lorenzo Melchior September 24th, 2019

In Machine Learning, an insufficient amount of training data often hinders the performance of classification algorithms. In this blog post I demonstrate how you can create new images of a distribution of images using a Generative Adversarial Network (GAN).

Introductions

Pattern Recognition in Medical Imaging

By Pattern Recognition in Medical Imaging August 27th, 2019

This article explains how ML algorithms, in particular Convolutional Neural Networks, can interpret medical images and what difficulties they still face.

Introductions

What is AI?

By What is AI? July 15th, 2019

This blog article elucidates some of the terminology used in Artificial Intelligence, Machine Learning and Deep Learning and gives some high-level notion of how these technologies can be used in Computer Vision (CV).

Computer Vision

Semantic segmentation of satellite images

By Nelson Martins (PhD) May 24th, 2019

Setting up a ML model for the semantic segmentation of satellite images, we found that a UNet architecture with dice loss enforced with a pixel weighting strategy outperforms cross entropy based loss functions. Here we present the approach and the results.

Natural Language Processing

Making sense of text, speech and structured documents

Introductions

Recommendation systems - an overview

By Konrad Mundinger August 29th, 2022

In this blog post, I will give an overview of the underlying basic concepts, common use cases and limitations of recommendation systems. Among other topics, I will discuss content-based and collaborative filtering.

Computer Vision

Image Captioning with Attention

By Madina Kasymova May 31st, 2022

In this article, we examine how an image caption generation pipeline works. In particular, we look at the attention mechanism - a very promising approach to image captioning.

Natural Language Processing

OpenAI Codex: Why the revolution is still missing

By Fabian Gringel February 18th, 2022

In this blog post, I'll explain how Codex from OpenAI works, and in particular how it differs from GPT-3. I will outline why I think it should be used with caution and is not ready yet to revolutionize the software development process.

Introductions

Ethics in Natural Language Processing

By Marty Oelschläger (PhD) December 20th, 2021

I explain why language models tend to reproduce stereotypes and prejudices with potentially harmful consequences - and how to use them with care.

Natural Language Processing

GPT-3 and beyond - Part 2: Shortcomings and remedies

By Fabian Gringel October 24th, 2021

Here I explain in which situations GPT-3 fails and why it is far from having proper natural language understanding, which approaches can help to mitigate these issues and might lead to the next breakthrough and what alternatives to GPT-3 there are already.

Computer Vision

Data-centric Machine Learning: Making customized ML solutions production-ready

By David Berscheid October 6th, 2021

In this article, we will see why many ML Projects do not make it into production, introduce the concepts of model- and data-centric ML, and give examples how we at dida improve projects by applying data-centric techniques.

Natural Language Processing

GPT-3 and beyond - Part 1: The basic recipe

By Fabian Gringel September 27th, 2021

In this blog article I will explain how GPT-3 works, why some people think it’s dangerous, and how you can try out a GPT-3-like model yourself for free.

Computer Vision

CLIP: Mining the treasure trove of unlabeled image data

By Fabian Gringel June 21st, 2021

Contrastive Language-Image Pretraining (short: CLIP) makes use of image captions to train a zero-shot image classifier. In this blog article I will give a rough non-technical outline of how CLIP works, and I will also show how you can try CLIP out yourself!

Projects

21 questions we ask our clients: Starting a successful ML project

By Emilius Richter May 21st, 2021

We discuss what questions should be considered and answered up front to launch a successful machine learning software project.

Introductions

Enhancing Search with Question Answering

By Angela Maennel April 26th, 2021

Here I show how open-domain question answering systems work and how they can enhance search engines. We will have closer look at one specific type of system, DrQA.

Natural Language Processing

dida's tech stack

By Fabian Gringel March 29th, 2021

This blog article provides an overview of our tech stack at dida. I will describe the tools that shape our software development process and our favourite Python libraries for machine and deep learning.

Tools

Deploying software with Docker containers

By Fabian Gringel February 26th, 2021

Here I will a give a brief walkthrough on using Docker containers for software deployment. I assume that we want to deploy a Python application with a web API.

Computer Vision

Understanding graph neural networks by way of convolutional nets

By Augusto Stoffel (PhD) February 5th, 2021

We will introduce the basic ideas behind graph neural networks (GNNs) and explain how the generalize the approach behind convolutional nets. Then we survey some applications of GNNs.

Natural Language Processing

How to identify duplicate files with Python

By Ewelina Fiebig September 28th, 2020

In this blog post I will briefly demonstrate how the contents of different files can be compared using the Python module filecmp. After the duplicates have been identified, I will show how they can be deleted automatically.

Natural Language Processing

How to extract text from PDF files

By How to extract text from PDF files August 17th, 2020

In the following I want to present the open-source Python PDF tools PyPDF2, pdfminer and PyMuPDF that can be used to extract text from PDF files. I will compare their features and point out some drawbacks.

Natural Language Processing

BERT for question answering (Part 1)

By Mattes Mollenhauer (PhD) July 22nd, 2020

In this article, we are going to have a closer look at BERT - a state-of-the-art model for a range of various problems in natural language processing. We are going to see how BERT works and examine the problem of automated question answering.

Natural Language Processing

BERT for question answering (Part 2)

By Mattes Mollenhauer (PhD) July 2nd, 2020

Here we are going to have a closer look at BERT - a state-of-the-art model for various problems in NLP. We will use BERT to tackle the problem of automated question answering with biomedical research papers as a specific use case.

Tools

The best free labeling tools for text annotation in NLP

By Fabian Gringel March 30th, 2020

In this blog post I present the three best free text annotation tools for the manual labeling of documents in NLP projects. You will learn how to install, configure and use them and find out which one of them suits your purposes best. The tools I'm going to present are brat, doccano and INCEpTION.

Theory & Algorithms

What is Bayesian Linear Regression? (Part 2)

By What is Bayesian Linear Regression? (Part 2) March 4th, 2020

This is the second part of a blog post explaining the Bayesian approach towards linear regression, focussing on the math behind the method.

Natural Language Processing

Digital public administration: intuitive online access through AI

By Jona Welsch March 2nd, 2020

The following article describes how AI can help to establish digital governance services, using the example of business registrations and the AI model "BERT".

Theory & Algorithms

What is Bayesian Linear Regression? (Part 1)

By What is Bayesian Linear Regression? (Part 1) February 17th, 2020

This blog posts explains the Bayesian approach towards linear regression, motivating the method by an easy example and then unraveling the math behind it.

Theory & Algorithms

Beat Tracking with Deep Neural Networks

By Beat Tracking with Deep Neural Networks January 31st, 2020

In this post I will present a beat tracking algorithm, which is a computational method for extracting the beat positions from audio signals. The presented beat tracking system (Davies, 2019) is based on a temporal convolutional network (TCN). I have published the code on GitHub.

Tools

Comparison of OCR tools: how to choose the best tool for your project

By Fabian Gringel January 20th, 2020

This blog post presents the most common OCR tools, shows how to use them and assesses their strengths and weaknesses. In the end you will be able to choose and apply an OCR tool suiting the needs of your project.

Theory & Algorithms

Temporal convolutional networks for sequence modeling

By Temporal convolutional networks for sequence modeling January 6th, 2020

This blog post presents a simple but powerful convolutional approach for sequences which is called Temporal Convolutional Network (TCN), originally proposed in Bai 2018, and tells you where to find implementations for Pytorch, Keras and Tensorflow.

Theory & Algorithms

Machine Learning Approaches for Time Series

By Machine Learning Approaches for Time Series December 18th, 2019

This blog post provides an introduction into time series and serial sequences and shows how Recurrent Neural Networks (RNN) can deal with them.

Software Development

How to distribute a Tensorflow model as a JavaScript web app

By Johan Dettmar December 2nd, 2019

This article shows how to train a TensorFlow model in Python and then deploy it as a JavaScript app which can be distributed online. As an example case we use handwriting recognition.

Tools

How Google Cloud facilitates Machine Learning projects

By Johan Dettmar October 25th, 2019

While most PCs and laptops today can handle a significant workload, the performance is often not enough for Machine Learning purposes. In the following article, we walk you through some of the most common bottlenecks and show how cloud services can help to speed things up.

Introductions

What is Natural Language Processing (NLP)?

By Fabian Gringel August 12th, 2019

In this blog post I will explain what NLP is about and show how Machine Learning comes into play. In the end you will have learned which problems NLP deals with, what kinds of methods it uses and how Machine Learning models can be adapted to the specific nature of natural language data.

Introductions

What is AI?

By What is AI? July 15th, 2019

This blog article elucidates some of the terminology used in Artificial Intelligence, Machine Learning and Deep Learning and gives some high-level notion of how these technologies can be used in Computer Vision (CV).

Natural Language Processing

Extracting information from documents

By Frank Weilandt (PhD) April 23rd, 2019

This blog post presents heuristics how to read the date of a letter automatically using PythonTesseract and presents the corresponding code.

Introductions

Learn about machine learning from scratch

Introductions

Collaborative Filtering in Recommender Systems

By Konrad Mundinger November 21st, 2022

In this blog post, I give an overview and provide some Python code for several collaborative filtering techniques.

Computer Vision

An Introduction to Metric Learning

By William Clemens (PhD) September 26th, 2022

This blog post gives a brief introduction to metric learning. It explains common distance measures and loss functions such as triplet loss.

Introductions

Recommendation systems - an overview

By Konrad Mundinger August 29th, 2022

In this blog post, I will give an overview of the underlying basic concepts, common use cases and limitations of recommendation systems. Among other topics, I will discuss content-based and collaborative filtering.

Introductions

Project proposals - the first step to a successful ML project

By Emilius Richter July 18th, 2022

For a software provider, the project proposal is the first step toward meeting the needs of the customer. In this article, I will describe the most important modules in machine learning project proposals.

Natural Language Processing

OpenAI Codex: Why the revolution is still missing

By Fabian Gringel February 18th, 2022

In this blog post, I'll explain how Codex from OpenAI works, and in particular how it differs from GPT-3. I will outline why I think it should be used with caution and is not ready yet to revolutionize the software development process.

Introductions

Ethics in Natural Language Processing

By Marty Oelschläger (PhD) December 20th, 2021

I explain why language models tend to reproduce stereotypes and prejudices with potentially harmful consequences - and how to use them with care.

Natural Language Processing

GPT-3 and beyond - Part 2: Shortcomings and remedies

By Fabian Gringel October 24th, 2021

Here I explain in which situations GPT-3 fails and why it is far from having proper natural language understanding, which approaches can help to mitigate these issues and might lead to the next breakthrough and what alternatives to GPT-3 there are already.

Natural Language Processing

GPT-3 and beyond - Part 1: The basic recipe

By Fabian Gringel September 27th, 2021

In this blog article I will explain how GPT-3 works, why some people think it’s dangerous, and how you can try out a GPT-3-like model yourself for free.

Computer Vision

Visual Transformers: How an architecture designed for NLP enters the field of Computer Vision

By Konrad Mundinger July 5th, 2021

Visual Transformers apply the underlying ideas of the Transformer to the field of computer vision. In this blogpost, we will have a closer look at how this works and what it means to tokenize an image.

Projects

21 questions we ask our clients: Starting a successful ML project

By Emilius Richter May 21st, 2021

We discuss what questions should be considered and answered up front to launch a successful machine learning software project.

Introductions

Enhancing Search with Question Answering

By Angela Maennel April 26th, 2021

Here I show how open-domain question answering systems work and how they can enhance search engines. We will have closer look at one specific type of system, DrQA.

Computer Vision

Using satellite imagery for greenfield exploration

By Fabian Dechent March 19th, 2021

In this article, we will have a look at the possibilities that remote sensing via spaceborne imaging provides for greenfield exploration, i.e. locating areas where the soil bears high grade minerals of interest.

Introductions

What is Reinforcement Learning? (Part 2)

By What is Reinforcement Learning? (Part 2) August 3rd, 2020

In the previous post we introduced the basics of reinforcement learning. The discussed setting was limited in the sense that we were dealing with a single agent acting in a stationary environment. Now we will take it one step further and discuss Multi-Agent Reinforcement Learning (MARL).

Natural Language Processing

BERT for question answering (Part 1)

By Mattes Mollenhauer (PhD) July 22nd, 2020

In this article, we are going to have a closer look at BERT - a state-of-the-art model for a range of various problems in natural language processing. We are going to see how BERT works and examine the problem of automated question answering.

Natural Language Processing

BERT for question answering (Part 2)

By Mattes Mollenhauer (PhD) July 2nd, 2020

Here we are going to have a closer look at BERT - a state-of-the-art model for various problems in NLP. We will use BERT to tackle the problem of automated question answering with biomedical research papers as a specific use case.

Introductions

What is Reinforcement Learning? (Part 1)

By What is Reinforcement Learning? (Part 1) April 27th, 2020

In this post we will give a quick introduction to the general framework of Reinforcement Learning (RL) and look at a few basic solution attempts in more detail. Finally, we will give a visual example of RL at work and discuss further approaches.

Introductions

Can we do without labeled data? (Un)supervised ML

By Lorenzo Melchior April 14th, 2020

In this blog post I examine how well I can train an unsupervised machine learning algorithm for an image classification task. Afterwards I analyze how the amount of training data affects the performance.

Theory & Algorithms

What is Bayesian Linear Regression? (Part 2)

By What is Bayesian Linear Regression? (Part 2) March 4th, 2020

This is the second part of a blog post explaining the Bayesian approach towards linear regression, focussing on the math behind the method.

Theory & Algorithms

What is Bayesian Linear Regression? (Part 1)

By What is Bayesian Linear Regression? (Part 1) February 17th, 2020

This blog posts explains the Bayesian approach towards linear regression, motivating the method by an easy example and then unraveling the math behind it.

Introductions

Pattern Recognition in Medical Imaging

By Pattern Recognition in Medical Imaging August 27th, 2019

This article explains how ML algorithms, in particular Convolutional Neural Networks, can interpret medical images and what difficulties they still face.

Introductions

What is Natural Language Processing (NLP)?

By Fabian Gringel August 12th, 2019

In this blog post I will explain what NLP is about and show how Machine Learning comes into play. In the end you will have learned which problems NLP deals with, what kinds of methods it uses and how Machine Learning models can be adapted to the specific nature of natural language data.

Introductions

What is AI?

By What is AI? July 15th, 2019

This blog article elucidates some of the terminology used in Artificial Intelligence, Machine Learning and Deep Learning and gives some high-level notion of how these technologies can be used in Computer Vision (CV).

Software Development

Everything related to coding

Introductions

Project proposals - the first step to a successful ML project

By Emilius Richter July 18th, 2022

For a software provider, the project proposal is the first step toward meeting the needs of the customer. In this article, I will describe the most important modules in machine learning project proposals.

Computer Vision

Data-centric Machine Learning: Making customized ML solutions production-ready

By David Berscheid October 6th, 2021

In this article, we will see why many ML Projects do not make it into production, introduce the concepts of model- and data-centric ML, and give examples how we at dida improve projects by applying data-centric techniques.

Natural Language Processing

dida's tech stack

By Fabian Gringel March 29th, 2021

This blog article provides an overview of our tech stack at dida. I will describe the tools that shape our software development process and our favourite Python libraries for machine and deep learning.

Tools

Deploying software with Docker containers

By Fabian Gringel February 26th, 2021

Here I will a give a brief walkthrough on using Docker containers for software deployment. I assume that we want to deploy a Python application with a web API.

Software Development

How to distribute a Tensorflow model as a JavaScript web app

By Johan Dettmar December 2nd, 2019

This article shows how to train a TensorFlow model in Python and then deploy it as a JavaScript app which can be distributed online. As an example case we use handwriting recognition.

Tools

How Google Cloud facilitates Machine Learning projects

By Johan Dettmar October 25th, 2019

While most PCs and laptops today can handle a significant workload, the performance is often not enough for Machine Learning purposes. In the following article, we walk you through some of the most common bottlenecks and show how cloud services can help to speed things up.

Theory & Algorithms

For those not afraid of formulas

Introductions

Collaborative Filtering in Recommender Systems

By Konrad Mundinger November 21st, 2022

In this blog post, I give an overview and provide some Python code for several collaborative filtering techniques.

Computer Vision

An Introduction to Metric Learning

By William Clemens (PhD) September 26th, 2022

This blog post gives a brief introduction to metric learning. It explains common distance measures and loss functions such as triplet loss.

Introductions

Recommendation systems - an overview

By Konrad Mundinger August 29th, 2022

In this blog post, I will give an overview of the underlying basic concepts, common use cases and limitations of recommendation systems. Among other topics, I will discuss content-based and collaborative filtering.

Natural Language Processing

OpenAI Codex: Why the revolution is still missing

By Fabian Gringel February 18th, 2022

In this blog post, I'll explain how Codex from OpenAI works, and in particular how it differs from GPT-3. I will outline why I think it should be used with caution and is not ready yet to revolutionize the software development process.

Natural Language Processing

GPT-3 and beyond - Part 2: Shortcomings and remedies

By Fabian Gringel October 24th, 2021

Here I explain in which situations GPT-3 fails and why it is far from having proper natural language understanding, which approaches can help to mitigate these issues and might lead to the next breakthrough and what alternatives to GPT-3 there are already.

Computer Vision

Classification of Crop Fields through Satellite Image Time Series

By Tiago Sanona August 19th, 2021

Following the paper by Garnot et al., we utilize an altered version of the Transformer to classify crop fields from time series of satellite images. With this, we achieve better results than traditional methods (e. g. random forests) and with less resources than recurrent networks.

Computer Vision

Extracting information from technical drawings

By Frank Weilandt (PhD) July 16th, 2021

In this blogpost we show how both traditional and deep learning-based computer vision techniques can be applied for information extraction from exploded-view technical drawings.

Computer Vision

Visual Transformers: How an architecture designed for NLP enters the field of Computer Vision

By Konrad Mundinger July 5th, 2021

Visual Transformers apply the underlying ideas of the Transformer to the field of computer vision. In this blogpost, we will have a closer look at how this works and what it means to tokenize an image.

Computer Vision

CLIP: Mining the treasure trove of unlabeled image data

By Fabian Gringel June 21st, 2021

Contrastive Language-Image Pretraining (short: CLIP) makes use of image captions to train a zero-shot image classifier. In this blog article I will give a rough non-technical outline of how CLIP works, and I will also show how you can try CLIP out yourself!

Computer Vision

Understanding graph neural networks by way of convolutional nets

By Augusto Stoffel (PhD) February 5th, 2021

We will introduce the basic ideas behind graph neural networks (GNNs) and explain how the generalize the approach behind convolutional nets. Then we survey some applications of GNNs.

Introductions

What is Reinforcement Learning? (Part 2)

By What is Reinforcement Learning? (Part 2) August 3rd, 2020

In the previous post we introduced the basics of reinforcement learning. The discussed setting was limited in the sense that we were dealing with a single agent acting in a stationary environment. Now we will take it one step further and discuss Multi-Agent Reinforcement Learning (MARL).

Natural Language Processing

BERT for question answering (Part 1)

By Mattes Mollenhauer (PhD) July 22nd, 2020

In this article, we are going to have a closer look at BERT - a state-of-the-art model for a range of various problems in natural language processing. We are going to see how BERT works and examine the problem of automated question answering.

Natural Language Processing

BERT for question answering (Part 2)

By Mattes Mollenhauer (PhD) July 2nd, 2020

Here we are going to have a closer look at BERT - a state-of-the-art model for various problems in NLP. We will use BERT to tackle the problem of automated question answering with biomedical research papers as a specific use case.

Introductions

What is Reinforcement Learning? (Part 1)

By What is Reinforcement Learning? (Part 1) April 27th, 2020

In this post we will give a quick introduction to the general framework of Reinforcement Learning (RL) and look at a few basic solution attempts in more detail. Finally, we will give a visual example of RL at work and discuss further approaches.

Theory & Algorithms

What is Bayesian Linear Regression? (Part 2)

By What is Bayesian Linear Regression? (Part 2) March 4th, 2020

This is the second part of a blog post explaining the Bayesian approach towards linear regression, focussing on the math behind the method.

Theory & Algorithms

What is Bayesian Linear Regression? (Part 1)

By What is Bayesian Linear Regression? (Part 1) February 17th, 2020

This blog posts explains the Bayesian approach towards linear regression, motivating the method by an easy example and then unraveling the math behind it.

Theory & Algorithms

Beat Tracking with Deep Neural Networks

By Beat Tracking with Deep Neural Networks January 31st, 2020

In this post I will present a beat tracking algorithm, which is a computational method for extracting the beat positions from audio signals. The presented beat tracking system (Davies, 2019) is based on a temporal convolutional network (TCN). I have published the code on GitHub.

Theory & Algorithms

Temporal convolutional networks for sequence modeling

By Temporal convolutional networks for sequence modeling January 6th, 2020

This blog post presents a simple but powerful convolutional approach for sequences which is called Temporal Convolutional Network (TCN), originally proposed in Bai 2018, and tells you where to find implementations for Pytorch, Keras and Tensorflow.

Theory & Algorithms

Machine Learning Approaches for Time Series

By Machine Learning Approaches for Time Series December 18th, 2019

This blog post provides an introduction into time series and serial sequences and shows how Recurrent Neural Networks (RNN) can deal with them.

Tools

Useful tools for facilitating machine learning projects

Computer Vision

The best (Python) tools for remote sensing

By Emilius Richter August 2nd, 2022

I present the best (Python) tools for remote sensing and processing of satellite data, based on our practical experience with them at dida. For some I provide application examples including code.

Computer Vision

How to implement a labeling tool for image classification in a Jupyter notebook

By Felix Brunner March 21st, 2022

I will walk you step-by-step through creating a simple annotation tool to easily assign class labels to a set of images. The tool can be written and used within a Jupyter Notebook, making use of ipywidgets.

Tools

The best image labeling tools for Computer Vision

By The best image labeling tools for Computer Vision April 8th, 2021

Here we have a closer look at some of the best image labeling tools for Computer Vision tasks. We will install and configure the tools and illustrate their capabilities by applying them to label real images for an object detection task.

Natural Language Processing

dida's tech stack

By Fabian Gringel March 29th, 2021

This blog article provides an overview of our tech stack at dida. I will describe the tools that shape our software development process and our favourite Python libraries for machine and deep learning.

Tools

Deploying software with Docker containers

By Fabian Gringel February 26th, 2021

Here I will a give a brief walkthrough on using Docker containers for software deployment. I assume that we want to deploy a Python application with a web API.

Computer Vision

Understanding and converting MGRS coordinates in Python

By Tiago Sanona January 18th, 2021

In this post I show how MGRS (and UTM) work and how to use the mgrs library from python to convert from MGRS coordinates to Latitude/Longitude in degrees and vice versa.

Natural Language Processing

How to identify duplicate files with Python

By Ewelina Fiebig September 28th, 2020

In this blog post I will briefly demonstrate how the contents of different files can be compared using the Python module filecmp. After the duplicates have been identified, I will show how they can be deleted automatically.

Natural Language Processing

How to extract text from PDF files

By How to extract text from PDF files August 17th, 2020

In the following I want to present the open-source Python PDF tools PyPDF2, pdfminer and PyMuPDF that can be used to extract text from PDF files. I will compare their features and point out some drawbacks.

Tools

The best free labeling tools for text annotation in NLP

By Fabian Gringel March 30th, 2020

In this blog post I present the three best free text annotation tools for the manual labeling of documents in NLP projects. You will learn how to install, configure and use them and find out which one of them suits your purposes best. The tools I'm going to present are brat, doccano and INCEpTION.

Tools

Comparison of OCR tools: how to choose the best tool for your project

By Fabian Gringel January 20th, 2020

This blog post presents the most common OCR tools, shows how to use them and assesses their strengths and weaknesses. In the end you will be able to choose and apply an OCR tool suiting the needs of your project.

Tools

How Google Cloud facilitates Machine Learning projects

By Johan Dettmar October 25th, 2019

While most PCs and laptops today can handle a significant workload, the performance is often not enough for Machine Learning purposes. In the following article, we walk you through some of the most common bottlenecks and show how cloud services can help to speed things up.