Jste zde

Návrh prístupového systému s využitím RFID identifikačných kariet a snímaním tváre pomocou kamery

344_01.png

V dnešnej dobe je bezpečnosť veľmi dôležitá. Teroristické útoky či rôzne krádeže spôsobili, že na bezpečnostné zariadenia sa kladú vysoké nároky. Tieto systémy sú o mnoho sofistikovanejšie ako tomu bolo v minulosti. Jednoduchá identifikácia osoby podľa identifikačnej karty je ľahko zneužiteľná a začína byť nedostatočná. V praxi sa k takejto identifikácií začínajú pridávať rôzne biometrické identifikátory napr. odtlačky prstov, či automatické rozpoznávanie tváre. Takisto aj tento projekt si kládol vyššie nároky na identifikáciu osoby. K jednoduchej identifikácií pomocou RFID kariet bol pridaný mechanizmus snímania tváre pristupujúcej osoby.

Rozbor úlohy

Zadanie úlohy je jednoducho definované, ale na optimálnu realizáciu je potrebné podrobne analyzovať požiadavky, tak aby výsledné zariadenie ich čo najlepšie spĺňalo.

Na obrázku 2-1 je bloková schéma, ktorá zobrazuje ako ma daný prístupový systém fungovať. Centrálnym prvkom je prístupový terminál, ktorý má za úlohu spracovávať požiadavky používateľa o prístup. K terminálu je pripojený RFID modul, ktorý prečíta sériové číslo karty. Ďalej je k nemu pripojená kamera, LCD displej a klávesnica. Terminál je pripojený cez TCP/IP sieť na server.

Užívateľ si pomocu RFID karty žiada systém o povolenie k vstupu. Terminál pošle žiadosť na server o overenie užívateľa. Server porovná číslo použitej RFID karty s databázou. Ak sa karta nachádza v databáze,  odošle príkaz terminálu na  zosnímanie obrazu z kamery. Zosnímaný obrázok sa pošle na server. Server vyhodnotí, či na prijatom obrázku sa nachádza tvár, ak áno tak odošle na terminál oznam, že daný užívateľ je autentifikovaný - overený.

Teoretické východiská

Operačné systémy reálneho času RTOS

Základným predpokladom RTOS je obsluha požiadavky aplikácie v reálnom čase. RTOS operačný systém poskytuje programátorovi väčšiu kontrolu nad procesmi a ich prioritami. Počet priorít, ktoré môžu byť pridelené procesom často prevyšujú počet spustených procesov.

Hlavnou charakteristikou RTOS systému je čas potrebný na prijatie a spracovanie požiadavky. Maximálny požadovaný čas odozvy systému na podnet nazývame hraničným časom.  Ak operačný systém vo všeobecnosti obslúži požiadavky do hraničného času systém nazývame tzv. „mäkkým“ (soft)systémom. Ak systém v každom prípade dodrží hraničné časy pre obsluhu, tak tento systém sa nazýva tzv. „tvrdý“  (hard)systém.

Pri RTOS operačných systémoch nie je až tak dôležitý výkon ako časový determinizmus operácií. Typickými požadovanými vlastnosťami sú malé oneskorenie pri obsluhe prerušenia a minimálne  oneskorenie pri prepínaní kontextu.

Pri návrhu systému existujú tieto základné prístupy pri prepínaní procesov:

  • Časové zdieľanie -  v pravidelný intervaloch sa prepínajú procesy
  • Prepínanie na základe udalosti – prepnutie kontextu nastane iba v prípade, keď nastane udalosť a to len v prípade ak na túto udalosť čaká proces s rovnakou alebo vyššou prioritou ako aktuálne bežiaci proces
  • Kombinovaný - využíva kombináciu dvoch predchádzajúcich spôsobov

FreeRTOS [1]

