2013-03-19 2 views
4

나는 손이 열려 있거나 닫혀 있는지를 인식하는 간단한 방법을 찾고 있습니다.개방형/폐쇄 형 손 인식 : 간단한 방법

저는 C#과 EmguCV을 사용하고 있습니다. 그러나이 문맥에서는 의미가 없습니다. 난 단지 내가해야 할 일을 설명하는 "의사 코드"가 필요합니다.

이 알고리즘의 입력 이미지는 손을 나타내는 이진 이미지 (이미 분할 프로세스를 구현했습니다)입니다. 출력은 부울이어야합니다 (열린 상태의 경우 true, 그렇지 않으면 false).

는 입력 예입니다

enter image description here

내가 볼록 선체, 또는 흰색 영역의 비율에 대해 뭔가를 고려했지만, 나는이 방법을 추측 이런 종류의 문제에 대해 충분히 강력하지 않습니다 .

답변

1

기계 학습 용어에서 입력 이미지 크기 (흰색 픽셀 1 개, 검정 픽셀 0 개)의 바이너리 입력 행렬, 단일 바이너리 출력 (1 개는 오픈 핸드 용) , 닫힌 손은 0).

폐쇄 된 손과 열려있는 손 이미지를 많이 찍어서 손으로 레이블을 붙이면 (의도가 없다면), 감독 된 학습 알고리즘을 적용하여 분류자를 생성 할 수 있습니다.

감독 학습 알고리즘에는 많은 선택 사항이 있습니다. 아마도 최고의 하나는 지원 벡터 머신 될 첫 번째 슈팅을 시도 :

http://en.wikipedia.org/wiki/Support_vector_machine

지원 벡터 머신은 기본적으로 입력 이미지와 트레이닝 세트에 제공된 예 사이의 "거리"를 계산하여 작동합니다. 입력 이미지가 훈련 세트의 열린 손보다 훈련 세트에서 열린 손의 예에 대해 평균적으로 "더 가깝다"면, 손이 열린 손으로 분류됩니다 (반대의 경우도 마찬가지 임).

다른 많은지도 학습 알고리즘이 있습니다

http://en.wikipedia.org/wiki/Supervised_learning

+0

Support Vector Machine의 개념을 경험하지 못했지만 신경망을 사용하는 것처럼 보입니다. 내가 맞습니까? –

+0

@VitoShadow : 지원 벡터 머신과 신경망은 여러면에서 관련이 있지만 알고리즘은 다릅니다. 입력 이미지를 입력 뉴런 레이어, 단일 바이너리 출력 하나 출력 뉴런 및 하나 이상의 숨겨진 레이어로 만들어 신경망을 사용할 수도 있습니다. 그런 다음 교육 세트에서 역 송금으로 교육 할 수 있습니다. 신경망에 필요한 훨씬 더 큰 훈련이 필요하며 훈련하는 데 시간이 오래 걸리지 만 일반적으로 충분한 시간과 충분한 시간을 갖고 있다면 일반적으로 더 나은 결과를 얻을 수 있습니다. –

+0

아마도 최상의 솔루션은 신경망을 훈련시킨 다음 사용하는 것입니다. 이 접근법은 감독 학습에 포함되기 때문에 귀하의 답변을 수락합니다. 고맙습니다. –

1

볼록 선체가 잘 작동해야합니다. 볼록 선체에있는 검은 영역 비율을 계산할 수 있으며, 임계 값보다 큰 경우 손이 열려 있습니다. 그렇지 않으면 면적이 & 인 흰색 영역을 계산 한 다음 그 비율을 확인하십시오. 손이 열린 영역/둘레는 닫힌 손보다 작아야합니다.

+0

나는 지역/경계 값에 대한 당신의 고려 사항에 대한 완전히 확신 아니에요. 그 비율은 닫힌 손보다 항상 적습니까? –

+0

닫힌 손은 열린 손보다 원에 더 비슷하므로 영역에 비해 작은 둘레를가집니다. 열린 손은 각 손가락의 왼쪽/오른쪽으로 인해 여분의 둘레를 가지고있다. 즉, 더 퍼지다. 손을 열면 이미지 영역이 약간 증가하지만 경계선이 훨씬 더 커지므로 영역/경계선이 줄어 듭니다 (경계선/면적이 증가한다고 말한 것과 같습니다). – aram90

+1

이것은 "손으로 쓴 특징 검출기"라고 불리는 것입니다. 당신이 할 수있는 것은 전처리 단계에서 결과를 다른 입력 변수 (이미지 픽셀 옆에)로 포함시키는 것보다 입력 매트릭스에서이 Area/Permiter 값을 계산하는 것입니다. 그것이 기계 학습 알고리즘보다 특정 이미지에 대한 좋은 예측 인자라면 그에 따라 특징을 가중시킬 것입니다. 그렇지 않은 경우 정규화되어 무시됩니다. 이러한 방식으로 당신은 simulatenously 이와 같은 여러 가지 기능을 감지기를 병렬로 시도 할 수 있습니다. –