티스토리 뷰
이전에 이런 글을 쓴 적이 있습니다.
2012/09/25 - [About OpenCV] - [Kinect with OpenCV] CAMShift 적용 (2) Color Segmentation
사실 온라인상에 공개되어 있는 CAMShift를 수행하기 위해서는 Color 기반의 histogram이 나와야 됩니다. 그래야 사물에 대한 추적을 할 수 있는 것이지요. 하지만 그 글에서도 언급된 것처럼 다음과 같은 이미지가 나오게 됩니다.
이유는 키넥트의 카메라 배치때문입니다.
딱 보면 아시겠지만 Color를 볼수 있는 RGB Cam과 Depth를 볼 수 있는 Depth Cam의 위치가 다릅니다. 즉, 시점이 다르다는 것이지요.
여러대의 웹캠을 활용한 프로젝트에서도 시점이 맞지 않기 때문에 이를 보정해주는 과정을 거치는데 이를 Camera Calibration이라고 합니다. 보통 이 과정을 체스판을 이용해서 많이 진행합니다.
그래서 키넥트도 일종의 Calibration 과정이 필요합니다. OpenNI의 샘플에서 이 calibration을 수행하면 다음과 같이 나옵니다.
OpenNI에서 Calibration을 하면 위와 같이 정확히 매칭이 되지는 않지만 그래도 나름대로의 결과물을 얻을 수 있고,이 샘플은 NIViewer를 열어보시면 관련 코드가 구현되어 있습니다.
Kinect SDK에서도 reference를 잘 보면 아시겠지만 이 매칭을 해주는 함수가 있는데 그게 NuiImageGetColorPixelCoordinatesFromDepthPixelAtResolution()입니다.
인자값으로 Color의 해상도와 Depth의 해상도 그리고 depth 픽셀의 x,y점만 넣어주면 변환된 좌표값으로 plColorX, plColorY가 나오게 됩니다. 그 결과는 다음과 같이 나옵니다.
지금 위의 결과는 PlayerIndex 값이 있을 경우에만 출력하게 한 결과이며, 몇번 말씀드린 내용이지만 depthStream 내에 depthValue와 playerIndex 값이 들어 있기 때문에 사람만 잡을 수 있는 거지요. 동작 영상은 다음과 같습니다.
현재 Near mode를 켜 놓은 상태였는데 40cm 근방의 거리에서도 손끝까지 어느정도 매칭이 된 것을 확인할 수 있습니다.
코드가 궁금하신 분은 해당 링크를 참고하시면 도움이 되실 듯 합니다.
http://www.rozengain.com/blog/2012/08/01/using-opencv-2-with-kinect-sdk-1-5/
'OpenCV' 카테고리의 다른 글
[Kinect with OpenCV] C로 구현하는 SkeletonStream - Revisit (20) | 2013.02.06 |
---|---|
[EmguCV] EmguCV 재도전 - Hello World! (0) | 2012.12.11 |
[Kinect with OpenCV] 거리변환을 활용한 다양한 효과. (2) | 2012.12.04 |
[Kinect with OpenCV] DistanceTransform을 활용한 손 표현 (0) | 2012.12.03 |
[Kinect with OpenCV] c로 구현하는 InfraRed (8) | 2012.11.06 |
[Kinect with OpenCV] HandMouse (2) | 2012.10.29 |
[Kinect with OpenCV] 관절값을 이용한 handTracking (6) | 2012.10.23 |
- Total
- Today
- Yesterday
- Kinect for windows
- Kinect
- Distribution
- Off-policy
- Pipeline
- Expression Blend 4
- PowerPoint
- 강화학습
- windows 8
- Windows Phone 7
- reward
- 딥러닝
- ai
- arduino
- bias
- End-To-End
- Kinect SDK
- SketchFlow
- TensorFlow Lite
- ColorStream
- Policy Gradient
- Gan
- dynamic programming
- DepthStream
- 파이썬
- 한빛미디어
- processing
- Offline RL
- Variance
- RL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |