OpenMV
Kilvet
Linssi
Robotiikka
Kirja
Video
Lataa
Asiakirjat
Foorumi
OpenMV.io
GithubTekoälyllä on kaksi erityisen yleistä tehtävää näköalalla: luokittelu ja kohteiden tunnistus.
Luokittelu:Määritä, mihin luokkaan kuva kuuluu, esimerkiksi kissa vai koira.
Kohdetunnistus:Käytetään useiden eri kohteiden sijainnin, määrän ja koon määrittämiseen kuvasta.
Edellisessä videokurssissa selitimme, miten OpenMV4 Plus -laitteella voidaan harjoittaa neuroverkkoja verkossa eri esineiden luokittelua varten. Se pystyy todentamaan reaaliajassa, näkyykö OpenMV-kameran kuvassa tietty esine, esimerkiksi onko kasvoissa suojakäsineitä, mutta se ei pysty tulostamaan kasvojen tai suojakäsineiden sijaintikoordinaatteja eikä kasvojen lukumäärää.
Koska kohdetunnistus on huomattavasti monimutkaisempaa ja laskentaintensiivisempää kuin luokittelu, sitä käytetään hyvin harvoin mikro-ohjausyksiköissä. OpenMV:n pää-MCU on STM32H7, ja nyt olemme lisänneet OpenMV:hen uuden toiminnon, joka mahdollistaa kohdetunnistustehtävien suorittamisen mikro-ohjausyksikössä; sen suorituskyky on erinomainen.

