ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 모벤트 기반 객체 검출
    컴퓨터 비젼(Computer Vision)/영상 분할과 객체 검출 2022. 2. 16. 17:07

    모멘트

    • 영상의 형태를 표현하는 일련의 실수값
    • 특정 함수 집합과의 상관 관계(correlation) 형태로 계산
    • Geometric moments, Central moments, Normalized central moments, Legendre moments, ... 등이 있음

     

    Hu's Seven Invariant Moments

    • 3차 이하의 정규화된 중심 모멘트를 조합하여 만든 7개의 모멘트 값
    • 영상의 크기, 회전,이동, 대칭 변환에 불변

    모양 비교 함수

    cv2.matchShapes(contour1, contour2, method, parameter) -> retval

    contour1: 첫 번째 외곽선 또는 그레이스케일 영상

    contour2: 두 번째 외곽선 또는 그레이스케일 영상

    method: 비교 방법 지정. cv2.CONTOURS_MATCH_I1, cv2.CONTOURS_MATCH_I2, cv2.CONTOURS_MATCH_I3 중 하나 사용.

    parameter: 사용되지 않음. 0 지정

    retval: 두 외곽선 또는 그레이스케일 영상 사이의 거리

     

    회전, 크기변환에 대해서만 강인

     

    예시

    코드

    import sys
    import numpy as np
    import cv2
    
    
    # 영상 불러오기
    obj = cv2.imread('spades.png', cv2.IMREAD_GRAYSCALE)
    src = cv2.imread('symbols.png', cv2.IMREAD_GRAYSCALE)
    
    if src is None or obj is None:
        print('Image Load failed')
        sys.exit()
    
    
    _, obj_bin = cv2.threshold(obj, 128, 255, cv2.THRESH_BINARY_INV)
    obj_contours, _ = cv2.findContours(obj_bin, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
    obj_pts = obj_contours[0]
    
    _, src_bin = cv2.threshold(src, 128, 255, cv2.THRESH_BINARY_INV)
    contours, _ = cv2.findContours(src_bin, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
    
    dst = cv2.cvtColor(src, cv2.COLOR_GRAY2BGR)
    
    for pts in contours:
        if cv2.contourArea(pts) < 1000:
            continue
        rc = cv2.boundingRect(pts)
        cv2.rectangle(dst, rc, (255, 0, 0), 1)
    
        # 모양 비교
        dist = cv2.matchShapes(obj_pts, pts, cv2.CONTOURS_MATCH_I3, 0)
    
        cv2.putText(dst, str(round(dist,4)), (rc[0], rc[1] - 3), cv2.FONT_HERSHEY_SIMPLEX,
        0.6, (255,0,0), 1, cv2.LINE_AA)
        
        if dist < 0.1:
            cv2.rectangle(dst, rc, (0,0,255), 2)
    
    cv2.imshow('obj', obj)
    cv2.imshow('dst', dst)
    cv2.waitKey(0)

     

    결과

    '컴퓨터 비젼(Computer Vision) > 영상 분할과 객체 검출' 카테고리의 다른 글

    HOG 보행자 검출  (0) 2022.02.17
    캐스케이드 분류기  (0) 2022.02.17
    템플릿 매칭  (0) 2022.02.17
    영상 분할과 객체 검출  (0) 2022.02.16

    댓글

Designed by Tistory.