Zdrojový kód FreeRTOSu je poskytovaný zdarma pod modifikovanou licenciou GPL. Je použiteľný aj pre komerčné aplikácie bez nutnosti sprístupnenia kódu. Ponúka viac ako 20 oficiálnych portov pre rôzne mikrokontrolery. Každý z portov obsahuje konkrétne príklady, na ktorých  sa dajú ľahko postaviť vlastné aplikácie.
FreeRTOS je ideálny  do embedded  systémov, ktoré potrebujú reagovať na podnety v reálnom čaše.  Je vhodný hlavne na použitie s nízko výkonovými mikrokontrolerami, ktoré  majú flash pamäť v rozmedzí 32kB  až 512 kB  a 16 kB  až 256 kB RAM pamäte.

FreeRTOS je operačný systém (plánovač), ktorý poskytuje základne funkcionality, pomocou ktorých sa buduje požadovaná  aplikácia.  Dovoľuje, aby aplikácia bola organizovaná ako kolekcia na sebe nezávislých  vlákien (procesov).  Mikrokontroler, ktorý má iba jedno jadro môže v jednom časovom okamihu obsluhovať iba jediný proces (vlákno).  Jadro operačného systému má za úlohu rozhodnúť, ktorý proces bude v ktorom časovom okamihu vykonávaný a to na základe priorít jednotlivých procesov.

Vlastnosti FreeRTOS:

  • Pre-emptívne a kooperatívne plánovanie
  • Flexibilne prideľovanie priorít
  • Fronty správ (queues)
  • Binárne semafory
  • Rekurzívne semafory
  • Viacstavové semafory
  • Mutexy
  • Dovoľuje priradiť funkciu, ktorá sa spustí vždy pri prepínaní kontextu
  • Dovoľuje priradiť funkciu, ktorá sa spusti vždy pri nečinnosti systému
  • Kontrola pretečenia stacku
  • Makrá pre spätné sledovanie činnosti systému
  • Možnosť zakúpenia komerčnej licencie pre systém

Aktuálne porty FreeRTOS-u:

  • Altera
    • Rodina procesorov: Nios II
    • Podporované vývojové  nástroje: Nios II IDE + GCC
  • Atmel
    • Procesory: SAM3 (Cortex M3), SAM7 (ARM7), SAM9 (ARM9), AT91 a AVR32 UC3
    • Podporované vývojové  nástroje: IAR, GCC, Keil, Rowley CrossWorks
  • Energy Micro
    • Podporované procesory: EFM32 (Cortex M3)
    • Podporované vývojové  nástroje: IAR, GCC, Kei
  • Freescale
    • Podporované procesory: Coldfire V2, Coldfire V1, ostatné Coldfire, HCS12
    • PPC405Podporované vývojové  nástroje: Codewarrior, GCC, Eclipse
  • Fujitsu
    • Podporované procesory: 32bit (napríklad MB91460) a 16bit (napríklad MB96340 16FX)
    • Podporované vývojové  nástroje: Softune
  • Luminary Micro / Texas Instruments
    • Podporované procesory: Všetky Luminary Micro Cortex-M3
    • Podporované vývojové  nástroje: Keil, IAR, Code Red, CodeSourcery GCC, Rowley CrossWorks
  • Microchip
    • Podporované procesory: PIC32, PIC24, dsPIC, (PIC18)
    • Podporované vývojové  nástroje: MPLAB C32, MPLAB C30, (MPLAB C18 and wizC)
  • NEC
    • Podporované procesory: V850 (32bit), 78K0R (16bit)
    • Podporované vývojové  nástroje: IAR
  • NXP
    • Podporované procesory: LPC1700 (Cortex M3), LPC2000 (ARM7)
    • Podporované vývojové  nástroje: GCC, Rowley CrossWorks, IAR, Keil, Red Suite, Eclipse
  • Renesas
    • Podporované procesory: SuperH, H8/S
    • Podporované vývojové  nástroje: GCC, HEW (High Performance Embedded Workbench)
  • Silicon Labs [ex Cygnal]
    • Podporované procesory: Super fast 8051.
    • Podporované vývojové  nástroje: SDCC
  • ST
    • Podporované procesory: STM32 (Cortex M3), STR7 (ARM7), STR9 (ARM9)
    • Podporované vývojové  nástroje: IAR, GCC, Keil, Rowley CrossWorks
  • TI
    • Podporované procesory: MSP430
    • Podporované vývojové  nástroje: Rowley CrossWorks, IAR, GCC
  • Xilinx
    • Podporované procesory: PPC405 running on a Virtex4 FPGA, PPC440 running on a Virtex5 FPGA, Microblaze
    • Podporované vývojové  nástroje: GCC
  • x86
    • Podporované procesory: x86 a Win32 simulátor
    • Podporované vývojové  nástroje: Open Watcom, Borland, Paradigm, Visual Studio pre WIN32 simulátor
  • Ostatné – portované komunitou FreeRTOS
    • MICO32, Blackfin, Jennic, eZ80, SuperH a ostatné. Tieto porty nemajú priamu podporu