Tänään esittelemme teilleKoulutusnäyttö liikennemerkkien tunnistamisesta todellisessa kadunympäristössä, jossa tunnistetaan liikennemerkit todellisilta teiltäesimerkiksi kielto käyttää hornia, kielto pysäköidä ja nopeusrajoitus 80 km/h eivätkä laboratoriossa saavutettavat häiriöttömät olosuhteet.
Voit tarkastella koko projektin sisältöä seuraavassa osoitteessa, johon kuuluvat kaikki koodit ja mallit: https://book.openmv.cc/project/traffic-sign.html
On tunnettua, että todellinen ympäristö on erinomaisen monimutkainen, erityisesti tiet ja kadut, ja siinä esiintyy paljon häiriötekijöitä. Keräsimme älypuhelimella ja muilla laitteilla kuvia liikennemerkkeistä todellisesta ympäristöstä ja käytimme OpenMV-kumppanimme EdgeImpulse-verkkosivustoa mallin kouluttamiseen. Merkitsimme noin 270 kuvaa, ja mallin kouluttaminen kesti vain 10 minuuttia. Koulutetun mallin F1-score-tarkkuus on 92 %, ja malli toimii OpenMV:llä 10 kuvaa sekunnissa, mikä tarjoaa erinomaisen sujuvan ja korkean tarkkuuden toiminnan.
Käyttäjät voivat kouluttaa mitä tahansa tunnistettavaa kohdetta videopohjaisten opetusohjeidemme avulla, esimerkiksi eri numeroita, eri hedelmiä, eri merkintöjä, eri osia tai jopa mitä tahansa tiettyä epäsäännölistä kohdetta; koulutus mahdollistaa tietyn kohteen määrän, koordinaatit ja esineen luokan nimen tunnistamisen.
Huomio:Tässä videopohjaisessa opetusohjelmassa käsitellään neuroverkkojen kohdepisteiden tunnistustoimintoa, joka on yhteensopiva sekä OpenMV4 H7 Plus - että OpenMV4 H7 -laitteiden kanssa. Koulutettu FOMO-kohdepisteiden tunnistusmalli on pienikokoinen, tehokas ja vain muutamia kilotavuja kooltaan, mikä mahdollistaa sen käytön myös OpenMV4 H7 -laitteessa, vaikka sen käyttömuisti olisi pienempi kuin OpenMV4 H7 Plus -laitteessa.
Alla esitetään lyhyt selitys toimintaperiaatteesta:
OpenMV-laitteessa käytettävän FOMO-tavoitteen paikannuksen pääsuunnitteluperiaate perustuu ajatukseen, jonka mukaan monet tavoitteiden tunnistamiseen liittyvät ongelmat eivät todellisuudessa vaadi tavoitteiden kokoja, vaan ainoastaan niiden sijaintia kuvassa. Kun tavoitteiden sijainti on tiedossa, voidaan suorittaa jatkotoimenpiteitä, kuten OpenMV:n ohjaaminen pienoisautomaatin liikkumiseen tunnistetun tavoitteen suuntaan, lennättimen tarkka laskeutuminen tiettyyn paikkaan tai robotin käsivarren ohjaaminen tietyn tavoitteen tarttumiseen.
FOMO-malli on EdgeImpulse-taholta erityisesti mikro-ohjausyksiköiden ympäristöön suunniteltu malli; se eroaa tavallisista tavoitteiden tunnistusmalleista siinä, että se voi tunnistaa useiden tavoitteiden sijainnin ja lukumäärän, mutta ei niiden tarkkoja mittoja.
FOMO-mallin perusperiaatteet ovat erinomaisen yksinkertaiset ja joustavat. Ensimmäiseksi kuva jaetaan lohkoihin, joista kunkin koko on 8 × 8 pikseliä. Jos kuvan resoluutio on 96 × 96, lohkoja on 12 × 12. Jos kuvan resoluutio on 360 × 360, lohkoja on 40 × 40. Tämän jälkeen kuvan luokittelua suoritetaan itsenäisesti jokaisessa lohkossa.
FOMO toimii huomattavasti paremmin suurilla määriä pieniä kohteita sisältävissä tilanteissa verrattuna YOLO V5:een tai MobileNet SSD:hen. FOMO:n kohdepistetunnistus on 30 kertaa nopeampaa kuin MobileNet SSD:n.
Jos havaittavat kohteet ovat samankokoisia, esimerkiksi tunnistettavien merkkien koot eivät vaihtele merkittävästi – toisin sanoen kohteet eivät vaihtele suuresti kooltaan – FOMO:n suorituskyky on parempi.
OpenMV käyttää EdgeImpulse-verkko-opetuspalvelua neuroverkon tavoitteen tunnistamiseen, ja se koostuu pääasiassa seuraavista vaiheista: kuvadatajoukon keruu ja lataaminen, tavoitteiden merkitseminen, mallin kouluttaminen, mallin testaus ja mallin käyttöönotto.
* Kuvadatajoukon keruu: Otetaan kuvia tietystä kohteesta todellisessa ympäristössä, jossa kohdetta halutaan tunnistaa. Kuvat otetaan samassa ympäristössä, jossa tunnistusta suoritetaan, joten todellinen koulutusympäristö ja todellinen tunnistusympäristö ovat melko samankaltaisia, mikä parantaa tuloksia.
*Merkitse kohde: kehytä jokainen havaittava kohde tiedostossamme ja liitä siihen vastaava kohdenimi, jotta myöhempää mallin koulutusta, kohteiden sijainnin tunnistamista ja kohdenimien tunnistamista voidaan suorittaa.
* Mallin kouluttaminen: Kun merkintä on valmis, mallia koulutetaan määritellyn konvoluutiivisen neuroverkon parametrien mukaisesti.
*Testausmalli: Testaamme valmiiksi koulutettua mallia. Jos tulokset eivät ole tyydyttäviä, laajennamme koulutusaineistoa tai säädämme koulutusparametreja ja jatkamme koulutusta, kunnes saavutamme tyydyttävän mallin.
*Käyttöönotto: Käytämme koulutettua mallitiedostoa OpenMV:n sisäänrakennetussa USB-muistilaiteessa.
Alla esitetään tarkemmin prosessi:
01. Kerätä ja ladata kuvatietojoukko
1. Kirjaudu ensin verkkosivustolle edgeimpulse.com, valitse ”Kirjaudu sisään”, syötä uuden projektin nimi ja valitse ”Kuvat” → ”Luokittele useita objekteja”

II. Valitse ladattava kuva. Kuvatietojoukkoja voidaan hankkia usealla eri tavalla:
1. Kerää kuvia reaaliajassa OpenMV IDE:n avulla. Luo uusi tietojoukko ja kerää kuvia reaaliajassa käyttämällä OpenMV IDE:n työkalua ”Tietojoukkomuokkain”. Lisätietoja on aiemmassa videopohjaisessa opetusohjelmassamme, joka käsittelee esineiden luokittelua ja kasvomaskeihin liittyvää tunnistusta.

2. Käytä verkosta ladattuja kuvia tai todellisia kuvia, jotka on otettu matkapuhelimella. Kuvien tulisi mahdollisuuksien mukaan vastata todellista tarkastusympäristöä. Olemme keränneet neljästä viiteen sadalla kuvaa erilaisista liikennemerkeistä, kuten pysäkointikielto-, äänimerkki- ja 80 km/h:n nopeusrajoitusmerkeistä. Kaikki kuvat on otettu todellisilta tieltä, ja tämä aineisto on saatavilla GitHub-sivuiltamme ja opetusohjeiden verkkosivuilta.
02. Merkintäkohteet
Jokaiseen luokkaan ladataan noin 100 kuvaa. Kun kuvat on ladattu, niiden merkintä suoritetaan: tunnistettavan kohteen sijainti ja luokka merkitään kuville.


