Inhoudsopgave:
Video: Sipeed MaiX Bit OpenMV-demo's - Computer Vision - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Dit is het tweede artikel in een serie over Sipeed AI op het Edge-microcontrollerplatform. Deze keer zal ik schrijven over MaiX Bit (link naar Seeed Studio Shop), een kleiner, breadboard-klaar ontwikkelbord. De specificaties zijn vergelijkbaar met MaiX Dock, het bord dat ik voor de laatste tutorial heb gebruikt, omdat ze dezelfde chip gebruiken, Kendryte K210.
We gaan micropython-firmware gebruiken om enkele OpenMV-demo's te proberen. Hier is een beschrijving van de OpenMV-homepage:
Het OpenMV-project gaat over het maken van goedkope, uitbreidbare, door Python aangedreven, machine vision-modules en heeft tot doel de "Arduino of Machine Vision" te worden. … Python maakt het werken met algoritmen voor machinevisies veel gemakkelijker. De methode find_blobs() in de code vindt bijvoorbeeld kleurblobs en retourneert een lijst met objecten met 8 waarden die elke gevonden kleurblobs vertegenwoordigen. In Python is itereren door de lijst met objecten die wordt geretourneerd door find_blobs() en het tekenen van een rechthoek rond elke kleurenblob eenvoudig in slechts twee regels code.
Dus, ondanks dat MaiX Bit een speciale neurale netwerkversneller heeft, kan het soms gemakkelijker zijn om gewoon hardgecodeerde OpenMV-algoritmen te gebruiken om het werk te doen of ze naast elkaar te gebruiken.
Enkele use-cases die bij mij opkomen zijn:
1) Lijndetectie voor lijnvolgerbot
2) Verkeerslichten detecteren met cirkel- en kleurdetectie
3) Gezichtsdetectie gebruiken om de gezichten voor gezichtsherkenning te vinden (met DNN)
Github-repository voor dit artikel
Stap 1: Flash Micropython-firmware
Allereerst moeten we micropython-firmware naar ons bord flashen. Een voorgecompileerd binair bestand is opgenomen in de github-repository voor dit artikel, samen met kflash.py (een flash-hulpprogramma). Als u de firmware van de broncode wilt compileren, downloadt u de broncode van https://github.com/sipeed/MaixPy, installeert u de toolchain en compileert u de broncode in het maixpy.bin-bestand. Gedetailleerde bouwinstructies zijn hier te vinden.
Flash het binaire bestand met
sudo python3 kflash.py kpu.bin
Ga na succesvol knipperen door naar de volgende stap.
Stap 2: Maak verbinding met MaiX Bit
Nu zou onze MaiX Bit toegankelijk moeten zijn via een seriële USB-verbinding met baudrate 115200. U kunt uw favoriete software gebruiken voor seriële communicatie of gewoon kat- en echo-commando's, wat u maar wilt. Ik gebruikte het scherm voor seriële communicatie en vond het erg handig.
De opdracht voor het tot stand brengen van een seriële communicatiesessie met scherm is:
sudo-scherm /dev/ttyUSB0 115200
waarbij /dev/ttyUSB0 het adres van uw apparaat is.
Mogelijk moet u op de resetknop op uw microcontroller drukken om het begroetingsbericht en de python-interpreterprompt te zien.
Stap 3: Voer de demo's uit
U hebt nu toegang tot de kopieermodus door op Ctrl+E te drukken en de democodes te kopiëren en plakken. Om ze uit te voeren, drukt u op Ctrl+D in de kopieermodus.
Als u de video's niet wilt opnemen, moet u de video-opnameregels becommentariëren. Anders genereert de code een uitzondering als er geen SD-kaart is geplaatst
Hier zijn korte beschrijvingen van elke demo:
Zoek cirkels - gebruikt de functie find_circles van OpenMV. Er zijn meer aanpassingen nodig voor uw specifieke toepassing, met name de drempelwaarde (bepaalt welke cirkels worden gedetecteerd bij de Hough-transformatie. Alleen cirkels met een grootte groter dan of gelijk aan de drempelwaarde worden geretourneerd) en r_min, r_max-waarden.
Zoek rechthoeken - gebruikt de functie find_rects van OpenMV. Je kunt met de drempelwaarde spelen, maar de waarde die ik in de demo heb, werkt redelijk goed voor het vinden van rechthoeken.
Vind gezichten, vind ogen - gebruikt de functie find_features met Haar Cascades voor het detecteren van ogen en frontale gezichten in de afbeelding. U kunt spelen met drempel- en schaalwaarden voor de juiste afweging tussen snelheid en nauwkeurigheid.
Vind oneindige lijnen - gebruikt de functie find_lines om alle oneindige lijnen in de afbeelding te vinden met behulp van de hough-transformatie.
Kleur detecteren - gebruikt de functie get_statistics om het percentielobject te verkrijgen en converteert vervolgens de gemiddelde waarden van LAB-tuple naar RGB-waarden-tuple. Ik heb dit voorbeeld zelf geschreven en het werkt best goed, maar houd er rekening mee dat de resultaten van kleurdetectie worden beïnvloed door omgevingslicht.
Je kunt nog veel meer interessante demo's vinden in de OpenMV github-repository! Ze zijn meestal compatibel met MaiX Bit micropython, het enige dat u hoeft te onthouden is om sensor.run(1) toe te voegen na het instellen van het pixformaat en de framegrootte.
Veel plezier met experimenteren met OpenMV-code. Als je vragen hebt of een aantal van je interessante resultaten wilt delen, aarzel dan niet om me te bereiken op Youtube of LinkedIn. Excuseer me, ik ga wat robots maken!
Aanbevolen:
AIY VISION KIT (Raspberry Pi): 3 stappen
AIY VISION KIT (Raspberry Pi): een uitgebreid overzicht van de AIY Vision Kit van Google
Licht- en kleurmetingen met de Pimoroni Enviro:bit voor de Micro:bit: 5 stappen
Licht- en kleurmetingen Met de Pimoroni Enviro:bit voor de Micro:bit: ik had eerder aan een aantal apparaten gewerkt waarmee licht- en kleurmetingen mogelijk waren en je kunt hier en hier veel vinden over de theorie achter dergelijke metingen. heeft onlangs de enviro:bit uitgebracht, een add-on voor de m
Google Vision API met Raspberry Pi en Node: 11 stappen
Google Vision API met Raspberry Pi en Node: dit is een startgids voor het gebruik van de Google Vision API. Het gebruikt de volgende Raspberry Pi Zero W Arch Linux NodeJS internetverbindingKen je Arch Linux niet? Of hoe je een Raspberry Pi instelt? Geen zorgen, ik heb een reeks artikelen geschreven die
Een Night-Vision-webcam maken: 6 stappen
Een Night-Vision-webcam maken: hoe u uw webcam kunt veranderen zodat hij in het donker kan zien. De CCD's van alle digitale camera's reageren zowel op infrarood licht (IR) als op zichtbaar licht. De meeste webcams worden echter geleverd met een filter dat is geïnstalleerd om IR-licht te blokkeren. Hierdoor wordt het beeld minder
HackerBox 0024: Vision Quest: 11 stappen
HackerBox 0024: Vision Quest: Vision Quest - Deze maand experimenteren HackerBox-hackers met Computer Vision en Servo Motion Tracking. Deze Instructable bevat informatie voor het werken met HackerBox #0024, die u hier kunt ophalen terwijl de voorraad