HoloLens2 Vuforia 라이브러리 임포트
HoloLens2 프로젝트에 Vuforia를 임포트하는 방법을 설명한다.
2020.12.29
가장 간단한 이미지 타겟 예제를 통해 동작하는 모습을 보여준다.
Import Vuforia library guide
이미지 및 QR코드 인식에 사용되는 Vuforia 라이브러리 임포트 방법을 기록한다.
HoloLens 1에서도 사용했던 라이브러리인데, HoloLens2도 지원한다.
참고 블로그 : HoloLens2 + Vuforia image recognition
1. 준비물
- 이미지 파일 : 인식할 이미지 파일을 준비한다. png 또는 jpg로 준비한다.
- 인쇄된 이미지 : 이미지 파일을 출력해 준비한다. 이 이미지를 인식할 것이다.
- HoloLens2 : 홀로렌즈2를 가지고 있어야 한다.
- WebCam : 디버그용(Unity Play모드에서 쓸) 웹캠이 있어야 한다.
- MRTK 프로젝트 : #101 에서 만든 기본 프로젝트 만들기가 선행되어야 한다.
2. Import Vuforia Library
2-1. Package Manager를 통해 가져오기
상단 메뉴의 Window > Package Manager > Vuforia Engine AR
을 Install해 준다.
2-2. Main Camera에 Vuforia Behaviour
추가하기
Scene Hierarchy에서, MixedRealityPlayspace
의 아래에 있는 Main Camera에 Vuforia Behaviour
컴포넌트를 추가한다.
3. Configuration Vuforia Library
3-1. Vuforia Engine
의 개발자 동의를 진행한다.
상단 메뉴에서 Help > Vuforia Engine > Show Developer Agreement
를 눌러 Accept
한다.
3-2. Vuforia Behaviour
컴포넌트의 Open Vuforia Engine configuration
을 누른다.
3-3. Vuforia License Key를 발급받는다.
- Vuforia 웹사이트에 접속한다.
- 회원가입을 진행하고, 로그인을 한다.
Get Development Key
를 눌러 라이센스를 만든다.- 추가된 License를 누르면, License Key가 보인다. 이를 복사한다.
3-4. License Key 등록
발급 받은 License Key를 입력한다.
4. Create Target Image Database
4-1. Vuforia developer portal에 접속해 데이터베이스를 만든다.
Develop > Target Manager
에 들어가 Add Database
버튼을 누른다.
그 후, 적당한 이름을 입력하고 Type은 Device
로 한 다음 Create
를 누른다.
4-2. 이미지를 추가한다.
```Add Target``버튼을 눌러 이미지를 추가한다. 여기서는 Single Image로 진행하도록 한다.
File : 이미지 파일을 선택하여 넣는다. Width : 이미지 파일의 가로 길이를 입력한다. 이때 단위는 m이다! 즉, 가로길이가 5cm라면 0.05이다!! Name : 타겟의 이름을 입력한다.
반드시 Width파라미터를 잘 설정해야 한다. 이 설정이 맞지 않으면, 최종 단계에서 Offset이 발생 할 수 있다.
또한, 이 Width는 이미지 파일의 Width가 아닌, 인쇄된 이미지의 가로길이임을 주의하라.
4-3. Database 다운로드
Target Image를 추가하고 잠시 기다리면, Status가 Active
가 되면서 사용이 가능해지는 것을 볼 수 있다.
동시에, Rating이라는 항목에 별이 매겨지게 되는데, 이 별이 많을수록 인식이 잘 될 가능성이 높다는 뜻이다.
이미지 특징을 추출하는 과정에서, 복잡하고 특징이 많은 이미지 일 수록 판단하기 쉽고,
밋밋하고 단조로운 이미지일 수록 특징을 추출할게 별로 없어 판단하기 어렵기 때문이다.
데이터베이스를 다운 받기 위해 Download Database (All)
을 눌러준다.
그럼 창이 하나 뜨는데, Unity Editor를 선택하고 Download를 눌러준다.
5. Import database
5-1. 데이터 베이스 패키지 임포트
다운받은 [데이터베이스 이름].unitypackage
를 Unity Project
윈도우에 드래그 & 드랍하고,
모두 선택하여 Import를 눌러준다.
5-2. Image Target 오브젝트 배치
Scene Hierarchy
에서 마우스 우클릭으로 Vuforia Engine > Image
를 눌러 Target Image를 만들어준다.
그럼 아까 만들었던 Image Target이 나타난 모습을 볼 수 있다.
이 Image 위에 Cube 임시로 올려주었다.
6. Debug Setting
6-1. 웹캠 세팅
Scene Hierarchy
의 MixedRealityPlayspace > Main Camera > Vuforia Behaviour > Open Vuforia Engine configuration
을 누른다.
Webcam
항목에서 자신의 웹캠이 잘 선택되어 있는지 확인해야 한다.
7. 머징 완료
2021.01.12 추가
테스트 결과 Unity Editor 상에서는 잘 동작하지만, 실제로 빌드하여 HoloLens에 올리면 잘 동작하지 않는다.
확인해보니 MRTK의 Camera System
과 충돌하여 그런 듯 하다.
임시 방편으로는 MixedREalityToolkit
오브젝트의 MixedRealityToolkit
컴포넌트에서
카메라 항목에 들어가 Enable Camera System
의 체크박스를 해제하면 동작하긴 한다.
카메라 시스템에 대한 내용은 공식 문서를 참고하면 좋다.
아래는 Vuforia를 사용하여 만든 간단한 카드 AR 어플리케이션.
Pinterest의 이 영상을 보고 감동받아서 짧게 따라해 보았다.