Funkcija določanja položaja z upravljanjem z gestami za sisteme s kamero s prepoznavanjem obraza

Revija logo rutronik - Funkcija določanja položaja z upravljanjem z gestami za sisteme s kamero s prepoznavanjem obrazaRutronik GmbH
Avtorja: Thomas Kepcija in Qi Zhang
2020_287_28

Kako izvedemo prepoznavanje obraza za vrtljivo kamero za samodejni nadzor dostopa? Pri tem primeru uporabe je podjetje Rutronik stranko podprlo s koncepti sistema.

Vse na enem mestu
V belgijskem mestu Hasselt stoji parkirna hiša z imenom Q-Park. Pred zapornico je kamera, ki prepozna registrsko tablico, nato pa se številka posname na magnetni trak vstopnice. Podatki se shranijo še v strežnik/storitev v oblaku. Vozilo se parkira in voznik odide po opravkih. Plačilo je mogoče izvesti na avtomatih v parkirni hiši ali v hotelu, če je voznik prenočil. Nato vstopi v vozilo in zapelje do izhoda, kjer še ena kamera primerja registrsko tablico vozila z zavarovanimi podatki v podatkovni zbirki, nakar se zapornica samodejno odpre. To je zelo udoben koncept, ki vam prihrani odpiranje okna in, če ste prenočili, čakanje v vrsti na avtomatu za plačevanje, saj upravljavec parkirne hiše in hotelir sodelujeta ter lahko obveznosti poravnate v hotelu pri odjavi.

Sistem poenostavljeno sestavljata dve fiksno vgrajeni kameri, programski algoritmi za prepoznavanje registrske tablice, podatkovna zbirka/storitev v oblaku in krmiljenje zapornic.

Takšen koncept, ki obsega več sistemov, se odlično ujema s strategijo podjetja Rutronik, ki lahko pomaga pri izvedbi sistemskih rešitev s številnimi proizvajalci in partnerji ter za svoje stranke razvije njim prilagojene študije konceptov. Prilagojena študija pomeni, da se tukaj ne izvaja primerjava registrskih tablic, ampak prepoznava obraza. Sistem sestavlja kamera s programskim algoritmom za prepoznavo obrazov in motorjem, ki obrača kamero in ga krmili tipalo za upravljanje z gestami.

Tu se pokaže velika prednost podjetja Rutronik – izkoriščanje sinergijskih učinkov. To pomeni, da v fazi koncepta sodelujejo strokovnjaki različnih oddelkov, na primer za močnostno elektroniko, mikrokrmilnike, analogno tehnologijo in tipala, brezžično tehnologijo, vgrajene sisteme, mehaniko, pasivne elemente itd., ter skupaj določijo komponente in porazdelitev nalog. To prihrani čas in navzven predstavlja enotno podobo skladno s sloganom gospoda Rudla, »Vse na enem mestu«.

Opis delovanja predstavitvenega sistema in aplikacij
Naloga je, da se za največ tri udeležence, ki stojijo drug ob drugem, s kamero posname po ena slika za vsako osebo in da se slika shrani skupaj z oznako v obliki številke ali imena. Usmerjanje glave kamere, ki omogoča fotografiranje udeležencev, poteka s koračnim motorjem. Koračni motor krmili visokonapetostni krmilnik. Krmilnik motorja dobiva navodila iz tipala za upravljanje z gestami. Nato se opravi drugi prehod, kjer se položaji udeležencev zamenjajo zaradi preverjanja sposobnosti vnovične prepoznave z algoritmom tehnologije OKAO Vision, ki ga zagotovi proizvajalec slikovnega tipala.

