Kuinka rakentaa kasvontunnistus kääntyvällä kameralla automaattista kulunvalvontaa varten? Rutronik tuki asiakasta järjestelmäkonsepteilla tässä sovellusesimerkissä.
Artikkelin ovat kirjoittaneet Rutronikin Thomas Kepcija ja Qi Zhang. Kepcija toimii analogia- ja anturituotteiden tuotemyyntipäällikkönä ja Zhang teknisenä tuki-insinöörinä. |
Hasseltin kaupungissa Belgiassa on “Q-Park” -niminen parkkipaikka. Portilla ajoneuvon rekisterikilpi luetaan kameralla ja tallennetaan kuljettajan automaatista saaman lipun magneettinauhaan. Tiedot tallennetaan palvelimelle, mahdollisesti pilveen. Ajoneuvon voi pysäköidä joko privaatti- tai bisnestarkoituksissa. Maksun voi suorittaa pysäköintihallissa olevassa koneessa tai, jos matkustajat yöpyvät, hotellissa. Sitten he nousevat ajoneuvoon, ajavat poistumistielle ja portti avautuu automaattisesti, kun toinen kamera on lukenut ajoneuvon rekisterikilven ja vertaa sitä tietokantaan tallennettuihin tietoihin.
Konsepti on erittäin kätevä, sillä se eliminoi tarpeen laskea kuljettajan ikkuna alas tai jonottaa maksuautomaateilla pysäköintimaksujen maksamiseksi. Pysäköinnin voi esimerkiksi maksaa hotellissa uloskirjauduttaessa. Yksinkertaisesti kuvattuna järjestelmä koostuu kahdesta kiinteästä kamerasta, ohjelmistoalgoritmeista ajoneuvon rekisterikilven havaitsemiseksi, tietokannasta (pilvessä) ja poistumisportin ohjausjärjestelmästä.
Tämä järjestelmien välinen konsepti on yhdenmukainen Rutronikin strategian kanssa, jolla pyritään vastaamaan monien valmistajien ja yhteistyökumppaneiden järjestelmäratkaisujen haasteisiin ja kehitetään modifioitu versio esikehitelmänä, jolla konsepti todistetaan asiakkaille. Tässä esitelty muokattu versio käyttää kasvojentunnistusta rekisterikilven tunnistuksen sijasta. Järjestelmä koostuu kamerasta, jossa on ohjelmistoalgoritmi kasvojentunnistukseen, ja moottorista kameran kääntämiseksi eleiden ohjauksen perusteella.
Rutronik hyödyntää tässä suurinta vahvuuttaan - synergioiden käyttöä. Tämä tarkoittaa, että asiantuntijoita eri osastoilta (tehoelektroniikka, mikro-ohjaimet, analogiakomponentit ja anturit, langattomat yhteydet, sulautetut, mekaniikka ja passiivikomponentit) kehotettiin määrittelemään komponentit ja tehtävien jakaminen. Tämä säästää aikaa ja antaa mahdollisuuden esitellä kattava yksiköiden välinen konsepti Rutronikin perustaja Thomas Rudelin iskulauseen mukaisesti: “kaikki yhdestä lähteestä”.
Demonstraattorin ja sovellusten toiminnallinen kuvaus
Tehtäväkuvaus. Korkeintaan kolme osallistujaa seisoo vierekkäin. Käytä kameraa ottamaan yksi kuva jokaisesta henkilöstä ja tallenna kuva tunnisteen alle numeron tai nimen muodossa. Kameran pää kohdistetaan askelmoottorilla, jotta osallistujat voidaan valokuvata. Askelmoottoria ohjataan korkeajänniteohjaimella. Moottorinohjain vastaanottaa ohjeet eleentunnistimen kautta. Sitten suoritetaan toinen vaihe, jossa osallistujat vaihtavat paikkaansa sen tarkistamiseksi, voidaanko heidät tunnistaa käyttämällä kuva-anturin valmistajan tarjoamaa OKAO Vision -tekniikan algoritmia.
Tässä esiteltävä esimerkkisovelluksemme antaa työntekijöille tai henkilöstölle pääsyn yrityksen tiloihin tai yrityksen sisäisille alueille. Yhtiö ottaa kuvan jokaisesta työntekijästään ja tallentaa sen tietokantaansa tai pilvipalvelimelleen asianmukaisilla oikeuksilla yrityksen sijaintipaikan perusteella. Kun elävää kamerakuvaa verrataan tietokantaan, työntekijöille annetaan pääsy yrityksen pysäköintialueelle, rakennukseen ja muille alueille. Henkilöiltä, jotka eivät ole yrityksen työntekijöitä, evätään pääsy, ja heidän on rekisteröidyttävä vastaanoton tai sisäpuhelinjärjestelmän kautta.
Vierailijoille voidaan myöntää vastaavat oikeudet, jotta he voivat liikkua tietyillä alueilla. Vierailijoita, jotka käyvät säännöllisesti yrityksessä, voidaan myös tallentaa tietokantaan, jolloin vältetään toistuva rekisteröityminen vastaanotossa suunnitelluilla vierailuilla. Työntekijöille järjestelmää voidaan halutessa laajentaa kattamaan työajan seurantajärjestelmä. Järjestelmä sopii yritysten lisäksi myös sairaaloihin ja muihin julkisiin laitoksiin.
Toisessa lähestymistavassa kamera voidaan korvata myös ohjauslevyillä, jotka voidaan avata tai sulkea eleidenhallinnalla tai muulla anturitekniikalla, esimerkiksi auton siipien peilien ohjaamiseen tai ajoneuvon ilmanottoon. On monia muita potentiaalisia sovelluksia, joissa voidaan käyttää demonstraattorin perusperiaatetta.
Demonstraattorin rakentaminen ja käytettyjen komponenttien lista
Demonstraattori koostuu TDK: n HVC 4223F -sarjan korkeajänniteohjaimesta, askelmoottorista (14HS17-0504S), Vishayn läheisyys- ja ympäröivän valon anturista (VCNL4035X01), STM32F4-kortista ja Omronin kameramoduulista (HVC-P2).
Järjestelmäkonsepti pidetään hyvin yksinkertaisena, koska se on rakennettu melkein kokonaan evaluointipaketeista toistettavuuden varmistamiseksi. TDK-Micronasin pieni demokortti SDB-I sisältää HVC 4223F -moottoriohjaimen, kun taas eleohjain käyttää VCNL4035X01-GES-SB-korttia, STMicroelectronicsin Nucleo-korttia STM32F4-mikro-ohjaimen kanssa ja B5T-007001-020 -sarjaa, joka koostuu kamerapäästä ja emolevystä.
Kuva 1: Demonstraattorin rakenteen kaavio.
Vishayn eleanturi VCNL4035X01
Alussa mainitut potentiaaliset sovellukset perustuvat moottoriohjaimeen kameran tai ohjauslevyn kohdistamiseksi, ja ohjauksemme suoritetaan tässä tapauksessa ele-anturin kautta. Tässä käytetty Vishayn optinen anturi (VCNL4035X01) on kolltan kompakti (4,0 x 2,36 x 0,75 mm) monitoimianturi.
Kuva 2: VCNL4035X01 ja lohkokaavio.
Läheisyys- ja ympäröivän valon tunnistin, multiplekseri, kaksi 16-bittistä AD-muunninta, I2C-liitäntä, ohjelmoitava keskeytys läheisyys- ja ympäristön valotunnistimelle, ”virta päällä” ja “sammutus” -toiminto on integroitu mukaan. Anturi ei sisällä integroitua IR-lähdettä, mutta siinä on ohjain, joka mahdollistaa kolmen ulkoisen IR-emitterin kytkemisen. Vishayn eleanturikortti toimitetaan demo-ohjelmistolla, joka sisältää havaitsemisalgoritmin ja mittaustietojen näytön. Ohjelmistoa voidaan käyttää tiettyjen parametrien muokkaamiseen.
Eleiden havaitsemisalgoritmit
Kuten aiemmin mainittiin, demossa käytetään Vishayn VCNL4035X01-GES-SB-anturikorttia, varustettuna kolmella kolmioon järjestetyllä VSMY2940GX01-IR-emitterillä ja kortilla olevalla VCNL4035X01-anturilla kuvan 3 mukaisesti. Punainen ledi osoittaa, onko eleiden havaitseminen käytettävissä, jos parametri Ylempi / Alempi on laukaissut näiden kytkentärajat.
Kuva 3: VSMY2940GX01-evaluointikortti Vishaylta.
Kolmea emitteriä ohjataan kytkimen avulla sen tunnistamiseksi, mistä IR-emitteristä heijastunut valo tulee. Tämä tarkoittaa, että ne laukaistaan sarjassa ja vastaavat heijastuneet signaalit mitataan läheisyysanturissa.
Oikealta vasemmalle -ele aiheuttaa tapahtuman (objektin) havaitsemisen, jos IR-eimitterin ps2 havaitsema signaali on määriteltyjen kytkentärajojen (parametrit Ylä / Ala) sisällä. Havaittu arvo tallennetaan muuttujaan, IR-emitteri ps2 deaktivoidaan ja IR-emitterin ps1 pulssi käynnistetään, havaittu arvo tallennetaan toiseen muuttujaan, IR-lähetin ps1 deaktivoidaan ja prosessi toistetaan.
Mukautettua algoritmia käytetään tulkitsemaan, onko ele oikealta vasemmalle vai päinvastoin. Käytetyn algoritmin nimi on ”insertion sort”. Oikealta vasemmalle -liikkeellä huippuarvo odotetaan ensin mitatuissa arvoissa IR-emitteriltä ps2, sitten arvoilla IR-emitterilta ps1. Kun tarkkaillaan, kuinka molempien emitterien arvot kehittyvät ajan myötä, IR-emitterin ps2 mitattu arvo kasvaa jatkuvasti maksimiin saakka, ja sitten siirtyy jatkuvasti laskuun. IR-emitterin ps1 arvo on alun perin vakio, mutta siirtyy jatkuvaan nousuun. Kun arvo saavuttaa huippunsa, se siirtyy jatkuvaan laskuun.
Algoritmi vertaa mitattuja arvoja sen määrittämiseksi, kasvavatko IR-emitterin mitatut signaalit jatkuvasti (Xps2n> Xps2n-1); jos näin on, tätä arvoa verrataan toisen IR-emitterin arvoon vähentämällä. Jos Xps2n <Xps2n-1, edellistä arvoa (Xps2n-1) verrataan toisen IR-emitterin tulokseen. Jos IR-emitterin ps2 myöhemmät mittaukset vahvistavat, että arvo Xps2n-1 on suurempi, suurin arvo on löydetty. Jos kahden IR-emitterin arvojen vähentäminen osoittaa aina, että IR-emitteri ps2 on vähennettävä ja IR-emitteri ps1 on vähentäjä, eleen suunta määräytyy eron negatiivisuuden / positiivisuuden perusteella. > 0 tarkoittaa elettä oikealta vasemmalle ja päinvastoin. Muuttujia käytetään aikaleimojen kanssa. Eleiden ohjaamiseksi on määritelty 300 millisekunnin aikaikkuna näytteenottotaajuudella 10 ms ja alemmalla kynnysarvolla 50 mA tapahtumalle. Tämä tarkoittaa, että tapahtuman katsotaan alkavan vain tietystä korkeudesta objektin ja anturin välillä.
Kuva 4: Oikealta vasemmalle -ele: ps2 -> ps1
Kuva 5: Vasemmalta oikealle -ele: ps1->ps2
Eleanturi ei tarjoa suoraan tietoa havaitusta eleestä, vaan ainoastaan raakadataa. Raakadata tulkitaan ulkoisessa mikro-ohjaimessa algoritmia käyttämällä. Analyysi suoritetaan Nucleo-kortilla (STM32F401) moottorinohjaimen ohjaamiseksi.
TDK Micronasin HVC 4223F -moottorinohjain
TDK:n HVC (suurjänniteohjain) 4223F -moottorin ohjaimella, jota markkinoidaan Micronas-tuotemerkillä, ei ole I2C-laitteistorajapintaa, mutta integroidun ARM Cortex M3 (T) -prosessorin suorituskyky mahdollistaa ohjelmistosimuloinnin signaaleista Nucleo-kortista yhdellä käytettävissä olevista LGPIO-nastoista. Omassa projektissamme käytetään kahta ensimmäistä vapaata nastaa (LGPIO3 ja LGPIO4).
Taulukko 1: LPGIO-nastojen emulointi
Kuva 6: Pieni demokortti HVC 4223F
HVC 4223F -ohjain erottuu optimaalisella integroinnillaan komponentteihin kompaktissa QFN40-kotelossa (6,0 x 6,0 mm). Kohdesovellukset ovat älykkäät käynnistysratkaisut, sekä harjatuilla tasavirtamoottoreilla että harjattomilla tasa- ja askelmoottoreilla. Integroitu half-bridge -poweri, jännitesyöttö akkujännitteeseen, LIN-liitäntä ja 32 kilotavun flash-tallennusmahdollisuus mahdollistavat integroinnin, ja samalla poistavat suurelta osin ulkoisten moduulien tarpeen. Bipolaarisen askelmoottorin ohjaamiseksi esimerkkisovelluksessamme käytettiin neljää kuudesta saatavilla olevasta n/n-kanavaisesta puolisilta-FETistä.
Kuva 7: HVC 423F -ohjaimen liittäminen askelmoottoriin
HVC 4223F tarjoaa laitteistotuen bipolaarisen askelmoottorin ohjaamiseksi virran tai jännitteen ohjauksella. Kun virran ohjausta käytetään, mitattua vaihevirtaa verrataan ohjelmoitavan 8-bittisen DA-muuntimen ennalta määriteltyyn kynnysarvoon. Kun tämä arvo ylitetään, parannetun EPWM-moduulin vertailija (komparaattori) estää automaattisesti vastaavan MOUTx-lähdön, kunnes se alittaa jälleen määritellyn normaalin toiminta-arvon.
Ylijännite-, ylivirta- ja ylilämpömittarit on integroitu IC-piirille diagnostiikkatoimintoja varten. Siru voidaan kytkeä suoraan 12-18 voltin autonakkuun ja siinä on myös LIN-liitäntä (LIN 2.2 -vastaanotin) suoraa kommunikointia varten. 32-bittinen ARM Cortex M3 -prosessori ja 32 kilobitin flash-muisti tarjoavat tarpeeksi laskentatehoa tukemaan jopa monimutkaisia algoritmeja laitteiden, kuten kestomagneettisynkronimoottorien, ohjaamiseen. TDK-Micronas suosittelee Keil MDK-ARM v5.14 -ohjelmistoympäristöä, joka ei edellytä lisenssiä, jos käytössä on maksimissaan 32 kilobitin muisti.
Kuva 8: Keil MDK-ARM v5.14 -ohjelmistoympäristö
TDK-Micronas tarjoaa kirjastot ja lähdekoodit sovellusohjeiden muodossa esimerkkeinä moottorien, LIN-rajapinnan tai muiden yleisten sovellusten ohjaamiseksi. Niissä tapauksissa, joissa kehitystyön aikana on tarkoitus käyttää tuotanto-ohjelmistoja, TDK-Micronasilla on ollut järjestelmätoimittajan kehittämä A-Spice-yhteensopiva laiteohjelmisto, joka täyttää myös toiminnalliset turvallisuuden vaatimukset.
Esimerkki: config.h:ssa moottorin käyttäytymistä voidaan ohjata
#define CMD_POSITION_STEP (300)
// määrittelee askeleen asteen kymmenesosien välein; 300 = 30°
Yhteenvetona voidaan todeta, että HVC 4223F on monipuolinen moottorinohjain useiden pienten, sähköisten, älykkäiden aktuaattorien ohjaamiseen. ARM Cortex M3 -prosessori tarjoaa tarpeeksi suorituskykyä jopa monimutkaisten algoritmien toteuttamiseen moottoreiden ohjauksessa. Kaikkien BLDC- tai askelmoottoreiden ohjaamiseen tarvittavien komponenttien integrointi vähentää kehitysaikaa ja siten myös kehittämiskustannuksia ja vähentää huomattavasti muiden sovellusten mukauttamisen työtaakkaa ensi vaiheen tutustumisprosessin jälkeen. TDK-Micronas tukee käyttäjiä kirjastoilla ja lähdekoodilla ja tarjoaa yhteyden järjestelmätoimittajaan, joka on kehittänyt tuotanto-ohjelmiston / laiteohjelmiston HVC 4223F -moduulille.
Demosovelluksessamme moottorinohjain on kytketty bipolaariseen askelmoottoriin (14HS17-0504S), joka suorittaa kameran pyörimisliikkeet.
Askelmoottorin määritykset
Taulukko 2: Ote määrityksistä
Omronin kuva-anturi
Omronin kasvojentunnistukseen tarkoitettu kuva-anturi B5T-007001-020 on kytketty askelmoottoriin akselin avulla, jotta sitä voidaan kääntää 30° oikealle tai vasemmalle. Demossa käytetty B5T HVC-P2 -anturimoduulisarja käsittää kamerapään (1600x1200 pikseliä) ja emolevyn, jotka on liitetty yhteen nauhakaapelin avulla.
Omronin OKAO Vision -tekniikkaa käytetään tuottamaan kymmenen valittavissa olevaa havaitsemistoimintoa. Käytettävissä olevat toiminnot ovat: kasvojentunnistus, ihmiskehon havaitseminen, sukupuolen arviointi, iän arviointi, silmien seuranta ja vilkkumisen havaitseminen, käden tunnistus. Ilmeiden estimointitoiminto tunnistaa viisi kasvojen ilmettä (neutraali, onnellinen, yllättynyt, vihainen, surullinen). Saatavana on kolme formaattia kuvalähdölle: ei kuvan lähtöä, 160x120 pikseliä ja 320x240 pikseliä. Sarja on saatavana kahdella erilaisella kamerapäällä laajakulma- ja kaukokuvaamista varten.
Huomioita moottorin ohjaimen sijaintipalautteesta
Huomautus demonstraattorista: sijainnin palautetta ei käytetä, joten mikro-ohjain ei voi tietää missä asennossa moottori käynnistyy. Moottori tai kamera kohdistetaan manuaalisesti jokaisen käynnistyksen yhteydessä. Tämä käyttäytyminen on toteutettu moottorinohjaimelle. Käynnistyksen yhteydessä oletetaan, että moottori (tai kamera) on keskiasennossaan. Tästä keskiasennosta (0°) kameraa voidaan siirtää vasemmalle (-30°), ja tästä sitä voidaan siirtää vain oikealta keskiasentoon (0°). Tästä asennosta kamera voidaan siirtää oikealle (+30°) ja tästä asennosta se voidaan siirtää takaisin keskiasentoon (0°).
Moottorin käynnistyksen jälkeen voidaan tehdä sijainnin kalibrointi mekaanisten rajapisteiden avulla seuraavilla sijaintipalautteen tavoilla.
Käyttämällä ohjelmiston pysähtymistunnistusta (blockage) voidaan sijainti havaita rajasijaintina (+ X). Siksi jokaiselle pyörimissuunnalle olisi asetettava mekaaninen rajasijainti. Mekaanisesta suunnittelusta ja pienestä ohjelmiston säätämisestä tulee lisäkustannuksia. Anturimenetelmä: Moottori suorittaa kalibroinnin käynnistyksen yhteydessä ja anturi tunnistaa rajasijainnin. Kun käytetään Hall-efektianturia, kahta anturia tulisi käyttää raja-arvon luomiseksi molemmille pyörimissuunnille. Tässä mekaaninen suunnittelu, magneettien ja antureiden kiinnitys sekä johdotusten ja ohjelmistojen säätäminen tuo lisäkustannuksia.
Lisätietoja
Demonstraattorin rakentamisessa mukana olleet:
Qi Zhang (strateginen markkinointi, Rutronik)
Klaus Beutelbeck (PMD-levyt, Rutronik)
Markus Kraus (PMD-levyt, Rutronik)
Thomas Kepcija (tuotemarkkinointi, analogia- ja anturituotteet, Rutronik)
Hans Spirk (sovellusinsinööri, TDK Micronas)
Vishay: Designing the VCNL4035X01 Into an Application, Rev. 05-Jun-2019
Vishay: Datasheet VCNL4035X01, Rev.2.0, 03-Jan-2019
TDK-Micronas: HVC 4223F Workshop, contains Datasheets, Application Notes, Boards and Solution, Jan-31-2017
Omron: HVC-P_DriverInstallationManual_B
HVC-P_EvaluationSoftwareManual_C
Omron WWW product page