본문 바로가기
My Image
프로그래밍/Kinect

[kinect] Kinect v2 Depth 카메라 영상처리 응용프로그램(1)

by Lim-Ky 2017. 8. 27.
반응형

 안녕하세요. Limky입니다.

지난번 WPF 프로젝트에 응용프로그램을 생성해봤고, 영상처리를 위해 OpenCVSharp 모듈을 세팅한 것까지 했는데요. 오늘은 대망의 영상 처리 응용프로그램에 대해서 포스팅을 해볼까 합니다.


추후에 업데이트한다고했는데, 요새 너무 바쁘고 다른 것들을 공부하고 있어서 빨리 업데이트가 되지 못한 점 죄송합니다.ㅎㅎㅎ


자 간략하게 제가 만든 영상처리 응용프로그램을 소개하겠습니다.

준비물이라고 할까요? 이 응용프로그램을 돌리기 위해선 몇 가지 준비가 필요합니다.

우선 Kinect v2, Kinect v2 Window용 usb 컨버터, OpenCV모듈 설치, WPF 프로젝트(Visual Studio 2017로 저는 설치함.) 이렇게 준비가 되어야 합니다.


다시 한번 준비물 체크.


1. kinect v2

2. kinect v2 winodow용 usb 컨버터 

(Kinect v2 는 사실 XBox를 위해 제작된 HW이기 때문에 컴퓨터와 연결하기 위해서 따로 USB 컨버터가 있어야 합니다..)

3. OpenCVSharp 모듈 설치

4. Visual Studio 2017


자 하나씩 준비물을 가지고 프로젝트에 적용시켜 봅시다!!


kinect sdk depth에 대한 이미지 검색결과

이녀석이 kinect v2입니다. v1과 다른 모습을 하고 있죠? 스펙도 확연히 다릅니다.

kinect v2 v1를 비교한 사이트 -> kinect v1, v2 철저한 비교 



그렇다면, 이 영상처리 응용프로그램은 무엇을 하느냐?? 바로 물체의 무게중심 좌표를 실시간으로 추적하여, 해당 영상에서 물체의 무게중심 좌표 X,Y좌표를 서버에게 전송하는 추적 프로그램입니다.


Kinect v2에서 기본적으로 제공해주는 여러가지 SDK들이 있는데 저는 그 중에 Default Depth Camera 를 기본적으로 Install해서 WPF로 프로젝트를 만들었습니다. 


Kinect v2 공식 사이트에 가셔서 window를 위한 KinectSDK-v2.0_1409-setup 파일을 설치해 주세요.




다 설치 하시고, SDK Browser v2.0 (Kinect for Windows)를 실행시켜주세요.







말씀드렸듯 Kinect for window sdk를 쭉 설치하시고, 그 중에 기본 심도 카메라 Basics Depth Camera를 Install 하시고, WPF 프로젝트로 생성해 주세요. Install -> Run 하시면 아마 자동으로 생길 겁니다. 저는C:\Users\Limky\Documents\DepthBasics-WPF 이쪽에 프로젝트가 만들어졌습니다. 




그럼 기본적으로 위와 같이 프로젝트가 만들어졌고 DepthBasics-WPF.sln 을 클릭하시면, 아래와 같이 비주얼 스튜디오가 켜질겁니다.



자 오른쪽 솔루션 탐색기에서 MainWindow.xaml -> MainWindow.xaml.cs를 클릭해봅시다.

기본적으로 Depth Camera를 구동시킬 수 있는 코드가 짜여져 있습니다.

기본적으로 만들어진 함수들은 위에 주석으로 

//<summary>하고 어쩌구 저쩌구 함수에 대한 설명이 주석으로 박힙니다.

여기까지 잘 따라오셨으면 아래와 같이 Sensor_IsAvailableChanged와 Reader_FrameArrived함수가 있어야 합니다.

이것 말고도 등등의 함수들이 있겠죠??? Reader_FrameArrived함수 보이시나요???

이 함수는 굉장히 중요하기 때문에 알아야 합니다. 

말 그대로 Kinect v2 Depth Camera에서 기본적으로 영상을 잡고 Reader 작업을 한 후 프레임 1장을 이 함수를 통해 전달합니다. 함수 명 그대로 해석하시면 됩니다. 랜더 하고 프레임 하나를 이 함수에 도착 시킨다!





자 그리고 준비물 체크를 해봅시다.

현재까지 잘 따라오셨다면, 프로그램을 실행시켜보시면, Depth 카메라 영상이 떠야 정상입니다. 영상이 뜨시나요??? 



아래 Kinect v2 prerelease 이것은 안 뜨는게 정상입니다. 제가 지금 kinect v2가 없어서 화면을 직접 캡쳐하지 못했고, 인터넷에 해당 사진은 그나마 비슷한 사진을 퍼왔습니다. 저런 식으로 떠야 됩니다. 


자...제일 중요한 OpenCVSharp가 설치되었는지 체크해봅시다.

현재까지 한 프로젝트에서 OpenCVSharp를 설치합니다. 아래 참고

2017/07/11 - [Kinect] - [Kinect] wpf프로젝트에 opencv 적용하기


자 openCVSharp가 잘 적용 됐는지 아래처럼 using Op했을 때 아래 그림처럼 자동으로 잡아 주는지 확인 합시다. 잘 잡아주면 using을 시킵니다.





굉장히 구축해야 할 것이 많죠???... 우선 스크롤 압빡을 피하기위해 알고리즘 설명까지 오늘 하기엔 부담스러울 것 같습니다. 제가 이번 돌아오는 주말 안까지 다시 2편을 포스팅 하겠습니다.

지금까지 질문이 있으시면, 질문해주시고!! 이것저것 정신 없을텐데 처음만 잡아 놓으면 됩니다!! 화이팅!!









반응형

댓글