Ohjelmointi

Työskentely Azure Kinect Developer Kit -sovelluksen kanssa

Microsoft ilmoitti Azure Kinect -kameramoduulistaan ​​HoloLens 2: n rinnalla alkuvuodesta 2019. Molemmat laitteet käyttävät samaa sekoitetun todellisuuden kameramoduulia ja kartoittavat objekteja kameran ympärillä lennon aikaisen syvyysanturin avulla. Mutta missä HoloLens on puettava sekoitetodellisuuslaite, Azure Kinect -moduulien on tarkoitus tarjota Azure-isännöityjä koneoppimissovelluksia yhdistetyillä antureilla, jotka voidaan asentaa mihin tahansa työtilaan.

Azure Kinect on Xbox One: n mukana toimitettujen toisen sukupolven Kinect-moduulien suora jälkeläinen, mutta sen sijaan, että tarjoaisi pelaamiseen reaalimaailman panoksia, se on suunnattu yrityskäyttäjille ja sovelluksille. Ensimmäisen Azure Kinect -kehittäjäpaketin, joka on tarkoitettu toimimaan Azure's Cognitive Services -palvelun kanssa, alettiin toimittaa Yhdysvalloissa vuoden 2019 lopussa ja lisätä useita muita maita vuoden 2020 alussa.

Laatikon avaaminen

399 dollarin Azure Kinect -kehittäjäsarja on pieni valkoinen yksikkö, jossa on kaksi kameran linssiä, yksi laajakulmaiseen RGB-kameraan ja toinen Kinect-syvyysanturiin sekä joukko mikrofoneja. Siinä on suunta-anturi, jonka avulla voit käyttää kameraa monimutkaisten kolmiulotteisten kuvien luomiseen ympäristöistä, valmiina käytettäväksi sekoitetussa todellisuudessa. Voit ketjuttaa useita laitteita yhteen 3D-skannausta varten nopeasti tai kattamaan koko huone. Suunta-anturin avulla voit ymmärtää laitteen sijaintia.

Kamerayksikön mukana saat virtalähteen, kuusiokoloavaimen ketjuporttien kannen irrottamiseksi ja USB-kaapelin kehitystietokoneeseen liittämistä varten. Suosittelen pöytäjalustan tai muun tyyppisen kiinnikkeen hankkimista, koska mukana toimitettu muoviteline on melko pieni eikä toimi useimpien pöytien tai näyttöjen kanssa. Pakkauksessa ei ole ohjelmistoa, vain linkki online-dokumentaatioon, josta voit ladata laitteen SDK: n.

Päivitä laitteen laiteohjelmisto ennen aloittamista. Tämä toimitetaan SDK: n mukana ja sisältää komentorivin asennustyökalun. Kun suoritat päivittäjän, se tarkistaa ensin nykyisen laiteohjelmistotilan ennen kameran ja laitteen laiteohjelmiston asentamista ja uudelleenkäynnistystä. Kun kamera on käynnistynyt uudelleen, tarkista samalla työkalulla, että päivitys on asennettu onnistuneesti. Jos asennuksessa on ongelmia, voit palauttaa alkuperäisen tehdaskuvan kameran laitteiston palautuksella (piilotettu jalustan kiinnikkeen alle).

Tunnistaa maailma

Kun SDK on asennettu, saat pääsyn laitteen antureihin koodistasi. SDK: ita on kolme: yksi matalan tason pääsyyn kameran antureihin, toinen tuttujen Kinect-kehonseurantaominaisuuksien käyttämiseen ja toinen kameran mikrofonijärjestelmän linkittämiseen Azure-puhepalveluihin. Valmiiksi rakennettu Kinect Viewer -sovellus näyttää käytettävissä olevat kameranäkymät ja suoratoistaa tietoja laitteen antureista. Saat käyttöösi laajakulmaisen RGB-kameran, syvyyskameranäkymän ja kuvan syvyysanturin infrapunakamerasta. SDK: t ovat saatavana sekä Windowsille että Linuxille, erityisesti Canonicalin Ubuntu 18.04 LTS -julkaisulle, ja ne voidaan ladata suoraan Microsoftilta tai GitHubilta.

On hyvä viettää aikaa leikkiä Kinect Viewerin kanssa. Sen avulla voit nähdä, kuinka erilaiset syvyyskameratilat toimivat, ja auttaa sinua valitsemaan joko kapean tai leveän näkökentän. Näet tietoja sijaintiantureista, sekä kiihtyvyysanturista että gyroskoopista, ja mikrofoniryhmästä. Kun Azure Kinect Developer Kit on kytketty kehitystietokoneeseen ja toimii, voit alkaa kirjoittaa koodia sille. Komentorivillä varustettua tallenninohjelmaa voidaan käyttää tietojen tallentamiseen toistoa varten katseluohjelmassa tallentamalla syvyystietoja MKV (Matroska Video) -muotoiseen tiedostoon.

Ensimmäisen syvyyttä mittaavan sovelluksen rakentaminen

Microsoft tarjoaa esimerkkikoodin yksinkertaisen C-sovelluksen rakentamiseksi toimimaan Azure Kinect -kehityspaketin kanssa. Tarvitaan vain yksi kirjasto, joka tarjoaa kameran kanssa työskentelemiseen tarvittavat kohteet ja menetelmät. Kaikkien sovellusten on ensin tarkistettava, kuinka monta kameraa on kytketty isäntätietokoneeseen, ennen kuin määrität laitteen datavirrat. Laitteet tunnistetaan niiden sarjanumeron perusteella, joten voit käyttää tätä osoittaaksesi tietyn kameran, kun työskentelet useiden samaan tietokoneeseen kytkettyjen tai ketjuttujen kanssa.

