문제

제가 하고 싶은 것은 간단한 앱의 이미지 인식입니다.

  1. 주어진 이미지 (500 x 500) px (1 색 배경)
  2. 이미지에는 (50x50)픽셀의 기하학적 도형(삼각형, 정사각형 또는 smaleyface :) 1개만 포함됩니다.
  3. 파이썬은 그림을 인식하고 기하학적 그림이 무엇인지 표시합니다.

링크가 있나요?힌트가 있나요?API가 있나요?감사합니다 :)

도움이 되었습니까?

해결책

전형적인 파이썬 도구 체인 다음과 같습니다.

까지 모양을 차별화합니다, 나는 배경의 모양을 보면서 실루엣을 얻을 것입니다. 그런 다음 사용하는 모서리의 수를 감지합니다. 코너 감지 알고리즘 (예 : 해리스). 삼각형에는 3 개의 모서리, 사각형 4 및 스마일이 없습니다. 여기 파이썬이 있습니다 Scipy를 통한 해리스 코너 탐지 구현.

편집하다:

의견에서 언급했듯이 블로그 게시물은 알고리즘에 필요한 가우스 커널을 생성하는 기능을 제시하지 않았습니다. 다음은 다음과 같은 기능의 예입니다. Scipy Cookbook (훌륭한 자원 BTW) :

def gauss_kern(size, sizey=None):
    """ Returns a normalized 2D gauss kernel array for convolutions """
        size = int(size)
        if not sizey:
            sizey = size
        else:
            sizey = int(sizey)
        x, y = mgrid[-size:size+1, -sizey:sizey+1]
        g = exp(-(x**2/float(size)+y**2/float(sizey)))
        return g / g.sum()

다른 팁

Opencv 블로브 분석 도구가 있으므로 좋아하는 패턴 인식 알고리즘을 위해 먹이를 줄 수있는 모양에 대한 메트릭을 제공합니다. 직사각형은 원의 비율이 약 0.78 인 경우 면적 / (높이 * 너비)의 비율이 1.0입니다.

기하학적 그림은 50x50 px입니다. 만약에 크기와 방향 기하학적 인물의 결정된, 당신은 고전이 있습니다 템플릿 매칭 문제, 상관 방법. 원본 이미지 또는 테두리 감지 출력에 템플릿을 적용 할 수 있습니다.

그렇지 않으면 크기 (스케일) 및/또는 방향이 임의 인 경우 푸리에 설명 자 적용 할 수 있습니다. 이 설명자는 회전 및 스케일 불변량입니다.

이러한 모든 방법은 OpenCV, Numpy 또는 Scipy를 사용하여 코딩 할 수 있습니다.

데이터의 상태공간을 알고 있다면 주성분 분석을 사용할 수 있습니다.PCA를 사용하면 모든 개체가 화면 중앙에 위치해야 합니다.PCA는 감지를 수행하지 않지만 객체를 삼각형 등으로 식별할 수 있는 고유한 레이어로 분리합니다.또한 참고하세요:이는 규모나 회전 불변이 아닙니다.

이 기술이 어떻게 호출되는지 기억할 수는 없지만 우체국이 필기를 수행하는 방식과 비슷합니다. 유사성.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top