EUR | USD

Tunnista objektit helposti käyttämällä sulautetussa IoT-solmussa koneoppimiskoodia

Kirjoittaja Bill Giovino

Julkaisija Digi-Keyn kirjoittajat Pohjois-Amerikassa

Esineiden Internet (IoT) -verkot laajenevat objektin havaitsemisesta objektin visuaaliseen tunnistukseen dynaamisissa ympäristöissä toimivissa sovelluksissa, esimerkkinä turvallisuus, ympäristön tilan seuranta, sekä Teollinen IoT (IIoT). Objektin tunnistaminen on adaptiivista ja siinä käytetään koneoppimismalleja (ML). Tämä on kompleksinen aihe, jonka oppiminen nollasta ja jonka toteuttaminen tehokkaasti voi olla vaikeaa.

Vaikeudet johtuvat siitä, että ML-malli on vain niin hyvä kuin sen datajoukko, ja sen jälkeen kun oikea data on saatu kerättyä, järjestelmä on opetettava oikealla tavalla toimimaan kyseisen datan mukaan, muutoin järjestelmästä ei ole paljon iloa.

Tässä artikkelissa näytetään kehittäjille miten käyttää Googlen TensorFlow Lite for Microcontrollers ML-mallia Microchip Technologyn mikrokontrollerissa. Sen jälkeen artikkeli selittää miten helposti tunnistaa objektit minimaalisella sovelluskohtaisella koodauksella käyttämällä kuvien luokittelua ja objektin tunnistamisen opetusdatajoukkoja TensorFlow Litessä.

Tämän jälkeen artikkeli esittelee TensorFlow Lite ML-aloitussarjan yritykseltä Adafruit Industries. Kehittäjät oppivat ML-perusasiat sarjan avulla.

ML sulautettuihin näköjärjestelmiin

ML tarjoaa laajassa mielessä tietokoneelle tai sulautetulle järjestelmälle samankaltaisen hahmontunnistuskyvyn kuin ihmisillä on. Ihmisaistien kannalta tämä tarkoittaa sellaisten antureiden kuten mikrofonien ja kameroiden käyttöä jäljittelemään ihmisten kuulon ja näkemisen aistihavaintoja. Antureilla on helppo kerätä ääni- ja kuvadataa, mutta kun data on digitoitu ja tallennettu, sitä on käsiteltävä niin että sitä voidaan verrata muistissa oleviin malleihin, jotka edustavat tunnettuja ääniä tai objekteja. Haasteita on esimerkiksi siinä, että kameran visuaalisesta objektista keräämä kuvadata ei vastaa täysin objektista muistiin tallennettua dataa. Jotta ML-sovellus voisi tunnistaa objektin visuaalisesti, sen on käsiteltävä dataa siten, että se voi tarkasti ja tehokkaasti yhdistää kameran keräämän datan muistiin tallennettuun malliin.

Anturien keräämän datan vertaamiseen on erilaisia kirjastoja ja moottoreita. TensorFlow on avoin lähdekoodin kirjasto, jota käytetään hahmontunnistuksessa. TensorFlow Lite for Microcontrollers -koodikirjasto on tarkoitettu käytettäväksi erityisesti mikrokontrollerilla ja tämän vuoksi sen muisti- ja prosessorivaatimukset ovat alhaisemmat ja sitä voidaan käyttää heikkotehoisemmassakin laitteessa. Se vaatii 32-bittisen mikrokontrollerin ja käyttää alle 25 kilotavua (kt) flash-muistia.

Vaikka TensorFlow Lite for Microcontrollers -kirjastoa käytettäisiinkin ML-moottorina, järjestelmä silti vaatii opetusdatajoukon malleista, jotka sen tulisi tunnistaa. Riippumatta siitä miten hyvä ML-moottori on, järjestelmä on vain niin hyvä kuin sen opetusdatajoukko. Eräät opetusdatajoukot saattavat tarvita visuaalisia objekteja ja useita suuria malleja varten useita gigatavuja dataa. Mitä enemmän dataa on, sitä tehokkaampi mikroprosessori tarvitaan tarkan vastaavuuden löytämiseen nopeasti. Tästä syystä tämän tyyppisiä sovelluksia käytetään tavallisesti tehokkailla tietokoneilla tai huipputehokkailla kannettavilla.

Sulautetussa järjestelmässä käytettävässä sovelluksessa tulisi tallentaa ainoastaan ne tietyt osat koulutusdatasta, joita sovellus tarvitsee. Jos järjestelmän tulisi tunnistaa työkaluja ja laitteita, hedelmiä ja leluja esittävät mallit voidaan poistaa. Tämä vähentää opetusdatajoukon kokoa, mikä vuorostaan vähentää sulautetun järjestelmän muistitarvetta ja näin parantaa suorituskykyä ja vähentää kustannuksia.

ML-mikrokontrolleri

Microchip Technology tukee TensorFlow Lite for Microcontrollers -kirjaston käyttöä Arm® Cortex®-M4F -pohjaisella ATSAMD51J19A-AFT -mikrokontrollerilla (kuva 1). Laitteessa on 512 kilotavua flash-muistia ja 192 kilotavua SRAM-muistia ja se toimii kellotaajuudella 120 megahertsiä (MHz). ATSAMD51J19A-AFT on osa Microchip Technologyn ATSAMD51 -ML-mikrokontrolleriperhettä. Se täyttää autoteollisuuden AEC-Q100 luokan 1 laatustandardit ja sen käyttölämpötila-alue on -40 °C ... +125 °C, minkä ansiosta sitä voidaan käyttää kaikkein vaativimmissakin IoT- ja IIoT-ympäristöissä. Se on vähävirtainen mikrokontrolleri, jonka käyttöjännite on 1,71–3,63 volttia käytettäessä kellotaajuutta 120 MHz.

Kaaviossa Microchip ATSAMD51J19A, joka perustuu Arm Cortex-M4F -ytimeen (suurenna klikkaamalla)Kuva 1: ATSAMD51J19A perustuu Arm Cortex-M4F -ytimeen kellotaajuudella 120 MHz. Se on monipuolinen mikrokontrolleri, jota tarjoaa 512 kilotavua flash-muistia ja 192 kilotavua SRAM-muistia. (Kuvan lähde: Microchip Technology)

ATSAMD51J19A-laitteen verkkovaihtoehtoihin kuuluvat CAN 2.0B teollisuusverkkoja varten ja 10/100 Ethernet useimpia langallisia verkkoja varten. Näiden ansiosta mikrokontrolleria voidaan käyttää erilaisissa IoT-verkoissa. USB 2.0 -rajapinta tukee sekä isäntä- että laitetiloja ja sitä voidaan käyttää laitteessa myös virheenkorjaukseen tai järjestelmän verkkoyhteytenä.

4 kilotavun yhdistetty käsky- ja datavälimuisti parantaa suorituskykyä ML-koodia suoritettaessa. Myös liukulukuyksikkö (FPU) on hyödyllinen haluttaessa parantaa ML-koodin suorituskykyä samoin kuin käsiteltäessä suoraa anturidataa.

Opetusdatajoukkojen tallennus

ATSAMD51J19A tarjoaa myös QSPI-rajapinnan ulkoista ohjelma- tai datamuistin tallennusta varten. Tämä on käytännöllistä lisädatatilaa sellaisilla opetusdatajoukoille, jotka eivät mahdu piirillä sijaitsevaan flash-muistiin. QSPI tukee myös XiP- suoritusta paikallaan (eXecute in Place) käytettäessä ulkoisia korkean nopeuden ohjelmamuistilaajennusta.

ATSAMD51J19A tarjoaa myös SD/MMC-muistikortin isäntäohjaimen (SDHC), mikä on erittäin käytännöllistä ML-sovelluksille, koska sen avulla muistin vaihtaminen ML-koodin ja opetusdatajoukkojen kesken on helppoa. TensorFlow Lite for Microcontrollers -moottori voi käyttää ATSAMD51J19A-piirin 512 kilotavun flash-muistia, opetusdatajoukkoja voidaan päivittää ja parantaa säännöllisesti. Opetusdatajoukko voidaan tallentaa ulkoiseen QSPI-flash-muistiin tai QSPI-EEPROM-muistiin ja verkkokonfiguraatiosta riippuen se voidaan päivittää verkon kautta. Toisissa järjestelmissä voi olla käytännöllisempää fyysisesti vaihtaa muistikortti toiseen, joka sisältää päivitetyn opetusdatajoukon. Tässä konfiguraatiossa kehittäjän on päätettävä onko järjestelmän tuettava muistikortin vaihtoa ”lennossa” vai onko IoT-solmu sammutettava.

Jos IoT-solmun tila on erittäin rajallista, ulkoisen muistin käytön sijaan kannattaa sijoittaa mahdollisimman suuri osa sovelluksesta mikrokontrollerin muistiin. Microchip Technologyn ATSAMD51J20A-AFT on samankaltainen ja pinniyhteensopiva ATSAMD51J19A-piirin kanssa, paitsi että se tarjoaa 1 megatavun flash-muistia ja 256 kilotavua SRAM-muistia. Näin se tarjoaa opetusdatajoukoille enemmän tilaa piirillä.

Kehittäminen mikrokontrollereille TensorFlow Liten avulla