uIP - TCP/IP zásobník [2]

uIP TCP/IP má za cieľ umožniť aj málo výkonným mikrokontrolerom (8 bitovým) komunikovať po TCP/IP sieťach. Veľkosť kódu sa pohybuje v rozmedzí niekoľko kilobajtov a veľkosť vyžadovanej RAM sa dá obmedziť na niekoľko sto bytov.

Úvod do TCP/IP

TCP/IP je momentálne najrozšírenejším globálnym komunikačným protokolom. TCP/IP protokol tvorí podriadený  protokol, ktorý sa využíva napr. pri prenose internetových stránok, e-mailov,  súborov a tiež pre komunikácii P2P.

Tradičná implementácia TCP/IP protokolu je náročná na veľkosť kódu aj na množstvo potrebnej RAM pamäte, aby mohla byť aplikovateľná na malé 8 alebo 16 bitové mikrokontrolery.

uIP je navrhnutý tak, aby obsahoval iba absolútne nevyhnutné funkcie, ktoré sú potrebne pre funkciu plnohodnotného TCP/IP zásobníka. uIP vie obsluhovať iba jediné sieťové rozhranie a obsahuje základnú sadu protokolov IP, ICMP, TCP a UDP. uIP je výhradne napísaný v jazyku C. Je navrhnutý tak aby špecifické funkcie, ktoré sú závislé na použitej architektúre boli ľahko implementovateľné.

Veľké množstvo TCP/IP implementácií pre malé systémy predpokladá, že tieto zariadenia budú výhradne komunikovať so zariadeniami, ktoré obsahujú plnú funkcionalitu TCP/IP  napr. PC. Za tohto predpokladu TCP/IP implementácia v malých zariadeniach  nemusí obsahovať všetky TCP/IP mechanizmy a funkcie. Nevýhodou malých zariadení je, že nemôžu komunikovať spolu, vzhľadom na ich obmedzené funkcie. uIP je však na navrhnutý tak, aby mohol komunikovať aj so zariadeniami s obmedzenou TCP/IP  funkcionalitou.  uIP je kompatibilný s RFC štandardmi.

TCP/IP komunikácia

Plný TCP/IP balíček obsahuje množstvo protokolov:

  • Nízko úrovňové napr. ARP protokol, ktorý prekladá IP adresy na MAC adresy.
  • Aplikačné protokoly, napríklad SMTP, ktorý je používaný na prenos e-mailov.

uIP je zameraný hlavne na strednú vrstvu TCP a IP. Protokoly vyššej vrstvy sú ponechané na samotné aplikácie. Nízko úrovňové protokoly zabezpečuje hardvér a firmware zariadenia, na ktorom je uIP implementované.

Formálne je TCP/IP popísaný viacerými RFC špecifikáciami, ktoré publikovala IEFT(Internet Engineering Task Force). Tieto štandardy môžme rozdeliť na dve základné kategórie. Tie, ktoré sa zaoberajú komunikáciou medzi  host – host a tie, ktoré sa zaoberajú komunikáciou medzi aplikáciami.

