Sulautetun konenäön järjestelmät yleistyvät nopeasti erityisesti IoT-ryntäyksen seurauksena. Kaikkialle halutaan lisää laiteälyä ja kuva-antureita. Suunnittelijoille kaikki tarvittavat elementit ja työkalut ovat jo valmiina.
Artikkelin kirjoittaja Michaël Uyttersprot toimii Avnet Silican sulautettujen konenäkötuotteiden markkinointipäällikkönä. |
Visuaalinen data on todennäköisesti sisällöltään rikkainta kaikesta mahdollisesta anturi-informaatiosta. Tästä syystä tiedemiehet ja insinöörit ovat jo vuosikymmeniä yrittäneet ymmärtää ja hyödyntää erilaisia kuvantamistekniikoita sekä kehittää sovelluksille algoritmeja, jotka auttavat koneita ’näkemään’. Ensimmäiset kaupalliset reaalimaailman sovellukset, joita alettiin kutsua konenäköjärjestelmiksi, analysoivat yleensä nopeasti liikkuvia kohteita tavoitteenaan tarkkailla ja ilmaista virheitä erilaisissa tuotteissa. Myöhemmin merkittävät parannukset prosessointitehossa, tehonkulutuksessa, kuva-antureissa, tietokonealgoritmeissa ja koneoppimisessa ovat kuitenkin nostaneet konenäkötekniikat paljon tätä korkeammalle tasolle.
Nykyään sulautetun elektroniikan ja konenäön yhdistäminen on käytännössä tarkoittanut laitteisiin sulautettujen näköjärjestelmien toteuttamista. Lähivuosina nämä sulautetun konenäön tekniikat tulevat nopeasti yleistymään. Niihin kuuluvat myös heikossa valaistuksessa toimivat ja teräväpiirtoiseen toistoon yltävät sekä huippuluokan kuvantamisjärjestelmiin erityisesti suunnitellut kuvankäsittelytoiminnot. Ripeästi kasvava joukko konenäköä hyödyntäviä tuotteita syntyy erittäin laajalle sovellusalueelle esimerkiksi kulutus- ja teollisuuselektroniikassa, ajoneuvoissa, terveydenhuollossa ja kotiautomaatiossa.
Uusi aalto nousee
Esineiden internet (IoT) tulee lähivuosina muuttamaan koko elektroniikkateollisuutta dramaattisesti, kun miljardeja laitteita kytketään netin välityksellä yhteen. Tavoitteena on tehdä kaikista laitteista älykkäitä ja netin kautta tavoitettavia mistä päin maailmaa tahansa. Laitteita pidetään yleensä älykkäinä silloin, kun ne merkittävästi helpottavat elämäämme. Hyvä esimerkki tällaisesta on kulunvalvontajärjestelmä, joka tunnistaa videopuhelimen kautta henkilön ja päästää hänet sisään haluttuun rakennukseen.
Yleisesti ottaen laitteet ovat selvästi arvokkaampia silloin, kun ne kykenevät vuorovaikuttamaan fyysisen maailman kanssa. Ja visuaalinen informaatio on erityisen tehokasta: kerätyn tiedon määrä on valtava ja sitä hyödyntämällä voidaan merkittävästi helpottaa vuorovaikutusta fyysisen ympäristön kanssa. Klassinen esimerkki on robotiikka, jossa kuva-antureita on käytetty kehityksen alkuajoista lähtien. Visuaalisen tuloinformaation järjestelmälle tuottavat kuva-anturit toimivat robotin ’silminä’, jotka auttavat sitä käyttämään mahdollisimman tehokkaasti järjestelmän lähtönä toimivia ohjausmoottoreita.
Lisäksi viimeaikaiset kehitysaskeleet konvoluutioneuroverkoissa (CNN, Convolutional Neural Network) ja muissa neuroverkkotekniikoissa tarjoavat uusia mahdollisuuksia kehittää itseoppivia älykkäitä konenäköjärjestelmiä.
Haasteita riittää
Sulautetulla konenäöllä on vahva potentiaali luoda valtavasti lisäarvoa lähes kaikilla elektroniikan markkinasektoreilla, ja sen merkitys kasvaa jatkuvasti laitteiden ja ohjelmistojen kehittyessä. Sulautetun konenäkösovelluksen kehittämisellä koko järjestelmän kattavaksi on kuitenkin lukuisia haasteita.
Olivat kyseessä sitten videot tai yksittäiskuvat, kerätyn kuvadatan raakamateriaali on laatunsa vuoksi aina optimoitava ja prosessoitava. Ellei esimerkiksi kuvauksessa käytettävien linssien laatu ole riittävän hyvä, se vaikuttaa koko kuvankäsittelyprosessiin. Lisäksi kerätyn datan määrä voi olla valtavan suuri erityisesti korkean resoluution videoissa ja reaaliaikaisessa prosessoinnissa.
Monet huippuluokan konenäkösovellukset vaativatkin rinnakkaisprosessointijärjestelmiä tai erittäin pitkälle kehitettyjä erikoispiiriratkaisuja kuten GPU-, DSP- ja FPGA-piirejä tai oheissuorittimia. Kustannukset, fyysinen koko ja tehonkulutus kuitenkin rajoittavat yleensä voimakkaasti sulautetun näköjärjestelmän suunnittelua. Vaikka riittävän tehokkaasti toimiva huipputason kuvankäsittelymoottori olisikin saatavilla, se saattaa olla kaavailtuun sovellukseen liian suuri, kallis tai tehosyöppö.
On tärkeää, että sulautettu konenäkö suunnitellaan toimimaan todellisissa olosuhteissa, jotka saattavat jatkuvasti muuttua sekä valaistuksen, liikkeen että asennon suhteen. Erikoistuneiden kuva-algoritmien käyttöönotto datanhallinnassa on avainasia näissä tilanteissa. Pelkkiin simulaatioihin tukeutuminen ei riitä, vaan tarvitaan reaalimaailman testausta, mikä voi olla aikaa vievää. Tämä koskee erityisesti ajoneuvojen, turvajärjestelmien ja robotiikan sovelluksia.
Konenäön elementit
Sulautetut konenäköjärjestelmät sisältävät laajan valikoiman erilaisia elementtejä ja niiden integroimiseen on lukuisia eri tapoja, mutta ennen kaikkea järjestelmään tarvitaan kuvantamisen, kuvankäsittelyn ja tietokonenäön tekniikoita.
Kuva 1. Tyypillinen korkealuokkainen sulautettu konenäköjärjestelmä.
Järjestelmän tulopuolella kuvainformaation keräämiseen käytetään nykyään eniten CMOS- ja CCD-pohjaisia (Charge Coupled Device) kuva-antureita. Vaikka CCD-kennot tarjoavat kaiken kaikkiaan parempaa kuvanlaatua, CMOS-kuvakennojen ripeä kehitys on viimeisen kymmenen vuoden aikana kuronut laatueroa kiinni. Lisäksi CMOS-kennon toimintakyky hämärässä, alhainen tehonkulutus ja edullinen hinta ovat jo johtaneet niiden käytön yleistymiseen CCD-anturien ohi.
CMOS-teknologiaa kehitetään edelleen ja jatkuvia parannuksia saadaan kennojen pikselimäärään ja -tiheyteen, toimintanopeuteen sekä kaistaleveyteen. Myös entistä pienempiä anturikoteloita ja -moduuleja on tullut saataville, mikä helpottaa entisestään kompaktien kaksoiskamera- ja stereonäkösovellusten toteuttamista. Niiden avulla voidaan kompensoida kuvasignaalin häiriöitä, lisätä kuvan syvyyttä, laajentaa dynamiikka-aluetta ja parantaa terävyyttä.
Järjestelmän prosessorin valinnan lähtökohtina tulisivat olla reaaliaikainen suorituskyky, tehonkulutus, kuvan tarkkuus sekä käytettävien algoritmien monimutkaisuus. Prosessointitehot ja kuva-algoritmit ovat kehittyneet jatkuvasti kuten myös järjestelmään integroitavat paikannuksen ja kartoituksen SLAM-tekniikat (Simultaneous Localisation And Mapping) esimerkiksi ajoneuvoja, robotteja ja drooneja varten.
Järjestelmään tarvitaan myös paikallinen muisti kuvien vertailemiseksi sekä kuvadatan tallentamiseksi tulevia analyysejä varten. Tallennetaan sitten ainoastaan joitakin osia kuvista tai kaikki kerätty kuvadata, tallennukseen tarvitaan sekä haihtuvaa että haihtumatonta muistia. Myös erityiset kuva-algoritmit ovat keskeinen osa näköjärjestelmää. Algoritmeilla voidaan hallita kuvainformaation syöttöä järjestelmään sekä kohentaa kuvanlaatua erityistarpeita varten esimerkiksi parantamalla kuvan värisisältöä ja kohteen havainnointia.
Muutaman vuoden takaisesta käyttöönotostaan lähtien konenäön avoimen lähdekoodin kirjasto OpenCV on dramaattisesti helpottanut järjestelmien kehitystyötä ja algoritmien toteutusta. OpenCV sisältää kaikki kuvapohjaisiin sovelluksiin tarvittavat ohjelmakoodit C/C++-funktioineen, mikä tekee algoritmien luomisen ja ajamisen sulautetuissa prosessoreissa huomattavasti aiempaa helpommaksi. Lukuisat kolmannet osapuolet tarjoavat kuvien ja videoiden prosessointiin OpenCV-pohjaisia ratkaisuja tai vastaavanlaisia koodikirjastoja tai jopa ohjelmistokehyksiä lukuisiin eri sovelluksiin. Myös mikropiirien toimittajat tarjoavat omille piireilleen kuvankäsittelyyn optimoituja koodikirjastoja, joiden avulla piirien kuvankäsittelyominaisuuksia voidaan eri sovelluksissa parantaa.
Toinen yhä tärkeämmäksi käyvä elementti, erityisesti näin IoT-järjestelmien nopean yleistymisen aikakaudella, on liitettävyys. Se voidaan toteuttaa joko langallisesti tai langattomasti kunkin sovelluksen asettamista vaatimuksista riippuen. Monissa tapauksissa kannattaa lisäksi harkita algoritmianalyysiä suorittavien ohjelmistojen käyttöönottoa pilvipohjaisissa palvelimissa.
Kaiken kaikkiaan on tärkeää valita ensin oikeat elementit järjestelmään ja sen sovelluksiin, ja siirtyä sitten hienosäätämään näitä osia, joihin lukeutuvat sekä laitteistot, ohjelmistot että algoritmit. Tämä ei ole aina kovin helppoa sulautetun konenäköjärjestelmän monimutkaisuuden vuoksi. Kehittäjien tuleekin ehdottomasti käyttää ammattitason työkaluja vähentämään kehitystyön kustannuksia, kestoaikaa ja riskejä, jotta sulautetun konenäön projektit saadaan nopeasti markkinoille.
Valmiita kokonaisratkaisuja
Avnet Silicalla on laaja kokemus asiakkaiden auttamisesta sulautettujen konenäkösovellusten kehitystyössä. Yhtiö tarjoaa lähes kaikki tarvittavat rakennuspalikat täydellisen sulautetun konenäköjärjestelmän toteuttamiseksi. Näitä rakennelohkoja ovat optimoidut laitteet, ohjelmistot ja ajurit eri sovelluksiin. Saatavilla oleva valikoima sisältää muun muassa järjestelmän tulopuolen kuva-antureita ja kameramoduuleja, edistyneitä laiteosia kuten suorittimia sekä muisti- ja tehokomponentteja, joita tarvitaan prosessoinnin ja tehonkulutuksen kriittisten vaatimusten täyttämiseen. Kaikkia rakenneosia tuetaan ohjelmistonkehitystyökaluilla, kamera-ajureilla, monipuolisilla suunnitteluesimerkeillä ja kattavilla tietopaketeilla kuvankäsittelyn ohjelmistoista ja algoritmeista.
Kuva 2. Sulautetun konenäön ratkaisut.
Asiakkaiden itse suunnittelemien sulautettujen konenäköalustojen ja -tuotteiden kehitystyön tukemisen lisäksi Avnet Silica tarjoaa myös laajan valikoiman kehittämiään tasokkaita kamerasovelluksia, jotka ovat valmiita otettavaksi suoraan käyttöön. Esimerkiksi Picozed on valmis sulautetun konenäön SoM-kehityskortti (System on Module), joka puolestaan perustuu Xilinxin ohjelmoitavaan SoC-järjestelmäpiiriin Zynq 7000. Picozed-moduuli on ideaalinen kehityskortti konenäkösovelluksiin, sillä se sisältää kaikki tarvittavat piirit, ohjelmistot ja IP-lohkot, joita asiakkaat tarvitsevat omien videosovellustensa kehittämiseen. Kortti tukee reVISION-alustaa, joka on kehitystyön nopeuttamiseen tarkoitettu, konenäön ja koneoppimisen sovelluksiin optimoitu uudelleenkonfiguroitava kiihdytyspino. Se sisältää kaikki resurssit konenäön alustojen, algoritmien ja sovellusten kehittämiseksi. Mukana on myös joukko raudalla kiihdytettyjä OpenCV-funktioita sekä tuki suosituimmille neuroverkoille.
Kuva 3. Picozed on monipuolinen sulautetun konenäön kehityskortti.
Toinen esimerkki on Avnet Silican kamerankehityssarja STM32F7. Mbed-yhteensopiva edullinen kehityssarja tarjoaa alhaisen virrankulutuksen, USB-liitännän, 4,3-tuumaisen kapasitiivisen kosketusnäytön sekä kaikki tarvittavat piirit ja ohjelmistot sulautetun konenäköjärjestelmän nopeaan kehitykseen IoT-sovelluksissa, kotiautomaatiossa ja muissa videosovelluksissa.
Kolmas monipuolinen kehitysväline on tehopihi Kinetis-paketti, joka perustuu NXP:n mikro-ohjaimeen Kinetis K82F Cortex-M4. Se sisältää taipuisalla kiinnityksellä varustetun minikokoisen VGA-kameramoduulin, 90 asteen vaakanäkymän tarjoavan objektiivin sekä IR-suotimen. Kamera pystyy kuvaamaan sekä yksittäisotoksia että reaaliaikaista VGA-tason videokuvaa.
Avnet Silica jatkaa edelleen tämän alueen kehitystyötä ja aikoo tuoda jatkossa saataville lisää valmiita kehityssarjoja, joiden avulla asiakkaat voivat toteuttaa laajan valikoiman erilaisia edistyneitä sulautetun konenäön ratkaisuja.
Lisätietoja Avnet Silican sulautetun konenäön sovelluksista on saatavissa osoitteessa: https://www.avnet-silica.com/embedded-vision