OpenMV
Skjold
Linse
Robotikk
Bok
Video
Last ned
Dokumenter
Forum
OpenMV.io
GithubDet finnes to svært vanlige oppgaver innen datamaskinens visuelle område der kunstig intelligens brukes: klassifisering og objektdeteksjon.
Kategori:Avgjør hvilken klasse bildet tilhører, for eksempel katt eller hund.
Måldeteksjon:Brukes til å finne plasseringen, antallet og størrelsen på flere ulike objekter i et bilde.
I tidligere videoer har vi forklart hvordan man bruker OpenMV4 Plus til å trene nevrale nettverk på nettet for klassifisering av ulike objekter. Dette tillater sanntidsdeteksjon av om bildet i OpenMVs synsfelt representerer et bestemt objekt, for eksempel om en ansiktstråkk bærer maske. Det kan imidlertid ikke gi koordinatene til ansiktet eller masken, eller antallet ansikter.
Siden objektgjenkjenning er betydelig mer kompleks og krever mye mer beregningskraft enn klassifisering, er den svært sjelden i mikrokontrollerområdet. Hoved-MCU-en i OpenMV er STM32H7. Vi har nå lagt til en ny funksjon i OpenMV som gjør det mulig å kjøre oppgaver lik objektgjenkjenning på mikrokontrollere, med imponerende ytelse.

I dag vil vi forklareTrener deteksjon av trafikkskilt i en virkelig gateomgivelse, og detekterer trafikkskilt på våre faktiske veierfor eksempel forbud mot å blåse horn, forbud mot parkering og fartsgrense på 80 km/t, i stedet for et laboratoriums miljø uten forstyrrelser.
Du kan se hele prosjektinnholdet på følgende adresse, inkludert all kode og alle modeller: https://book.openmv.cc/project/traffic-sign.html
Det er kjent at den faktiske omgivelsen er svært kompleks, spesielt trafikkomgivelsen, og at det finnes mange forstyrrende faktorer. Vi brukte mobiltelefoner og andre enheter til å ta bilder av trafikkskilt i den faktiske omgivelsen, og trente modellen vår på EdgeImpulse-nettstedet, som er en samarbeidspartner av OpenMV. Vi merket ca. 270 bilder, og treningsprosessen tok bare 10 minutter. Den trente modellen oppnådde en F1-score på 92 %, og kjørehastigheten på OpenMV var 10 bilder per sekund, noe som gir en svært flytende og nøyaktig ytelse.
Brukerne kan trenge gjenstander som de selv ønsker å oppdage, ved hjelp av våre videoer med instruksjoner – for eksempel ulike tall, ulike frukter, ulike merker, ulike deler eller til og med hvilke som helst spesifikke uregelmessige gjenstander. Det er mulig å trene systemet til å identifisere antallet, koordinatene og navnet på gjenstanden.
Merknad:Denne videoveiledningen om nøytralnettverksbasert målregistrering er ikke bare egnet for OpenMV4 H7 Plus, men støtter også OpenMV4 H7, siden den trente FOMO-målregistreringsmodellen er liten, gir utmerkede resultater og kun veier noen få ti kilobyte. Selv om OpenMV4 H7 har mindre arbeidsminne enn versjonen «Plus», kan vi likevel trene en litt mindre modell som kan kjøres på OpenMV4.
Nedenfor følger en kort presentasjon av prinsippet:
De viktigste designvalgene for FOMO-målpunktdeteksjonen på OpenMV er basert på idéen om at mange objektdeteksjonsproblemer faktisk ikke krever objektets størrelse, men kun dets posisjon i bildet. Når vi kjenner objektets posisjon, kan vi utføre videre operasjoner, som å la OpenMV styre en liten bil mot det oppdagede målet, å la en drone lande på et bestemt punkt eller å styre en robotarm til å gripe et spesifikt målobjekt.
FOMO-modellen er en modell som EdgeImpulse har utviklet spesielt for mikrokontrollermiljøer. I motsetning til vanlige objektdeteksjonsmodeller kan den bare oppdage posisjonen og antallet av flere objekter, men ikke deres nøyaktige størrelse.
Grunnprinsippene for FOMO-modellen er svært enkle og fleksible. Bildet deles først opp i ruter, der hver rute er 8 × 8 piksler. For et bilde med oppløsning på 96 × 96 blir dette en matrise på 12 × 12 ruter. For et bilde med oppløsning på 360 × 360 blir dette en matrise på 40 × 40 ruter. Deretter utføres bildeklassifisering uavhengig i hver rute.
FOMO prester mye bedre enn YOLO V5 eller MobileNet SSD ved deteksjon av et stort antall små objekter. FOMO-objektpunktdeteksjon er 30 ganger raskere enn MobileNet SSD.
FOMO fungerer bedre hvis objektene som skal oppdages har tilsvarende størrelse, for eksempel hvis størrelsen på de skiltene du vil gjenkjenne varierer lite, i stedet for å ha ett svært stort og ett svært lite objekt.
OpenMV bruker EdgeImpulse for nettbasert trening av nevrale nettverk for deteksjon av målpunkter, hovedsakelig i følgende trinn: innsamling og opplasting av bilddatasett, merking av mål, trening, test av modellen og distribusjon.
* Innsamling av bilddatasett: Ta bilder av spesifikke objekter i den faktiske omgivelsen der vi skal utføre gjenkjenning. Vi samler inn faktiske bilder i den samme omgivelsen som der gjenkjenningen skal skje, slik at den faktiske treningsomgivelsen og den faktiske deteksjonsomgivelsen er så like som mulig, noe som gir bedre resultater.
*Merkingsmål: Merk av hver gjenstand som skal oppdages i vårt datasett ved å tegne en ramme rundt den og knytte riktig navn til gjenstanden, slik at trening, deteksjon av gjenstandens plassering og navn kan gjøres på en effektiv måte.
* Trening av modell: Etter at merkingen er fullført, gjennomføres treningen av modellen i henhold til de forhåndsdefinerte parametrene for det konvolusjonelle nevrale nettverket.
*Testmodell: Vi tester modellen basert på det trente modellen. Hvis resultatene er utilfredsstillende, utvider vi treningssettet eller justerer treningsparametrene og fortsetter treningen inntil vi oppnår et tilfredsstillende modell.
*Installering: Vi plasserer den trente modellfilen vår på OpenMVs innebygde USB-minneenheter for å kjøre den.
Nedenfor vises den konkrete prosessen:
01. Samle inn og last opp et bilddatasett
1. Logg inn på nettstedet edgeimpulse.com, velg «Logg inn», angi navnet på det nyopprettede prosjektet og velg «Bilder» → «Klassifiser flere objekter»

