Mukautuvien reunanäkösovellusten nopea rakentaminen ja käyttöönotto käyttämällä tuotantovalmista alustaa

Kirjoittaja Stephen Evanczuk

Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa

Tekoälyn (AI) käyttö reunateknologiaan pohjautuvissa älykameroissa on yleistynyt nopeasti yhä useammissa sulautetuissa näkösovelluksissa, kuten konenäössä, turvallisuussovelluksissa, vähittäiskaupassa ja robotiikassa. Vaikka helppokäyttöisten koneoppimisalgoritmien (ML) nopea kasvu onkin lisännyt kiinnostusta tekoälyä kohtaan, kehittäjillä on edelleen vaikeuksia pitää kiinni tiukoista projektiaikatauluista sekä parantaa reunapohjaisten sovellusten suorituskykyä ja vähentää virrankulutusta.

Asioita mutkistaa entisestään se, että jopa vasta käyttöönotetuista ratkaisuista voi äkkiä tulla vanhentuneita nopeasti muuttuvien sovellusvaatimusten ja jatkuvasti parantuvien ja kehittyvien algoritmien vuoksi.

Tässä artikkelissa esitellään Xilinxin joustava SOM (System-on-Module) -järjestelmämoduuli, jonka avulla kehittäjät voivat toteuttaa nopeasti reunakäyttöön suunnattuja älykameraratkaisuja. Artikkelissa näytetään, miten kehittäjät voivat mukauttaa näitä ratkaisuja helpommin muuttuvien tarpeiden mukaan tärkeistä viive- ja tehovaatimuksista tinkimättä.

Näkösovellusten suorituksen nopeuttaminen

Xilinxin Kria K26 -järjestelmämoduuli perustuu kustomoituun Zynq UltraScale+ -moniprosessorijärjestelmään (MPSoC). Se tarjoaa robustin sulautetun prosessointijärjestelmän, joka koostuu 64-bittisestä neliytimisestä Arm Cortex-A53 -sovellusprosessoriyksiköstä (APU), 32-bittisestä kaksiytimisestä Arm® Cortex®-R5F -reaaliaikaprosessoriyksiköstä (RPU) ja Arm Mali-400MP2 3D -grafiikkasuorittimesta (GPU). Järjestelmämoduuli yhdistää moniprosessorijärjestelmäpiiriin neljä gigatavua 64-bittistä DDR4 (Double Data Rate 4) -muistia ja siihen liittyvän muistiohjaimen sekä useita haihtumattomia muistilaitteita (NVM), mukaan lukien 512 megabitin (Mbit) QSPI (Quad Serial Peripheral Interface) -muisti, 16 gigatavun (Gbyte) eMMC (Embedded Multi-Media Card) -muisti ja 64 kilobitin (Kbit) EEPROM (Electrically Erasable Programmable Read-Only Memory) -muisti (kuva 1).

Kaaviossa Xilinx Kria K26 -järjestelmämoduuli (suurenna klikkaamalla)Kuva 1: Xilinx Kria K26 -järjestelmämoduulissa yhdistyvät kustomoidun Zynq UltraScale+ -moniprosessorijärjestelmäpiirin kattavat prosessointikyvyt ja Trusted Platform Module 2.0 (TPM2) sekä dynaaminen ja haihtumaton muisti. (Kuvan lähde: Xilinx)

Xilinx täydentää laitteen prosessointi- ja muistiresursseja laajalla ohjelmoitavalla logiikkajärjestelmällä, johon kuuluu 256 000 järjestelmän logiikkasolua, 234 000 konfiguroitavaa logiikkalohkokiikkua (CLB), 117 000 CLB-hakutaulukkoa (LUT) ja yhteensä 26,6 megabittiä (Mbit) muistia. Tämä muisti koostuu hajautetusta RAM (Random-Access Memory) -muistista, RAM-lohkomuistista ja ultraRAM-lohkoista eri konfiguraatioina. Lisäksi ohjelmoitavaan logiikkajärjestelmään kuuluu 1248 viipaletta digitaaliseen signaalinkäsittelyyn (DSP), neljä lähetin-vastaanotinta ja H.264- ja H.265-videokoodekki. Tämä koodekki soveltuu jopa 32 virran samanaikaiseen koodaukseen ja dekoodaukseen eli yhteensä jopa 3840 x 2160 pikseliin 60 kuvan sekuntinopeudella (fps). Järjestelmämoduulin kaksi 240-nastaista liitintä mahdollistavat toimilohkojen ja oheislaitteiden suoran käytön käyttäjän konfiguroitavissa olevien tulojen/lähtöjen (I/O) kautta.

