Master of Data Science

Over 8 years ago I completed a Bachelor in Electronics Engineering, with a focus on embedded systems. Since then I have done primarily software engineering in embedded and web projects, sometimes combined in so-called "Internet of Things" (IoT) projects. Often there was a strong data- and signal-processing focus in these systems; from audio processing in microphone-arrays, to image processing for smart website builders. Recognizing the importance of data, I realized around 2 years ago I wanted to add a new skill-set to my engineering capabilities: Data Analysis and Machine Learning (ML).

And today I'm proud to say that I have successfully completed the Master in Data Science program at the Norwegian University of Life Sciences, as one the first batch to have this degree in Norway.

Master of Data Science thesis successfully defended. Left: me, Right: External sensor Lars Erik Solheim

Research

Throughout my degree, I've kept the vast majority of my notes in the open-source way - public on Github. Over time I have distilled these into two resources covering the main topics of my work.

Embedded Machine Learning: Machine Learning applied to Embedded System, with a focus on-edge ML in low-cost, low-power sensors.

Machine Hearing: Using Machine Learning on audio, with a focus on general sound (less music and speech).

Thesis

My masters thesis combined these two topics, and applied it to classification of everyday urban sounds for noise monitoring in smart cities. The report and all the code can be found on Github:

Environmental Sound Classification on Microcontrollers using Convolutional Neural Networks

Software

Since Embedded Machine Learning is an emerging niche, the availability of software tools are not as good as for machine learning in general. To help with that I developed emlearn, an open-source ML inference engine tailored for micro-controllers and very small embedded systems. emlearn allows to convert models built with existing Python machine learning frameworks such as scikit-learn and Keras, and execute them on device using portable C code. The focus is on simple and efficient models such as Random Forests, Decision Trees, Naive Bayes, linear models. In this way, emlearn is a compliment to deep learning inference libraries for embedded devices, such as TFLite and X-CUBE-AI.

 

Consulting

While the master degree was nominally a full time program, I kept doing engineering work for customers in the period. Projects have included:

Windportal. An interactive installation for advertising the Hywind off-shore windmill farms for Equinor. Made with ad-agency Dept and software developer Martin Stensgård.

dlock. A IoT doorlock system for retrofitting existing public infrastructure doors. Developed for municipality of Oslo as part of the Oslonøkkelen project, an app that allows inhabitants to access municipality services such as libraries and recycling stations outside of manned working-hours. Made in collaboration with IoT solutions provider Trygvis IO.

Since the start of this year, I have started to focus on machine learning projects. Especially things that incorporate my particular expertise: Embedded/Edge Machine Learning, Machine Learning for Audio, and Machine Learning on IoT sensor data. The first ML consulting project for Roest coffee is well underway (details to be announced). Going forward, most of my time is dedicated to products at my new startup, Soundsensing. However, there should also be some capacity for new consulting work.

 

Hello Oslo, Hello Squarehead Technology

Two years after moving to Berlin and joining Openismus, it is time for another big change. I learned a lot while at Openismus, and had a lot of fun both in and outside of working hours. Those of you who have been to the barbecue parties know what a great bunch of people they are. I'm very glad to see that they are now going strong again.

In December I will join Squarehead Technology in Oslo as a Software Developer. There I will work on their advanced microphone array systems for acoustic cameras and acoustical zoom. The role includes both real-time programming, digital signal processing of audio/video and embedded Linux, which is pretty much exactly what I was looking for.

Here is a very quick demo of the technology, used for noise analysis: Nor 848 video

The array microphone system records 200+ channels of audio simultaneously. By exploiting the time difference between channels, digital signal processing can extract and/or visualize audio content at different positions in the recording. This can be done both in real time, and in retrospect (unlike parabolic microphones).

Fun times ahead!

Hello Openismus, Hello Berlin

Openismus

Looks like I will be joining Openismus in Berlin from July, as one of three trainees! There is much to learn, but that's gonna be half the fun. The other half will be working with something I really like, free and open source software, and with great people in a very good environment.

Going from living in my childhood home with my parents, studying at the local college, to my own place in a big city in a foreign country training/working as a software developer is going to be a big change. But I feel like a change, and I don't think it could have gotten much better than this.

But before that; Hello bachelors thesis completion and Hello exam preparations!

Springtime

I know spring is here when:

  • Exams are so close I go to school on Saturdays
  • I can go mountain-biking without having to use long tights and jacket, and most of the snow is gone on the trails
  • Work at the bikeshop is so busy that I don't have time to greet my colleagues until 5 minutes past closing time
  • Allergies are starting to kick in

Spring is great, mostly cause it means summer is close; soon schools out and the weather apt for swimming.