C#용 증강현실 라이브러리 - NyARToolKitCS

2009. 9. 20. 06:23

NyARToolKitCS 는 NyARToolKit의 종류 중 하나입니다.


NyARToolKit은 이미 널리 알려진 ARToolKit(Hirokazu kato와 Human Interface Technology Lab에서 개발된 증강현실 라이브러리) Ver 2.72.1을 발전시킨 호환 ARToolKit 클래스 라이브러리입니다. JAVA / Android / C#.NET FW/ C#.NET CFW / Action Script3 / C++ 등의 여러 플랫폼을 지원하고 있습니다.


NyARToolKitCS는 NyARToolKIt의 C#용 버전이며, 2008년 6월 최초버전이 공개된 이후 2009년 5월에 2.3.0 버전이 최종으로 릴리즈되어 있습니다.

 

NyARToolKItCS Architecture


 

NyARToolKitCS는 .NET Framework 2.0 이상에서 동작하며 컴파일러는 Visual C# 2008 Professional Edition 이상이 필요합니다. 또한 Windows Mobile 5 이상에서도 동작이 가능하며 이때에는 .NET Compact Framework 3.5 이상의 환경이 필요합니다.


카메라 입력은 DirectShowLib.NET을 이용하며, 3D 출력에는 Managed Direct3D를 사용합니다. .NET CFW에서 개발할 시에는 카메라 영상 입력을 위해 NyWMCapture (Capture DLL for WM), Mobile Managed Direct3D를 사용합니다.

 

Coordination of ARToolKit


Basic Principles of ARToolKit


Computer Vision Algorithm of ARToolKit


 

NyARToolKitCS의 좌표체계는 기존의 ARToolKit과 같은 원리이며, 동작 원리 또한 거의 흡사하다.

 

<Computer Vision Algorithm of ARToolKit>

① 사용할 마커를 카메라 좌표 안에 위치한다

② 스레드홀딩 기법을 이용하여 마커이미지를 이진화한다.

③ 각 Component 들을 연결한다.

④ 윤곽선을 추출한다.

⑤ 마커의 모서리와 코너를 추출하여 마커위에 사각형을 그린다.

⑥ 3D Object를 추출된 마커 사각형 좌표에 맞춰 나타낸다.

 

ARToolKit 공식 홈페이지 : http://www.hitl.washington.edu/artoolkit/

NyARToolKit 공식 홈페이지 : http://nyatla.jp/nyartoolkit/wiki/index.php


 

NyARToolKit을 이용한 증강현실


박상근 프로그래밍/NyARToolKitCS

블랙잭 개발환경 구축하기 ( Windows Mobile 6 )

2009. 6. 6. 20:12


막연히 모바일 개발이 해보고싶다라고 생각만 했었는데,
삼성 소프트웨어 멤버십 19기로 합격하고 단기과제를 진행하면서 Windows Mobile 6 기반에서 개발할 기회가 생겼다.

Museum Assitst
박물관에서 각 작품의 해당 정보를 얻기 위해 자신의 스마트폰에서 지정된 작품 번호를 입력하면
해당 작품의 정보를 텍스트, 이미지 뿐 아니라 음성으로 바로 안내를 받을 수 있는 시스템

Museum Assist 에서 내가 스마트폰 개발 파트를 담당하게 되었다.
옴니아같은 스마트폰은 100여만원... 너무 비싸고, 무난히 쓸만한 블랙잭 ( SCH-M620 )을 구매했다..
상태도 깨끗했고 4GB MicroSD 칩 포함해서 직거래 12만원에 ㅎㅎㅎ. 중고매매 처음해봤다.

스마트폰이 준비되었으니 이제는 개발환경을 구축할 차례다.
블랙잭은 기본으로 Windows Mobile 5 가 깔려있는데 Windows Mobile 6 으로 롬업했다.

Visual Studio 2008 은 미리 준비되어 있었고, 스마트폰 개발을 위한 Windosw Mobile 6 SDK 를 다운받자.

http://www.microsoft.com/downloads/details.aspx?FamilyID=06111a3a-a651-4745-88ef-3d48091a390b&DisplayLang=en
Windows Mobile 6 Professional SDK 는 터치가 가능한 스마트폰용이고 블랙잭은 터치가 안되기때문에
Windows Mobile 6 Standard SDK 를 다운받아서 설치하면 된다.

이제 블랙잭을 위한 에뮬레이터 이미지를 다운받아야한다.
일단 윈도우 폼 개발에서의 Form 형태를, 스마트폰 개발에서는 각 폰 형태에 맞게 이미지를 지정해줘야한다.
각 폰마다 액정의 크기도 틀리고, 키패드 배열 등도 틀리기 때문이다.

http://www.microsoft.com/downloads/details.aspx?familyid=38C46AA8-1DD7-426F-A913-4F370A65A582&displaylang=en
위 링크에서 0412/Windows Mobile 6 Standard Images (KOR).msj 를 다운받아 설치하자.


자, 이제 스마트폰 개발을 위한 새 프로젝트를 생성해본다. Visual Studio 2008 을 설치하고
파일 -> 새로만들기 -> 새 프로젝트 를 하면 위 그림과 같은 새 프로젝트 창이 뜬다.
본인은 Visual C# 으로 개발할 생각이었으므로 Visual C# -> 스마트 장치 를 선택했다.
이 스마트 장치가 바로 스마트폰을 의미한다. ( PDA 개발도 포함 )


새 프로젝트에서 이름과 위치 등을 설정하고 확인을 누르면 위와 같은 스마트 장치에 대한 설정 창이 뜬다.
대상 플랫폼을 Windows Mobile 6 Standard SDK로 설정하고 .NET Compack Framework는 각자 자신에 맞게.
장치 응용 프로그램을 선택하고 확인을 클릭해보자.

 
 
좌측이 Windows Mobile 6 Standard SDK, 우측이 Windows Mobile 6 Standard Landscape QVGA 폼 이미지이다.

처음 프로젝트를 생성하면 폼 속성의 FormFackor 가 Windows Mobile 6 Standard SDK 로 되어있으므로
블랙잭 폼 이미지를 사용하기 위해서는 Windows Mobile 6 Standard Landscape QVGA 폼 이미지로 변경한다.


자, 이제 에뮬레이터도 블랙잭으로 설정을 바꿔보자.
프로젝트의 속성에서 장치 탭을 보면 배포 옵션의 대상 장치를 선택할 수 있다.
이것도 폼 속성의 FormFackor 를 변경했던것과 마찬가지로, 위 그림과 같이 바꿔준다.


자 이것이 에뮬레이터 동작 화면이다.
디버깅 하면 저 에뮬레이터가 동작하게된다. 블랙잭과 아주 유사하지 않은가?

이제 블랙잭 폰에 맞춘 스마트폰 개발환경을 마쳤다.

휴... 4달 전 단기과제 시작할 때의 기억을 더듬어 쓰려니 힘들다.
그 땐 정말 아무것도 몰랐는데, 한번 해봤다고 프로젝트 있을 때마다 스마트폰 관련 기능을 넣어서
내 폰으로 어찌어찌 아웃풋을 내보려는 내 모습을 보면 조금 우습기도 하다. 하하하~

내가 지금 이럴때가 아니지. 시험기간인데...


박상근 프로그래밍/.NET (C#)