Primer uporabe je na primer dodelitev pravice za dostop zaposlenim v zgradbo/zemljišče podjetja ali v notranja območja. Podjetje za svoje zaposlene shrani slike v podatkovno zbirko/storitev v oblaku skupaj s pripadajočimi pravicami glede na njihov položaj v podjetju. Zaposleni dobijo po slikanju s kamero in primerjavi s podatkovno zbirko dostop do parkirišča podjetja, zgradbe ter notranjih območij v zgradbi. Osebam, ki niso del podjetja, se dostop zavrne in se morajo registrirati pri vratarju po interkomu. Obiskovalcem je mogoče določiti ustrezne pravice, da se smejo premikati znotraj določenih območij. Redne obiskovalce je mogoče tudi dodati v podatkovno zbirko, kar jim prihrani prijavo pri vratarju, če so se za sestanek vnaprej dogovorili s svojo kontaktno osebo. Za zaposlene je mogoče sistem razširiti še na beleženje časa, tako da niso več potrebni klasični sistemi, na primer priponke, kartice ali izkaznice. Podjetje lahko te podatke prenese v bolnišnice in javne ustanove.

Če gremo v drugo smer, lahko kamero nadomestimo z lamelami, zunanjimi ogledali v avtomobilu ali uravnavanjem dovoda zraka v vozilo, ki jih odpiramo ali zapiramo z gestami ali drugo tehnologijo tipal. Osnovno načelo predstavitvenega sistema lahko razširimo še na številne druge načine.

Zgradba predstavitvenega sistema in seznam uporabljenih elektronskih komponent
Predstavitveni sistem sestavljajo visokonapetostni krmilnik družine HVC 4223F proizvajalca TDK, koračni motor 14HS17-0504S, tipalo bližine in svetlobe v okolju VCNL4035X01 proizvajalca Vishay, plošča STM32F4 ter plošča s kamero (slikovnim tipalom) HVC-P2 proizvajalca Omron.

Razvoj sistema je zaradi ponovljivosti zelo preprost, tako da so uporabljene komponente skoraj izključno kompleti za preizkušanje izdelkov. Mala predstavitvena plošča SDB-I iz podjetja TDK Micronas vsebuje krmilnik motorja HVC 4223F, plošča VCNL4035X01-GES-SB se uporablja za upravljanje z gestami, plošča Nucleon proizvajalca STM ima mikrokrmilnik STM32F4, komplet B5T-007001-020 podjetja Omron pa sestavljata glava kamere in matična plošča.

Tipalo za upravljanje z gestami proizvajalca Vishay, VCNL4035X01
Na začetku omenjene možnosti uporabe izhajajo iz motornega pogona za usmerjanje kamere ali lamele, upravljanje pa je v našem primeru izvedeno s tipalom za upravljanje z gestami. Tu je uporabljeno večfunkcijsko optično tipalo Vishay VCNL4035X01 zelo majhne velikosti (4,0 x 2,36 x 0,75 mm).

Vgrajene ima tipalo bližine in svetlobe v okolju, multiplekser, dva 16-bitna A/D-pretvornika, vmesnik I2C, programirljivo prekinitev za tipalo bližine in svetlobe v okolju, funkcijo zagona (Power on) ter funkcijo zaustavitve (Shut down). Tipalo nima vgrajene razsvetljave IR, zato ima gonilnik, s katerim je mogoče priključiti do tri zunanje IR-sijalke. Vgrajeno je v preizkusnem tiskanem vezju Vishay Gesture Sensor Board, ki ji je priložena še predstavitvena programska oprema z algoritmom za prepoznavanje in prikaz izmerjenih podatkov. S programsko opremo je mogoče spreminjati določene parametre.

Razmislek o algoritmu za prepoznavanje kretenj
Kot smo že omenili, je uporabljeno tiskano vezje Vishay VCNL4035X01-GES-SB, ki vsebuje tri trikotno razporejene IR-sijalke VSMY2940GX01 in tipalo VCNL4035X01, kot kaže slika 3. Rdeča lučka LED kaže, ali je prepoznana kretnja, kar se zgodi ob prekoračitvi zgornje/spodnje pragovne vrednosti, določene s parametrom Upper/Lower.

Za prepoznavanje IR-sijalke, od katere prihaja odbita svetloba, so tri sijalke povezane s stikali. To pomeni, da se krmilijo zaporedoma in se nato na tipalu bližine izmerijo ustrezni odbiti signali.