V prípade uIP  sú všetky RFC špecifikácie  týkajúce  sa komunikácie host – host dodržané. Z dôvodu redukcie veľkosti kódu, nie sú prítomné v uIP niektoré mechanizmy týkajúce sa rozhrania medzi uIP zásobníkom a aplikáciami.

Tabuľka 3-1 ISO OSI – TCP/IP model – uIP zásobní

Rozpoznávanie tváre

Pre ľudí je úplne prirodzené vedieť rozpoznávať rôzne objekty, rozlíšiť tvár od iných objektov a tak isto identifikovať osobu podľa tváre. Vo svete techniky tomu tak nie je.  Proces rozpoznávania objektov resp. identifikácie osoby podľa tváre je komplikovaná záležitosť. Táto oblasť techniky sa začala dynamicky rozvíjať iba nedávno, vďaka vzrastajúcemu výkonu počítačov a rozvoju digitálnych videokamier a fotoaparátov.

Ako prvý krok pri identifikácii osoby podľa tváre je vedieť nájsť a rozlíšiť ju od iných objektov. Je veľa postupov ako to vykonať. Všetky postupy však majú spoločnú myšlienku, že tvár je objekt so špecifickými charakteristikami, ktoré treba určiť a podľa nich ju identifikovať. Napr. jednou z mnohých techník detekcie je využitie špecifickej farby kože. Táto technika je jednoduchá, ale veľmi chybová.

Knižnica Emgu CV

Emgu CV je voľne dostupná platforma, ktorá tvorí medzistupeň pre .NET a Intel OpenCV knižnicu určenú na interaktívne spracovanie obrazu. Emgu CV umožnuje využívať funkcie  OpenCV vo všetkých jazykoch,  ktoré  sú kompatibilné s platformou .NET.

prebieha v cykle. Pri každom opakovaní sa nastaví iná mierka klasifikátora. Výsledok, či sa na obrázku nachádza objekt, nedostávame hneď po prvej zhode s klasifikátorom, ale až po kaskáde zhôd podriadených klasifikátorov.

Výber vhodných technických prostriedkov

Kamera   ITM-C-328 JPEG

Je to kamera zo sériovým rozhraním, určená k pripojeniu k embedded zariadeniam. Dokáže pracovať ako video kamera alebo fotoaparát. Hlavnou výhodou tejto kamery je, že obsahuje kompresný modul JPEG.

Hlavné vlastnosti:

  • Videokamera
  • Statická kamera – fotoaparát
  • Pripojenie k hostiteľským zariadeniam pomocou sériového rozhrania RS232/ TTL (max 115,2Kbdps)
  • Rozlíšenie: VGA,QVGA,160x120, 80x20
  • Možnosť nastavenia hĺbky farieb
  • 2 ,4 , 8,12,16  bitová 

RFID čítačka - CTU-RWD-M

Je určená na čítanie identifikačných kariet využívajúcich bezdrôtovú technológiu RFID.
Všeobecné vlastnosti:

  • načítanie identifikačného čísla a jeho následne odoslanie cez sériové rozhranie
  • výber rôznych typov sériového rozhrania:
    • RS-TTL
    • RS-232
    • DALLAS 1 WIRE
    • Wiegand
  • Dva programovateľné vstupno/výstupné porty
  • Integrovaná anténa
  • Integrovaný bzučiak
  • Dostupné konfiguračné a testovacie programy

Mikrokontrolér Coldfire V2 - MCF52233

Hlavný dôvod výberu tohto mikrokontroleru bol ten, že pri prvotnom vývoji aplikácie sa vyžívala vývojová doska M52233DEMO na ktorej bol tento mikrokontrolér osadený. Tento mikrokontrolér svojimi vlastnosťami spĺňa požiadavky kladené aplikáciou.

Základné vlastnosti mikrokontrolerá MCF52233, ktoré vyžaduje splnenie zadania:

  • Dostatočný výkon:
    • Taktovacia frekvencia 60MHz, výpočtový výkon 2.1MIPS
  • Dostatočná veľkosť RAM: 32KB
  • Dostatočná veľkosť FLASH: 256KB
  • 3x UART univerzálne asynchrónne rozhranie
  • Fast Ethernet Controller (FEC), fyzická vrstva je integrovaná v obvode (ePHY)
  • Obvod reálneho času (RTC)
  • Vonkajšie prerušenia

