Tehnologija Kinect senzorja, ki se uporablja v HoloLens

Kinect je sicer izdelek, katerega proizvodnjo je Microsoft ukinil konec leta 2017, a ker se tehnologija, te v osnovi globinske kamere uporablja v izdelkih Hololens, ga bomo tokrat podrobneje predstavili.

0
Kinect senzorja
Kinect senzorja

Kinect je izdelek, katerega proizvodnjo je kljub prodanim več kot 35 milijonov kosov, Microsoft ukinil konec leta 2017. Tehnologija, te v osnovi globinske kamere, se uporablja v izdelkih Hololens, pridobljeno znanje pri razvoju Kinect senzorja pa Microsoft sedaj uporablja za razpoznavo govora pri digitalni asistentki Cortana, razpoznavi obraza pri Windows Hello in vmesniku GGV, ki je še v razvoju.

Senzor Kinect je naprava, ki jo je Microsoft prvotno razvil za igralno konzolo XBOX 360. Predstavljen je bil leta 2010 in se uporablja za igranje iger s sledenjem igralčevih gibov ter za glasovno upravljanje. Leta 2012 je bil predstavljen naslednik senzorja Kinect za Windows, ki je namenjen zgolj za uporabo z računalnikom in je tudi strojno bolj zmogljiv, saj omogoča tako imenovani bližji način (near mode). Naprednejši in zmogljivejši senzor Kinect 2 pa je bil predstavljen leta 2013.

Senzor Kinect je poleg igranja iger, priljubljen tudi v aplikacijah za brezdotično interakcijo z računalnikom oziroma za izdelavo naravnih uporabniških vmesnikov (NUI – Natural User Interface) s prepoznavo gest, v robotiki, pri računalniškemu vidu, tridimenzionalnemu zajemu slik, izdelavi vmesnikov za pametne domove ter oskrbi (npr. zaznavanje padcev starejših oseb).

Kinect za XBOX 360 in Kinect za Windows

Senzor Kinect za XBOX in Kinect za Windows se navzven vizualno ne razlikujeta (razen napisa), bistvena razlika je v izboljšani programski opremi (Firmware), ki omogoča tako imenovani bližji način. Vsa strojna oprema je vgrajena v podolgovato ohišje v katerem se nahajajo:

  • kamera RGB,
  • IR senzor 3D globine (laserski projektor IR in črno-beli senzor IR CMOS),
  • polja mikrofonov za zajem 3D zvoka,
  • senzor naklona in pospeška,
  • stojalo z motorčkom za upravljanje naklona senzorja.
Kinect za XBOX 360
Kinect za XBOX 360

Senzor Kinect omogoča z uporabo Microsoft Kinect SDK (zadnja verzija za originalni Kinect je 1.8):

  • zajem in procesiranje barvne slike;
  • zajem in procesiranje globinskega toka podatkov;
  • zajem infrardeče slike;
  • sledenje skeletona človeka in gibanju sklepov;
  • razpoznavo gest;
  • zajem zvoka;
  • prepoznavanje govora za glasovno upravljanje;
  • nastavitev naklona senzorja Kinect;
  • zajem podatkov iz pospeškometra;
  • upravljanje z infrardečim oddajnikom.
Kinect za Windows
Kinect za Windows

Senzor Kinect lahko deluje v dveh načinih, ki sta:

  • oddaljeni način (Default/Far mode) – vidnost senzorja je od 0,8 m do 4 m,
  • bližji način (Near mode) – je omogočen samo pri senzorju Kinect za Windows, vidnost senzorja je od 0,4 m do 3 m.
Vidni doseg senzorja Kinect
Vidni doseg senzorja Kinect

