OpenMV
Štíty
Čočka
Robotika
Rezervovat
Video
Stáhnout
Docs
Forum
OpenMV.io
GithubV dubnu loňského roku jsme uvedli na trh náš nový produkt OpenMV4 H7 Plus. Dnes bych vám rád představil novou funkci OpenMV4 H7 Plus – využití online platformy EdgeImpulse pro vlastní trénování neuronových sítí za účelem klasifikace a rozpoznávání.
V tomto tutoriálu použijete strojové učení k vytvoření rozpoznávacího systému, který pomocí inteligentní kamery OpenMV4 H7 Plus detekuje, zda osoba na snímku má nasazenou roušku, čímž realizuje klasifikaci obrazu.

EdgeImpulse je webová stránka poskytující online služby pro trénování neuronových sítí pro vestavěná zařízení. Je naším partnerem pro OpenMV a zároveň oficiálním partnerem společnosti STMicroelectronics. V současné době je EdgeImpulse pro naše uživatele OpenMV zdarma, což jim umožňuje bezplatně využívat online trénování neuronových sítí přizpůsobených pro OpenMV.
Přidání neuronových sítí do vestavěného zařízení OpenMV umožňuje rozlišovat pytláky a slony, provádět kontrolu kvality na výrobních linkách a umožnit dálkově ovládaným modelům aut samostatnou jízdu.
V tomto tutoriálu se naučíte, jak shromažďovat obrázky pro vytvoření kvalitního datového souboru, jak aplikovat přenos učení při trénování neuronové sítě a jak systém nasadit do zařízení OpenMV.
Kromě toho jsme také poskytli video návod, který můžete zhlédnout na oficiálních stránkách vyhledáním "OpenMV4 Plus trénování neuronové sítě pro rozpoznávání roušek".
Celý obsah projektu včetně všech kódů a modelů si můžete prohlédnout na následující adrese: https://book.openmv.cc/project/mask.html
Použití EdgeImpulse pro online trénování neuronových sítí vhodných pro OpenMV se skládá ze čtyř hlavních kroků: sběr datové sady, nahrání, trénování a nasazení.
01、Sbírání datových sad
V tomto tutoriálu vytvoříme model, který dokáže rozlišit, zda osoba na obrázku má nasazenou roušku. Samozřejmě můžete zvolit i klasifikaci jiných předmětů. Aby strojové učení fungovalo, je třeba shromáždit velké množství ukázkových obrázků tváří s rouškou i bez ní. Během tréninku tyto příklady slouží k procvičování rozlišovacích schopností modelu.
Pro sběr naší datové sady musíme využít OpenMV IDE. Postup pořizování snímků je následující:
Vytvořte dvě kategorie:
Otevřete v nabídce OpenMV IDE "Nástroje", vyberte "Editor datových sad", klikněte na "Nová datová sada", poté vytvořte novou složku a otevřete ji. Uvnitř datové sady vytvořte dvě další složky pojmenované "mask" (pro ukládání fotografií osob s rouškou) a "face" (pro ukládání fotografií osob bez roušky).


Snímání obrazu pomocí OpenMV
Nejprve připojíme OpenMV, klikneme na "Připojit" v IDE, poté na "Spustit". V Framebufferu můžeme vidět živý obraz z OpenMV. Kliknutím na tlačítko fotografie v levém menu OpenMV automaticky uloží tento snímek, což je jeden záznam v datové sadě.
Nejprve musíme uložit obličej osoby s nasazenou rouškou. Kliknutím na tlačítko fotografie se na spodní straně IDE pořídí snímek, který se automaticky pojmenuje jako 00000, následující pak jako 00001 a tak dále.
Pomocí OpenMV pořídte 200 fotografií obličejů s rouškou (100 mužů a 100 žen) a 200 fotografií obličejů bez roušky (100 mužů a 100 žen).


Poznámka: Ujistěte se, že pořizujete fotografie z různých úhlů, abyste zajistili rozmanitost pro naše tréninkové učení.
Pokud během sběru zjistíte, že některý obrázek není dostatečně kvalitní, můžete na něj kliknout pravým tlačítkem myši a vybrat odstranit.
02. Nahrát
Po pořízení snímků pomocí OpenMV je třeba zaregistrovat účet a přihlásit se na oficiální stránku EdgeImpulse (https://edgeimpulse.com/), kde můžete začít nahrávat obrázky. Postup nahrávání obrázků:
Vytvořte nový projekt na EdgeImpulse, klikněte na "keys", vyberte "API Key" a zkopírujte "API Key". Pomocí API Key propojte OpenMV IDE s Edge Impulse.

V horním menu OpenMV IDE vyberte "Nástroje" – "Editor dat" – "Export" – "Nahrát" – "Nahrát pomocí klíče API", zkopírujte "Klíč API" a nahrajte.
Při nahrávání budou data automaticky rozdělena na tréninkovou a testovací sadu, výchozí poměr "80 % a 20 %" je vhodný. Celkem jsme shromáždili více než 400 obrázků obličejů, přičemž 80 % z Training Date znamená, že 80 % vašich dat se použije pro trénink a zbývajících 20 % pro testovací sadu.


03、Tréninkový datový soubor
Po přípravě datové sady můžete trénovat datovou sadu v rozhraní webových stránek EdgeImpulse.
Konfigurační modul pro zpracování:
Nejprve vyberte "Impulse Design" a nakonfigurujte zpracovací modul:
* Nastavit výchozí rozměry obrázku na "96 x 96";
Vyberte modul "Obrázky (Images)", což znamená, že provádíme trénink klasifikace obrázků (v EdgeImpulse můžete také klasifikovat zvuk, video atd.).
Vyberte "Transfer Learning (Images)", nastavte model učení.
Vyberte "UložitSave impulse", zobrazení "Successfully" znamená, že konfigurace byla úspěšná.

Předzpracování obrazu:
Klikněte na "Obrázek" v levém menu, nastavte formát barev na "RGB" a poté klikněte na "Uložit".

Dále vyberte "Generovat vlastnosti" pro spuštění procesu. Provede se předzpracování více než 400 snímků a na pravé straně se zobrazí 3D vizualizace celé datové sady.

Konfigurace modelu pro přenosové učení
Klikněte na "Transfer learning" v levém menu, všechny parametry nastavení ponechte výchozí nebo je upravte podle potřeby:
1. Nastavte výchozí počet tréninkových cyklů Number of training cycles na 10
2. Nastavte rychlost učení Learning rate na 0,0005
3. Můžete zaškrtnout nebo nezaškrtnout "Rozšíření dat Data augmentation
4. Nastavte výchozí hodnotu minimální spolehlivosti Minimum confidence rating na 0,8.
Klikněte na "Zahájit trénink Start training", proces tréninku trvá přibližně 4 až 5 minut.
Po dokončení trénování modelu můžete zkontrolovat přesnost, matici záměn (confusion matrix) a očekávaný výkon zařízení.

Testovací model:
Po dokončení tréninku použijeme testovací data k ověření modelu.
Vyberte "Testování modelu Model testing", zaškrtněte políčko vedle "Název vzorku Sample name" a klikněte na "Klasifikovat vybrané Classify selected". Zobrazená přesnost dosahuje 97 %, což je pro model s tak malým množstvím dat skutečně pozoruhodné.

Zde je zobrazen červený obrázek, který je nejistý. Klikněte na tři tečky vpravo od tohoto obrázku, vyberte "Zobrazit klasifikaci" a dostanete se do rozhraní "Reálná klasifikace", které obsahuje více podrobností o souboru. Toto rozhraní vám pomůže určit důvod nesprávné klasifikace obrázku.

Pokud data leží mimo všechny známé shluky (s rouškou/bez roušky), může se jednat o data, která se neshodují s žádnou dříve pozorovanou klasifikací – pravděpodobně kvůli tomu, že vlasy zakrývají většinu obličeje.
04. Spuštění modelu na OpenMV
Po dokončení kroků návrhu tréninku, trénování modelu a ověření modelu můžete tento model exportovat do svého OpenMV. Vyberte "OpenMV", zvolte "Build" pro generování, automaticky se vygenerují 3 soubory:
trained.tflite Trénovaný model neuronové sítě
labels.txt dva klasifikační štítky (face a mask)
* ei_image_classification.py je kód, který se má spustit na OpenMV

Připojte se k OpenMV IDE a uložte tyto 3 soubory do vestavěné paměti Flash v OpenMV. Otevřete soubor ei_image_classification.py v OpenMV IDE, kde uvidíte kód, který jsme právě vygenerovali v EdgeImpulse. Klikněte na spustit a výsledky běhu se zobrazí v sériovém terminálu.


Dobře, úspěšně jste přidali funkci pro vlastní trénování neuronových sítí do OpenMV.
Těšíme se na vaše výsledky!

AI stráž na platformě OpenMV: automatické upozornění na neuzavřené důležité prostory
Automaticky zjistí, zda jsou dveře na klíčových místech dlouhou dobu otevřené, a včas upozorní.

Upozornění při překročení hranice osobou – OpenMV vysvětluje pojem „bezpečnostní hranice“
Rozpoznání překročení hranice osobou nebo zařízením pomocí virtuální varovné čáry.

„AI městský dozor“ je tady: automatický systém pro rozpoznávání neoprávněného provozování podnikání na veřejných prostranstvích založený na platformě OpenMV
Automatické rozpoznávání činností provozovaných na veřejném prostoru, které podporují každodenní správu města.

Nesprávné umístění plynové lahve? Využijte OpenMV k automatickému spuštění varování před nebezpečím
Automatické rozpoznání nesprávného umístění plynových lahví a předčasné zjištění bezpečnostních rizik spojených s plynem.

Provádíte práci pod napětím bez izolačních rukavic? OpenMV okamžitě vydá výstrahu!
Automatické rozpoznání, zda pracovník používá izolační rukavice, za účelu podpory bezpečného provozu.

Využití inteligentní kamery OpenMV k reálnému rozpoznávání vad na povrchu hliníkových desek
Online rozpoznávání vad na povrchu hliníkových desek, jako jsou škrábance a vzniklé prohlubně, za účelem podpory řízení kvality.