TBLCF BDM programátor

Je programátor a debugger s voľne dostupným zdrojovým kódom a schémami zapojenia. Programátor je určený  pre mikrokontrolery Coldfire. Nevýhodou je malá prenosová rýchlosť a kompatibilita iba s Windows XP. Vo Windows 7 nefungoval ani po prekompilovaní ovládačov pre tento systém. Chyba sa vyskytuje pri úvodnej  zmene konfigurácie USB zariadenia, kedy nereaguje, z čoho vyplýva, že pravdepodobne chyba bude vo firmvéri. Riešenie, ktoré obchádza problém pri systémoch Windows Vista/Windows 7 je použiť virtuálny stroj VMware a inštalovať Windows XP. Ďalšie riešenie je použiť voľne dostupný programátor: OSBDM JM60 www

Návrh a implementácia programového vybavenia

Zo softvérového hľadiska obsahuje aplikácia tri základné bloky:

  • Blok softvéru, ktorý je tvorený nízkoúrovňovými funkciami tzv. ovládače. Táto časť softvéru je špeciálne napísaná na konkrétny hardvér.
  • Blok softvéru, ktorý je tvorený funkciami nezávislými na konkrétnom hardvéry. Využíva podriadenú  vrstvu  ovládačov, ktoré zabezpečujú abstrakciu hardvéru. Tieto funkcie tvoria najdôležitejšiu časť aplikácie.
  • Posledný blok je softvér pre PC.

Aplikácia pre mikrokontroler

Základ aplikácie tvorí operačný systém FreeRTOS, ktorý zabezpečuje jednoduchú inplementáciu paralelne bežiacich procesov. Každý proces predstavuje separátnu entitu v rámci systému. Každý proces vykonáva špecifickú úlohu a súčinnosť týchto procesov tvorí výslednú aplikáciu. Na obrázku 5-1 sú zobrané jednotlivé procesy a ich vzájomná súčinosť.

Obrázok 5-1 Bloková schéma súčinnosti  procesov

Aplikácia pre PC

Úlohou tejto aplikácie je vytvárať databázový server, načítavať, analyzovať obrázky  a následne povoliť alebo zamietnuť vstup.

Celá aplikácia je napísaná v jazyku C#, vo vývojom prostredí Visual Studio. Aplikácia je logicky rozdelená do tried podľa ich funkcií. 

Databáza je tvorená troma navzájom prepojenými tabuľkami. Štruktúra tabuliek je zobrazená na obrázku  20.

Obrázok 5-2 Interná štruktúra databázy

Tabuľka Karty  predstavuje zoznam všetkých kariet, ktoré sa nachádzajú v systéme a majú povolený vstup. Každá karta ma jediného vlastníka, ktorý je identifikovaný pomocou mena, priezviska, fotografie a jedinečného identifikačného čísla.

Tabuľka Prístup predstavuje zoznam všetkých povolených prístupov, ktorý systém umožnil. Tabuľka obsahuje dátum a čas kedy bol umožnený prístup, číslo karty, ktorej bol umožnený prístup a obrázok osoby, ktorej bol povolený vstup.

Tabuľka SpoluTab je iba pomocná tabuľka, ktorá v sebe spája dáta z predchádzajúcich dvoch tabuliek.

Ako databáza sa využíva MS ACCESS súbor, ktorý je pripojený do aplikácie cez OLE DB ovládač. Tento prístup je veľmi jednoduchý a nevyžaduje inštaláciu externej databázy. Nevýhoda je, že pri väčšom počte záznamov je už prístup do databázy podstatne pomalší. V takýchto prípadoch je nutné použiť externú databázu. Neskoršia implementácia externej databázy nepredstavuje problém pretože v aplikácií nie sú použité priame metódy vstupu do databázy, ale je využívaná trieda dataset, ktorá vytvára medzivrstvu. Pri zmene typu databázy stačí prekonfigurovať  nastavenia triedy dataset. V samotnom kóde aplikácie sa nič nemení.