Bližji način se uporablja za zajemanje podatkov zelo blizu kamere, medtem, ko se oddaljeni način uporablja pri zajemanju podatkov na večjih razdaljah. Pri obeh možnostih lahko glede na oddaljenost od kamere določimo štiri območja:

  • Neznano območje je predel, kjer naprava uporabniku ne more vrniti uporabnih rezultatov. Globinske vrednosti tega območja so definirane kot neznane in so v globinskem toku podatkov označene z -1.
  • Območje, ki je označeno kot “preblizu” (Too Near), je definirano samo za oddaljen način uporabe in določa, kdaj je objekt preblizu kamere.
  • Kar se nahaja v območju običajnih vrednosti, naprava zajame in nato izračuna ustrezne globinske podatke.
  • Sicer senzor Kinect omogoča sledenje objektov tudi nad 4 m, vendar v teh primerih je zanesljivost zaznavanja slabša zaradi šuma. Ti objekti se nahajajo v območju, ki je označeno kot “predaleč” (Too Far).

Vidni kot senzorja Kinect je 57° horizontalno in 43° vertikalno, z vgrajenim motorčkom pa lahko upravljamo naklon senzorja od – 27° do + 27°.

Vidni kot senzorja Kinect
Vidni kot senzorja Kinect

Kamera RGB ima več različnih možnosti zajema slike. Privzeti zajem slike je 640x480px pri 30 fps, omogoča pa tudi zajem slike 1280×1024 pri 12 fps do največ 15 fps. Kamera RGB ima dober nabor funkcij, kot so avtomatsko nastavljanje beline, avtomatska osvetlitev, zmanjšanje utripanja, nasičenosti barv in popravek barvnega tona slike. Omogoča tudi razpoznavo obrazov, ki ga uporablja XBOX 360 za prijavo v sistem. Barvni tok podatkov (ColorStream) nam omogoča dostop do barvne slike, ki jo pošilja kamera RGB.

IR senzor 3D globine je sestavljen iz laserskega projektorja IR in črno-belega senzorja IR CMOS, ki sta oddaljena približno 7,5 cm v horizontalni osi. Senzor 3D globine je en izmed najbolj pomembnih funkcionalnosti senzorja Kinect.

Globinski tok podatkov (DepthStream) nam pošilja podatke, ki jih posreduje globinski senzor. Ta slika nam prikaže 3D prostor, ki ga v svojem vidnem polju vidi senzor Kinect. Vsaka slikovna pika (Pixel) predstavlja oddaljenost točke v prostoru od senzorja Kinect. Globinsko sliko lahko prestavimo z barvami, rdeče obarvane točke predstavljajo bližino, rumeno oddaljenost, točke, ki pa jih senzor ni zaznal pa so obarvane črno. Kinect SDK omogoča 16-bitni globinski tok podatkov pri resolucijah 640×480, 320×240 in 80×60 točk. Podatki so predstavljeni glede X in Y koordinate pogleda globinskega senzorja.

Prikaz globinske slike
Prikaz globinske slike

Senzor Kinect za določitev 3D globinske slike uporablja metodo strukturirane svetlobe.
Ta metoda temelji na projiciranju znane strukturirane svetlobe na opazovano 3D površino. IR projektor senzorja Kinect oddaja fiksno mrežo točk, ki jo IR detektor prebere. Vzorec svetlobe se popači zaradi objektov v prostoru, zato se vzorec, ki ga sprejme IR detektor, ne ujema s projiciranim vzorcem.

Na podlagi projicirne mreže, znane razdalje med oddajnikom in sprejemnikom in sprejete mreže točk, se lahko izračuna razdalja posamezne točke do senzorja. Projicirana mreža točk je sestavljena iz zaporedja svetlih in temnih točk na način, da posamezna točka v povezavi z nekaj sosednjimi točkami predstavlja unikatni vzorec, ki se v celotni mreži ne ponavlja. S premikom posamezne točke vzorca, lahko določimo oddaljenost vsake točke. Pomembno je, da sprejemnik zna iz prebrane mreže točk razbrati, za kateri del celotnega vzorca mreže gre. Šele nato lahko pride do izračuna oddaljenosti posameznega vzorca mreže s pomočjo triangulacije. Os IR oddajnika in IR sprejemnika sta si vzporedni, tako da je mogoče iz razlike med projicirano točko in prebrano točko izračunati oddaljenost do predmeta. Bližje kot je opazovan predmet, večja je neskladnost projicirane in prebrane točke, ko gre oddaljenost proti neskončnosti, je neskladnost nič.

