Chat with us, powered by LiveChat
back to blog

Are machines capable of smelling?

Last updated: 19.09.23
Are machines capable of smelling?

AI's Dive into Olfactory Detection

I remember around 2017, I was invited to speak at a meetup. Just before me, there was a presenter who showed us an AI solution that spots when someone else has started typing on your machine, based on typing style.

At that moment, I realized that the future of IT lay before me. I embarked on a journey to learn data science online, dedicating myself to completing hundreds of hours of online courses to master the subject. In 2019, I founded an AI consultancy.

One of my most intriguing projects originated from Israel.

My Israeli friends are on a groundbreaking mission. They're developing hardware that can detect the presence of Red Mites in chicken houses. Red Mites are more than just a nuisance; they cause over €360 million in damages every year in Europe alone.

How can we detect Red Mites?

Red Mites waste give off a distinct odor. To detect this odor, we use an "electric nose" concept.

But how can we measure smells?

MOXs and VOCs

Metal Oxide Sensors, also known as MOX or MOC, are advanced devices used to detect gases. These sensors have a metal oxide material that reacts with gases, changing the sensor's electrical resistance. This change is measurable.

Volatile Organic Compounds (VOCs) are a group of organic chemicals that vaporize at room temperature. They are the invisible essences that our noses and certain devices can detect. Red Mites waste produce significant VOC in the air.

MOX sensors react to VOCs in the air, changing their electrical resistance. This is how we can measure smells.

Here's a video explaining it more:

The AI is Coming

These MOX values are waves on a graph. Every kind of molecule vaporization has a different profile at certain temperature changes (the sensors have heating cycles).

AI algorithms can recognize certain patterns and are able to identify specific smells like coffee, tea, or red mite waste. I am developing a deep neural network to achieve this goal. Specifically, an autoencoder.

An autoencoder is a type of artificial neural network used to learn efficient codings or representations of input data. Structurally, it's designed to encode input data into a compressed form and then decode it back to its original state. It decodes compressed input with a specific error rate. If the error rate is high, probably we have an anomaly.

The red mite waste smell is a deviation from normal air. It is an anomaly.

The idea here is that the sensors on the field trained in the first 72 hours than test the air every day. 

If the autoencoder returns higher error rates, it means that we have a deviation from normal air. We assume that red mites waste causes this deviation.

Unit Testing in AI Models

As a software testing professional, I devote a lot of energy to providing good quality code. Although we are in the research and development phase. In the past, I experienced that having a unit test set prevented me from making regression-like issues. So, I decided that from the beginning I have followed a test-driven development approach.

It has several advantages:

  • It constantly builds a test set.
  • I can use these tests for regression testing.
  • It ensures immediate feedback on code changes, facilitating early bug detection.
  • It encourages modular and maintainable code structures by promoting small, incremental changes.

Developing AI models, especially those that intersect with novel concepts such as 'machine smelling', is nothing short of thrilling. The field is constantly evolving, offering new challenges and demanding innovative solutions.

Every project is a learning experience, and every solution pushes the boundaries of what we previously thought was possible.

To my fellow tech enthusiasts and developers: the journey into AI is as exhilarating as it is rewarding. Whether you're trying to make machines "smell" or decode complex patterns, remember to test, iterate, and always stay curious.