Skip to content

Commit 550fa5f

Browse files
committed
Move README.md in feature folders
Move README.md in feature folders
1 parent ddc790b commit 550fa5f

File tree

3 files changed

+109
-104
lines changed

3 files changed

+109
-104
lines changed

KinectIPD/README.md

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
## KinectIPD
2+
3+
KinectIPD is a utility to measure a person’s IPD (inter-pupillary distance) and optionally set the IPD on a HoloLens device automatically. This is especially useful in situations where many users are using a HoloLens device such as demos or tradeshows. In testing, KinectIPD was accurate to +- 2 millimeters, which should be adequate for most HoloLens scenarios.
4+
5+
### Building:
6+
- Install the latest version of the Kinect SDK from: https://developer.microsoft.com/en-us/windows/kinect
7+
- Note: KinectIPD was primarily tested on 64bit systems. Additional work may be required to run on 32bit systems.
8+
- Download the project from GitHub in a ZIP file, or clone the repo to your developer PC.
9+
- Start Microsoft Visual Studio 2015 and select File > Open > Project/Solution.
10+
- In the KinectIPD folder, double click on KinectIPD_Kiosk.sln to open the sample in Visual Studio.
11+
12+
13+
- Change the build configuration to Release/x64.
14+
- Press F5 to start the application.
15+
16+
### How to use:
17+
Connect a Kinect 2.0 camera to a PC/Laptop and run KinectIPD. After startup, the app will be waiting for a user to be discovered in frame. Once it finds a face, it will instruct the user to move closer/farther away until they are at an acceptable distance. At this point the tool will extract a rectangle around each eye, passing the data to the “PupilDetectDLL” component, where a pupil detection algorithm will be run on it. When the pupils are discovered, the pixel coordinates are translated to 3D space and the distance between the pupils are measured. This will be repeated for each frame until a minimum number of successful samples are discovered (20 by default), and the standard deviation of the measurements falls below a specified value (1mm by default, plus a slowly increasing tolerance over time). When a valid IPD has been measured, based on those criteria, the app will either display the IPD to the screen, and/or write the value to a configured HoloLens device. After a short amount of time (7.5 seconds), the app will reset back to its “attract” state, waiting for a user to enter the camera frame.
18+
19+
Various settings can be changed by switching into “debug mode” by pressing X or Spacebar on the keyboard.
20+
21+
- AutoExposure: Enabling this option will have the app attempt to adjust the exposure of the image so that the area around the eyes is at a specified brightness.
22+
- Exposure: The current exposure of the image. This can be manually adjusted when not in Auto Exposure mode. In general, a brighter image will work better for image processing.
23+
Note: It is recommended to have supplemental lighting (i.e. LED strip lights) on either side of the camera to light the user’s face better.
24+
- Target Luma: This is the value that AutoExposure will use as a target value.
25+
- Vertical Offset: Occasionally the Kinect face tracking will report the position of the eyes as higher/lower than they actually are – resulting in poor results when detecting pupils. This adjustment offsets the eye boxes to accommodate the difference.
26+
- HoloLens Programming Mode: The application can optionally program a HoloLens device with the IPD after successful measurement. There are 3 modes available:
27+
- Display Only: The application will only display the IPD at the end of the measurement process. The IPD can then be manually submitted to the HoloLens using another tool.
28+
- Device List: One or more devices can be specified by Name/IP/Username/Password to automatically be programmed at the end of measurement. The IP address can be http://localhost:10080 if connected via USB, the actual network IP of the device if known, or set to auto-discover the network IP (this requires being connected to USB).
29+
- NFC Tag: A tag can be placed on the HoloLens so that when the device is placed onto an NFC reader, the Name/IP/Username/Password will be read from the tag, and automatically programmed. See below for more info on tags, readers and a mount.
30+
31+
### Recording/Playback:
32+
The Kinect streams can be recorded to be played back for debugging/testing.
33+
- To record a session, press the R button on the keyboard or the “record session” button in the debug view (press X/space to activate the debug view.) It will record for 20 seconds maximum, or until you press the record button again. Start the session before the user is discovered, then have them approach the camera as normal and stand in place for the rest of the session.
34+
- To play a session, press the E button on the keyboard, or the “play session” button in the debug view (then choose the file to play back).
35+
36+
Caveats:
37+
- During playback, the exposure can’t be adjusted (since we talk to the driver). Thus you should record multiple sessions of each person at different exposure settings (and auto-exposure turned off).
38+
- The files are LARGE – (3GB+ for 30 seconds of data).
39+
40+
41+
### NFC Reader/Tags and mount:
42+
KinectIPD has been tested with the following NFC components:
43+
- NFC Reader:
44+
http://www.amazon.com/CycleMore-ACR122U-Contactless-Reader-Writer/dp/B016XJH5VS/ref=sr_1_4?rps=1&ie=UTF8&qid=1453925951&sr=8-4&keywords=acr122u&refinements=p_85%3A2470955011
45+
- NFC Tags (25 in a package):
46+
http://www.amazon.com/SMARTRAC-3002981-Inlays-Circus-NTAG213/dp/B011DFAQQI/ref=sr_1_3?rps=1&ie=UTF8&qid=1453933803&sr=8-3&keywords=nfc+clear+tags&refinements=p_85%3A2470955011
47+
- The included 3D printable mount model (located in the 'HololensNFC_readerMount.fbx' file) has been used successfully to allow for easy alignment of the tag to the reader.
48+
49+
50+
51+
### Project Dependencies:
52+
KinectIPD makes use of several OSS projects:
53+
- EyeLike, by Tristan Hume
54+
- https://github.com/trishume/eyeLike
55+
- NFCSharp
56+
- https://nfcsharp.codeplex.com/
57+
- NdefLibrary
58+
- https://www.nuget.org/packages/NdefLibrary
59+
- OpenCV 3.1
60+
- http://opencv.org/

