2012-10-14 4 views
1

나는 PCA 알고리즘을 사용하여 얼굴 인식 프로젝트를 진행 중이다. 이 프로젝트를 JAVA로 개발해야하며이 알고리즘의 구현과 관련된 몇 가지 질문이 있습니다.PCA 얼굴 인식, 구현 기법

첫 번째 : 평균적인 얼굴 (평균면)을 계산할 때 나는 평균적으로 이미지 작업을하고 있다고 생각해야합니다. 대수학에서와 같은 방식으로 모든 이미지 벡터를 계산할 수는 없지만 각 픽셀 (예 : 빨간색, 빨간색, 녹색 등)에 대해 동일한 구성 요소를 각각 sum에 연결 한 다음 이미지 벡터의 수 이게 맞습니까?

이전 방법이 맞다면 벡터의 곱셈은 어떨까요? 이미지 벡터를 처리 할 때 어떻게 계산해야합니까?

두 번째 : 알고리즘에 설명 된 대수적 방법을 사용하여 이미지의 특징 벡터를 계산할 때 이전 서브 젝트가 올바르지 않다고 가정 해 봅니다. 결과 벡터에 표현할 수없는 매우 큰 숫자의 픽셀이 포함되어 있습니다 모든 이미지는 특성 벡터 및 변환 행렬을 사용하여 소스 이미지를 검색 할 때 내 문제점은 무엇입니까?

+0

그런 다음 큰 숫자를 내가 할 수지고 위치를 정확히 설명 할 수 무슨 일이 일어나는지 이해하도록 도와주세요. PCA 인식 중에 가장 많은 수의 고유 한 숫자가 0보다 작은 수의 숫자가 포함되어 있지만 수천 개의 숫자가 있습니다. –

+0

자세한 설명을 보려면 이전 단계를 추가하고 종류에 대한 전제 조건이 있는지 궁금합니다. 이 알고리즘과 함께 사용해야하는 이미지 (예 : 픽셀의 알파 매개 변수를 포함하지 않는 이미지) –

+0

자마 라이브러리를 사용한 적이 없으므로 구현 방법에 도움이되지 않습니다. 고유 값은 어디에 있습니까? 나는 그들이 E에서 되돌아 올 수 있다고 가정하거나 이미 E의 벡터가 정렬되어 있다고 가정합니까? –

답변

1

모든 이미지를 먼저 회색 음영으로 변환해야합니다. 평균 얼굴은 모든 이미지의 각 픽셀에 대한 대수 평균과 같은 방식으로 계산되므로 모든 이미지의 모든 픽셀 (0,0)의 평균은 평균 얼굴의 픽셀 (0,0)입니다. .

다른 모든 계산은 픽셀 단위로 수행됩니다. 당신이 사용 규모의 P를 회색으로 RGB 변환이없는 경우

= 0.587 * 빨간색 + 0.299 * 녹색 + 0.114 * 블루