컴퓨터 비젼(Computer Vision)
-
[OCR] CRAFT 학습 간 주의사항컴퓨터 비젼(Computer Vision) 2022. 11. 27. 20:48
TL;DR 학습 데이터가 되는 입력 이미지의 모든 텍스트는 레이블링 하자. CRAFT란 naver clova에서 발표한 text detection 알고리즘으로 segmentation으로 text의 위치를 검출하는 알고리즘이다. 네트워크 구조는 UNet-like로, VGG를 backbone 구조로 사용하였다. 본 글에서 작성하고자 하는 내용은 비단 CRAFT 뿐만 아니라 대부분의 text detection 알고리즘에서 통용될 것이다. https://github.com/JaidedAI/EasyOCR/blob/054ec4f90127ab9e45f101baf8caa519d5a6e035/trainer/craft/loss/mseloss.py#L98는 CRAFT의 loss 함수이다. Loss 계산간 negative p..
-
RLE (RUN LENGTH ENCODING)컴퓨터 비젼(Computer Vision) 2022. 5. 11. 00:12
매우 간단한 비손실 압축 방법으로, 데이터에서 같은 값이 연속해서 나타나는 것을 그 개수와 반복되는 값만으로 표현하는 방법이다. (FROM WIKIPEDIA) RLE로 된 데이터 (예를 들어 마스크 데이터) 는 특정한 형태로 이뤄졌다고 하자. (H: 높이, W: 너비) 그러면 이 마스크 데이터의 형태는 H*W 길이의 평면화된 방식으로 표현될 것이다. 이렇게 표현된 값은 각 짝마다 정보를 포함하고 있다. 첫번째 값은 평면화된 곳에서의 시작 위치, 두번째 값은 시작 위치에서부터의 길이를 표현한다. 즉, RLE 마스크 데이터에서 홀수번째 값은 시작 위치, 짝수번째 값은 길이를 표현함을 알 수있다. RLE로 된 마스크 데이터가 다음과 같이 주어졌다고 하자. (Kaggle의 UWMGIT 데이터) 28094 3 2..
-
좋은 매칭 선별컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 22. 15:22
선별 방법 1. 가장 좋은 매칭 결과에서 distance 값이 작은 것 N개를 사용 cv2.DMatch.distance 값을 기준으로 정렬 후 상위 N개 선별 ... matcher = cv2.BFMatcher_create() matches = matcher.match(desc1, desc2) # 좋은 매칭 결과 선별 matches = sorted(matches, key=labmda i: i.distance) # 거리별 오름차순 정렬 good_matches = matches[:80] # 상위 80개만 선별 # 특징점 매칭 결과 영상 생성 dst = cv2.drawMatches(src1, kp1, src2, kp2, good_matchers, None) ... 선별 방법 2. (SIFT에서 제안된 방법) 가..
-
특징점 매칭컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 22. 14:54
특징점 매칭 (Feature Point Matching) 두 영상에서 추출한 특정점 기술자를 비교하여 서로 유사한 기술자를 찾는 작업 특징점 매칭간 무조건 특징점을 매칭하기에 좋은 특징점 매칭을 찾는 필터링 과정이 필요 (밑에 예시보면 확인 가능) 특징 벡터 유사도 측정 방법 실수 특징 벡터: L2 Norm 이진 특징 벡터: Hamming Distance OpenCV 특징점 매칭 클래스 BFMatcher: Brute-Force FlannBasedMatcher: Fast Library for Approximate Nearest Neighbor (K-D Tree) 특징점 검출 알고리즘 객체 생성 cv2.DescriptorMatcher.match(queryDescriptors, trainDescriptors,..
-
특징점 기술컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 22. 11:37
기술자(descriptor, feature vector) 특징점 근방의 부분 영상을 표현하는 실수 또는 이진 벡터 OpenCV에서는 2차원 행렬(np.ndarray)로 표현 행 개수: 특징점 개수 열 개수: 특징점 기술자 알고리즘에 의해 정의됨 실수 기술자 주로 특징점 부근 부분 영상의 방향 히스토그램을 사용 특징점 근방 부분 영상의 주 방향 성분을 계산하여 보정 보정된 사각형 영역을 4x4구역으로 분할 -> 각 구역에서 8방향 히스토그램을 구함 16x8 = 128 차원의 실수 벡터 생성 (알고리즘 마다 다름) SIFT, SURF, KAZE 등이 있음 L2 Norm을 사용하여 유사도 판단 이진 기술자 이진 테스트(binary test)를 이용하여 부분 영상의 특징을 기술 특징점주변 부분 영상을 잘라내어 ..
-
특징점 검출컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 21. 18:09
코너 검출 방법의 문제점 이동, 회전 변환에 강인 크기 변화에 취약 용어 특징점(feature point) = 키포인트(keypoint) = 관심점(interest point) 기술자(descriptor) = 특징 벡터(feature vector) 크기 불변 특징점 검출 방법 SIFT, KAZE, AKAZE, ORB 등 다양한 특징점 검출 방법에서 스케일 스페이스 (scale-space), 이미지 피라미드 (image pyramid)를 구성하여 크기 불변 특징점을 검출 OpenCV 특징점 검출 클래스 특징점 검출 알고리즘 객체 생성 cv2.SIFT_create(, ...) -> retval cv2.KAZE_create(, ...) -> retval cv2.AKAZE_create(, ...) -> retv..
-
코너 검출컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 21. 13:35
코너 객체의 뾰족한 부분 영상의 고유한 특징을 지님 코너의 특징 평탄한 영역과 에지 영역은 고유한 위치를 찾기 어려움 코너는 변별력이 높은 편이며, 영상의 이동, 회전 변환에 강인함 코너 검출 방법 해리스(Harris) 영상 내부 작은 영역이 모두 방향에 대해 변화가 큰 경우 코너로 규정 cv2.cornerHarris()를 이용하며 코너 응답 함수 R을 반환, R이 충분히 크면 코너로 구분 Local Maxima가 아닌 값이 검출 될 수 있음 Fast Features To Track Harris 코너 검출 방법의 향상된 버전 NMS 수행 cv2.goodFeaturesToTrack()을 사용하며, 이는 코너점 자체를 반환 FAST(Features from Acclerated Segment Test) 주변 ..
-
HOG 보행자 검출컴퓨터 비젼(Computer Vision)/영상 분할과 객체 검출 2022. 2. 17. 18:16
HOG(Historgram of Oriented Gradients) feature로, 영상의 지역적 그래디언트 방향 정보를 특징 벡터로 사용 다양한 객체 인식에서 활용됨 논문 HOG 알고리즘 동작 방법 입력 영상 -> Crop -> 크기 정규화 64x128 -> 그라디언트 계산 -> 8x8 크기의 셀 분할 -> 각 셀마다 방향과 크기 성분을 이용하여 방향 히스토그램 계산 블록 히스토그램 구하기 8x8 셀 4개를 하나의 블록으로 지정 즉, 블록 하나의 크기는 16x16 8픽셀 단위로 이동 (stride = 8) 각 블록의 히스토그램 빈(bin) 개수는 4x9=36개 특징 벡터의 차원 하나의 부분 영상 패치에서의 특징 벡터 크기 7x15x36 = 3780 HOG Descriptor 객체 생성 및 보행자 검출..