2012-12-17 7 views
0

미리 읽어 주셔서 감사합니다.이미지 인식 신경망 문제 해결

그래서 이미지 내의 특정 로고를 인식하기위한 신경망을 작성하려고합니다. 필자는 기본적으로 현재 창을 입력의 예상 크기로 확장 할 특정 종횡비의 슬라이딩 창을 사용합니다. 창은 입력을 네트워크로 펌핑하고 출력을보고 창에있는 것이 내가 원하는 로고인지 확인합니다. 이 경우 로고 모서리에 상자를 그립니다.

내 문제는 신경망이 이미지의 다른 부분에 대해 너무 높은 자신감을보고한다는 사실에 기인합니다. 원래 이미지를 많이 볼 수 없다는 점에서 너무 많은 상자를 그릴 수 있습니다. . 따라서 신경망에는 분명히 잘못된 점이 있습니다.

이미지를 입력 할 때 그레이 스케일 및 컬러로 풀기를 시도했습니다. 어느 쪽이든 작동하지 않습니다. 나는 또한 입력 크기에 변화를 시도했다. 너무 작아지기 시작하면 악화 되겠지만 57x22x3 색상의 언 롤링 입력에서도 여전히 실패합니다.

그래서 나는 그것이 문제라고 생각하지 않습니다. 내 신경 네트워크에는 X 입력 뉴런이 있습니다 (X는 너비 * 높이 * num_colors). 나는 또한 크기 X의 숨겨진 레이어 하나를 가지고 있으며 마지막으로 출력 레이어에 1 개의 출력 뉴런이 있으며 전체 신뢰도를 나타내는 0.0과 1.0 사이의 값을 출력합니다.

저는 17 가지 긍정적 인 훈련 예 (이상적인 결과는 1.0)와 19 가지의 부정적인 훈련 예 (이상적인 결과는 0.0입니다)가 있습니다. 훈련 후 네트워크는 모든 긍정적 인 경우 ~ 0.95의 거의 동일한 신뢰도를보고하고 모든 부정적인 사례의 경우 ~ 0.013의 거의 같은 신뢰도를보고합니다.

내 이론은 내가 가진 훈련 사례 수가 너무 적어서 더 수집해야한다. 처음에는 각자 5 명 밖에 없었지만, 17 세 이상으로 올라간다고해서 어떤 이득도 얻지 못했습니다.

나는 Encog와 Neuroph를 사용해 보았지만 두 가지 모두 매우 유사한 결과가 있음에 유의해야합니다. 나는 학습을 위해 백 프로 퍼 게이션을 사용하고 있으며, 0.3에서 0.7 사이의 학습 속도와 0.0에서 0.8 사이의 운동량 값을 사용해 보았습니다. 관계없이 결과는 거의 항상 동일합니다.

도움 주셔서 감사합니다.

+0

당신이 어떤 자동 연관 메모리 NN 아키텍처를 사용하여 시도 적이을 주어야한다 슬라이딩 윈도우 입력을 분류하는 SOM/LVQ 신경 네트워크를 사용해보십시오? 특히 잘 정의 된 로고가 하나 (또는 ​​거의 없음) 인 경우. – Ani

+0

왜이 작업을 위해 NN을 사용하기로 결정했는지 궁금합니다. 나에게 당신의 추론을 설명해 주겠니? – mmgp

+0

기계 학습에 대한 수업 프로젝트. 재미있을 거라 생각 했어. :) –

답변

0

일반적으로 신경망은 학습을 위해 많은 표본을 필요로하지만, 이것이 자신의 문제라고 말할 수는 없습니다.

일치하는 게 더 좋을지도 모르지만 패턴의 각 픽셀과 주어진 이미지에 패턴이있을 수있는 픽셀 (예 : 슬라이딩 창 스타일 사용)이 일치하는지 확인하는 것이 좋습니다.

당신은 당신에 대한 패턴에 맞게 픽셀 색상의 배열이있는 경우 :

0xFF0000이고, 0x00FF00, 0x0000FF 등

이러한 픽셀의 색상 패턴 :

0xEE0000을 , 0x00FF00, 0x0101DE

각 픽셀에 대해 델타를 %로 가져온 다음 평균을 구할 수 있습니다. 이제는 평균 할 수있는 여러 가지 방법이 있습니다 (가중 평균, 기하 급수적 가중 평균 등).마지막으로 슬라이딩 윈도우의 현재 픽셀과 패턴이 얼마나 잘 일치하는지 전체 패턴에 대해 일치하는 비율을 얻을 수 있습니다. 최대 점수를 항상 추적 할 수 있으므로 마지막에는 하나의 상자 만 표시됩니다 (일치하는 확률이 가장 높은 상자).

각 픽셀에 대해 뉴런을 만들 수 있으며 수상 돌기는 색상 16 진수의 다른 부분이 될 수 있습니다. 아마 각 R, G, B에 대한 수상 돌기. 위에 주어진 예제에서 전체 색상 정수에 대해 하나의 수상 돌기를 가져 왔습니다.