출처: https://blog.iroot.kr/341 [RootKR] [AR,Vuforia] Vuforia와 Webcam, Unity를 활용한 간단한 기능 구현

상세 컨텐츠

본문 제목

[AR,Vuforia] Vuforia와 Webcam, Unity를 활용한 간단한 기능 구현

unity,ARVR

by QKRM 2023. 3. 19. 16:26

본문

https://www.youtube.com/watch?v=xsu0STVHaM8 

언제나 그렇지만 제가 처음부터 끝까지 만든 코드가 아닌 위 링크의 영상을 보고, 제 방식대로 해석해서 작성한 글입니다.

40분짜리 영상이고, 뒤에 20분은 별로 하는것도 없거니와 말이느려서 글보고 후딱하시면 한 20분안에 기본 기능 구현이 가능할 것 같습니다.(vuforia패키지 다운로드가 30분정도 걸리긴 합니다.)

 

이 포스팅을 통해 구현할 기능은

 

1. 이미지를 인식하기

2. 그 이미지의 transform에 맞추어 GameObject생성하기 

 

입니다.

 

일단 vuforia 개발자 사이트에 접속해줍니다. https://developer.vuforia.com/

 

Home | Vuforia Developer Portal

Feb 15, 2023 Support Changes for Vuforia Engine The Vuforia Engine team is excited to announce new changes to our support options! These changes are replacing our existing Community Forums to provide more efficient support and transparency: Share feedback

developer.vuforia.com

회원가입 및 로그인을 해주시고 develop -> license manager로 이동합니다

Get Basic버튼을 눌러 베이직 라이센스를 흭득해줍니다. 이름은 자유롭게 하시면 됩니다. 프리미엄 라이센스의 경우 몇가지 기능이 추가되는걸로 보이는데...오늘은 베이직 라이센스로 가겠습니다!

다 되셨으면 Download -> SDK 에가서 빨간 박스친 부분을 눌러 unitypackage파일을 다운로드받아줍니다.(초당 30kb라는 절망적인 속도 ㅠㅠ)

다운로드 되는동안 해야할일은 바로 모델 생성입니다!

Develop -> Target Manager에 가서 Database를 생성해줍니다. Database는 사실상 인식할 이미지의 집합이라고 생각하시면 될것 같습니다.

데이터베이스 이름을 눌러 들어가면 Add Target과 Download Database 버튼이 있습니다. Add Target을 하게되면 2MB이하의 이미지를 업로드 하여 학습시킬 수 있고, Download  Database를 누르게 되면 Unity, Android,ios등 다양한 플랫폼으로 import할 수 있게 다운로드가 됩니다. 저희의 경우 Add Target을 통해 Target을 추가해주시고 Download Database -> unity editor를 선택해 unity package 파일을 다운로드 받아 주시면 됩니다. 나와있는 항목중 Rating은 이미지가 인식에 얼마나 적합한지를 나타내는 지표인데, 별다섯개면 아주좋다 이런이야기겠죠? 자세한 내용은 아래링크에 있습니다.

https://library.vuforia.com/objects/best-practices-designing-and-developing-image-based-targets

 

Best Practices for Designing and Developing Image-Based Targets | VuforiaLibrary

Best Practices for Designing and Developing Image-Based Targets

library.vuforia.com

간단히 정리하자면(대충)

1. 디테일한 내용이 많고

2. 색채 대비가 크며

3. 반복되는 패턴이 적은 이미지

4. 각진 부분이 많은이미지

가 인식이 잘된다고 합니다.

 

여기까지 왔으면 다되었습니다. unity project를 2020버전으로 하나 열어주시고

다음과 같이 만들어주시면 됩니다.

 

1. 다운받은 vuforia package import(임포트시 업데이트 할거냐고 물어보는데 하셔야 뷰포리아 패키지가 설치됩니당)

2. 다운받은 database import

3. MainCamera 삭제!

4. Hirearchy 창에서 Create -> Vuforia Engine -> AR camera / Create -> Vuforia Engine -> Image Target

해줍니다.

Windows -> Vuforia Configuration에 가서 App License Key를 입력해줍니다!(Add License누를 필요 없음/새라이선스를 발급받는다는뜻) 라이선스는 아까의 개발자 사이트에서 Develop -> License Manager -> 라이선스 클릭 -> License Key에서 Key 값을 클릭하시면 됩니다. 이러고 저 cofig창을 쭉 내리면 PlayMode -> Camera Device라는 메뉴가 있는데 거기서 본인의 Webcam을 선택하면 됩니다.

이제 끝입니다. Image Target의 Inspector창에서 Type 을 From Database로 그 아래의 것들은 본인에 상황에 맞게 수정해주시면 됩니다. 그러고 ImageTarget을 엄청~~~~확대해보면 내가 고른 이미지를 확인 해 보실 수 있습니다.

 

GameObject생성하는 방법을 안알려줬죠? 그냥 생성하고 싶은 Object를 ImageTarget의 자식 오브젝트로 만들어주면 ImageTarget과의 상대적인 위치로 자동 생성됩니다.

 

잘됩니당. 여러 이미지를 인식 시키고 싶을때는 Image타겟을 여러개 추가

여러개의 이미지를 인식하고 동일한 결과가 나왔으면 좋겠다 라는 분들은 multi image target을 사용하시면 될것 같습니다

 

 

 

23/05/25 추가>>>>

이대로 따라하셨으면 타깃 이미지가 프레임을 벗어나도 물체가 떠있습니다. image target 오브젝트의 "consider target as visible if its status is" 를 tracked로 바꾸어 주시면 프레임을 벗어났을때 물체가 없어집니다

관련글 더보기

댓글 영역