Using Sensor Fusion and Machine Learning to Create an AI Nose | Digi-Key Electronics

  Переглядів 30,363

DigiKey

DigiKey

Рік тому

Machine learning can be used to combine different sensor data together to make decisions and classifications. This is a form of sensor fusion. Instead of mixing the readings together to get something like an absolute heading (from an inertial measurement unit), we can instead feed the raw data to a neural network. The network will learn the best ways to mix the data to help make predictions and classifications.
This tutorial will demonstrate the process of collecting gas data to train a machine learning model that can identify different odors. We then deploy the model to a Seeed Studio Wio Terminal so that odor classification can be performed in real time.
A written guide for building this AI artificial nose can be found here: www.digikey.com/en/maker/proj...
The first part of the project involves capturing raw data from a variety of gas sensors, including temperature, humidity, pressure, equivalent CO2, NO2, ethanol, CO, and two different VOC measurements. From there, we analyze the data using Python in Google Colab. That allows us to normalize all of the data so that it fits between the range 0 and 1. Note that you will need to record the minimums and ranges for each of the sensor channels, as you will need to perform normalization on raw data during inference.
Using this information, we can also drop sensor channels that do not appear to help us differentiate among odors. For example, the pressure channel offers little variation among the measurements, so we get rid of it.
Next, we import our preprocessed data into an Edge Impulse project, which guides us through the process of building a neural network that can identify odors. We use Edge Impulse to test our neural network accuracy and generate an Arduino library for us to perform real-time inference.
Finally, we deploy our model to the Wio Terminal, which provides us with inference results on the LCD.
Product Links:
Wio Terminal -
www.digikey.com/en/products/d...
Grove - Multichannel Gas Sensor v2 -
www.digikey.com/en/products/d...
Grove - SPG30 VOC and eCO2 Gas Sensor -
www.digikey.com/en/products/d...
Grove - BME680 Temperature, Humidity, and Pressure Sensor -
www.digikey.com/es/products/d...
Grove - I2C Hub -
www.digikey.com/en/products/d...
Related Videos:
Intro to TinyML Part 1: Training a Neural Network for Arduino in TensorFlow -
• Intro to TinyML Part 1...
Intro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino -
• Intro to TinyML Part ...
Related Project Links:
Intro to TinyML Part 1: Training a Model for Arduino in TensorFlow -
www.digikey.com/en/maker/proj...
Intro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino -
www.digikey.com/en/maker/proj...
Related Articles:
What is Edge AI? Machine Learning + IoT -
www.digikey.com/en/maker/proj...
Learn more:
Maker.io - www.digikey.com/en/maker
Digi-Key’s Blog - TheCircuit www.digikey.com/en/blog
Connect with Digi-Key on Facebook / digikey.electronics
And follow us on Twitter / digikey

КОМЕНТАРІ: 19
@HendraKusumahiot
@HendraKusumahiot Рік тому
Was working with wio terminal with sgp30 and sht40 to detect smoke and fire this afternoon to do the exact same thing, store the data in csv format and upload it to edge impulse. I didn't know that it need to be normalize to get a better result. Thanks shawn for another lesson you share
@WaldirBorbaJunior
@WaldirBorbaJunior Рік тому
Amazing, the best class of my life. 42 minutes, is much more interesting than 1-year os school. For more content like this one. thousands of likes.
@TheAstronomyDude
@TheAstronomyDude Рік тому
This guide was so cool! Thanks! I was intimidated to work with Edge Impulse but now I'll give it a try. A tip for the Wio Terminal: #include "TFT_eSPI.h" TFT_eSPI tft; TFT_eSprite spr = TFT_eSprite(&tft); and use spr. instead of tft. to avoid the LCD flickering when it updates
@ShawnHymel
@ShawnHymel Рік тому
Ah! Good to know. I was wondering how to fix that. Thank you!
@byronwatkins2565
@byronwatkins2565 Рік тому
Given N independent functions, f_n(x_1,...,x_N), (sensor measurements) of N variables (temp, humidity, x-concentration,...), it is always possible to derive an orthonormal basis for the variables since df_n = sum_m partial {f_n/x_m} dx_m. We merely need to measure that matrix of partials and to invert that matrix at each data point. Often closed form approximations to the inverted matrix entries is close enough. The details of this matrix WILL be sensitive to the particular sensors used... fit the function parameters to your data. It is wise to repeat this several times and to average the parameters over these samples.
@rickh6963
@rickh6963 Рік тому
Thanks Shawn, another great video!
@MeanGeneHacks
@MeanGeneHacks Рік тому
Very detailed video, thank you once again for another excellent and informational video!
@nifgo1581
@nifgo1581 Рік тому
Great project! Can I translate this to vietnamese and share it to our community ?
@MJRoBot_MarceloRovai
@MJRoBot_MarceloRovai Рік тому
Great tutorial! Thanks a lot! Shawn,Thanks a lot! @ShawnHymel, do you think that 2 models in cascade would help to improve spirit result? I mean, a first one classifying only tea, coffee and spirit and a second one having spirit as “input’ and with vodka, run and whisky as labels?
@matthewray6008
@matthewray6008 Рік тому
I was thinking something like this too. Identify that it is a spirit first and then distinguish the differences then. Also I wonder if you could even drop the Ethanol sensor at that point since they would all be highly correlated there.
@sebastianmonroy5296
@sebastianmonroy5296 Місяць тому
Tried this many times but always getting an anomaly score way too high and dont know what it could possibly happening. Any Ideas?
@nendhang
@nendhang Рік тому
COOL
@nendhang
@nendhang Рік тому
more data !!!
@jacky5948
@jacky5948 3 місяці тому
at 10:12 it is showing incorrect syntax for me
@moody935
@moody935 3 місяці тому
Would you mind sending me 3 Research Papers correlated with this project?
@KellyClowers
@KellyClowers Рік тому
But what about bad smells like good gone bad, gas leaks etc?
@KellyClowers
@KellyClowers Рік тому
Seriously, I can't smell and I need this
@Hasan...
@Hasan... Рік тому
A fart detector automatic air freshener system is now possible 👍🏻😁
@oldpain7625
@oldpain7625 Рік тому
Can it detect farts?
Їжа Закарпаття. Великий Гід.
1:00:29
Мiша Кацурiн
Переглядів 476 тис.
Conversation with Fred Marks (Salk Institute for Biological Studies, USA)
1:17:15
Machine Learning for Everybody - Full Course
3:53:53
freeCodeCamp.org
Переглядів 4,9 млн
How to read the CanBus in any car. (Can Bus) Part #1
17:03
South West EV UK
Переглядів 384 тис.
TensorFlow in 100 Seconds
2:39
Fireship
Переглядів 852 тис.
Data Collection with Custom Sensor
24:14
Edge Impulse
Переглядів 2,7 тис.
#smartphone #screenprotection #tech #shorts #magicjohn
1:01
MagicJohn
Переглядів 6 млн
Vortex Cannon vs Drone
20:44
Mark Rober
Переглядів 12 млн
План хакера 🤯 #shorts #фильмы
0:59
BruuHub
Переглядів 958 тис.