Pri premiku iz desne v levo se dogodek (predmet) zazna, ko je zaznani signal iz IR-sijalke ps2 znotraj s parametrom Upper/Lower nastavljenih pragovnih vrednosti. Zaznana vrednost se shrani v spremenljivko, IR-sijalka ps2 se izklopi, sproži se IR-sijalka ps1, zaznana vrednost se shrani v drugo spremenljivko, IR-sijalka ps1 se izklopi in postopek se ponavlja.

Interpretacijo, ali kretnja poteka iz desne v levo ali obratno, prevzame določeni algoritem. Mi tukaj uporabljamo algoritem »Insertion Sort«. Pri premiku iz desne v levo lahko pričakujemo, da bo največja izmerjena (vršna) vrednost najprej prisotna v izmerjenih vrednostih za IR-sijalko ps2 in nato za IR-sijalko ps1. Če si ogledamo poteka vrednosti za obe sijalki, vrednost IR-sijalke ps2 stalno narašča, dokler ne pride do vršne vrednosti, ko začne stalno padati. Vrednost za IR-sijalko ps1 je na začetku stalna, nato začne stalno naraščati, po doseženi vršni vrednosti pa stalno pada. Algoritem primerja izmerjene vrednosti. Če izmerjene vrednosti za določeno IR-sijalko naraščajo: Xps2n> Xps2n-1, se ta vrednost z odštevanjem primerja z vrednostjo za drugo IR-sijalko. Če vrednost pada: Xps2n< Xps2n-1, se prejšnja vrednost Xps2n-1 primerja z rezultatom za drugo IR-sijalko. Če naslednje meritve za IR-sijalko potrjujejo, da je vrednost Xps2n-1 večja, smo našli največjo vrednost. Če pri odštevanju rezultatov dveh IR-sijalk vrednost IR-sijalke ps1 vedno odštevamo od vrednosti IR-sijalke ps2, nam smer kretnje pove predznak razlike. Za kretnjo iz desne v levo je pozitiven, obratno pa negativen. Uporabljamo spremenljivke s časovno oznako. Za kretnjo smo nastavili časovno okno 300 ms, periodo vzorčenja 10 ms in spodnjo mejno vrednost za dogodek 50 mA. To pomeni, da je dogodek prisoten šele pri določeni jakosti signala, ki je odvisna od razdalje predmeta od tipala.
Tipalo za upravljanje s kretnjami ne daje neposredne informacije o prepoznani kretnji, ampak samo surove podatke. Surove podatke interpretira zunanji mikrokrmilnik z algoritmom. Vrednotenje poteka s tiskanim vezjem Nucleon Board, ki ima vgrajen krmilnik STM32F401 za krmiljenje krmilnika motorja.

Krmilnik motorja TDK Micronas HVC 4223F
Krmilnik motorja HVC 4223F podjetja TDK, ki se trži z blagovno znamko Micronas, nima strojnega vmesnika I2C, vendar pa lahko zaradi razpoložljive zmogljivosti vgrajenega procesorja ARM Cortex M3 (T) signale tiskanega vezja Nucleon Board emuliramo z 11 razpoložljivimi priključki LGPIO. V našem sistemu smo za V/I-naprave izbrali prva dva prosta priključka LGPIO3 in LGPIO4.

LGPIO3 LGPIO4 Vrtenje motorja
0 0 Levo
0 1 Desno
1 0
1 1

* 0: nizka raven; 1: visoka raven.
Tabela 1: Emulacija priključkov LGPIO

