Тёмный

Edge AI Anomaly Detection Part 1: Data Collection | Digi-Key Electronics 

DigiKey
Подписаться 160 тыс.
Просмотров 22 тыс.
50% 1

In this tutorial series, Shawn builds an artificial intelligence on the edge (Edge AI) project from beginning to end by collecting data, performing feature extraction, training several machine learning models, and deploying to an edge device (single board computer, microcontroller). Such an anomaly detection system could be useful for predicting faults in equipment as part of an Industrial Internet of Things (IIoT) ecosystem.
In the first part, we create an Arduino sketch for an ESP32 to collect raw data from a 3-axis accelerometer and pipe that data to a custom Python server. The server saves each 200-point sample as a separate file.
Code and example dataset for this video series can be found here: github.com/Sha...
Anomaly detection is an important area of focus in engineering, as it can be used to save lives and save potentially millions of dollars in costly repairs of machines, industrial equipment, robots, and so on. It also sees wide use in fraud prevention and network traffic analysis. For this series, we want to focus on using anomaly detection to predict problems in machinery before they occur.
An important step in any machine learning project is data collection. We need to collect a lot of data to train models. You can find pre-made datasets (such as the NASA PCoE datasets: ti.arc.nasa.go..., but nothing beats collecting your own if you wish to make a model that best represents your system.
In the video, we specifically look at using the ESP32 as an Internet of Things (IoT) node to perform data collection for us. Data is sent to a custom server running on our computer. Note that this is all accomplished on a local network but could be expanded to run on the Internet. The server collects and sorts the files for use in training on the next episode.
Before starting, we recommend you watch the following videos:
What is Edge AI - • Intro to Edge AI: Mach...
Getting Started with Machine Learning Using TensorFlow and Keras - • Getting Started with T...
Project Link: www.digikey.co...
Product Links:
Adafruit Feather Huzzah32 - www.digikey.co...
Adafruit MSA301 Triple Axis Accelerometer - www.digikey.co...
Related Videos:
Edge AI Anomaly Detection Part 2: Feature Extraction and Model Training - • Edge AI Anomaly Detect...
• Shawn Hymel presents
Related Project Links:
Edge AI Anomaly Detection Part 1: Data Collection - www.digikey.co...
Related Articles:
What is Edge AI?
www.digikey.co...
Getting Started with Machine Learning Using TensorFlow and Keras
www.digikey.co...
TensorFlow Lite Tutorial Part 1: Wake Word Feature Extraction
www.digikey.co...
TensorFlow Lite Tutorial Part 2: Speech Recognition Model Training
www.digikey.co...
TensorFlow Lite Tutorial Part 3: Speech Recognition on Raspberry Pi
www.digikey.co...
Low-Cost Data Acquisition (DAQ) with Arduino and Binho for ML
www.digikey.co...
Intro to TinyML Part 1: Training a Model for Arduino in TensorFlow
www.digikey.co...
Intro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino
www.digikey.co...

Опубликовано:

 

5 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 16   
@daleguenther5826
@daleguenther5826 4 года назад
Thank you for a very informative video! I used an Apple Iphone4 several years ago with a vibration app. It would graph the X, Y, Z parameters, so I could actually see Vibration improvement the customer was feeling through the steering wheel in an automotive environment. Keep up the great work!
@CraftableDan
@CraftableDan 4 года назад
Great vid, just graduated as a CS major and this info is related to a project I'm working on. I can't wait to see more.
@codebits4461
@codebits4461 2 года назад
Wow a TinyML video that's actually... Not boring 💯💎✨🤣🤣
@DavidBarbarine
@DavidBarbarine 4 года назад
Great new little series... Thumbs-up!
@codebits4461
@codebits4461 2 года назад
Wow just wow👏👏👏. Sorry I'm too impressed 💎😁
@fpgamachine
@fpgamachine 3 года назад
Excellent info. Thanks
@ch94086
@ch94086 4 года назад
Thanks for the nice video series. Looking forward to the rest. Why not just post CSV directly instead of using a large json library and memory allocation, then json parser on the server? You could even post a binary array to make the client simple. Json seems overused these days in my opinion.
@ShawnHymel
@ShawnHymel 4 года назад
Glad you're liking it! Nothing wrong with CSV or some other type of delimiter (and as you pointed out, might be more efficient). I used JSON to demonstrate how you might go about it, as most commercial IoT servers seem to accept JSON-formatted requests (via REST or MQTT).
@ch94086
@ch94086 4 года назад
One can also use the no-library code to print json: snprintf(buf, sizeof(buf), "{x:%7.4f,y:%7.4f,z:%7.4f}", msa.x_g, msa.x_g, msa.x_g); if (i!=0) client.print(", "); client.print(buf); Or to output 3 arrays, store the x,y,z values in an array, then use a subroutine to emit each array. Note ArduinoJson uses 16 bytes of pre-allocated memory for each 4 bytes of content. For writing JSON, in many cases, using print functions can be fewer lines of code than using a library, and if something goes wrong or you need to do something different, you don't have to wade through 200 nearly comment free source code files that use complex C++ tricks. (Modern coding practice is to split up code into hundreds of files half a page long, avoid using comments, and use templates to objectify and modularize to replicate and slice the code up to lots of files. Contrast the 471 lines of C in jsmn (Jasmine) vs 7710 lines of C++ in ArduinoJson.)
@ShawnHymel
@ShawnHymel 4 года назад
@@ch94086 For a simple 3-element JSON like the one in the video, using a simple sprintf like the one you showed does save a lot of space, and agreed that ArduinoJson does seem fairly bloated.
@jhoanmartinezsilva2609
@jhoanmartinezsilva2609 4 года назад
Awesome channel
@AjayKumar-fd9mv
@AjayKumar-fd9mv 4 года назад
Great video
@OranCollins
@OranCollins 4 года назад
Cool!
@G1TechDotOrg
@G1TechDotOrg 4 года назад
hi! how variants recommend use PI with influxdb and grafana or use cheep VM on cloud.
@asdhashdquwhqeiqwhe
@asdhashdquwhqeiqwhe 4 года назад
does this works on any esp32 based board ?
@prathiknarayan1093
@prathiknarayan1093 3 года назад
Hello Shawn, on your Arduino sketch I see that you have a host name as 192.168.1.68, is that the ip address of you laptop running the python server? I am not a IT person, so just wanted to check if my understanding is correct. When I run the script, I am assuming that I have to replace this ip address with the ip address of my laptop that runs the python server, please advice.
Далее
Small Brain, Big Think: AI on the Edge
12:40
Просмотров 457 тыс.
The Hard Tradeoffs of Edge AI Hardware
14:11
Просмотров 89 тыс.
When you Accidentally Compromise every CPU on Earth
15:59
Introduction to Anomaly Detection for Engineers
14:57
The Raspberry Pi Pico WAS Overrated! But that changed!
10:18