Komunikácia s prístupovým terminálom

Komunikácia aplikácie s prístupovým terminálom  prebieha po TCP/IP sieťach. Pre tento typ komunikácie je najvhodnejšie používať TCP sokety.  Windows poskytuje API rozhranie pre WinSock a tak isto aj C# ponúka jeho  implementáciu. Po nadviazaní spojenia je vytvorený asynchrónny čítač a zapisovač. Dáta sú odosielané a prijímané v textovej podobe  s použitím ASCII kódovania. Nasledujúce tabuľky zobrazujú v akom formáte sú prijímané a odosielané správy.

Stiahnutie snímky z prístupového terminálu

Obrázok z prístupového terminálu sa sťahuje cez HTTP protokol. V jazyku C# sa na tento účel využíva webklient trieda, ktorá umožňuje stiahnuť ľubovoľný súbor cez HTTP protokol. V prístupovom terminály je obrázok z kamery vždy prístupný ako súbor image.jpg.

Analýza snímky

Jednou z najdôležitejších častí programu je funkcia rozpoznania tváre na zosnímanom obrázok. Samotná implementácia softvéru je pomerne jednoduchá. Pre tento účel je  použitá verejne dostupná knižnica EmguCV. Z tejto knižnice je použitá haar - kaskádová detekcia objektov. Ako referenčný vstupný súbor obrazcov, podľa ktorého sa zisťuje podobnosť objektov, je použitý súbor reprezentujúci charakteristické črty tváre človeka.  Vstup funkcie je obrázok, na ktorom sa hľadajú ľudské tváre, výstup funkcie je počet nájdených tvárí a ich umiestnenie na obrázku.

  Popis funkčnosti PC aplikácie

Po spustení aplikácie sa zobrazí úvodná obrazovka (obrázok 5-3).  Po nadviazaní spojenia s prístupovým terminálom aplikácia čaká na prijatie čísla RFID karty. Po prijatí čísla karty, sa určí či daná karta má povolený vstup. Ak je  karta platná,  nasleduje zosnímanie obrazu používateľa. Zosnímaný obrázok sa vyhodnotí. Ak je na ňom zobrazená tvár, tak do databázy prístupov sa uloží nový záznam.
Pre pridávanie nových kariet do systému, sa použije mód „Nové karty“ v aplikácii a po prijatý čísla karty, ktorá nie je v databáze, sa otvorí formulár pre registráciu novej karty. Pri  registrácii sa zadávajú  údaje o vlastníkovi karty a nasníma sa referenčný obraz tváre.

  • Menu
    • Spojenie – Pripojenie a odpojenie PC aplikácie od prístupového terminálu
    • Databáza
      • Záznamy – zobrazenie databázy povolených vstupov
      • Karty – zobrazenie zoznamu kariet a užívateľov
  • Zobrazenie informácií o aktuálnom používateľovi
  • Indikátor povolenia alebo zamietnutia vstupu
  • Aktuálna snímka používateľa
  • Referenčná snímka užívateľa
  • Indikácia stavu pripojenia
  • Mód aplikácie
    • Normálny Mód
    • Nové Karty – Pridávanie nových kariet do systému

Vývojové prostredie Eclipse

Ako základný vývojový prostriedok pre vývoj softvéru bolo použité integrované vývojové prostredie Eclipse. Toto prostredie patrí do skupiny tzv. open source.  Prvá verzia bola vyvinutá firmou IBM, neskôr bol kód uvoľnení pod licenciou EPL.

Eclipse je vývojové prostredie určené hlavne pre vývoj Java aplikácií. Podpora pre ostatné  programovacie  jazyky  je zabezpečená prostredníctvom pluginov.