Tämä prosessoriytimien, muistin ja ohjelmoitavan logiikan yhdistelmä tarjoaa ainutlaatuisen joustavuus- ja suorituskykytason, joka poistaa ML-algoritmien huippunopeaan suorittamiseen käytettävien grafiikkasuorittimien keskeiset puutteet. Kiinteän datavirran tarjoaviin grafiikkasuorittimiin verrattuna kehittäjät voivat konfiguroida K26-järjestelmämoduulin datapolun uudelleen suoritustehon optimoimiseksi ja latenssin vähentämiseksi. Lisäksi K26-järjestelmämoduuliarkkitehtuuri soveltuu erityisen hyvin ns. hajanaisiin verkkoihin, joita käytetään kasvavassa määrin ML-sovellusten ytimessä.

K26-järjestelmämoduulin ohjelmoitavuus parantaa myös muistin pullonkauloja, jotka sekä lisäävät virrankulutusta että rajoittavat suorituskykyä paljon muistia vaativissa sovelluksissa. Tällaisiin kuuluvat esimerkiksi grafiikkasuorittimia, moniydinprosessoreita tai jopa kehittyneitä järjestelmäpiirejä käyttävät perinteisillä arkkitehtuureilla rakennetut ML-sovellukset. Näillä perinteisillä laitteilla toteutetuissa sovelluksissa ulkoisen muistin osuus järjestelmän virrankulutuksesta on yleensä noin 40 prosenttia, kun taas prosessoriytimien ja sisäisen muistin osuus on yleensä kummankin noin 30 prosenttia. Sen sijaan kehittäjät voivat hyödyntää K26-järjestelmämoduulin sisäisiä muistilohkoja ja uudelleenkonfiguroitavuutta ja toteuttaa ratkaisuita, jotka vaativat vain vähän tai ei lainkaan ulkoisen muistin käyttöä. Tuloksena on parempi suorituskyky ja pienempi virrankulutus kuin perinteisillä laitteilla (kuva 2).

Kaavio: Xilinx Kria käyttää tehokasta näköliukuhihnaa (suurenna klikkaamalla).Kuva 2: Sulautettuihin suorittimiin ja tyypillisiin järjestelmäpiireihin perustuvat järjestelmät vaativat useita virtaa kuluttavia muistioperaatioita sovellusten suorittamiseen. Xilinx Kria -järjestelmämoduuliin perustuvat järjestelmät sen sijaan hyödyntävät tehokasta näköliukuhihnaa, joka voidaan suunnitella siten, ettei DDR-operaatioita tarvita. (Kuvan lähde: Xilinx)

Korkean suorituskyvyn, alhaisen virrankulutuksen ja laajan uudelleenkonfiguroitavuuden ohella K26-järjestelmämoduuli auttaa takaamaan tietoturvan arkaluonteisiin sovelluksiin tarkoitettujen älykameroiden suunnittelussa. Järjestelmämoduuliin sisäänrakennetun TPM-turvalaitteen lisäksi moniprosessorijärjestelmäpiiriin kuuluu dedikoitu konfigurointiturvayksikkö (CSU), joka tukee turvallista käynnistystä, manipuloinnin valvontaa, suojattua avaintallennusta ja laitteistosalauskiihdytintä. Konfigurointiturvayksikkö, sisäinen sirulla sijaitseva muisti (OCM) ja suojattu avaintallennus luovat yhdessä turvallisen perustan, jolla taataan luotettava laitteistopohja turvallista käynnistystä varten ja luotettava alusta sovellusten suorittamista varten.

K26-järjestelmämoduulin kattavat ominaisuudet tarjoavat tehokkaan perustan vaativien reunapohjaisten sovellusten toteuttamiseen. Jokainen sovellus asettaa kuitenkin omat vaatimuksensa sovelluskohtaisiin oheislaitteisiin ja muihin komponentteihin liittyville ominaisuuksille ja toiminnoille. Jotta sovelluskohtaisten ratkaisujen toteuttaminen olisi helpompaa, K26-järjestelmämoduuli voidaan rakenteensa ansiosta kytkeä lisäoheislaitteet sisältävään kantajakorttiin. Xilinx esittelee tätä lähestymistapaa Kria K26 -pohjaisen KV260 Vision AI -aloitussarjan avulla.

Aloitussarja yksinkertaistaa näkösovellusten kehittämisestä

Näkösovelluksiin tarkoitettuun kantajakorttiin ja siihen kytkettyyn K26-järjestelmämoduuliin perustuva Xilinx KV260 Vision AI -aloitussarja sisältää valmiin alustan erityisesti älykkäiden näkösovellusten välitöntä evaluointia ja nopeaa kehittämistä varten. K26-järjestelmämoduuli sisältää tarvittavat prosessointiominaisuudet, kun taas aloitussarjan kantajakortti tarjoaa tehonhallinnan, käynnistyksen ja resetoinnin sekvensointi mukaan lukien, sekä rajapintavaihtoehdot ja liittimet kameraa, näyttöä ja microSD-korttia varten (kuva 3).

Kaavio Xilinx KV260 Vision AI -aloitussarjastaKuva 3: Xilinx KV260 Vision AI -aloitussarja tarjoaa valmiin älykkään näköratkaisun, jossa käytetään näkösovelluksiin tarkoitettua kantajakorttia ja siihen kytkettyä K26-järjestelmämoduulia. (Kuvan lähde: Xilinx)

Useiden rajapintojen ohella kantajakortti tarjoaa Raspberry Pi -liitännän ja kahden IAS-liitännän (Image Access System) kautta tuen useille kameroille. Toinen liitännöistä on yhdistetty onsemin 13 megapikselin (MP) kuvakennoprosessoriin (ISP) AP1302, joka soveltuu kaikkiin kuvankäsittelytoimintoihin.

Xilinx nopeuttaa näköpohjaisten sovellusten toteuttamista tällä näkölaitteistoalustalla tarjoamalla valmiita näkökiihdytyssovelluksia sekä kattavan valikoiman ohjelmistotyökaluja ja kirjastoja, joita voidaan käyttää asiakaskohtaiseen kehitystyöhön.

Kiihdytyssovellukset tarjoavat välittömiä ratkaisuja

Xilinx tarjoaa useita valmiita ratkaisuja näkökiihdytyssovellusten välittömään evaluointiin ja nopeaan kehittämiseen. Ne esittelevät useita suosittuja käyttötapauksia, kuten kasvojen tunnistus käyttäen älykameran ohjelmoitavaa logiikkaa, jalankulkijoiden tunnistus ja seuranta, vikojen tunnistus ja parin muodostavien avainsanojen paikannus moniprosessorijärjestelmäpiirin prosessointijärjestelmän avulla. Jokainen Xilinx Kria App Storesta saatavilla oleva sovellus tarjoaa valmiin ratkaisun kyseiseen käyttötapaukseen sekä siihen liittyvät työkalut ja resurssit. Esimerkiksi älykameran kasvontunnistussovellus käyttää KV260-kantajakortin sisäänrakennettua AR1335-kuvakennoa ja AP1302-kuvakennoprosessoria kuvien ottamiseen ja kortin HDMI- tai DisplayPort (DP) -lähtöä tuloksen näyttämiseen. Kasvontunnistuksen prosessointia varten sovellus konfiguroi K26-järjestelmämoduulin niin, että se tarjoaa näköliukuhihnakiihdyttimen ja valmiin koneoppimisen päättelykoneen kasvontunnistusta, ihmisten laskentaa ja muita älykamerasovelluksia varten (kuva 4).

Kuva valmiista kiihdytyssovelluksista Xilinx Kria App Storessa (suurenna klikkaamalla)Kuva 4: Xilinx Kria App Storesta ladattavat valmiit kiihdytyssovellukset ovat heti valmiita käytettäväksi KV260-aloitussarjassa, ja ne tarjoavat täydellisiä ratkaisuja näkökäyttömalleihin, kuten kasvojen tunnistukseen. (Kuvan lähde: Xilinx)

Xilinx App Storen valmiit kiihdytyssovellukset tarjoavat valmiin toteutuksen ja kattavan tuen, minkä ansiosta kehittäjät voivat ottaa ratkaisut käyttöön alle tunnissa, vaikka heillä ei olisi kokemusta ohjelmoitavista porttimatriiseista. Sovellusta evaluoidessaan he voivat käyttää mukana tulevaa ohjelmistopinoa toimintojen muokkaamiseen ja vaihtoehtoisten ratkaisujen tutkimiseen. Kattavampaa asiakaskohtaista kehitystyötä varten Xilinx tarjoaa kattavan valikoiman kehitystyökaluja ja -kirjastoja.

AI-kehitysympäristö ja työkalut nopeuttavat asiakaskohtaista kehitystyötä

Xilinxin Vitis AI -kehitysympäristö tarjoaa tekoälypohjaisten sovellusten asiakaskohtaiseen kehittämiseen optimoituja työkaluja, kirjastoja ja valmiiksi koulutettuja malleja, joita voidaan käyttää perustana muokatuille asiakaskohtaisille malleille. Xilinxin Yocto-pohjainen PetaLinux Embedded Linux -ohjelmistokehityssarja (SDK) tarjoaa ajonaikaista käyttöympäristöä varten kaikki sulautettujen Linux-järjestelmien rakentamiseen, kehittämiseen, testaamiseen ja käyttöönottoon tarvittavat ominaisuudet.