README.md

+3-104
Original file line numberDiff line numberDiff line change
@@ -6,111 +6,10 @@ For more information see the [Code of Conduct FAQ](https://opensource.microsoft.
66

77
---
88

9-
## Holographic Remoting Host
10-
11-
This code sample shows how to create a desktop or UWP app that provides holographic content via remoting.
12-
13-
Holographic remoting allows your app to host holographic content on a desktop PC, or on a UWP device such as
14-
the XBox One, allowing access to more system resources and making it possible to integrate holographic views
15-
into existing desktop PC software. This code sample includes desktop, UWP, and UWP XAML projects that all
16-
provide remoting content.
17-
18-
This code sample demonstrates the following features that are required for a holographic remoting host:
19-
20-
* Establishes a connection with the HoloLens
21-
* Receives a data stream with input from a HoloLens
22-
* Renders content in a virtual holographic view
23-
* Streams content frames back to the HoloLens in real-time
24-
25-
For more info, see the [holographic remoting documentation](http://developer.microsoft.com/windows/holographic/Add_holographic_remoting).
26-
27-
### Build the sample
28-
29-
1. Download the sample from GitHub in a ZIP file, or clone the repo to your developer PC.
30-
2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
31-
3. In the RemotingHostSample folder, double click on **RemotingHostSample.sln** to open the sample in Visual Studio.
32-
4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
33-
34-
### Install the Remoting Player app
35-
36-
1. On your Microsoft HoloLens, visit the Store app and search for "Remoting Player".
37-
2. Select the Remoting Player app.
38-
3. Tap **Install* to start the download and install the Remoting Player app.
39-
40-
### Connect the remoting host sample to the Remoting Player
41-
42-
1. Start the Remoting Player on your Microsoft HoloLens.
43-
2. Take note of the HoloLens IP address. It will be displayed as a hologram by the Remoting Player soon after it launches.
44-
3. Set up the remoting host sample that you are most interested in:
45-
46-
1. The UWP XAML sample includes a UI that makes it easy to connect. After launching the sample, you will type in the IP address of the HoloLens into a dialog box and click **Connect**.
47-
2. The UWP sample (DirectX only) will require a code modification to connect. Go to line 223 of RemotingHostSample.cpp, replace "192.168.0.1" with the IP address of your HoloLens, and rebuild and launch the app to connect.
48-
3. The desktop sample requires that you specify the IP address on the command-line. To do this, right-click on the project to view the **Property Pages** and select the Debug property page. Type the IP address of the HoloLens into the **Command Arguments** field and click **OK**.
49-
50-
4. In Visual Studio, right-click on the remoting host sample that you want to launch and select **Set as StartUp Project**.
51-
5. Press F5 to begin.
52-
9+
## [Holographic Remoting Host](RemotingHostSample\README.md)
5310

5411
---
5512

13+
## [KinectIPD](KinectIPD\README.md)
5614

57-
## KinectIPD
58-
59-
KinectIPD is a utility to measure a person’s IPD (inter-pupillary distance) and optionally set the IPD on a HoloLens device automatically. This is especially useful in situations where many users are using a HoloLens device such as demos or tradeshows. In testing, KinectIPD was accurate to +- 2 millimeters, which should be adequate for most HoloLens scenarios.
60-
61-
### Building:
62-
- Install the latest version of the Kinect SDK from: https://developer.microsoft.com/en-us/windows/kinect
63-
- Note: KinectIPD was primarily tested on 64bit systems. Additional work may be required to run on 32bit systems.
64-
- Download the project from GitHub in a ZIP file, or clone the repo to your developer PC.
65-
- Start Microsoft Visual Studio 2015 and select File > Open > Project/Solution.
66-
- In the KinectIPD folder, double click on KinectIPD_Kiosk.sln to open the sample in Visual Studio.
67-
68-
69-
- Change the build configuration to Release/x64.
70-
- Press F5 to start the application.
71-
72-
### How to use:
73-
Connect a Kinect 2.0 camera to a PC/Laptop and run KinectIPD. After startup, the app will be waiting for a user to be discovered in frame. Once it finds a face, it will instruct the user to move closer/farther away until they are at an acceptable distance. At this point the tool will extract a rectangle around each eye, passing the data to the “PupilDetectDLL” component, where a pupil detection algorithm will be run on it. When the pupils are discovered, the pixel coordinates are translated to 3D space and the distance between the pupils are measured. This will be repeated for each frame until a minimum number of successful samples are discovered (20 by default), and the standard deviation of the measurements falls below a specified value (1mm by default, plus a slowly increasing tolerance over time). When a valid IPD has been measured, based on those criteria, the app will either display the IPD to the screen, and/or write the value to a configured HoloLens device. After a short amount of time (7.5 seconds), the app will reset back to its “attract” state, waiting for a user to enter the camera frame.
74-
75-
Various settings can be changed by switching into “debug mode” by pressing X or Spacebar on the keyboard.
76-
77-
- AutoExposure: Enabling this option will have the app attempt to adjust the exposure of the image so that the area around the eyes is at a specified brightness.
78-
- Exposure: The current exposure of the image. This can be manually adjusted when not in Auto Exposure mode. In general, a brighter image will work better for image processing.
79-
Note: It is recommended to have supplemental lighting (i.e. LED strip lights) on either side of the camera to light the user’s face better.
80-
- Target Luma: This is the value that AutoExposure will use as a target value.
81-
- Vertical Offset: Occasionally the Kinect face tracking will report the position of the eyes as higher/lower than they actually are – resulting in poor results when detecting pupils. This adjustment offsets the eye boxes to accommodate the difference.
82-
- HoloLens Programming Mode: The application can optionally program a HoloLens device with the IPD after successful measurement. There are 3 modes available:
83-
- Display Only: The application will only display the IPD at the end of the measurement process. The IPD can then be manually submitted to the HoloLens using another tool.
84-
- Device List: One or more devices can be specified by Name/IP/Username/Password to automatically be programmed at the end of measurement. The IP address can be http://localhost:10080 if connected via USB, the actual network IP of the device if known, or set to auto-discover the network IP (this requires being connected to USB).
85-
- NFC Tag: A tag can be placed on the HoloLens so that when the device is placed onto an NFC reader, the Name/IP/Username/Password will be read from the tag, and automatically programmed. See below for more info on tags, readers and a mount.
86-
87-
### Recording/Playback:
88-
The Kinect streams can be recorded to be played back for debugging/testing.
89-
- To record a session, press the R button on the keyboard or the “record session” button in the debug view (press X/space to activate the debug view.) It will record for 20 seconds maximum, or until you press the record button again. Start the session before the user is discovered, then have them approach the camera as normal and stand in place for the rest of the session.
90-
- To play a session, press the E button on the keyboard, or the “play session” button in the debug view (then choose the file to play back).
91-
92-
Caveats:
93-
- During playback, the exposure can’t be adjusted (since we talk to the driver). Thus you should record multiple sessions of each person at different exposure settings (and auto-exposure turned off).
94-
- The files are LARGE – (3GB+ for 30 seconds of data).
95-
96-
97-
### NFC Reader/Tags and mount:
98-
KinectIPD has been tested with the following NFC components:
99-
- NFC Reader:
100-
http://www.amazon.com/CycleMore-ACR122U-Contactless-Reader-Writer/dp/B016XJH5VS/ref=sr_1_4?rps=1&ie=UTF8&qid=1453925951&sr=8-4&keywords=acr122u&refinements=p_85%3A2470955011
101-
- NFC Tags (25 in a package):
102-
http://www.amazon.com/SMARTRAC-3002981-Inlays-Circus-NTAG213/dp/B011DFAQQI/ref=sr_1_3?rps=1&ie=UTF8&qid=1453933803&sr=8-3&keywords=nfc+clear+tags&refinements=p_85%3A2470955011
103-
- The included 3D printable mount model (located in the 'HololensNFC_readerMount.fbx' file) has been used successfully to allow for easy alignment of the tag to the reader.
104-
105-
106-
107-
### Project Dependencies:
108-
KinectIPD makes use of several OSS projects:
109-
- EyeLike, by Tristan Hume
110-
- https://github.com/trishume/eyeLike
111-
- NFCSharp
112-
- https://nfcsharp.codeplex.com/
113-
- NdefLibrary
114-
- https://www.nuget.org/packages/NdefLibrary
115-
- OpenCV 3.1
116-
- http://opencv.org/
15+
---

RemotingHostSample/README.md

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
## Holographic Remoting Host
2+
3+
This code sample shows how to create a desktop or UWP app that provides holographic content via remoting.
4+
5+
Holographic remoting allows your app to host holographic content on a desktop PC, or on a UWP device such as
6+
the XBox One, allowing access to more system resources and making it possible to integrate holographic views
7+
into existing desktop PC software. This code sample includes desktop, UWP, and UWP XAML projects that all
8+
provide remoting content.
9+
10+
This code sample demonstrates the following features that are required for a holographic remoting host:
11+
12+
* Establishes a connection with the HoloLens
13+
* Receives a data stream with input from a HoloLens
14+
* Renders content in a virtual holographic view
15+
* Streams content frames back to the HoloLens in real-time
16+
17+
For more info, see the [holographic remoting documentation](http://developer.microsoft.com/windows/holographic/Add_holographic_remoting).
18+
19+
### Build the sample
20+
21+
1. Download the sample from GitHub in a ZIP file, or clone the repo to your developer PC.
22+
2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
23+
3. In the RemotingHostSample folder, double click on **RemotingHostSample.sln** to open the sample in Visual Studio.
24+
4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
25+
26+
### Install the Remoting Player app
27+
28+
1. On your Microsoft HoloLens, visit the Store app and search for "Remoting Player".
29+
2. Select the Remoting Player app.
30+
3. Tap **Install* to start the download and install the Remoting Player app.
31+
32+
### Connect the remoting host sample to the Remoting Player
33+
34+
1. Start the Remoting Player on your Microsoft HoloLens.
35+
2. Take note of the HoloLens IP address. It will be displayed as a hologram by the Remoting Player soon after it launches.
36+
3. Set up the remoting host sample that you are most interested in:
37+
38+
1. The UWP XAML sample includes a UI that makes it easy to connect. After launching the sample, you will type in the IP address of the HoloLens into a dialog box and click **Connect**.
39+
2. The UWP sample (DirectX only) will require a code modification to connect. Go to line 223 of RemotingHostSample.cpp, replace "192.168.0.1" with the IP address of your HoloLens, and rebuild and launch the app to connect.
40+
3. The desktop sample requires that you specify the IP address on the command-line. To do this, right-click on the project to view the **Property Pages** and select the Debug property page. Type the IP address of the HoloLens into the **Command Arguments** field and click **OK**.
41+
42+
4. In Visual Studio, right-click on the remoting host sample that you want to launch and select **Set as StartUp Project**.
43+
5. Press F5 to begin.
44+
45+
46+
---

0 commit comments

Comments
 (0)