티스토리 뷰


※ OpenCV를 이용하여 Hand tracking을 통해 사물을 움직이는 졸업작품 프로젝트를 진행중입니다. PIC16F877칩을 사용하여 RS232통신을 통해 무선으로 사물인식에 따른 신호를 보내 움직이게 됩니다.

1. 손동작인식
RGB를 이용해 살색을 인식받고 영상 처리를 통한 이미지를 저장합니다. YCbCr로 변환한 이미지에서 다시 살색을 이차로 찾아내어 이 두 이미지를 비교하여 정확한 살색의 부분만 찾아옵니다. 이 방법은 이미 기존에 나와있는 방식 중 일부분이지만 OpenCV를 시작한지 얼마 되지 않아 이 마저도 쉽지가 않습니다. (-_-;)

2. UI 제작

UI제작은 위와 같이 하였습니다. 앞으로 수도없이 변하겠지만, 대화상자 구조로 만들어 간단한 처리를 우선적으로 받아 테스트 한 뒤에 새로 UI를 짤 생각으로 간단한 환경을 구축하였습니다.

3. RGB와 YCbCr의 살색 영역
UI에서 보듯이 RGB의 경우에는 직접 임계치를 찾기로 해서 만들었습니다. 그래서 찾은 임계치의 값은 다음과 같다. 찾은 값은 물론 논문에 비해서는 터무니 없는 값이지만 나름 사용이 가능합니다.

<RGB>
116 < Red < 151
86 < Green < 223
56 < Blue < 248

물론 이 값은 언제든지 변환 가능합니다. 정확하게 수치를 255로 맞춰놓고 하게 되면 바탕이 단색인 곳에서는 피부의 인식이 원할합니다. 하지만 RGB는 명암의 영향을 많이 받기 때문에 조그만 빛에도 색을 인식하지 못합니다. 때문에 YCbCr을 사용하게 되었습니다.

<YCbCr>
77 < Cr < 127
133 <= Cb <=173

Y(휘도성분)의 값은 이용하지 않습니다. 오직 색차값을 이용해서 살색을 인식합니다. 위의 임계치 값은 직접 구하지 않고 인터넷에서 이모 저모 알아봤더니 다음과 같은 수치가 정형화 되어있는 것 같아 사용했습니다. 막상사용하고 보니까 YCbCr쪽이 영상 인식 쪽에서는 훨씬 유용했습니다.

(RGB의 문제점은 형광등 아래에서는 쥐약이 된다는 것! 아무래도 정확한 수치를 새로 찾아야 할듯..)

여기까지 하고 오늘은 이만!!

'Portpolio > 학사졸업작품' 카테고리의 다른 글

LED 우측쉬프트로 점멸  (0) 2009.07.14
ToastProg 2005 사용하기  (0) 2009.07.13
풀업저항 / 풀다운저항  (0) 2009.07.13
ATMEGA128 16AU  (0) 2009.07.08
OpenCV :: Open source Computer Vision Library  (0) 2009.06.19
Hand tracking Day-1 : YCbCr & RGB  (0) 2009.06.18
댓글
댓글쓰기 폼