Adafruit Industries tukee kehitystä ATSAMD51J19A-piiriä varten 4317 TensorFlow Lite for Microcontrollers -kehitysalustalla (kuva 2). Kortti sisältää 2 megatavua QSPI-flash-muistia, jota voidaan käyttää opetusdatajoukkojen tallennukseen. Sarja sisältää mikrofoniliitännän ML-audiotunnistusta varten. Sarjan 1,8-tuumaista värillistä 160 x 128 TFT LCD -näyttöä voidaan käyttää kehityksessä ja virheenkorjauksessa. Näyttöä voidaan käyttää myös äänentunnistusdemoihin, joissa TensorFlow Lite for Microcontrollers -kirjastoa käytetään äänentunnistuksen opetusdatajoukkojen kanssa. Kun sovellus tunnistaa eri sanoja, ne voidaan kirjoittaa näytölle’.

Adafruit Industries -sarja tarjoaa myös kahdeksan painonappia, kolmiakselisen kiihtyvyysanturin, valoanturin, minikaiuttimen sekä litium-poly-akun. ATSAMD51J19A-piirin USB 2.0 -portti tuodaan liittimelle akun lataamista, virheenkorjausta ja ohjelmointia varten.

Kuvassa Adafruit Industries 4317 TensorFlow Lite for MicrocontrollersKuva 2: Adafruit Industries -yrityksen 4317 TensorFlow Lite for Microcontrollers -kehitysalusta tarjoaa värillisen TFT LCD -näytön kehitysvaihetta varten ja sille voidaan kirjoittaa ML-operaatioiden tulokset. (Kuvan lähde: Adafruit Industries)

Adafruit-sarja sisältää uusimman version TensorFlow Lite for Microcontrollers -kirjastosta. Opetusdatajoukot voidaan ladata ATSAMD51J19A-mikrokontrollerin 512 kilotavun flash-muistiin käyttäen USB-porttia tai lataamalla ne ulkoiseen 2 megatavun QSPI-muistiin.

Haluttaessa arvioida kuvantunnistusta kehitysalustalle voidaan ladata TensorFlown opetusjoukko objektien tunnistamiseen. Kehitysalustalla on portit, joilla se voidaan yhdistää mikrokontrollerin rinnakkais- ja sarjaportteihin. Monia näistä voidaan käyttää sen kytkemiseen ulkoiseen kameraan. Kun mikrokontrolleriin on ladattu objektin tunnistuksen opetusjoukko, LCD-näyttöä voidaan käyttää näyttämään objektin tunnistukseen käytettävän ML-käsittelyn tulokset, joten jos se tunnistaa banaanin, TFT-näyttö saattaisi näyttää tunnistetut objektit ja vastaavat luotettavuusprosentit. Tulosnäyttö saattaisi näyttää tältä:

Banaani: 95 %
Kiintoavain: 12 %
Silmälasit: 8 %
Kampa: 2 %

Kehitettäessä IoT-objektintunnistussovelluksia tämä voi nopeuttaa kehitystä ja auttaa diagnosoimaan kaikki virheelliset tunnistustulokset.

Yhteenveto

ML on laajeneva ala, joka vaatii erikoistaitoja mikrokontrollerimoottoreiden ja mallien kehittämiseen nollasta ja niiden toteuttamiseen tehokkaasti reunalla. Olemassa olevien koodikirjastojen, kuten TensorFlow Lite for Microcontrollers, käyttö edullisissa ja erittäin tehokkaissa mikrokontrollereissa tai kehitysalustoissa säästää kuitenkin aikaa ja rahaa. Tuloksena on erittäin suorituskykyinen ML-järjestelmä, jota voidaan käyttää IoT-solmuissa objektien tunnistamiseen nopeasti, luotettavasti ja tehokkaasti.

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 Digi-Key Electronics or official policies of Digi-Key Electronics.

Tietoja kirjoittajasta

Bill Giovino

Bill Giovino is an Electronics Engineer with a BSEE from Syracuse University, and is one of the few people to successfully jump from design engineer, to field applications engineer, to technology marketing.

For over 25 years Bill has enjoyed promoting new technologies in front of technical and non-technical audiences alike for many companies including STMicroelectronics, Intel, and Maxim Integrated. While at STMicroelectronics, Bill helped spearhead the company’s early successes in the microcontroller industry. At Infineon Bill orchestrated the company’s first microcontroller design wins in U.S. automotive. As a marketing consultant for his company CPU Technologies, Bill has helped many companies turn underperforming products into success stories.

Bill was an early adopter of the Internet of Things, including putting the first full TCP/IP stack on a microcontroller. Bill is devoted to the message of “Sales Through Education” and the increasing importance of clear, well written communications in promoting products online. He is moderator of the popular LinkedIn Semiconductor Sales & Marketing Group and speaks B2E fluently.

Tietoja tästä julkaisijasta

Digi-Keyn kirjoittajat Pohjois-Amerikassa