augmented-realitydlib-face-detectionface-detectionface-landmarkshololenshololens2mixed-realitymrtkopencvunity
6610dd8d33 | ||
---|---|---|
HLWithDlibExampleMRTK2/Assets | ||
HLWithDlibExampleMRTK3/Assets | ||
BuildSettings.jpg | ||
PlayerSettings.jpg | ||
ProjectAssets.jpg | ||
README.md | ||
screenshot01.jpg | ||
screenshot02.jpg | ||
screenshot03.jpg |
README.md
HoloLens With DlibFaceLandmarkDetector Example
Demo Video (old version)
Environment
- HoloLens1 10.0.17763.316 / HoloLens2 22621.1399
- Windows 10 SDK 10.0.19041.0 / 10.0.22621.0
- Unity 2019.4.40f1 (Built-in Render Pipeline / LegacyXR / MRTK 2.8.3 / DirectX 11 / Visual Studio 2019 MSVC v142)
- Unity 2021.3.35f1 (Built-in Render Pipeline / OpenXR 1.11.1 / MRTK 2.8.3 / DirectX 11 / Visual Studio 2022 MSVC v143)
- Unity 2021.3.35f1 (Built-in Render Pipeline / OpenXR 1.11.1 / MRTK 3.2.2 / DirectX 11 / Visual Studio 2022 MSVC v143)
- Mixed Reality Feature Tool
- OpenCV for Unity 2.6.3+
- Dlib FaceLandmarkDetector 1.4.0+
- EnoxSoftware/HoloLensCameraStream
Setup (Common)
- Download the latest release unitypackage. HoloLensWithDlibFaceLandmarkDetectorExample.unitypackage
- Create a new project. (
HoloLensWithDlibFaceLandmarkDetectorExample
)- Change the platform to
UWP
in the "Build Settings" window.
- Change the platform to
- Import and setup the Microsoft Mixed Reality Toolkit. (Recommend using MixedRealityFeatureTool)
- Import the OpenCVForUnity.
- Select MenuItem[Tools/OpenCV for Unity/Open Setup Tools].
- Click the [Move StreamingAssets Folder] button.
- Leave the following files and delete the rest. ("StreamingAssets/OpenCVForUnity/objdetect/haarcascade_frontalface_alt.xml", "lbpcascade_ frontalface.xml")
- Import the DlibFaceLandmarkDetector.
- Select MenuItem[Tools/Dlib FaceLandmark Detector/Open Setup Tools].
- Click the [Move StreamingAssets Folder] button.
- Leave the following files and delete the rest. ("StreamingAssets/DlibFaceLandmarkDetector/sp_human_face_68.dat", "sp_human_face_68_for_mobile.dat", "sp_human_face_17.dat", "sp_human_face_17_for_mobile.dat" and "sp_human_face_6.dat")
- Clone HoloLensCameraStream repository.
- Copy the "HoloLensCameraStream/HoloLensVideoCaptureExample/Assets/CamStream/" folder to the "Assets/" folder.
- Import the HoloLensWithDlibFaceLandmarkDetectorExample.unitypackage.
- Add the "Assets/HoloLensWithDlibFaceLandmarkDetectorExample/*.unity" files to the "Scenes In Build" list in the "Build Settings" window.
- Configure settings in the "Project Settings" window.
- Add Define Symbols: the following to
Scripting Define Symbols
depending on the XR system used in your project; Legacy built-in XR:BUILTIN_XR
; XR Plugin Management (Windows Mixed Reality):XR_PLUGIN_WINDOWSMR
; XR Plugin Management (OpenXR):XR_PLUGIN_OPENXR
. - Enable
WebCam
Capabilties in Publishing settings tab.
- Add Define Symbols: the following to
- (Optional) Setup a performance environment suitable for Holorens. (See https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/recommended-settings-for-unity)
- Build the project: You can now build the Unity project, which generates a Visual Studio Solution (which you will then have to also build). With the Build Settings window still open, click Build. In the explorer window that appears, make a new folder called
App
, which should live as a sibling next to the 'Assets` folder. Then click Select Folder to generate the VS solution in that folder. Then wait for Unity to build the solution. - Open the VS Solution: When the solution is built, a Windows explorer folder will open. Open the newly-built VS solution, which lives in
App/HoloLensWithDlibFaceLandmarkDetectorExample.sln
. This is the solution that ultimately gets deployed to your HoloLens. - Configure the deploy settings: In the Visual Studio toolbar, change the solution platform from
ARM
tox86
if you are building for Hololens1 or toARM64
if you are building for Hololens2; Change the deploy target (the green play button) toDevice
(if your HoloLens is plugged into your computer), orRemote Machine
(if your HoloLens is connected via WiFi). - Run the app: Go to Debug > Start Debugging. Once the app is deployed to the HoloLens, you should see some confirmation output in the Output window.
- (Print the AR marker "CanonicalMarker-d10-i1-sp500-bb1.pdf" on an A4 size paper)
Setup (HoloLens1 / Unity 2019 (Built-in Render Pipeline / LegacyXR / MRTK 2 / DirectX 11 / Visual Studio 2019))
- Download the latest release unitypackage.
- Create a new project. (
HoloLensWithDlibFaceLandmarkDetectorExample
) - Import the Microsoft Mixed Reality Toolkit.
- Add MRTK2 (Mixed Reality Toolkit - Mixed Reality Toolkit Foundation) to the project using "Mixed Reality Feature Tool".
- Follow the MRTK2 configuration dialog to set up the project. (XR System: Legacy Built-in XR)
- Import the OpenCVForUnity.
- Import the DlibFaceLandmarkDetector.
- Import the HoloLensCameraStream.
- Import the HoloLensWithDlibFaceLandmarkDetectorExampleMRTK2.unitypackage.
- Add the "Assets/HoloLensWithDlibFaceLandmarkDetectorExample/*.unity" files to the "Scenes In Build" list in the "Build Settings" window.
- Configure settings in the "Project Settings" window.
- Add
BUILTIN_XR
to the list of Define Symbols. - Enable
WebCam
Capabilties in Publishing settings tab.
- Add
- Build the project; open it in VS2019, set the deployment target to
x86
and deploy it to the Hololens1 actual device.
Setup (Unity 2021 (Built-in Render Pipeline / OpenXR / MRTK 2 / DirectX 11 / Visual Studio 2022))
- Download the latest release unitypackage.
- Create a new project. (
HoloLensWithDlibFaceLandmarkDetectorExample
) - Import the Microsoft Mixed Reality Toolkit.
- Add MRTK2 (Mixed Reality Toolkit - Mixed Reality Toolkit Foundation) and OpenXR(Platform Support - Mixed Reality OpenXR Plugin) to the project using "Mixed Reality Feature Tool".
- Follow the MRTK2 configuration dialog to set up the project. (XR System: OpenXR)
- Import the OpenCVForUnity.
- Import the DlibFaceLandmarkDetector.
- Import the HoloLensCameraStream.
- Import the HoloLensWithDlibFaceLandmarkDetectorExampleMRTK2.unitypackage.
- Add the "Assets/HoloLensWithDlibFaceLandmarkDetectorExample/*.unity" files to the "Scenes In Build" list in the "Build Settings" window.
- Configure settings in the "Project Settings" window.
- Add
XR_PLUGIN_OPENXR
to the list of Define Symbols. - Enable
WebCam
Capabilties in Publishing settings tab.
- Add
- Build the project; open it in VS2022, set the deployment target to
ARM64
and deploy it to the Hololens2 actual device.
Setup (Unity 2021 (Built-in Render Pipeline / OpenXR / MRTK 3 / DirectX 11 / Visual Studio 2022))
- Download the latest release unitypackage.
- Create a new project. (
HoloLensWithDlibFaceLandmarkDetectorExample
) - Import the Microsoft Mixed Reality Toolkit.
- Add MRTK3 (MRTK3 - MRTK Input, MRTK UX Components, MRTK UX Components (Non-Canvas)) and OpenXR(Platform Support - Mixed Reality OpenXR Plugin) to the project using "Mixed Reality Feature Tool".
-
- Set up the MRTK3. (XR System: OpenXR)
- Import the OpenCVForUnity.
- Import the DlibFaceLandmarkDetector.
- Import the HoloLensCameraStream.
- Import the HoloLensWithDlibFaceLandmarkDetectorExampleMRTK3.unitypackage.
- Add the "Assets/HoloLensWithDlibFaceLandmarkDetectorExample/*.unity" files to the "Scenes In Build" list in the "Build Settings" window.
- Configure settings in the "Project Settings" window.
- Add
XR_PLUGIN_OPENXR
to the list of Define Symbols. - Enable
WebCam
Capabilties in Publishing settings tab.
- Add
- Build the project; open it in VS2022, set the deployment target to
ARM64
and deploy it to the Hololens2 actual device.
Project Assets | Build Settings |
---|---|
Player Settings |
---|