Na to, aby sa dalo prostredie používať na vývoj aplikácie pre mikrokontroléry Coldfire,  je potrebné nainštalovať plugin [7], ktorý je určený pre ladenie aplikácie cez BDM spojenie. Ďalej je treba inštalovať vývojový balík od firmy Code Soucery [8], ktorý obsahuje kompilátory, linker, debugger atď.

Vývojový balík CodeSourcery G++ Lite, je poskytovaný zdarma. Táto verzia neponúka žiadne integrované vývojové prostredie. V balíku sa nachádzajú iba konzolové programy, ktoré sa dajú jednoducho integrovať do prostredia ECLIPSE. Tým dostávame plnohodnotné vývojové prostredie, bez obmedzení kódu, ako je tomu pri použití vývojového prostredia CodeWarrior od firmy Freescale. Jediným obmedzením, ktoré CodeSourcery G++ Lite má, že táto freeverzia neumožňuje preniesť kód programu  do mikrokontroleru.

Na programovanie (prenos kódu) mikrokontrolerov bol používaný externý program CFflasher, ktorý  poskytuje firma Freescale zdarma.

Kompilácia projektu

Pri pridávaní a odoberaní súborov projektu a tiež pri potrebe zmeny nastavení kompilátora alebo linkera je potrebné rešpektovať skutočnosť, že hoci sa používa IDE Eclipse vývojové prostredie, ktoré ponúka možnosť autogenerovania  makefile súboru, v tomto prípade sa musí súbor makefile upravovať ručne v koreňovom adresári projektu. Ďalším špecifikom je nutnosť ponechať úroveň optimalizácie kompilátora na najnižšej úrovni.

Záver

Zadanie úlohy kládlo veľké nároky na výsledné zariadenie. Riešenie sleduje čo najoptimálnejšie splnenie zadania, t.j. preferovať jednoduchosť riešenia pri zachovaní požadovanej funkčnosti a ceny riešenia.

Z hardvérového pohľadu úloha bola stredne náročná, keďže v prevažnej miere je zariadenie vytvorené z hotových modulov, ktorých funkčnosť je otestovaná pri výrobe.

Naopak z pohľadu ovládacieho softvéru je zadanie úlohy  komplexné a vyžadovalo aplikovanie sofistikovaných softvérových technológií - napr. použitie operačného systému FreeRTOS, TCP/IP zásobník atď. 

Ako najkritickejšia časť systému sa ukázala kamera a jej implementácia do už hotového softvéru. Najväčšie oneskorenia systému spôsobuje tento komponent - pomalá a nespoľahlivá funkcionalita kamery. Boli odskúšané rôzne prístupy ako zrýchliť načítavanie obrázku. Rozhodujúcim bolo zistenie, že kamera dokáže bez problémov komunikovať dvojnásobkom  maximálnej  rýchlosti ako udáva výrobca.

Použitím operačného systému FreeRTOS sa komplexnosť riešenia rozdelila na jednotlivé procesy, čo umožnilo rýchly vývoj  a efektívne testovanie aplikácie.

Implementovanie rozpoznávania tváre na obrázkoch sa ukázalo byť vo všeobecnosti jednoduchšie, vzhľadom na existenciu špeciálnych knižníc pre spracovanie obrazu.

Prístupový terminál v konečnej podobe spĺňa zadanie úlohy a umožňuje ďalšie rozšírenie. Mikrokontroler má dostatok výkonu aj voľnej pamäte, aby  aplikácia bola  rozšíriteľná o ďalšie požadované funkcie.

Aplikácia na PC funguje podľa zadania. Spoľahlivo rozlišuje či sa nachádza na obrázku tvár. Ďalším krokom by mohlo byť implementovanie funkcionality o identifikáciu konkrétnej osoby. Takáto úprava by celý prístupový systém posunula do vyššej kategórie bezpečnostných zariadení (napr.  na overovanie prístupu do zabezpečeného priestoru). 

Použitá Literatúra

Ing. Martin Húdik

Odkazy

PřílohaVelikost
Soubor ZdrojakyMCU.rar11.08 MB
Soubor pristupovySystemDP.rar4.73 MB
Hodnocení článku: