This is an old revision of the document!


Laboratorul 10: Machine Learning

Testarea hardware-ului ESP32-CAM și conectivității

Până acum, am testat cu succes toate componentele hardware ale ESP32-CAM (MCU și cameră) și am verificat conectivitatea Wi-Fi. Următorul pas este să rulăm un cod simplu pentru a captura și afișa o singură imagine pe o pagină web de bază. Acest cod a fost dezvoltat pe baza excelentului tutorial al lui Rui Santos: ESP32-CAM Take Photo and Display on a Web Server.

Descarcă fișierul: ESP32_CAM_HTTP_Server_STA de pe GitHub. Modifică datele de autentificare Wi-Fi din cod și încarcă-l pe ESP32-CAM. Rulează codul și verifică rezultatul pe pagina web atasata. Înainte de a continua, analizează codul pentru a înțelege mai bine modul de funcționare al camerei.

Testarea hardware-ului ESP32-CAM și conectivității

Deși Edge Impulse Studio nu suportă oficial ESP32-CAM (suportă ESP-EYE), putem conecta ESP32-CAM utilizând firmware alternativ.

Mulțumiri speciale lui Louis Moreau de la Edge Impulse pentru adaptarea firmware-ului la pin-urile camerei ESP32-CAM.

Pași:

  1. Descarcă firmware-ul alternativ din repository-ul GitHub al proiectului.
  2. Deschide fișierul zip și execută programul de încărcare firmware pentru sistemul tău de operare.
  3. Asigura-te ca ai toate dependentele instalate
    • python -m pip install pyserial>=3.4
    • python -m pip install esptool>=3.3
    • npm install -g edge-impulse-cli –force
  4. Utilizează 'edge-impulse-daemon' pentru a conecta ESP32-CAM la Edge Impulse Studio.
  5. Pentru a rula Edge Impulse pe placa de dezvoltare, execută comanda 'edge-impulse-run-impulse'.
  6. Odată conectat, poți captura imagini suplimentare pentru dataset-ul tău sau utiliza funcția de clasificare live după antrenarea modelului.

Detectarea obiectelor cu FOMO

Acum că avem o cameră embedded funcțională, este timpul să trecem la detectarea obiectelor. În loc de clasificare simplă a imaginilor, vom antrena un model de detectare a obiectelor folosind FOMO (Faster Objects, More Objects). Această tehnică este optimizată pentru TinyML și funcționează excelent pe dispozitive cu resurse limitate, cum ar fi ESP32-CAM.

Obiectiv: Dorim să detectăm și să diferențiem trei obiecte:

  • Măr
  • Banana
  • Cartof

Pregătirea dataset-ului

Pentru detectarea obiectelor, avem nevoie de un dataset etichetat, care să conțină imagini cu mere, banane și cartofi. O sursă excelentă este Kaggle, unde poți găsi dataset-uri de înaltă calitate, cum ar fi:

Fruit and Vegetable Image Recognition Dataset

Acest dataset include o varietate de fructe și legume. Pentru acest proiect, concentrează-te doar pe categoriile pe care dorim să le detectăm.

Descarcă dataset-ul și asigură-te că include imagini cu cele trei obiecte (mere, banane, cartofi).

Încarcă aceste imagini în Edge Impulse Studio, în secțiunea Data Acquisition.

Pentru pregătirea dataset-ului pentru detectarea obiectelor, va trebui să etichetezi imaginile folosind bounding boxes. Edge Impulse Studio oferă un instrument integrat pentru etichetarea și definirea regiunilor de interes (ROIs) pentru fiecare obiect din imagini.

Design-ul impulsului pentru FOMO

Un impuls în Edge Impulse constă din trei pași principali:

  1. Preprocesare: Redimensionarea și normalizarea imaginilor.
  2. Extracția caracteristicilor: Extrage caracteristicile spațiale pentru detectarea obiectelor.
  3. Blocul de învățare: Utilizarea unui model FOMO pentru detectarea obiectelor.

De ce FOMO? FOMO (Faster Objects, More Objects) este un model de detectare a obiectelor optimizat pentru dispozitive edge. Acesta oferă:

  1. Performanță în timp real pe dispozitive cu putere de calcul redusă, necesitând memorie minimă (RAM și ROM) pentru inferență.
  2. O abordare unică, care detectează locațiile și numărul obiectelor fără a necesita modele mari.

Configurarea impulsului

  1. Preprocesarea imaginilor
    1. Redimensionează imaginile la 96×96 pixeli.

Convertește-le în Grayscale (opțional) pentru a economisi memorie.

  1. Blocul de învățare:

Utilizează modelul FOMO (MobileNetV2 0.35) disponibil în Edge Impulse Studio.

  1. Salvează parametrii și continuă cu antrenarea.
priot/laboratoare/10.1734364676.txt.gz · Last modified: 2024/12/16 17:57 by jan.vaduva
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0