Kuna ettevõtted tervitavad töökohal rohkem autonoomseid roboteid ja muid raskeid seadmeid, peame tagama, et seadmed saaksid meeskonnakaaslaste läheduses ohutult töötada. Selles postituses näitame teile, kuidas luua virtuaalne piir arvutinägemise ja AWS DeepLens, AWS-i süvaõppega videokaamera, mis on loodud arendajatele masinõppe (ML) õppimiseks. Selle postituse masinõppetehnikaid kasutades saate luua virtuaalsed piirid piiratud aladele, mis lülitavad seadmed automaatselt välja või annavad hoiatussignaali, kui inimesed lähenevad.
Selle projekti jaoks koolitate kohandatud objekti tuvastamise mudelit Amazon SageMaker ja juurutage mudel AWS DeepLensi seadmesse. Objektide tuvastamine on ML-algoritm, mis võtab sisendiks pildi ja tuvastab objektid ja nende asukoha pildil. Lisaks virtuaalsetele piirdelahendustele saate rakendada selles postituses õpitud tehnikaid, kui teil on vaja tuvastada teatud objektide asukoht pildi sees või loendama soovitud objekti esinemisjuhtude arv pildil, näiteks loendama üksusi salvestuskastis või jaemüügiriiulil.
Lahenduse ülevaade
Läbiviimine sisaldab järgmisi samme.
- Valmistage oma andmestik ette ML-algoritmi sisestamiseks.
- Treenige mudelit rakendusega Amazon SageMaker.
- Testimudel kohandatud piirangutsoonidega.
- Juurutage lahendus AWS DeepLensis.
Arutame ka teisi reaalseid kasutusjuhtumeid, kus saate seda lahendust rakendada.
Järgnev diagramm illustreerib lahenduse arhitektuuri.
Eeldused
Selle ülevaate lõpetamiseks peavad teil olema järgmised eeltingimused.
Valmistage oma andmestik ette ML-algoritmi sisestamiseks
See postitus kasutab ML-algoritmi, mida nimetatakse objektituvastusmudeliks, et luua lahendus, mis tuvastab, kas inimene on kohandatud piirangutsoonis. Kasutate avalikult kättesaadavat Jalakäijate tuvastamise andmestik saadaval Kaggle'is, millel on üle 2,000 pildi. Sellel andmekogul on sildid inimeste ja inimesesarnaste objektide (nt mannekeenide) jaoks, nii et koolitatud mudel suudab täpsemalt eristada tõelisi inimesi ja papist rekvisiite või kujusid.
Näiteks järgmised pildid on näited ehitustöölise tuvastamisest ja sellest, kas ta on kohandatud piirangutsoonis (punane piirjoon).
Modelli treenimise alustamiseks esmalt looge S3 ämber treeningandmete ja mudeli väljundi salvestamiseks. AWS DeepLensi projektide puhul peavad S3 ämbrite nimed algama eesliitega deeplens-
. Neid andmeid kasutate mudeli koolitamiseks SageMakeriga – täielikult hallatava teenusega, mis võimaldab kiiresti koostada, koolitada ja juurutada ML-mudeleid.
Treenige mudelit rakendusega Amazon SageMaker
Mudeli koolitamiseks kasutate arenduskeskkonnana SageMaker Jupyteri sülearvuteid. Jupyter Notebook on avatud lähtekoodiga veebirakendus, mis võimaldab teil luua ja jagada dokumente, mis sisaldavad reaalajas koodi, võrrandeid, visualiseerimisi ja jutustavat teksti. Selle postituse jaoks pakume Train_Object_Detection_People_DeepLens.ipynb, täielik märkmik, mida saate jälgida.
Kohandatud objektituvastusmudeli loomiseks peate kasutama graafikatöötlusüksuse (GPU) toega koolitustöö eksemplari. GPU-d on suurepärased närvivõrgu treenimiseks vajalike arvutuste paralleelseerimiseks. Kuigi sülearvuti ise on üks ml.t2.medium eksemplar, kasutab koolitustöö konkreetselt ml.p2.xlarge eksemplari. GPU-toega koolitustöö eksemplarile juurdepääsemiseks peate esitama teenuselimiidi suurendamise taotluse AWS-i tugikeskusesse.
Pärast limiidi suurendamist tehke SageMakeri märkmiku eksemplari loomiseks järgmised sammud.
- Valige SageMakeri konsoolil Märkmiku eksemplarid.
- Vali Loo märkmiku eksemplar.
- eest Märkmiku eksemplari nimi, sisestage oma märkmiku eksemplari nimi.
- eest Eksemplari tüüp, vali t2.keskmine.
See on kõige odavam eksemplaritüüp, mida sülearvuti eksemplarid toetavad, ja sellest õpetuseks piisab.
- eest IAM roll, vali Loo uus roll.
Veenduge selles AWS-i identiteedi- ja juurdepääsuhaldus (IAM) rollil on juurdepääs teie varem loodud S3 ämbrile (eesliide deeplens-
).
- Vali Loo märkmiku eksemplar. Teie märkmiku eksemplari käivitamiseks võib kuluda paar minutit.
- Kui märkmiku eksemplaride lehel olek muutub olekuks InService, valige Avage Jupyter äsja loodud Jupyteri sülearvuti eksemplari käivitamiseks.
- Vali Täiendava üles laadida
Train_Object_Detection_people_DeepLens.ipynb
varem alla laaditud faili.
- Avage märkmik ja järgige seda lõpuni.
- Kui teilt küsitakse kerneli seadistamise kohta, valige conda_mxnet_p36.
Jupyteri märkmik sisaldab teksti- ja koodilahtreid. Koodilõigu käivitamiseks valige lahter ja vajutage Tõstuklahv + sisestusklahv. Lahtri töötamise ajal kuvatakse lahtri kõrvale tärn. Kui lahter on valmis, kuvatakse algse lahtri alla väljundi number ja uus väljundlahter.
- Laadige andmestik alla avalikust S3 ämbrist kohalikku SageMakeri eksemplari ja pakkige andmed lahti. Seda saab teha, järgides märkmikus olevat koodi:
- Teisendage andmekogum vormingusse (RecordIO), mida saab sisestada SageMakeri algoritmi:
- Teisaldage RecordIO-failid tagasi Amazon S3-sse.
Nüüd, kui olete andmete ettevalmistamise lõpetanud, olete valmis objektidetektorit välja õpetama.
Objektide tuvastamise algoritme on palju erinevaid. Selle postituse jaoks kasutate Single Shot MultiBox Detection algoritm (SSD). SSD-algoritmil on hea kiiruse ja täpsuse tasakaal, mistõttu on see ideaalne töötamiseks sellistes servaseadmetes nagu AWS DeepLens.
Treeningtöö osana on teil palju hüperparameetrite valikuid, mis aitavad treeningkäitumist konfigureerida (nt epohhide arv, õppimiskiirus, optimeerija tüüp ja minipartii suurus). Hüperparameetrid võimaldavad teil häälestada oma mudeli treeningkiirust ja täpsust. Lisateavet hüperparameetrite kohta vt Objekti tuvastamise algoritm.
- Seadistage oma hüperparameetrid ja andmekanalid. Kaaluge järgmise hüperparameetrite määratluse näidet.
Sülearvutil on mõned vaikimisi hüperparameetrid, mis on eelnevalt valitud. Jalakäijate tuvastamiseks treenite mudelit 100 epohhi jooksul. See koolitusetapp peaks ühe ml.p2.xsuure eksemplari kasutamisel kestma umbes 2 tundi. Saate katsetada erinevate hüperparameetrite kombinatsioonidega või treenida jõudluse parandamiseks rohkemate ajajärkude jaoks. Lisateavet viimaste hindade kohta vt Amazon SageMakeri hinnakujundus.
- Saate alustada koolitustööd ühe koodireaga ja jälgida täpsust aja jooksul SageMakeri konsoolil:
Lisateavet koolituse toimimise kohta vt Loo koolitustöö. Ettevalmistus ja andmete allalaadimine võtavad olenevalt andmete suurusest aega. Seetõttu võib kuluda mõni minut, enne kui hakkate oma koolitustööde andmete logisid hankima.
Saate jälgida oma koolitustöö edenemist mõõdiku keskmise täpsuse (mAP) abil, mis võimaldab teil jälgida mudeli võimet objekte klassifitseerida ja õigeid piirdekaste tuvastada. Andmelogid prindivad lisaks muudele kadudele välja ka valideerimisandmete MAP-i iga andmestiku käitamise kohta, üks kord ühe perioodi kohta. See mõõdik on klassi ja selle ümber oleva täpse piirdekasti täpse tuvastamise algoritmi jõudluse kvaliteedi puhvernäitaja.
Kui töö on lõpetatud, leiate väljaõppinud mudelifailid S3 ämbrist ja kaustast, mis on varem määratud s3_output_location
:
Selle postituse jaoks näitame 10. ja 100. epohhi lõppedes saadud valideerimiskomplekti tulemusi. 10. epohhi lõpus näeme valideerimiskaarti ligikaudu 0.027, samas kui 100. ajastu oli ligikaudu 0.42.
Paremate tuvastamistulemuste saavutamiseks võite proovida hüperparameetreid häälestada, kasutades selleks SageMakeri sisseehitatud võimalust. automaatne mudeli häälestamine ja treenige mudelit rohkemate ajajärkude jaoks. Tavaliselt lõpetate treenimise, kui näete täpsuse vähenemist.
Testimudel kohandatud piirangutsoonidega
Enne koolitatud mudeli juurutamist AWS DeepLensis saate seda pilves testida, kasutades SageMakeri hostitud lõpp-punkti. SageMakeri lõpp-punkt on täielikult hallatav teenus, mis võimaldab teha reaalajas järeldusi REST API kaudu. SageMaker võimaldab teil mudelite testimiseks kiiresti juurutada uusi lõpp-punkte, nii et te ei peaks mudelit majutama kohalikus eksemplaris, mida mudeli koolitamiseks kasutati. See võimaldab teha mudeli põhjal ennustusi (või järeldusi) piltide kohta, mida algoritm treeningu ajal ei näinud.
Te ei pea hostima samal eksemplaritüübil, mida kasutasite koolitamiseks. Koolitus on pikaajaline ja arvutusmahukas töö, mis nõuab teistsuguseid arvutus- ja mälunõudeid, mida hostimine tavaliselt ei nõua. Saate valida mis tahes tüüpi eksemplari, mida soovite mudeli hostida. Sel juhul valisime koolitamiseks eksemplari ml.p3.2xlarge, kuid valisime mudeli majutamiseks odavamal protsessori eksemplaril ml.m4.xlarge. Järgmine koodilõik näitab meie lõpp-punkti juurutamist.
Tuvastamine kohandatud piirangutsoonis (huvipiirkond)
Väljundi vormingut saab esitada kui [klassi_indeks, usalduse_skoor, xmin, ymin, xmax, ymax]. Madala usaldusväärsusega ennustustel on sageli suurem tõenäosus saada valepositiivne või valenegatiivne, seega peaksite tõenäoliselt madala usaldusväärsusega ennustustest loobuma. Saate kasutada järgmist koodi, et tuvastada, kas isiku piirdekast kattub piirangutsooniga.
Vaikimisi hinnatakse kogu kaadrit inimese kohaloleku suhtes. Siiski saate hõlpsasti määrata huvipakkuva piirkonna, kus inimese kohalolekut peetakse kõrge riskitasemeks. Kui soovite lisada kohandatud piiranguvööndi, lisage [X-telg,Y-telg] tähistatud piirkonna tippude koordinaadid ja looge hulknurk. Koordinaadid tuleb sisestada kas päri- või vastupäeva. Vaadake järgmist koodi:
Järgmine näidiskood näitab jalakäijaid, kes on piiranguvööndis tuvastatud:
Järgmised pildid näitavad meie tulemusi.
Juurutage lahendus AWS DeepLensis
Teisendage mudel juurutamiseks AWS DeepLensiks
SageMakeri koolitatud SSD mudeli juurutamisel AWS DeepLensis peate esmalt käivitama deploy.py mudeli artefakti teisendamiseks juurutatavaks mudeliks:
Importige oma mudel AWS DeepLensi
Mudeli käitamiseks AWS DeepLensi seadmes peate looma AWS DeepLensi projekti. Alustage oma mudeli importimisest AWS DeepLensi.
- AWS DeepLensi konsoolil, all Vahendid, vali Mudelid.
- Vali Impordi mudel.
- eest Impordi allikasvalige Väliselt koolitatud mudel.
- Sisestage Amazon S3 asukoht lapitud mudel mille salvestasite ülaltoodud sammus deploy.py käivitamisest.
- eest Mudeli raamistik, vali MX Net.
- Vali Impordi mudel.
Looge järeldusfunktsioon
Järeldusfunktsioon toidab iga kaamerakaadri mudelisse, et saada ennustusi, ja käivitab mis tahes kohandatud äriloogika järelduste tulemuste kasutamisel. Sa kasutad AWS Lambda et luua funktsioon, mille juurutate AWS DeepLensis. Funktsioon käivitab AWS DeepLensi seadmes kohapeal järeldusi.
Esiteks peame AWS DeepLensi juurutamiseks looma Lambda funktsiooni.
- Lae alla järeldada lambda funktsiooni.
- Valige Lambda konsoolil Funktsioonid.
- Vali Loo funktsioon.
- valima Autor nullist.
- eest Funktsiooni nimi, sisestage nimi.
- eest Runtime, vali Python 3.7.
- eest Valige või looge täitmise roll, vali Kasutage olemasolevat rolli.
- Vali service-role/AWSDeepLensLambdaRole.
- Vali Loo funktsioon.
- Funktsiooni üksikasjade lehel Meetmete menüüst valige Laadige üles ZIP-fail.
- Laadige üles järeldus lambda varem alla laaditud faili.
- Vali Säästa sisestatud koodi salvestamiseks.
- Kohta Meetmete menüüst valige Avalda uus versioon.
Funktsiooni avaldamine muudab selle AWS DeepLensi konsoolis kättesaadavaks, et saaksite selle oma kohandatud projekti lisada.
- Sisestage versiooninumber ja valige Avalda.
Järeldusfunktsiooni mõistmine
See jaotis juhendab teid järeldusfunktsiooni mõnest olulisest osast. Esiteks peaksite pöörama tähelepanu kahele konkreetsele failile:
- sildid.txt – Sisaldab närvivõrgu väljundi (täisarvud) vastendamist inimloetavatele siltidele (string)
- lambda_function.py – Sisaldab väljakutsutava funktsiooni koodi, et luua ennustusi iga kaamerakaadri kohta ja saata tulemusi tagasi
Failis lambda_function.py laadite kõigepealt mudeli ja optimeerite seda. Võrreldes GPU-ga pilvepõhiste virtuaalmasinatega, on AWS DeepLensil väiksem arvutusvõimsus. AWS DeepLens kasutab Intel OpenVino mudeli optimeerijat, et optimeerida SageMakeris treenitud mudelit selle riistvaraga töötamiseks. Järgmine kood optimeerib teie mudeli kohapeal käitamiseks:
Seejärel käivitate mudeli kaadri kaupa kaamerast pärit piltidele. Vaadake järgmist koodi:
Lõpuks saadate tekstiennustuse tulemused tagasi pilve. Tekstitulemuste vaatamine pilves on mugav viis veendumaks, et mudel töötab õigesti. Igal AWS DeepLensi seadmel on järeldustulemuste saamiseks automaatselt loodud spetsiaalne iot_topic. Vaadake järgmist koodi:
Looge kohandatud AWS DeepLensi projekt
Uue AWS DeepLensi projekti loomiseks toimige järgmiselt.
- AWS DeepLensi konsoolil Projektid lehel, valige Loo projekt.
- eest Projekti tüüpvalige Looge uus tühi projekt.
- Vali järgmine.
- Nimetage oma projekt
yourname-pedestrian-detector-
. - Vali Lisa mudel.
- Valige äsja loodud mudel.
- Vali Lisa funktsioon.
- Otsige varem loodud lambda funktsiooni nime järgi.
- Vali Loo projekt.
- Kohta Projektid lehel valige projekt, mida soovite juurutada.
- Valis Juuruta seadmesse.
- eest Sihtseade, valige oma seade.
- Vali Ülevaade.
- Vaadake oma seaded üle ja valige juurutada.
Juurutamiseks võib kuluda kuni 10 minutit, olenevalt võrgu kiirusest, millega teie AWS DeepLens on ühendatud. Kui juurutamine on lõppenud, peaksite lehel nägema rohelist bännerit sõnumiga "Palju õnne, teie mudel töötab nüüd AWS DeepLensis kohapeal!"
Tekstiväljundi nägemiseks kerige seadme üksikasjade lehel alla kuni Projekti väljund osa. Teema kopeerimiseks järgige jaotises olevaid juhiseid ja minge lehele AWS IoT Core konsool teema tellimiseks. Peaksite nägema tulemusi nagu järgmisel ekraanipildil.
Üksikasjalikud juhised videovoo või tekstiväljundi vaatamise kohta leiate artiklist AWS DeepLensi tulemuste vaatamine.
Reaalajas kasutatavad juhtumid
Nüüd, kui teil on AWS DeepLensis töötava mudeli ennustused, teisendame need ennustused hoiatusteks ja statistikaks. Sellise projekti kõige levinumad kasutusviisid on järgmised:
- Mõista, kui palju inimesi konkreetsel päeval piirangutsooni sisenes, et ehitusplatsid saaksid tuvastada kohad, mis nõuavad rohkem ohutusmärke. Seda saab teha tulemuste kogumisega ja nende abil armatuurlaua loomiseks Amazon QuickSight. Lisateabe saamiseks QuickSighti abil armatuurlaua loomise kohta vt Koostage AWS DeepLensi ja GluonCV abil kodus töötav kehahoiaku jälgija.
- AWS DeepLensi väljundi kogumine ja Raspberry Pi konfigureerimine, et anda hoiatus, kui keegi kõnnib piirangutsooni. Lisateavet AWS DeepLensi seadme ühendamise kohta Raspberry Pi seadmega vt AWS DeepLensi abil prügisorteerija ehitamine.
Järeldus
Selles postituses õppisite, kuidas koolitada objekti tuvastamise mudelit ja juurutada see AWS DeepLensis, et tuvastada inimesi, kes sisenevad piirangutsoonidesse. Saate seda õpetust kasutada viitena oma kohandatud objektide tuvastamise projektide koolitamiseks ja juurutamiseks AWS DeepLensis.
Selle õpetuse ja teiste AWS DeepLensi õpetuste, näidiste ja projektiideede üksikasjalikuma ülevaate saamiseks vt AWS DeepLensi retseptid.
Autoritest
Yash Shah on andmeteadlane Amazon ML Solutions Labis, kus ta töötab mitmesuguste masinõppe kasutusjuhtudega alates tervishoiust kuni tootmise ja jaemüügini. Tal on ametlik taust inimtegurite ja statistika alal ning ta oli varem osa Amazon SCOTi meeskonnast, kes kavandas tooteid, mis suunaksid 3P-müüjaid tõhusa varude haldamisega.
Phu Nguyen on AWS Panorama tootejuht. Ta loob tooteid, mis annavad mis tahes oskustasemega arendajatele lihtsa ja praktilise sissejuhatuse masinõppesse.
- juurdepääs
- algoritm
- algoritme
- Amazon
- Amazon SageMaker
- vahel
- Apache
- API
- taotlus
- arhitektuur
- ümber
- autonoomne
- AWS
- Kast
- ehitama
- äri
- juhtudel
- vastuolu
- kanalid
- Cloud
- kood
- Kollektsioneerimine
- ühine
- Ettevõtted
- Arvutama
- Arvuti visioon
- arvutustehnika
- arvutusvõimsus
- ehitus
- jätkama
- Paar
- loomine
- armatuurlaud
- andmed
- andmeteadlane
- päev
- detail
- Detection
- Arendajad
- & Tarkvaraarendus
- seadmed
- dokumendid
- serv
- Lõpp-punkt
- keskkond
- seadmed
- täitmine
- eksperiment
- Toidetud
- esimene
- järgima
- formaat
- täis
- funktsioon
- hea
- GPU
- GPU
- Green
- suunata
- riistvara
- tervishoid
- Suur
- Hosting
- Kuidas
- Kuidas
- HTTPS
- Inimestel
- IAM
- identifitseerima
- Identity
- pilt
- importivate
- Suurendama
- info
- teadmisi
- Intel
- huvi
- inventar
- Inventory Management
- asjade Interneti
- IT
- töö
- Tööturg
- Jupyteri sülearvuti
- Labels
- hiljemalt
- algatama
- Õppida
- õppinud
- õppimine
- Tase
- joon
- koormus
- kohalik
- kohapeal
- liising
- masinõpe
- Masinõppe tehnikad
- masinad
- Tegemine
- juhtimine
- tootmine
- kaart
- keskmine
- ML
- mudel
- nimed
- võrk
- Neural
- Närvivõrgus
- märkmikud
- Objekti tuvastamine
- Valikud
- Muu
- Maksma
- Inimesed
- jõudlus
- võim
- Täpsus
- ennustus
- Ennustused
- vajutage
- hinnapoliitika
- Toode
- Toodet
- projekt
- projektid
- volikiri
- avalik
- kvaliteet
- tõstma
- valik
- Raspberry Pi
- reaalajas
- Nõuded
- REST
- Tulemused
- jaemüük
- Oht
- robotid
- jooks
- jooksmine
- ohutus
- salveitegija
- Sellers
- komplekt
- kehtestamine
- SGD
- Jaga
- Märgid
- lihtne
- Saidid
- SUURUS
- So
- Lahendused
- kiirus
- algus
- väljavõte
- statistika
- olek
- ladustamine
- salvestada
- toetama
- test
- aeg
- koolitus
- juhendaja
- õpetused
- Video
- virtuaalne
- nägemus
- jalutamine
- web
- jooksul
- Töökoht
- töötab
- X