Sam princip je zelo podoben metodi s stereo kamero, z razliko da tu potrebujemo samo eno kamero. Primerjava pri tem načinu ne poteka med dvema dejanskima slikama, ampak na podlagi zamika projiciranega in prebranega vzorca. Tipični primer strukturirane svetlobe je enakomerni vir svetlobe, ki ga spustimo preko uklonske mrežice. Pri tem nastane vzorec vzporednih črt, ki se projicirajo v opazovanem prostoru. Vzorec se zaradi različne oddaljenosti predmetov popači in na podlagi razlike vzorcev se lahko izračuna razdalja do posameznih točk v prostoru. Enostaven vzorec vzporednih črt nam ne omogoča izračuna razdalje do vseh točk v prostoru, zato se za bolj natančne meritve uporabljajo vzorci različnih oblik in orientacij.

Tok podatkov sklepov skeletona (SkeletonStream), je podatkovni tok, ki nam omogoča zaznavanje pozicije sklepov skeletona največ šestih uporabnikov. Senzor lahko sledi dvema uporabnikoma aktivno in sledi kar 20 sklepov v 3D prostoru, za ostale štiri uporabnike pa imamo na voljo samo pozicijo sklepa bok-center (HipCenter). Omogočeno je sledenje tudi skeletonov uporabnikov, ki sedijo (Seated Skeleton), v tem primeru pa imamo na voljo podatke o 10 sklepih.

Poimenovanje sklepov, ki jih sledi senzor Kinect
Poimenovanje sklepov, ki jih sledi senzor Kinect

Zvočni tok podatkov (AudioStream) je podatkovni tok, ki nam omogoča zaznavanje zvoka iz polja štirih mikrofonov. Senzor Kinect ima štiri navzdol obrnjene mikrofone – eden je na levi in trije na desni strani. To je tudi razlog, zakaj je senzor Kinect tako širok. Taka postavitev daje najboljše rezultate za zaznavanje zvoka. Mikrofoni so zmožni prepoznavanja govora, lociranja izvora govora, izločanje šuma, ki je prisoten v prostoru ter večkanalno izničevanje odjema. Vsak kanal se procesira s 16 biti in frekvenco vzorčenja 16 kHz.

Naprednejši Kinect verzije 2 je bil predstavljen leta 2013, ki pa ima v primerjavi s predhodnikom bolj kvalitetno HD kamero, širši zorni kot, uporablja drug način za zaznavo globine, sledi več hkratnim skeletonov, zaznava orientacijo kosti, sile na sklepih, simulira delovanje mišic itd. Zahteva pa tudi priklop na USB 3.0.

Razlika med senzorjema Kinect in Kinect 2
Razlika med senzorjema Kinect in Kinect 2

Senzor Kinect 2 za določitev 3D globinske slike uporablja metodo čas prihoda (TOF – Time of Flight). Pri tej metodi se uporablja vir svetlobe in kamera. Metoda temelji na spremembi svetlobe, ki se odbije od objektov. Pri tej metodi vir svetlobe hkrati osvetli celotno merjeno površino, tako da je možno zajeti podatke na podlagi ene same slike. Ta metoda uporablja dva različna načina, in sicer pulzno svetlobo in modulirano svetlobo.

Kinect 2
Kinect 2

Način s pulzno svetlobo meri čas med oddajo in prejemom pulza. Razdalja se izračuna iz izmerjenega časa in hitrosti svetlobe. Na podoben način deluje tudi merjenje razdalj na osnovi modulirane svetlobe, le da se pri tem načinu meri fazna razlika oddanega in sprejetega signala. Večja kot je ta razlika, bolj je točka oddaljena od kamere. TOF kamere imajo prednost pred laserskim skeniranjem in stereo kamerami v tem, da je njihova nastavitev zelo hitra, saj ni potrebno posebno umerjanje. Prednost je tudi v tem, da ta metoda omogoča hitro obdelavo. Pomanjkljivost pa je v nenatančnosti zaradi raznih šumov in popačenj. Metoda je precej manj natančna kot lasersko skeniranje ali metoda s stereo kamerami. Kamere so primerne za preprosto prepoznavo objektov, prepoznavo okolja za robotsko navigacijo ali prepoznavanje kretenj.

PUSTITE KOMENTAR

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.