Vaikka CCD-kuvakennot saattavat edelleen olla välttämättömiä joissakin erikoissovelluksissa, CMOS-pohjaiset kuva-anturit valtaavat konenäkösovelluksia kiihtyvään tahtiin. Ne tuovat teollisuuden kuvannusjärjestelmiin uuden luokan suorituskykyä ja toiminnallisuutta.
Artikkelin kirjoittaja Max Cavazzana johtaa Avnet Silican toimittamien anturipiirien ja analogisten signaaliketjupiirien markkinointia. |
Konenäköjärjestelmissä käytetään kuvia tietojen keräämiseen kohdejärjestelmästä tai prosessista sekä päätöksentekoon siepattujen kuvien perusteella. Ennen kaikkea valaistus, ohjelmistot ja kamera kuva-antureineen ovat tärkeimmät tekijät konenäköjärjestelmän yleisen toiminnan kannalta, jotta sovelluskohteen tuotannon laatua voidaan parantaa ja tuottavuutta lisätä.
Ylemmällä tasolla tyypillinen konenäkösovellus sisältää jonkinlaisen yhdistelmän perusmittauksia, laskentaa ja tarkastustoimintoja. Kappaleentunnistuksessa voidaan määrittää kohde-esineiden lukumäärää, kokoa ja laadullisia ominaisuuksia. Konenäköjärjestelmää voidaan käyttää esimerkiksi tarkastamaan, että kohteeseen on porattu oikea määrä reikiä ja että kukin reikä on muodoltaan ja sijainniltaan oikeanlainen. Toisessa tyypillisessä sovelluksessa kohteen sijaintitietoa voidaan hyödyntää niin, että robottivarsi voi poimia halutun kappaleen tai voidaan varmistaa, että kappale on sijoitettu oikeaan kohtaan. Saattaa olla myös tarpeen dekoodata tietoa esimerkiksi viivakoodeja lukemalla tai tunnistaa merkkejä vaikkapa rekisterikilvistä tai suorittaa jopa pinnakorkeusmittauksia nestesäiliössä.
Kukin näistä toiminnoista hyödyntää erikoisia ominaisuuksia, joita vaaditaan kamerajärjestelmältä ja viime kädessä sovellukseen valitulta kuva-anturilta. Tärkeintä on ymmärtää siepatun kuvan laadullinen vähimmäistaso, sillä se määrittää, kykeneekö kuva-analyysiä suorittava tietokone tekemään riittävän tarkkoja mittauksia ja pääsemään niiden perusteella oikeaan lopputulokseen. Tämä on kriittinen tekijä. Muut ominaisuudet kuten kuvanopeus, tehonkulutus ja laitteen koko ovat toissijaisia, elleivät siepatut kuvat ole laadultaan analyysiin ja muuhun jatkokäyttöön soveltuvia.
Aiemmin konenäkösovelluksiin vaadittiin yleensä CCD-kuva-antureita niiden korkean kuvanlaadun ja suorituskyvyn vuoksi. Nykyään CMOS-kuva-anturit ovat kuitenkin hypänneet etulinjaan lukuisissa erityyppisissä konenäkösovelluksissa. Tähän ovat syynä useat merkittävät edistysaskeleet CMOS-kuvapikselien rakenteessa. Ne mahdollistavat riittävän korkean kuvanlaadun hyvin monenlaisiin käyttökohteisiin. Nykyaikaiset CMOS-kuva-anturit perustuvat täsmälleen yhtaikaiseen kuvansieppaukseen kykeneviin pikseleihin (global shutter), joiden ansiosta liikkuvat kohteet voidaan kuvata tarkasti ilman liikkeen tuottamia virheitä kuvassa. Tällaista pikselirakennetta käytetään esimerkiksi On Semiconductorin valmistamissa Python-perheen kuva-antureissa. Pikselien sisäinen CDS-kaksoisnäytteistys (Correlated Double Sampling) tarjoaa hyvin vähäkohinaisen lähtösignaalin ja lisäksi sirulle integroitu FPN-korjauspiiri (Fixed Pattern Noise) auttaa säilyttämään kuvanlaadun korkeana. Oheen liitetyn 10-bittisen AD-muuntimen ja 60 desibelin dynamiikka-alueen ansiosta päästään kuvanlaadussa ominaisuuksiin, jotka antavat konenäköjärjestelmille mahdollisuuden hyödyntää tehokkaasti näitä edistyneen CMOS-teknologian tuomia etuja.
Kuva 1: On Semiconductorin kehittämän Python 1300 -kuva-anturin lohkokaavio (LVDS-lähdöt).
Monet konenäkösovellukset pyrkivät toimimaan yhä suuremmilla nopeuksilla tuottavuuden parantamiseksi. Tämä johtaa suoraan laajakaistaista lähtöastetta tukevien kuva-anturien tarpeeseen. CMOS-rakenteisessa anturissa lähtöasteen arkkitehtuuri tarjoaa tämän suoraan, sillä digitaalisia lähtöjä voidaan siinä kätevästi lisätä kaistanleveyden kasvattamiseksi. Esimerkiksi Python-antureissa voi olla jopa 32 erillistä LVDS-lähtöä, joiden avulla ne yltävät kaistanleveydessä tasolle, joka riittää nykyaikaisten tietokoneliitäntöjen (kuten 10GigE ja USB 3.1) vaatimuksiin. Anturit yltävät jopa 80 kuvan sekuntinopeuksiin 25 megapikselin kuvakennoilla, mikä on reippaasti yli tavallisten CCD-anturien suorituskyvyn.
Lisäksi CMOS-lähdön tarjoama joustavuus mahdollistaa Python-piirien kuvanopeuden kasvattamisen, kun toimitaan kuvan mielenkiintoisella alueella eli ROI-muodossa (Region Of Interest), jolloin vain osa kuva-anturimatriisin sisällöstä luetaan lähtöön. Sopivalla suunnittelulla nopeuden kasvu tässä toimintamuodossa voidaan skaalata sekä x- että y-suunnassa ROI-alueella. Joustavalla rakenteella päästään näin suurempiin kuvanopeuksiin kuin olisi saavutettavissa standardi-CMOS-rakenteella, joka skaalautuu ainoastaan ROI-alueen x-akselin suunnassa.
Esimerkkinä voidaan verrata Python 5000 -kuva-anturin todellista kuvanopeutta muuten samanlaisen 5 megapikselin standardi-CMOS-lähtöisen kennon teoreettiseen kuvanopeuteen. Täydellä resoluutiolla kumpikin yltää samaan kuvanopeuteen, joka on noin 100 ruutua sekunnissa. Mutta kun luetaan 720p-kokoista (1280 x 720) aluetta kuvasta, Python-anturin nopeus kasvaa lähes 600 kuvaan sekunnissa, kun standardi-CMOS-lähtöinen anturi yltää vain 300 ruutuun sekunnissa. Tämä lisänopeus voi tarjota tärkeän edun, kun halutaan maksimoida laitteen kokonaiskuvanopeus.
Kuva 2: On Semiconductorin kehittämä Python 5000 -kuva-anturipiiri.
Vaikka konenäkösovelluksissa usein vaaditaan suurta resoluutiota, jotta siepatusta kuvasta saadaan tarkkoja yksityiskohtia, tämä tarve tulee täyttää niin, ettei informaatiota siepata liikaa, mikä vain hidastaisi tarpeettomasti datan käsittelyprosessia. Sopivan pikselimäärän lisäksi on tärkeää, että pikselit on järjestetty oikeaan kuvasuhteeseen kuvansieppauksen optimoimiseksi kussakin sovelluksessa. Esimerkiksi likimain neliömäisiä kuvasuhteita (1:1) käytetään usein kappaleiden poimintaa ja asettamista (pick and place) suorittavien koneiden sovelluksissa, jotta kameran objektiivin täysi näkökenttä saadaan hyödynnetyksi mahdollisimman tehokkaasti.
Erilaisia spektraalisia herkkyyksiä (väri, mustavalkoinen, laajennettu NIR-alue) saatetaan myös vaatia, jotta kuvausjärjestelmä saataisiin optimoitua soveltumaan kunkin kohteen asettamiin erityisiin kuvantamisvaatimuksiin. Kameran rakenteen ja valmistusprosessin optimoimiseksi kameranvalmistaja haluaa yleensä löytää yhtenäisen anturipiiriperheen, johon kuuluu useita eri resoluutio- ja värialueversioita, jotta valmistaja voi nopeasti ja tehokkaasti kehittää kattavan valikoiman kameravaihtoehtoja loppuasiakkailleen.
Python-anturiperhe on hyvä esimerkki siitä, miten tällainen tuoteperhe voidaan ottaa käyttöön. Siihen kuuluu yli 40 vaihtoehtoista anturikennoa, joiden resoluutio vaihtelee VGA-tasosta 25 megapikseliin. Antureita on saatavissa useina eri värialueiden herkkyysversioina: mm. mustavalkoinen, Bayer-värit ja laajennettu lähi-infrapuna (exNIR). Useista anturityypeistä on saatavissa myös virtapihit versiot, ja saatavissa on myös versioita, joiden kuva-anturi on peitetty poistettavalla kalvolla, joka suojaa anturin herkkää pintaa kameran asennusvaiheen aikana. Kameranvalmistajat voivat tukea koko anturiperhettä käyttäen vain kahta erilaista piirilevyä, ja koko perheelle on saatavissa täysi evaluointituki auttamaan tuotekehitysvaiheen nopeuttamista.
Käytännön toteutukset
Suunnittelijoille, jotka haluavat tutustua Python-antureiden tarjoamaan suorituskykyyn, Avnet Silica tarjoaa On Semiconductorin tuottamia evaluointisarjoja, jotka tukevat koko anturiperheen valikoimaa. Evaluointipaketti sisältää kuva-anturipiirin alustalevyineen, FPGA-evaluointikortin sekä tarvittavat lisävarusteet ja ohjelmistot anturipiirin perusteelliseen arviointiin. Paketin joustava rakenne antaa mahdollisuuden arvioida myös muita Python-perheen antureita – VGA:sta 25 megapikseliin sekä m/v-, väri- ja exNIR-versioina – hankkimalla lisää anturipiirejä tai sopivalla alustalevyllä varustettuja kuva-antureita.
Kuva 3: Python-kuva-anturin evaluointipaketti.
Kun sovellukselle on löydetty sopivantyyppinen kuva-anturi, suunnittelijan täytyy tämän jälkeen miettiä kameran muuta rakennetta. Avnet Silican tuoteskaala tarjoaa tähän kattavan valikoiman On Semiconductorin tuotteita, joiden avulla CMOS-kuva-anturiin perustuvat sovellukset heräävät eloon valmiina laiteratkaisuina: sulautetun elektroniikan korteista erillisiin teholähteisiin ja signaaliketjun komponentteihin. Näiden avulla suunnittelijat voivat valita modulaarisen ratkaisun mukavuuden ja erillisratkaisun joustavuuden välillä.
Jos suunnittelija haluaa konenäköratkaisunsa markkinoille mahdollisimman nopeasti, ei ehkä ole mahdollista rakentaa täysin uutta tuotetta alusta alkaen. Tällaisiin sovelluksiinkin Avnet Silicalla on valikoimassaan tuotteita suunnittelijoiden avuksi. Sellainen on esimerkiksi On Semiconductorin kameramoduuli Python-1300-C. Se perustuu täydelliseen puolen tuuman SXGA-tasoiseen anturikennoon, jonka resoluutio on 1280 x 1024 pikseliä. Kameramoduulia voidaan käyttää yhdessä MicroZed Embedded Vision Carrier -kortin ja Smart Vision -kehityssarjan kanssa. Ne muodostavat yhdessä täydellisen laitekokoonpanon, joka jättää suunnittelijan tehtäväksi ainoastaan sovellusohjelmiston kirjoittamisen.