Vitis AI -ympäristö on suunniteltu sekä asiantuntijoille että kehittäjille, joilla ei ole kokemusta ohjelmoitavista porttimatriiseista. Se poistaa taustalla olevan piilaitteiston yksityiskohdat, jolloin kehittäjät voivat keskittyä tehokkaampien ML-mallien rakentamiseen. Vitis AI -ympäristö on itse asiassa integroitu syväoppivaan avoimen lähdekoodin Apache Tensor Virtual Machine (TVM) -kääntäjäpinoon, minkä ansiosta kehittäjät voivat kääntää mallinsa erilaisista kehyksistä halutulle prosessorille, grafiikkasuorittimelle tai kiihdyttimelle. Käyttämällä Vitis AI -ympäristöä TVM-virtuaalikoneessa käyttäjät voivat parantaa olemassa olevia mallejaan kiihdytetyillä näkötoiminnoilla ja siirtää laskentaintensiiviset näkötehtävät, kuten syväoppimismallit, Kria-järjestelmämoduuliin. Xilinxin AI Optimization -työkalu auttaa kehittäjiä optimoimaan syväoppimismalleja entisestään. Se voi karsia neuroverkkoja niiden Gops (Giga Operations Per Second) -kompleksisuuden vähentämiseksi, kasvattaa kuvien kuvataajuutta (fps) ja vähentää yliparametrisoituja malleja pakkaamalla ne jopa 50 kertaa pienemmiksi ilman, että sillä on juurikaan vaikutusta mAP (mean average Precision) -tarkkuuteen (kuva 5).

Kaaviossa Xilinx Researchin tapaustutkimus (suurenna klikkaamalla).Kuva 5: Xilinx Researchin tapaustutkimus osoitti, kuinka muutama karsintaiteraatio Xilinxin AI Optimization -työkalun avulla voi vähentää nopeasti neuroverkon Gops-kompleksisuutta ja samalla kasvattaa kuvien kuvataajuutta ilman, että sillä on juurikaan vaikutusta tarkkuuteen. (Kuvan lähde: Xilinx)

Xilinxin avoimen lähdekoodin Vitis Vision Libraries -kirjastot on tarkoitettu asiakaskohtaisten näkösovellusten toteuttamiseen. Ne on optimoitu Xilinx-alustoille ja ne tarjoavat korkean suorituskyvyn sekä käyttävät vähän resursseja. Ne tarjoavat tutun OpenCV-pohjaisen käyttöliittymän. Analytiikkaan tarkoitettu Xilinx Video Analytics SDK -sovelluskehys auttaa kehittäjiä rakentamaan tehokkaampia näkö- ja videoanalyysiliukuhihnoja ilman syvällistä porttimatriisiosaamista. Video Analytics SDK perustuu laajalti käytettyyn avoimen lähdekoodin GStreamer-kehykseen, ja kehittäjät voivat luoda sen avulla nopeasti asiakaskohtaisia kiihdytysytimiä GStreamer-liitännäisinä SDK-kehykseen integroitaviksi.

Näiden työkalujen avulla tyypillinen sulautettujen järjestelmien kehittäjä voi helposti koota asiakaskohtaisia kiihdytysliukuhihnoja asiakaskohtaisilla kiihdytysytimillä tai ilman niitä.

Yhteenveto

Laskentaintensiiviset ML-algoritmit ovat mahdollistaneet älykkään näköteknologian käytön monissa reunasovelluksissa, mutta kehittäjien on vaikea täyttää reunapohjaisten näköjärjestelmien suurta suorituskykyä, vähäistä virrankulutusta ja mukautuvuutta koskevat lukuisat haasteet. Xilinxin Kria K26 -järjestelmämoduuliratkaisu tarjoaa laitteistoalustan kehittyneiden algoritmien kiihdyttämiseen ilman tiukkojen tehobudjettien ylittymistä. Kria K26 -pohjainen aloitussarja tarjoaa valmiita sovelluksia, joita käyttämällä kehittäjät voivat aloittaa välittömästi älykkäiden näkösovellusten evaluoinnin ja luoda asiakaskohtaisia reunalaiteratkaisuja monipuolisessa kehitysympäristössä.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Tietoja kirjoittajasta

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk has more than 20 years of experience writing for and about the electronics industry on a wide range of topics including hardware, software, systems, and applications including the IoT. He received his Ph.D. in neuroscience on neuronal networks and worked in the aerospace industry on massively distributed secure systems and algorithm acceleration methods. Currently, when he's not writing articles on technology and engineering, he's working on applications of deep learning to recognition and recommendation systems.

Tietoja tästä julkaisijasta

DigiKeyn kirjoittajat Pohjois-Amerikassa