03. Mallin kouluttaminen
Määritä koulutuksen parametrit, muuta resoluutio arvoon 128 × 128 ja valitse kaikki parametrit oletusarvoisina; napsauta Tallenna.

Luodaan ominaisuudet; kolme eri väriä edustavat kolmea eri merkkiä.

Aseta kohdetunnistuksen koulutusparametrit. Oletusarvoinen koulutuskierrosten määrä on 60, oppimisnopeus 0,001 ja testausjoukon osuus 20 %. Valitse tiedonlaajennus (ruksaa vastaava valintaruutu). Siirto-oppimiseen käytettävän mallin voit valita oletusarvoisesti joko MobileNetV2 0,35 tai MobileNetV2 0,1. Huomaa: SSD-mallia ei voi käyttää, sillä se ei toimi OpenMV-laitteessa.
Valitse Aloita koulutus. Koulutuksen jälkeen saadun neuroverkkomallin F1-pisteet ovat 91,2 %, ja voimme tallentaa nykyisen version.

Valitse tallennustapa, täytä kuvaus ja valitse Tallenna.

04. Mallin käyttöönotto
Vie läpikäyty mallitiedosto. Riittää, että vie library-komponentti; valitse OpenMV ja napsauta Build-painiketta, jolloin mallin käyttöönotto ja vienti aloitetaan.

Se automaattisesti lataa meidän ulkoistamamme mallin; tässä vaiheessa kyseessä on malli, joka on opittu käyttäen 300 kuvaa, ja näin ollen koko opetusprosessi on valmis.

05. Mallin suorittaminen
Suorita malli OpenMV:llä:
Yhdistä OpenMV Plus -laitteeseen, tallenna kolme koulutettua tiedostoa OpenMV:n sisäänrakennettuun USB-asemaan ja avaa tiedosto ei_object_detection.py OpenMV IDE:ssä. Napsauta suorita; tulokset näkyvät sarjaportin pääteikkunassa.


Tämä toiminto toimii myös OpenMV4:llä. Koska OpenMV4:ssä ei ole ulkoista SDRAM-muistia, sen muistitila on pienempi, joten mallin kokoa voidaan pienentää, jotta se toimii OpenMV4:llä.
Mallin koon pienentämiseen on kaksi menetelmää:
1. Vähennä koulutuksen resoluutiota muuttamalla resoluutio 128 × 128 → 96 × 96.
II. Muuta käytettävää siirto-oppimismallia: vaihda MobileNetV2 0.35 → MobileNetV2 0.1.
Lopuksi koulutettu uusi tiedosto sijoitetaan OpenMV4 -laitteeseen ja suoritetaan siellä.
Yllä oleva on tavoitepisteiden tunnistamisen opetusohjelma. Odotamme innokkaasti tuloksiasi!

AvoinMV-pohjainen tekoälyvartija: automaattinen muistutus avoimesta tilasta tärkeissä paikoissa
Automaattinen tarkistus, jossa havaitaan, onko tärkeän paikan ovi ollut pitkään auki, ja heti annettava muistutus.

Henkilöiden rajojen ylittäminen herättää hälytyksen – OpenMV selittää käsitettä ”turvallisen alueen tunne”
Tunnistaa henkilöiden tai laitteiden rajojen ylityksen virtuaalisen varoituslinjan avulla.

”AI-kaupunginvalvonta” on saapunut: avoimen lähdekoodin OpenMV-pohjainen järjestelmä epälailliselle kadunvarsikaupalle tunnistamiseen
Automaattinen tunnistus kadunvaraisesta liiketoiminnasta kaupungin päivittäisen hallinnan tukemiseksi.

Kaasupulloja sijoitettu epäasiallisesti? Käytä OpenMV:tä vaaran varoittamiseen automaattisesti
Tunnistaa automaattisesti kaasupullojen sallimattomat sijoitustavat ja havaitsee kaasukäyttöön liittyvät turvallisuusuhkat etukäteen.

Sähköisessä työssä ei käytetty eristyskäsineitä? OpenMV antaa heti varoituksen!
Tunnistaa automaattisesti, onko työntekijä käyttänyt eristyskäsineitä, ja tukee turvallista työtä.

Käytetään OpenMV-älykästä kamerajärjestelmää alumiinilevyn pinnan virheiden tunnistamiseen reaaliajassa
Tunnistaa verkossa alumiinilevyn pinnan naarmuja, painaumia ja muita vikoja ja tukee laadunvalvontaa.