저는 신경망을 가진 작은 프로젝트를하고 있습니다. 필자는 MNIST 데이터 세트를 사용하여 숫자 인식에 대해 읽었으며 동일한 데이터 세트를 만들 수 있는지를 생각했지만 일상적으로 볼 수있는 개체를 매일 보았습니다. 그래서 여기에 알고리즘이 있습니다 (우리가 그렇게 말할 수 있다면) : 파이썬을위한 opencv 라이브러리로 모두 완료되었습니다 1) 이미지에서 등고선 가져 오기. 이것은 말 그대로 등고선이 아니라 그렇게 보이는 것입니다. 이 코드로 이런 짓을했습니다 훈련 세트를 만들 수이미지에 무엇이 있는지 확인하십시오.
def findContour(self):
gray = cv2.cvtColor(self.image, cv2.COLOR_BGR2GRAY)
gray = cv2.bilateralFilter(gray, 11, 17, 17)
self.image = cv2.Canny(gray, 30, 200)
2) 다음이 필요합니다. 이 메시지를 복사하고 편집하십시오. 회전 변경 및 뒤집기 - 회전 된 윤곽으로 구성된 약 40 개의 이미지가 생성되었습니다. 3) 이제이 이미지를 CSV 파일로 옮깁니다. 이러한 이미지는 3D 배열로 표현되므로 numpy에서 .flatten 함수를 사용하여 이미지를 평평하게 만듭니다. 다음으로이 병합 된 벡터는 csv 파일로 작성되며 마지막 문자로 레이블이 붙습니다.
이것은 내가 수행 한 것이며 묻고 싶습니다. 다음 마지막 요소를 입력 x 벡터로 사용하고 마지막 요소를 제외한 모든 것을 y 벡터로 사용하려고합니다. (here)
같은 방식으로 인식이 이루어집니다 : 이미지의 윤곽을 얻고이를 신경망에 공급하면 출력이 레이블이됩니다.
시도해 볼 필요가 없습니까?
_ 작동하지 않습니까? _ 아니요. 정말로, 시간 낭비입니다. 대신에 객체 인식 및 주제에 관한 최신 논문을 읽으십시오. 당신은 윤곽을 추출하는 것보다 (그리고 흥미로운) 더 어렵다는 것을 배울 것입니다 ... – Miki
나는 동의하지 않는다; 현재 논문을 읽지 마십시오. 다른 방법보다 훨씬 혼란 스럽습니다. 구글 "객체 인식 신경 네트워크 튜토리얼", 또는 그 라인을 따라 뭔가 당신이 볼 수있는 많은 자습서를 찾을거야! –
@Christopher 아마도 나는 다음과 같이 다시 말해야합니다. "간단하게 시작하고, 온라인 자습서를보고, 장난감 문제보다 더 의미있는 일을하고 싶을 때, 새로운 논문과 최첨단 접근법을 살펴보십시오." ;디 – Miki