Azure Kinect Developer Kit toimittaa vain suoratoistodataa, joten sovellusten on määritettävä tiedonsiirtonopeus kehyksinä sekunnissa sekä kuvan värimuodot ja tarkkuudet. Kun olet luonut kokoonpanoobjektin, voit avata yhteyden määritysobjektilla valmiina suoratoistamaan tietoja. Kun olet lukenut tietovirran, pysäytä ja sulje laite.

Kuvat siepataan kaappauskohteeseen, syvyyskuvalla, infrapunakuvalla ja värikuvalla jokaiselle yksittäiselle kuvalle, jotka on otettu laitteen virrasta. Kun sinulla on sieppaus, voit purkaa yksittäiset kuvat valmiina käytettäväksi sovelluksessasi. Kuvaobjektit voidaan toimittaa Azure-konenäkö-sovellusliittymiin valmiina objektien tunnistamiseen tai poikkeavuuksien havaitsemiseen. Yksi esimerkki, jota Microsoft on käyttänyt esittelyissään, on sovellus, joka käyttää siepattuja videoita havaitsemaan, kun tehtaan kerroksessa oleva työntekijä menee liian lähelle koneiden käyttöä. toinen havaitsee tupakoivan lähellä kaasupumppua.

Samanlainen prosessi antaa sinulle tietoja sijainti- ja liiketunnistimista. Koska liiketiedot siepataan nopeammin kuin kuvatiedot, sinun on toteutettava koodissasi jonkinlainen synkronointi, jotta et menetä tietoja. Äänidata siepataan tavallisilla Windows-sovellusliittymillä, mukaan lukien Azuren puhepalvelujen käyttämät.

Vaikka Azure Kinect -laitteisto sieppaa paljon tietoa, SDK-toiminnot auttavat muuntamaan sen käyttökelpoiseen muotoon; esimerkiksi syvyysdatan lisääminen RGB-kuvaan tuottaa RGB-D-kuvia, jotka muunnetaan RGB-kameran näkökulmaksi (ja päinvastoin). Koska kaksi anturia ei ole asetettu, tämä vaatii kuvaverkon vääntämisen kahden kameran näkökulman yhdistämiseksi PC: n GPU: lla. Toinen muunnos tuottaa pistepilven, jonka avulla voit saada syvyystietoja jokaisesta sieppaamasi pikselistä. Yksi hyödyllinen vaihtoehto SDK: ssa on kyky siepata video- ja datavirtoja Matroska-muotoiseen tiedostoon. Tämän lähestymistavan avulla kaistanleveydellä rajoitetut laitteet voivat eritellä tietoja ja toimittaa ne esimerkiksi Azure Stack Edge -laitteisiin, joissa on kognitiivisten palvelujen säilöjä eräkäsittelyä varten.

Keho seuraa digitaalista luurankoa

Alkuperäinen Kinect-laitteisto esitteli kehonseurannan luurankomallilla, jota voitiin käyttää nopeasti arvioimaan asennon ja eleitä. Sama lähestymistapa jatkuu Azure Kinect Body Tracking SDK: ssa, joka käyttää Nvidian CUDA GPU -suorituskäsittelytekniikkaa työskentelemään 3D-kuvadatan kanssa laitteen syvyysanturista. Mukana toimitettu näytesovellus näyttää joitain SDK: n ominaisuuksia, mukaan lukien kyky seurata useampaa kuin yhtä henkilöä kerrallaan.

Kehonseurannan SDK rakentaa Azure Kinect SDK: n ja määrittää sen ja muodostaa yhteyden laitteeseen. Seuraaja käsittelee kaapatut kuvatiedot tallentamalla tietoja runkokehyksen tietorakenteeseen. Tämä sisältää kokoelman luurakenteita tunnistetuille elimille, 2-D-indeksikartan, joka auttaa visualisoimaan tietojasi, sekä taustalla olevat 2-D- ja 3-D-kuvat, joita käytettiin seurantatietojen rakentamiseen. Kutakin kehystä voidaan käyttää animaatioiden rakentamiseen tai tietojen syöttämiseen koneoppimisvälineisiin, jotka voivat auttaa seuraamaan seurattuja sijainteja huoneen kartan tai ihanteellisten sijaintien suhteen.

Azuren kognitiiviset palvelut ovat tehokas työkalu tietojen käsittelyyn, ja Azure Kinectin lisääminen mahdollistaa niiden käytön monissa teollisissa ja yritysskenaarioissa. Keskittymällä työpaikan kolmiulotteiseen kuvien tunnistamiseen Microsoft yrittää näyttää, kuinka kuvan tunnistamista voidaan käyttää riskien vähentämiseen ja turvallisuuden parantamiseen. On jopa mahdollista käyttää joukkoa laitteita nopean tilavuuden talteenottojärjestelmänä, mikä voi auttaa rakentamaan sekatodellisuusympäristöjä ja tarjoamaan lähdetietoja CAD: lle ja muille suunnittelutyökaluille. Tuloksena on joustava laite, josta pienellä koodilla tulee erittäin tehokas anturilaite.

$config[zx-auto] not found$config[zx-overlay] not found