Denoising Images using Neural Networks

I’ve spent the last couple of years delving into a Masters Degree in Artificial Intelligence in which we learned about a wide range of fascinating AI related topics.

My final Thesis focused on denoising in computer vision. I aim to add a tutorial overview of this and other AI topics at some stage. But in the meantime, here’s my arXiv paper on the topic.

Here’s the blurb: A flexible discriminative image denoiser is introduced in which multi-task learning methods are applied to a densoising FCN based on U-Net. The activations of the U-Net model are modified by affine transforms that are a learned function of conditioning inputs. The learning procedure for multiple noise types and levels involves applying a distribution of noise parameters during training to the conditioning inputs, with the same noise parameters applied to a noise generating layer at the input (similar to the approach taken in a denoising autoencoder). It is shown that this flexible denoising model achieves state of the art performance on images corrupted with Gaussian and Poisson noise. It has also been shown that this conditional training method can generalise a fixed noise level U-Net denoiser to a variety of noise levels.

You can find it here:

Arduino Guitar Tuner

A while ago I wrote an article on Reliable Frequency Detection Using DSP Techniques.

I mentioned at the time that this is an ideal basis for designing your own Arduino based guitar tuner. In real life, musical intruments can have strong harmonic contents, and you want to detect the fundamental frequency. Time based techniques that measure the time between periods don’t do that very well. The advantage of using an autocorrelation based frequency detection method is robustenss against noise and the overall harmonic content  of the signal.

So, having got a few questions about how you’d make a guitar tuner. I’ve published a tutorial on that here:


Build you own Smart Electricity Monitor

Build you own Smart Electricity Monitor using the Arduino Yun or the Particle Photon.

A nice feature of the project is that the monitoring is flexible and it’s completely wireless (except for the Current Transformer of course), allowing continuous monitoring from a PC or phone and permanent storage on the Cloud.

Measured accuracy was 6% (typical), which is excellent for such a simple circuit. Even better accuracy was observed after calibration.

STEM Education in the Community and Tech Cards

I’ve been involved in voluntary STEM education in the community through Coderdojo on and off for about 4 years, (more off than on recently though), and projects on Instructables (with over 750,000 views).

Over that time, I’ve seen how kids engage and disengage, how they learn, and how they get  frustrated. I’d like to share some of those thoughts here.

Continue reading “STEM Education in the Community and Tech Cards”

Alexa Skills, AWS Lambda and REST: How to Voice Enable your IoT device with Echo Dot

I got an Echo Dot for Christmas (lucky me), and having made a Smart Home Thermostat a while ago (you can read about that here), I thought it would be fun and useful to voice enable my Thermostat; but only after I tired of being chastised by Alexa for saying:  “Alexa, my name is Inigo Montoya . You killed my father. Prepare to die.”, too many times.

Many internet devices, including the Particle Photon used in my Smart Thermostat, use REST as a central tenet of the cloud infastructure. So for example, if you want to query the temperature downstairs:

returns a JSON format string with the required info.

It’s not too difficult to write a custom Lambda Function to act on the voice commands from the Echo Dot by issuing REST commands. I used Node.js for implemention but Java and Python are also supported.

I’ve written a tutorial (below), to help you to voice enable a REST protocol device.

How to Voice Enable your IoT device with Echo Dot




Arduino Frequency Detection: How do you detect frequencies reliably in a noisy signal?

Detecting the frequencies of signals reliably is something that occurs fairly often in projects from guitar tuners to heart rate monitors, but reliable techniques to achieve this are often beyond the casual hobbiest because they involve digital signal processing.

I’m not saying it’s difficult. It’s not difficult. It’s just that you’d need to have studied DSP to know about frequency estimation techniques and the various tradeoffs to select the right one for your application, and many hobbyists haven’t studied DSP.

Here’s a project on using Autocorrelation to detect  the frequecy of a signal. It works in noisy environments and is suitable for many hobby projects.

Reliable Frequency Detection Using DSP Techniques

Make a Smart Home IoT Thermostat

Here’s a Smart Home Thermostat  project based on a wifi enabled Arduino device called Particle Photon. The Photon is a great IoT device; a powerful Wifi enabled MCU that can be programmed in the Wiring language, as used by Arduino, combined with a Cloud Service to manage the programming and cloud connectivity.

What’s really interesting about this project is how it exposes the REST protocol which is central to a huge amount of IoT and Web infrastructure. Basically REST treats all resources as a URL e.g. https://myServer/mydevice/dev1/LEDs/TurnOn

I’ve recently added Alexa based Voice Control to this project (more on that soon).

Smart Home IoT Thermostat