Krmilnik HVC 4223F odlikuje največja možna stopnja integracije komponent v kompaktnem ohišju QFN40 (6,0 x 6,0 mm). Ciljne aplikacije so rešitve na področju pametnih pogonov z enosmernimi motorji s ščetkami in brezkrtačnimi ter koračnimi motorji. Vezje ima vgrajen polovični mostič, napajalnik za neposredno priključitev na napetost baterije, vmesnik LIN in 32 kB bliskovnega pomnilnika, kar omogoča integracijo z najmanjšim možnim številom zunanjih komponent. Za krmiljenje bipolarnega koračnega motorja so v naši vzorčni aplikaciji uporabljeni štirje od šestih razpoložljivih polovičnih mostičev z n/n-kanalnima tranzistorjema FET.

HVC 4223F podpira že na strojni ravni krmiljenje bipolarnega koračnega motorja s tokovno ali napetostno regulacijo. Pri regulaciji toka se izmerjeni fazni tok primerja z nastavljeno pragovno vrednost iz programirljivega 8-bitnega D/A-pretvornika. Ko je ta vrednost presežena, komparator enote EPWM samodejno izklopi ustrezni izhod MOUTx, dokler tok ne pade pod nastavljeno vrednost. Integrirano vezje omogoča diagnostiko z integriranim nadzorom previsokih napetosti, tokov in temperatur. Integrirano vezje omogoča priključitev neposredno na avtomobilski akumulator z napetostjo 12–18 V in ima med drugim tudi vmesnik LIN (LIN 2.2 Transceiver) za neposredno komunikacijo z zunanjim svetom. 32-bitni procesor ARM Cortex-M3 in 32 kB bliskovnega pomnilnika pomeni dovolj računske moči tudi za zahtevne krmilne algoritme, na primer za sinhronske motorje s trajnimi magneti. TDK-Micronas priporoča uporabo programskega okolja Keil MDK-ARM V5.14, ki ne zahteva licence za pomnilnike do 32 kB.

V podjetju TDK-Micronas so pripravili potrebne knjižnice in izvorno kodo v obliki beležk za uporabo (angl. »Application Note«) – na primer za krmiljenje motorjev, vmesnik LIN in druge splošne načine uporabe. Če morate med razvojem uporabiti produkcijsko programsko opremo, so v podjetju TDK-Micronas v sodelovanju s sistemskim ponudnikom razvili vgrajeno programsko opremo, skladno s sistemom A-Spice, ki izpolnjuje tudi zahteve za funkcionalno varnost.

Primer: V datoteki »config.h« se nastavlja obnašanje krmilnika motorja.

#define CMD_POSITION_STEP                   (300)                
// nastavi dolžino koraka v desetinkah
stopinje; 300 = 30°

Če povzamemo, je HVC 4223F prilagodljivo uporaben krmilnik motorjev za krmiljenje različnih majhnih elektromotorjev na področju majhnih pogonov. Procesor ARM Cortex M3 ponuja dovolj zmogljivosti za izvajanje tudi zahtevnih algoritmov za krmiljenje motorjev. Popolna integracija vseh potrebnih komponent za krmiljenje brezkrtačnih in koračnih motorjev prihrani čas razvoja ter s tem razvojne stroške in po prvem načrtovanju znatno olajša prilagoditev drugim konceptom uporabe. V podjetju TDK-Micronas uporabnike podpirajo s knjižnicami in izvorno kodo ter omogočajo stik s sistemskim ponudnikom, ki je za komponento HVC 4223F razvil produkcijsko in vgrajeno programsko opremo.

V naši predstavitveni aplikaciji je krmilnik motorja povezan z bipolarnim koračnim motorjem 14HS17-0504S, ki vrti kamero.

Fazni tok (A) 0,50
Fazna upornost (Ω) pri 25 °C 15,00 +/– 10 %
Fazna induktivnost (mH) pri 1 kHz 26,00 +/– 20 %
Držalni navor (Nm) 0,23
Korak (°) 1,80
Točnost koraka (brez seštevanja) +/– 5,00 %
Vztrajnostni moment rotorja (gcms2) 18,00

Tabela 2: Izvleček tehničnih podatkov

