13.6. Edge Impulse

Edge Impulse je komplexní platforma pro tvorbu modelů strojového učení, které běží na mikrokontrolérech: sběr a označování dat štítky, návrh a trénování modelu v prohlížeči a jeho optimalizace tak, aby se vešel do zařízení s pamětí měřenou v kilobajtech. Nasazuje přímo na OpenMV – několika kliknutími se z natrénovaného modelu stanou soubory připravené ke spuštění na kameře. Vlastní dokumentace Edge Impulse zachází do hloubky u každého kroku.

13.6.1. Získání dat

Model funguje nejlépe na takovém druhu obrazů, na kterých byl natrénován, takže datovou sadu pořizujte kamerou, která jej bude provozovat. editor datových sad v IDE je vytvořen přesně pro tento účel – vytvořte složky tříd, pořiďte označené obrazy z živého snímkového bufferu (frame buffer) a poté datovou sadu nahrajte přímo do projektu Edge Impulse z podnabídky Export (nejprve se tam přihlaste ke svému účtu). Od tohoto okamžiku pracujete v Edge Impulse Studio.

Viz také

Vlastní průvodce nastavením OpenMV Cam od Edge Impulse pro instalaci nástrojů a připojení kamery.

13.6.2. Trénování

Trénování probíhá zcela v prohlížeči: navrhněte impulse (vstupní, zpracovací a učící bloky), natrénujte jej a zkontrolujte přesnost na vyhrazených testovacích datech.

Pro kameru se hodí dva typy modelů. Klasifikátor obrazů vydává seznam skóre tříd, které čtete přímo z výstupu modelu – žádný post-procesor není potřeba. FOMO, rychlý detektor objektů navržený pro mikrokontroléry, vyžaduje jeden dekódovací krok a kamera pro něj dodává post-procesor (ml.postprocessing.edgeimpulse), takže i tyto modely běží bez dalšího kódu.

13.6.3. Nasazení na kameru

Po dokončení trénování otevřete v projektu stránku Deployment, zvolte cíl OpenMV Library a klikněte na Build. Ke stažení je zip obsahující natrénovaný model (trained.tflite), jeho štítky (labels.txt) a ukázkový skript. Model je celočíselně kvantizovaný. Edge Impulse toto i alternativu s vlastním firmwarem pokrývá ve svém průvodci spuštěním na OpenMV.

Přidejte soubor .tflite na kameru pomocí editoru ROMFS v IDE, který jej převede pro NPU desky, pokud nějakou má, a načtěte jej ve skriptu pomocí ml.Model. Modely lze spouštět také z flash disku kamery – soubory zkopírujte a nasměrujte ml.Model na cestu – ale ROMFS je lepší domov: modely se tam spouštějí přímo z flash paměti bez kopie v RAM.

Viz také

kapitola o strojovém učení o spouštění modelů pomocí modulu ml – načítání, inferenční pipeline a dekódování výstupu.