2012-12-15 2 views
1

을 사용하여 감지 된 얼굴의 가상 머리카락 내 현재 프로젝트에서 얼굴 검색/추적 및 이미지 처리를 배우고 싶습니다. C#의 경험을 바탕으로 얼굴 검색 및 추적을위한 선택 라이브러리로 Emgu CV을 선택했습니다. 지금까지 배운 것을 토대로 얼굴 인식 및 추적, 기본 이미지 처리를 할 수 있습니다.Emgu CV - C#

내 목표는 감지 된 얼굴에 가상 머리카락을 배치 할 수있게하는 것입니다. 내가 달성하고자하는 내용은 [이 동영상]과 유사합니다 : http://www.youtube.com/watch?v=BdPmECfUFcI.

내가 알고 싶은 것은 감지 된 얼굴에 다른 종류의 헤어 스타일을 처리 할 때 사용하는 기술입니다. 머리를 어떤 이미지 형식으로 저장합니까?

+0

정확히 무엇이 문제입니까? 그것은 "머리"인물의 고급/다운 스케일에 관한 것입니까? "머리카락"수치를 감지 된 머리에 맞추는 방법을 결정하는 것입니까? 다른 것 ? – mmgp

+0

@ mmgp, 예, 제 문제는 머리카락을 머리카락의 크기 조정을 처리하는 감지 된 머리와 정렬시키는 것입니다. – Syma

+0

두 가지 뚜렷한 문제가 한 번에 하나씩 해결하십시오. 잠시 동안 규모를 알고 있다고 가정 해보십시오. 머리의 최소 테두리 상자가 있습니까, 아니면 축이 정렬되어 있습니까? 전자의 경우, 정렬 문제는 무엇입니까? – mmgp

답변

1

비디오를 본 후 머리가 직사각형 프리즘 (3D 오브젝트)이 아닌 평면 직사각형으로 간주되므로, 원근감 변환을 고려하지 않으며 고려하지 않을 것입니다. 이는 제한 사항이지만 이러한 게재 위치를 수행하는 첫 단계로 적합합니다. 원근감을 고려하는 것이 단순히 문제가 아니므로 얼굴 추적 알고리즘은 복잡한 구성 (예 : 눈이 완전히 보이지 않을 수도 있음)을 처리 할 수 ​​있어야합니다.

그래서 우선 오른쪽 그림과 같이 눈이 x 축과 이루는 각에 따라 정렬 된 경계 사각형이 있습니다 (빨간색 세그먼트는 눈 사이의 연결을 나타냄). 왼쪽 그림은이 문제에 도움이되지 않는 축에 정렬 된 일반적인 경계 상자를 보여줍니다. 당신이 위의 그림에서 최고의 중간 지점이 당신의 머리 꼭대기의 중간입니다 알 수 있도록 머리, 대칭 고려 후

enter image description here

문제

도 간소화된다. 또한 일반적인 머리가 바닥보다 윗쪽에서 더 크게 보이기 때문에 다음 그림에서 사각형의 너비가 이마의 너비에 가깝습니다. 예를 들어 머리 위쪽에만 바운딩 사각형을 고려할 수도 있습니다.

enter image description here

지금 모든 남아있는 것을이 사각형에 일부 개체의 위치입니다. 이를 위해서는이 객체의 설명을 확대하여 배치해야하므로 픽셀이 아닙니다. "입구 너비"(EW)와 "입구 중간 지점"(EM)을 정의 할 수 있습니다. 이 EW는 다른 직사각형 (헤드)에서 필요한 너비를 정합니다. 따라서 EW가 필요한 값보다 작 으면 EW가 더 큰 경우 각각이 개체를 업 스케일합니다. 머리의 직사각형의 전체 너비는 일반적으로이 개체를 배치하는 데 과대 평가되므로 너비의 백분율로 실험 할 수 있습니다. EM 값은 머리 위에이 오브젝트를 배치하는 방법을 아는 데 유용합니다. 다음 그림에서 EW는 수평 파란색 파선 수평선이고 EM은 중간 점입니다. 수직 파란 선은이 직사각형의 상단 부분 안에이 객체를 이동시키려는 EM의 양을 나타냅니다.

enter image description here

이 객체가 필요로하는 유일한 다른 특별한 것은

배경으로 간주되는 값입니다. 따라서이 오브젝트를 그릴 때 점을 완전히 투명하게할지 (배경 값) 또는 완전히 불투명하게할지 (다른 것) 여부를 쉽게 알 수 있습니다. 이것은 기본적으로 수행해야 할 것을 염두에 두었던 스케치입니다.

+0

이 가이드 라인을 가져 주셔서 감사합니다. 이제이 문제를 해결하는 방법에 대해 더 잘 이해하고 있습니다. 그러나 내가 아직도 이해할 수없는 한가지는 EW입니다. 마지막 그림이 투명한 배경을 가진 png 형식이라고 가정하면, EW의 가장자리에서부터 시작하여 고급/다운 스케일을 처리하고 다른 (오른쪽) 끝이 머리의 직사각형의 예상 (오른쪽) 끝에 멈추는 것을 확인하는 방법은 무엇입니까? ? 당신이 내 질문을 이해하기를 바라십니까? – Syma

+0

가장 간단한 방법은 (비디오 에서처럼) 전체 그림을 업/다운 스케일링하는 것입니다. 원래 PNG 그림에서 EW = 400 픽셀이라고 가정합니다. (오히려 큰 초기 수치를 가지며 상상보다는 인공물을 도입 할 가능성이 높기 때문에 항상 축소됩니다.) 또한 너비가 300 픽셀 인 무언가에 맞추고 싶다고 가정 해보십시오. 반경을 50 픽셀 줄여야하기 때문에 가발의 너비가 100 줄고 가로 세로 비율을 유지하기 위해 높이가 줄어 듭니다. 이제 나는 EW가 머리에 맞는 이유가 다른 질문이라고 생각합니다. 간단합니다. EW는 계산으로 인해 머리에 맞습니다. – mmgp

+0

어쩌면 당신의 의심을 이해했을지 모르겠습니다. 이 오브젝트의 폭이 W이고, w가 EW라고 가정 해 봅시다. 어떤 스케일 k로 w를 변경해야한다면, 전체 이미지의 크기를 조정합니다. 예를 들어, w = 10 픽셀인데이를 반으로 줄이려면 W를 절반으로 줄여야합니다 (위의 설명에서 지적했듯이이 경우 5 픽셀만으로는 안됩니다). 이것이 실제적인 의심입니까? – mmgp

관련 문제