Slikovno tipalo Omron B5T-007001-020
Slikovno tipalo Omron B5T-007001-020 za prepoznavanje obraza je z gredjo povezan s koračnim motorjem, ki ga lahko obrne za 30° v levo in desno. Uporabljeni komplet z enoto tipala B5T HVC-P2 sestavljajo glava kamere (1600 x 1200 slikovnih točk) in glavno tiskano vezje, ki sta medsebojno povezana s ploskim kablom. Tehnologija Omron OKAO Vision omogoča 10 funkcij za prepoznavanje: prepoznavanje obraza, prepoznavanje človeškega telesa, ocena spola, ocena starosti, ocena pogleda in usmerjenosti oči, prepoznavanje dlani ter oceno izraza na obrazu s petimi možnimi izrazi (nevtralen, sreča, presenečenje, jeza in žalost). Za slikovni izhod je mogoče izbirati med tremi formati: brez slike, 160 x 120 slikovnih točk in 320 x 240 slikovnih točk. Komplet je na voljo z dvema različnima glavama kamere, za širokokotne posnetke in posnetke na daljavo.

Opombe glede povratne informacije o položaju za gonilnik motorja.

Predstavitveni sistem nima povratne informacije o položaju, zato ob vklopu mikrokrmilnik ne ve, v katerem položaju je motor. Za krmiljenje motorja je bil izbran pristop, da se motor oziroma kamera pred vsakim vklopom usmeri ročno. Po vklopu privzamemo, da je motor oz. kamera v srednjem položaju. Iz srednjega položaja (0°) lahko kamero premaknete na primer v levo (–30°), od tam pa samo še desno v srednji položaj (0°). Iz tega položaja je mogoče kamero premakniti v desno (+30°) in od tam nazaj v srednji položaj (0°). Možne so tudi izvedbe s povratno informacijo o položaju, kjer motor po vklopu opravi premik v referenčno točko na mehanskem naslonu. S prepoznavanjem blokade v programski opremi je mogoče ta položaj prepoznati kot končni položaj (+X). Tukaj mora biti za vsako smer vrtenja predviden mehanski naslon, kar pomeni dodatno potrebo po mehanski konstrukciji in določeno mero prilagajanja programske opreme. Pri pristopu s tipalom opravi motor po vklopu premik v referenčno točko, kjer končni položaj zazna tipalo. Pri uporabi Hallovega tipala je treba z dvema tipaloma realizirati končni položaj za obe smeri vrtenja, kar pomeni dodatno potrebo po mehanski konstrukciji za vgradnjo magneta in tipal, ožičenje ter prilagajanje programske opreme.

Viri:

  • Zaposleni, ki so bili udeleženi pri izvedbi predstavitvenega sistema:
    • Qi Zhang (strateško trženje)
    • Klaus Beutelbeck (PMD za predstavitvene plošče)
    • Markus Kraus (PMD za predstavitvene plošče)
    • Thomas Kepcija (trženje izdelkov za oddelek analogne tehnologije in tipal)
    • Hans Spirk (aplikacijski inženir pri podjetju TDK-Micronas)
  • Vishay: Publikacija »Designing the VCNL4035X01 Into an Application«, rev. 5. junij 2019
  • Vishay: Publikacija »Datasheet VCNL4035X01«, rev. 2.0, 3. januar 2019
  • TDK-Micronas: Publikacija »HVC 4223F Workshop, contains Datasheets, Application Notes, Boards and Solution«, 31. januar 2017
  • Omron :
    • HVC-P_DriverInstallationManual_B
    • HVC-P_EvaluationSoftwareManual_C
    • Stran WWW z izdelki Omron
  • Koračni motor: https://www.omc-stepperonline.com/nema-14-stepper-motor/nema-14-bipolar-18deg-23ncm-326ozin-05a-75v-35x35x42mm-4-wires-14hs17-0504s.html?mfp=146-rated-current-a%5B0.5%5D
Rutronik GmbH,Podružnica v Ljubljani
Motnica 5, 1236 Trzin, Slovenia
rutronik_si@rutronik.com
Tel. +386 1 561 09-80
www.rutronik.com
Tags: