Overzicht van locatable camera
HoloLens bevat een wereldgerichte camera die aan de voorkant van het apparaat is gemonteerd en waarmee apps kunnen zien wat de gebruiker ziet. Ontwikkelaars hebben toegang tot en controle over de camera, net als voor kleurencamera's op smartphones, draagbare apparaten of desktops. Dezelfde universele Windows Media Capture - en Windows Media Foundation-API's die op mobiele apparaten en desktops werken, werken op HoloLens. Unity heeft deze Windows-API's verpakt om de functies voor cameragebruik op HoloLens te abstraheren. Functietaken omvatten het maken van normale foto's en video's (met of zonder hologrammen) en het bepalen van de positie van de camera in en het perspectief op de scène.
Cameragegevens van apparaat
HoloLens (eerste generatie)
Camera met vaste focusfoto/video (PV) met automatische witbalans, automatische belichting en volledige pijplijn voor beeldverwerking.
Witte Privacy LED gericht op de wereld die brandt wanneer de camera actief is.
De camera ondersteunt de volgende modi (alle modi hebben een hoogte-breedteverhouding van 16:9) bij 30, 24, 20, 15 en 5 fps:
Video Preview Nog steeds Horizontaal beeldveld (H-FOV) Voorgesteld gebruik 1280x720 1280x720 1280x720 45 graden (standaardmodus met videostabilisatie) N.v.t. N.v.t. 2048x1152 67 graden Foto met hoogste resolutie 1408x792 1408x792 1408x792 48 graden Resolutie overscan (opvulling) vóór videostabilisatie 1344x756 1344x756 1344x756 67 graden Grote FOV-videomodus met overscan 896x504 896x504 896x504 48 graden Modus laag vermogen/lage resolutie voor beeldverwerkingstaken
HoloLens 2
Autofocus foto/video (PV) camera met automatische witbalans, automatische belichting en volledige beeldverwerking pijplijn. Het autofocussysteem kan de objectafstand aanpassen van 30 cm tot oneindig. De effectieve brandpuntsafstand voor de HoloLens 2 PV camera lens is 4,87 mm +/- 5%. Naast de 5% variatie als gevolg van productietolerantie, zal de brandpuntsafstand dynamisch veranderen als gevolg van het autofocussysteem. De AF-reis (slag) is maximaal 0,2 mm.
Witte Privacy LED gericht op de wereld die brandt wanneer de camera actief is.
HoloLens 2 ondersteunt verschillende cameraprofielen. Meer informatie over het detecteren en selecteren van cameramogelijkheden.
De camera ondersteunt de volgende profielen en resoluties (alle videomodi hebben een hoogte-breedteverhouding van 16:9):
Profiel Video Preview Nog steeds Framesnelheden Horizontaal beeldveld (H-FOV) Voorgesteld gebruik Verouderd, 0 BalancedVideoAndPhoto, 100 2272x1278 2272x1278 15.30 64.69 Video-opname van hoge kwaliteit Verouderd, 0 BalancedVideoAndPhoto,100 896x504 896x504 15.30 64.69 Voorbeeld van stream voor het vastleggen van foto's van hoge kwaliteit Verouderd, 0 BalancedVideoAndPhoto, 100 3904x2196 64.69 Foto's van hoge kwaliteit vastleggen BalancedVideoAndPhoto, 120 1952x1100 1952x1100 1952x1100 15.30 64.69 Scenario's met lange duur BalancedVideoAndPhoto, 120 1504x846 1504x846 15.30 64.69 Scenario's met lange duur VideoConferencing, 100 1952x1100 1952x1100 1952x1100 15, 30,60 64.69 Videovergaderingen, scenario's met lange duur Videoconferencing, 100 1504x846 1504x846 5, 15, 30,60 64.69 Videovergaderingen, scenario's voor lange duur Videoconferencing, 100 BalancedVideoAndPhoto, 120 1920x1080 1920x1080 1920x1080 15, 30 64.69 Videovergaderingen, scenario's voor lange duur Videoconferencing, 100 BalancedVideoAndPhoto, 120 1280x720 1280x720 1280x720 15, 30 64.69 Videovergaderingen, scenario's voor lange duur Videoconferencing, 100 BalancedVideoAndPhoto,120 1128x636 15, 30 64.69 Videovergaderingen, scenario's voor lange duur Videoconferencing, 100 BalancedVideoAndPhoto, 120 960x540 15,30 64.69 Videovergaderingen, scenario's voor lange duur Videoconferencing, 100 BalancedVideoAndPhoto, 120 760x428 15, 30 64.69 Videovergaderingen, scenario's voor lange duur Videoconferencing, 100 BalancedVideoAndPhoto, 120 640x360 15, 30 64.69 Videovergaderingen, scenario's voor lange duur Videoconferencing, 100 BalancedVideoAndPhoto, 120 500x282 15, 30 64.69 Videovergaderingen, scenario's voor lange duur Videoconferencing, 100 BalancedVideoAndPhoto, 120 424x240 15, 30 64.69 Videovergaderingen, scenario's voor lange duur
Notitie
Klanten kunnen mixed reality-opnamen gebruiken om video's of foto's van uw app te maken met hologrammen en videostabilisatie te gebruiken.
Als u wilt dat de inhoud van de opname van uw gebruiker er zo goed mogelijk uitziet, zijn er enkele dingen die u moet overwegen. U kunt mixed reality-opnamen ook rechtstreeks vanuit uw app inschakelen (en aanpassen). Meer informatie over mixed reality capture voor ontwikkelaars.
De camera van het apparaat zoeken in de wereld
Wanneer HoloLens foto's en video's maakt, bevatten de vastgelegde frames de locatie van de camera in de wereld en het lensmodel van de camera. Met deze informatie kunnen toepassingen redeneer over de positie van de camera in de echte wereld voor augmented imaging-scenario's. Ontwikkelaars kunnen hun eigen scenario's creatief implementeren met behulp van hun favoriete beeldverwerkings- of aangepaste Computer Vision-bibliotheken.
'Camera' elders in de HoloLens-documentatie kan verwijzen naar de 'virtuele gamecamera' (het frustum waarnaar de app wordt weergegeven). Tenzij anders wordt beschreven, verwijst 'camera' op deze pagina naar de echte RGB-kleurencamera.
Vervormingsfout
Op HoloLens 2 zijn de video- en beeldstreams onvervormd in de pijplijn voor het verwerken van afbeeldingen van het systeem voordat de frames beschikbaar worden gesteld aan de toepassing. De voorbeeldstream bevat de oorspronkelijke vervormde frames. Omdat alleen de CameraIntrinsics beschikbaar worden gesteld, moeten toepassingen ervan uitgaan dat beeldframes een perfecte pinhole camera vertegenwoordigen.
Op HoloLens (eerste generatie) kan de functie undistortion in de afbeeldingsprocessor nog steeds een fout van maximaal 10 pixels achterlaten bij het gebruik van de CameraIntrinsics in de metagegevens van het frame. In veel gebruiksscenario's maakt deze fout niet uit. Als u bijvoorbeeld hologrammen uitlijnt op echte posters of markeringen en u een < verschuiving van 10 pixels ziet (ongeveer 11 mm voor hologrammen op 2 meter afstand), kan deze vervormingsfout de oorzaak zijn.
Gebruiksscenario's voor camera's
Een foto of video weergeven in de wereld waar deze is vastgelegd
De cameraframes van het apparaat worden geleverd met een 'Camera naar wereld'-transformatie die kan worden gebruikt om precies aan te geven waar het apparaat was toen het de afbeelding vastlegde. U kunt bijvoorbeeld een klein holografisch pictogram op deze locatie plaatsen (CameraToWorld.MultiplyPoint(Vector3.zero)) en zelfs een kleine pijl tekenen in de richting waar de camera naartoe gericht was (CameraToWorld.MultiplyVector(Vector3.forward)).
Tag/patroon/poster/objecttracering
Veel mixed reality-toepassingen gebruiken een herkenbare afbeelding of visueel patroon om een traceerbaar punt in de ruimte te maken. Een toepassing kan objecten ten opzichte van dat punt weergeven of een bekende locatie maken. Een typisch gebruik voor HoloLens is het vinden van een object in de echte wereld dat is gelabeld met fiducials. Dit kan bijvoorbeeld gebeuren op tablets die zijn ingesteld om via Wi-Fi te communiceren met HoloLens.
U hebt een aantal dingen nodig om een visueel patroon te herkennen en een object in de wereldruimte van de toepassing te plaatsen:
- Een toolkit voor het herkennen van afbeeldingspatronen, zoals QR-code, AR-tags, gezichtszoeker, cirkeltrackers, OCR, enzovoort.
- Verzamel afbeeldingsframes tijdens runtime en geef deze door aan de herkenningslaag.
- Projecteren hun afbeeldingslocaties terug naar wereldposities of waarschijnlijke wereldstralen.
- Plaats uw virtuele modellen over deze wereldlocaties.
Enkele belangrijke koppelingen voor het verwerken van afbeeldingen:
Het is essentieel om een interactieve framesnelheid van een toepassing te behouden, met name wanneer u te maken hebt met langlopende algoritmen voor beeldherkenning. Daarom gebruiken we meestal het volgende patroon:
- Hoofdthread: beheert het cameraobject.
- Hoofdthread: vraagt nieuwe frames aan (asynchroon).
- Hoofdthread: geef nieuwe frames door aan de traceringsthread.
- Traceringsthread: verwerkt afbeelding om belangrijke punten te verzamelen.
- Hoofdthread: verplaatst het virtuele model zodat het overeenkomt met gevonden belangrijke punten.
- Hoofdthread: herhaal stap 2.
Sommige afbeeldingsmarkeringssystemen bieden slechts een locatie van één pixel, wat gelijk is aan een ray van mogelijke locaties. (Andere bieden de volledige transformatie, in dat geval is deze sectie niet nodig.) Om naar één 3D-locatie te komen, kunnen we meerdere stralen berekenen en het uiteindelijke resultaat vinden op basis van hun snijpunt bij benadering. Om dit resultaat te krijgen, moet u het volgende doen:
- Maak een lus die meerdere camerabeelden verzamelt.
- Zoek de bijbehorende functiepunten en hun wereldstralen.
Op basis van twee of meer locaties voor bijgehouden tags kunt u een gemodelleerde scène plaatsen die past bij het huidige scenario van de gebruiker. Als u de zwaartekracht niet kunt aannemen, hebt u drie taglocaties nodig. In veel gevallen gebruiken we een kleurenschema waarbij witte bollen realtime bijgehouden taglocaties vertegenwoordigen en blauwe bollen gemodelleerde taglocaties vertegenwoordigen. Hierdoor kan de gebruiker de uitlijningskwaliteit visueel meten. We gaan uit van de volgende instellingen in al onze toepassingen:
- Twee of meer gemodelleerde taglocaties.
- Eén 'kalibratieruimte', die in de scène de bovenliggende van de tags is.
- Camerafunctie-id.
- Gedrag, waardoor de kalibratieruimte wordt verplaatst om de gemodelleerde tags uit te lijnen met de realtime-tags (we zijn voorzichtig om de bovenliggende ruimte te verplaatsen, niet de gemodelleerde markeringen zelf, omdat andere verbindingsposities ten opzichte van hen zijn).
Gelabelde stationaire of bewegende objecten/gezichten in de echte wereld bijhouden of identificeren met behulp van LED's of andere recognizer-bibliotheken
Voorbeelden:
- Industriële robots met LED's (of QR-codes voor tragere bewegende objecten).
- Objecten in de ruimte identificeren en herkennen.
- Personen in de ruimte identificeren en herkennen, bijvoorbeeld door holografische visitekaartjes over gezichten te plaatsen.