Innehållsförteckning:
Video: Sipeed MaiX Bit OpenMV Demos - Computer Vision: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Detta är den andra artikeln i serien om Sipeed AI på Edge -mikrokontrollerplattformen. Den här gången kommer jag att skriva om MaiX Bit (länk till Seeed Studio Shop), en mindre utvecklingsbräda som är redo för brödbräda. Det är specifikationer som liknar MaiX Dock, brädet jag använde för den senaste handledningen, eftersom de använder samma chip, Kendryte K210.
Vi kommer att använda micropython -firmware för att prova några OpenMV -demos. Här är beskrivningen från OpenMV -hemsidan:
OpenMV-projektet handlar om att skapa billiga, utbyggbara, Python-drivna, maskinsynmoduler och syftar till att bli "Arduino of Machine Vision". … Python gör arbetet med maskinvisionsalgoritmer mycket enklare. Till exempel hittar metoden find_blobs () i koden färgblock och returnerar en lista med 8-värderade objekt som representerar varje färgblogg som hittas. I Python går det enkelt igenom listan över objekt som returneras av find_blobs () och ritar en rektangel runt varje färgblogg med bara två kodrader.
Så, trots att MaiX Bit har en dedikerad neural nätverksaccelerator, kan det ibland vara lättare att bara använda OpenMV hårdkodade algoritmer för att utföra jobbet eller använda dem vid sidan av varandra.
Några användningsfall som jag tänker på är:
1) Linjedetektering för linjeföljare -bot
2) Upptäcka trafikljus med cirkel- och färgdetektering
3) Använd ansiktsigenkänning för att hitta ansikten för ansiktsigenkänning (med DNN)
Github -förvar för den här artikeln
Steg 1: Flash Micropython Firmware
Först och främst kommer vi att behöva blinka mikropython -firmware till vårt kort. En förkompilerad binär ingår i github -förvaret för den här artikeln, tillsammans med kflash.py (ett flash -verktyg). Om du vill kompilera firmware från källkoden, ladda bara ner källkoden från https://github.com/sipeed/MaixPy, installera verktygskedjan och kompilera källkoden till maixpy.bin -filen. Detaljerade bygginstruktioner hittar du här.
Flasha den binära filen med
sudo python3 kflash.py kpu.bin
Efter framgångsrik blinkning följer du till nästa steg.
Steg 2: Anslut till MaiX Bit
Nu ska vår MaiX Bit vara tillgänglig via en USB -seriell anslutning med baudrate 115200. Du kan använda din favoritprogramvara för seriell kommunikation eller bara cat and echo -kommandon, vad som passar dina behov. Jag använde skärmen för seriell kommunikation och tycker att det var mycket bekvämt.
Kommandot för att upprätta en seriell kommunikationssession med skärm är
sudo skärm /dev /ttyUSB0 115200
där /dev /ttyUSB0 är adressen till din enhet.
Du kan behöva trycka på återställningsknappen på din mikrokontroller för att se hälsningsmeddelandet och pythontolk.
Steg 3: Kör demonstrationerna
Nu kan du komma åt kopieringsläge genom att trycka på Ctrl+E och kopiera och klistra in demokoderna. För att köra dem, tryck på Ctrl+D i kopieringsläge.
Om du inte vill spela in videoklippen måste du kommentera videoinspelningslinjerna. Annars kommer koden att göra ett undantag om det inte finns något SD -kort isatt
Här är korta beskrivningar av varje demo:
Hitta cirklar - använder funktionen hitta_cirklar från OpenMV. Behöver mer tweaking för din specifika applikation, särskilt tröskel (styr vilka cirklar som detekteras från transformationen. Endast cirklar med en storlek större än eller lika med tröskeln returneras) och r_min, r_max -värden.
Hitta rektanglar - använder funktionen find_rects från OpenMV. Du kan leka med tröskelvärde, men värdet jag har i demo fungerar ganska bra för att hitta rektanglar.
Hitta ansikten, hitta ögon - använder funktionen hitta_funktioner med Haar Cascades för att upptäcka ögon och framsida i bilden. Du kan leka med tröskel- och skalvärden för rätt avvägning av hastighetsnoggrannhet.
Hitta oändliga linjer - använder funktionen hitta_linjer för att hitta alla oändliga linjer i bilden med hjälp av transformationen.
Upptäck färg - använder funktionen get_statistics för att erhålla percentilobjekt och konverterar sedan medelvärden för LAB -tupel till RGB -värden tupel. Jag skrev själv detta exempel och det fungerar ganska bra, men kom ihåg att resultaten av färgdetektering påverkas av omgivande ljusförhållanden.
Du kan hitta många fler intressanta demos i OpenMV github -arkiv! De är mestadels kompatibla med MaiX Bit micropython, det enda du behöver komma ihåg är att lägga till sensor.run (1) efter att ha ställt in pixformat och ramstorlek.
Glad experiment med OpenMV -kod. Om du har några frågor eller vill dela några av dina intressanta resultat, tveka inte att nå mig på Youtube eller LinkedIn. Ursäkta mig, jag ska göra några robotar!
Rekommenderad:
Objektdetektering med Sipeed MaiX -kort (Kendryte K210): 6 steg
Objektdetektering med Sipeed MaiX -kort (Kendryte K210): Som en fortsättning på min tidigare artikel om bildigenkänning med Sipeed MaiX -kort bestämde jag mig för att skriva en annan handledning med fokus på objektdetektering. Det var en del intressant hårdvara som dök upp nyligen med Kendryte K210 -chip, inklusive S
Micro: bit MU Vision Sensor - Objektspårning: 7 steg
Micro: bit MU Vision Sensor - Object Tracking: Så i denna instruerbara ska vi börja programmera Smart Car som vi bygger i denna instruerbara och som vi installerade en MU vision sensor på i denna instruerbara.Vi ska programmera mikro: lite med lite enkel spårning av objekt, så
Micro: bit MU Vision Sensor för nybörjare - I2C och Shape Card Recognition: 8 steg
Micro: bit MU Vision Sensor för nybörjare - I2C och Shape Card Recognition: Jag har fått tag på en MU vision sensor för Micro: bit. Det verkar vara ett coolt verktyg som gör att jag kan göra många olika visionbaserade projekt. Tyvärr verkar det inte så många guider till det och även om dokumentationen verkligen är
Ryggsäck #1: OpenMV -kamera: 7 steg
Ryggsäck #1: OpenMV -kamera: SPIKE Prime Ryggsäckar är förlängningar för LEGO Education SPIKE Prime. Open MV -kameran är hjärnan för kameraryggsäcken som gör att du kan integrera bildbehandlings- och maskinsyn för den öppna MV -kameran till LEGO SPIKE Prime. Vi alla
Lego Dynamo Voor Demos: 5 steg
Lego Dynamo Voor Demo's: I denna instruerbara tid ser vi hur vi kan visa en dynamisk dynamo som har byggts för vårt DEF -slutprojekt. Våra dynamo kan en piekspänning på 20 volts spänning och möjlighet att göra en serie LED-lampor som är märkta