II. Velg et bilde som skal lastes opp. Det finnes flere måter å skaffe datasett med bilder på:
1. Ta bilde i sanntid ved hjelp av OpenMV IDE. Bruk verktøyet «Datasettredigering» i OpenMV IDE til å opprette et nytt datasett og ta opp bilder i sanntid. For mer informasjon, se vår tidligere videoveiledning om objektklassifisering og gjenkjenning av ansiktsmasker.

2. Bruk bilder som er lastet ned fra nettet eller bilder som er tatt med mobiltelefonen. Bildene bør helst være fra samme type miljø som det du faktisk utfører detektionen i. Vi har forberedt et datasett med fire–fem hundre bilder av trafikkskilt som forbud mot parkering, forbud mot horn, fartsgrense 80 km/t osv. Hvert bilde er tatt i virkelige trafikksituasjoner på veien. Dette datasettet kan lastes ned fra vår GitHub-side og veiledningsside.
02. Merke objektet
Last opp ca. 100 bilder for hver kategori, og deretter merk av bildene ved å angi posisjonen og kategorien til objektene som skal gjenkjennes.


03. Trene modellen
Angi parametere for trening av modellen, endre oppløsningen til 128 × 128 og velg alle standardverdier for de angitte parameterne. Klikk deretter på Lagre.

Generer funksjoner, der tre ulike farger representerer tre ulike merker.

Angi parametere for trening av måldeteksjon. Standardantall treningsepoker er 60, læringsraten er 0,001 og andelen av valideringssettet er 20 %. Merk av for datautvidelse. For overføringslæring kan vi velge standardmodellene MobileNetV2 0,35 eller MobileNetV2 0,1. (Merk: SSD kan ikke brukes, da SSD ikke støttes på OpenMV.)
Velg «Start trening». Den trente nevralnettmodellen oppnår en F1-score på 91,2 %, og vi kan lagre denne versjonen.

Velg lagring, fyll ut beskrivelsen din og velg Lagre.

04. Distribuere modellen
Eksporter den trente modellfilen. Det er bare nødvendig å eksportere biblioteket; velg OpenMV og klikk på «Build» for å starte distribusjonen og eksporten av modellen.

Den vil automatisk laste ned modellen vi har eksportert – her er modellen trent på våre 300 bilder, og med dette er hele treningsprosessen fullført.

05. Kjør modellen
Kjør modellen på OpenMV:
Koble til OpenMV Plus, lagre de tre trente filene på OpenMVs innebygde USB-minne, og åpne filen ei_object_detection.py i OpenMV IDE. Klikk på «Kjør», og resultatet vises i terminalvinduet for serielkommunikasjon.


Denne funksjonen kan også kjøres på OpenMV4. Siden OpenMV4 ikke har ekstern SDRAM og har mindre minne, kan vi redusere modellens størrelse slik at den kan kjøres på OpenMV4.
Det finnes to metoder for å redusere modellens størrelse:
1. Redusér oppløsningen for trening, fra 128 × 128 til 96 × 96.
To, endre det brukte overføringslæringsmodellen ved å erstatte MobileNetV2 0.35 med MobileNetV2 0.1.
Til slutt må den trente nye filen plasseres i OpenMV4 for å kjøres.
Dette er vår veiledning for målpunktdeteksjon. Vi ser frem til dine resultater!

AI-vaktmann basert på OpenMV: Automatisk påminnelse om at viktige steder ikke er lukket
Automatisk vurdering av om døren til viktige steder ikke har vært lukket i lengre tid, samt varsling i tide.

Varsling ved personoverskridelse – OpenMV tolker «følelsen av sikkerhetsgrense»
Identifiserer personer eller utstyr som krysser en virtuell varslingssone.

«AI-byvakt» er her – et automatisk gjenkjenningssystem for ulovlig virksomhet på offentlig eiendom, bygget på OpenMV
Automatisk gjenkjenning av ulovlig forretning på offentlig eiendom, som støtter daglig bystyring.

Er gassylinder plassert uhensiktsmessig? Bruk OpenMV til å utløse en automatisk farevarsling
Automatisk gjenkjenning av ulovlig plassering av gassflasker for å oppdage sikkerhetsrisiko knyttet til gass på forhånd.

Utførte du arbeid under spenning uten å bruke isolerende hansker? OpenMV varsler umiddelbart!
Automatisk gjenkjenning av om arbeidstakere bærer isolerende hansker, for å støtte sikker arbeidsutførelse.

Bruker OpenMV-intelligente kamera til å identifisere feil på aluminiumsplater i sanntid
Online gjenkjenning av feil på aluminiumplater, som for eksempel skraper og senkninger, for å støtte kvalitetskontroll.