Bounding Box Editor

Bounding Box Editor logo
Bounding Box Editor logo text

A multi-platform desktop image annotation application that allows you to easily create ground-truth annotations for classification and segmentation models. Simply choose an image folder, create rectangular and general polygonal bounding boxes and export them in the most common formats used in object detection. You can also import existing annotations and modify them within the program.

Bounding Box Editor Demo

Used Technology

Latest Release User Manual Code


Pytorch Cpp

(in collaboration with Omkar Prabhu)
C++ implementations of Machine- and Deep Learning tutorials for researchers. In detail, I implemented the intermediate and advanced tutorials and related tools and created the CMake build system generation and the Docker-containerized build option. The tutorials can be built and run locally on Windows, Linux and MacOs. The build script will automatically download the correct Libtorch version and all necessary datasets to make it easy to get started. It is also possible to build and run the tutorials directly through a prepared Jupyter Notebook on Google Colab or in a Docker container.

Used Technology

  • C++ and PyTorch C++ API (Libtorch)
  • CMake
  • Google Colab
  • Docker, docker-compose
  • github-actions

Open in Google Colab Code

Example from advanced tutorials: Image Captioning

This tutorial shows how to create a model that generates textual descriptions of images. As training and testing dataset the Flickr8K images are used. The model architecture is an encoder-decoder network incorporating visual attention as described in the Show, Attend and Tell paper. The attention masks are visualized as an overlay on the image so it is possible to see where the model “looks”. The tutorial executable accepts many arguments that allow the user to customize the model architecture and experiment with different values for hyper-parameters.

Code


Machine Learning

A non exhaustive list of my machine learning projects.

Used Technology

  • Python and JupyterLab
  • PyTorch, OpenCV, Pandas, Scikit-Learn
  • Google Colab, Docker

Code

Mltools Library

A Python library that provides functions as well as dataset classes for object detection and classification and models for semantic segmentation.

Code

Satellite Imagery Feature Detection

A Jupyter Notebook project showing how to perform semantic segmentation in order to locate buildings in satellite images from the Kaggle Dstl Satellite Imagery Feature Detection Challenge.

Used Technology

  • U-Net (fully convolutional model architecture)
  • rasterio, geopandas, shapely
  • Adversarial Validation
  • Custom trainer, loss- and metrics-recorder classes

Code

Humpback Whale Fluke Detection

The aim of this project was to detect humpback whale flukes in images from Kaggle Humpback Whale Identification Challenge. The ground-truth bounding boxes where created using Bounding Box Editor.

Used Technology

  • Faster RCNN model
  • Custom dataset class to parse XML annotation files
  • Custom transform class to transform images and bounding box annotations

Code

Humpback Whale Identification

A notebook showing how to train a classifier to identify specific humpback whales in images according to the Kaggle Humpback Whale Identification Challenge.

Used Technology

  • Resnet model
  • FastAI deeplearning library
  • Oversampling to counter low number of samples for most classes

Code


Utilities

OpenGL Cpp Starter

An easy to use starter code for OpenGL C++ projects using modern CMake. Automatically fetches, builds and links commonly used libraries like glfw, glad, glm, stb_image and (optionally) assimp.

Used Technologies:

Code


Courses

Coursera Machine Learning

Python-implementations for programming exercises in Andrew Ng’s excellent Machine Learning course (originally taught using Octave/Matlab).

Used Technologies:

  • Python - numpy, scikit-learn, matplotlib, pandas

Code

Hack Assembler

C++-implementation of an assembler for the Hack assembly-language as defined in the nand2tetris course.

Used Technologies:

Code

Hack VM-Translator

C++-implementation of a translator for the Hack-platform’s virtual machine language as defined in the nand2tetris course.

Used Technologies:

Code

Jack Compiler

C++-implementation of a compiler for the Jack programming language as defined in the nand2tetris course.

Used Technologies:

Code