목록머신러닝 (38)
안 쓰던 블로그
RCNN Region Proposal 기반의 Object Detection 모델 Object Detection -원본 이미지->Feature Extrator->Feature Map->FC Layer->Soft max Class score -Sliding Window 방식과 Region Propsal 방식(대표적인 방법: Selective search) RCNN(Regions with CNN) -Region Proposal과 CNN Detection이 섞인 방법 1. 원본 이미지에서 Selective search로 후보 추출(2천개 정도) 2. 추출된 후보 이미지를 다 동일한 사이즈라고 가정(warped region), 후보를 가지고 CNN Detection 3. 후보들 Classify RCNN 장단점 높..
OpenCV의 VideoCapture클래스는 동영상을 개별 Frame으로 하나씩 읽어(Read)들이는 기능을 제공 ->VideoCapture: while True문을 계속 돌면서 Frame이 있다면? read()한다 없다면? break한다 VideoWriter는 VideoCapture로 읽어들인 개별 Frame을 동영상 파일로 Write 수행 ->VideoWriter 객체는 write할 동영상 파일 위치, Encoding코덱 유형, write fps 수치, frame 크기를 생성자로 입력 받아 이들 값에 따른 동영상 Write 수행. VideoWriter는 write시 특정 포맷으로 동영상을 Encoding 할 수 있음(DIVX, XVID, MJPG, X264, WMV1, WMV2). 리눅스 서버에는 반..
OpenCV의 imread()이용한 이미지 로딩 시 주의할 점 OpenCV에서 이미지 로딩은 imread(‘파일명’)을 이용, imread(‘파일명’)은 파일을 읽어 넘파이 array로 변환 근데 OpenCV가 이미지를 RGB 형태가 아닌 BGR 형태로 로딩하기 때문에 색감이 원본 이미지와 다르게 나타난다(원본이 붉은 계열이면 퍼렇게 나옴) bgr_img_array = cv2.imread(‘파일명’) rgb_img_array = cv2.cvtColor(bgr_img_array, cv2.COLOR_BGR2RGB) plt.imshow(rgb_img_array) 다음 코드처럼 BGR을 RGB로 바꿔주어야 한다(BGR2RGB) imwrite()를 이용하여 파일에 쓰기 OpenCV에서 메모리에 있는 이미지 배열을..
주요 데이터세트: PASCAL VOC(20개 오브젝트 카테고리, XML), MS COCO(80개, json), Google Open, Images(600개, csv) Annotation 원본 이미지에 Bounding Box 시각화를 하면 너무 오래걸리니까, 이미지의 Detection 정보를 별도의 설명 파일로 제공되는 것을 말함 Annotation은 Object의 Bounding Box 위치나 Object 이름등을 특정 포맷으로 제공한다 예를 들어 VOC2012 데이터세트를 보면, Annotations와 JPEGImages(원본)가 세트로 있다 참고로 ImageSet은 어떤 이미지를 train, test, trainval, val에 사용할 것인지에 대한 매핑 정보가 있다 Pascal VOC 2012 데이..
NMS(Non Max Suppression) Object Detection 알고리즘은 Object가 있을 만한 위치에 많은 Detection을 수행한다 그래서 저번 글에서도 보았듯이 중복값이 많이 나올 수 있다. 오브젝트가 있는 곳을 놓쳐서는 안 되기 때문 그렇지만 결과 도출을 위해서는 그런 많은 박스 중에서도 딱 하나의 박스를 선택을 해야만 한다 ->NMS는 Detected된 Object의 Bounding box중에 비슷한 위치에 있는 box를 제거하고 가장 적합한 box를 선택한다 NMS 수행 로직 1. Detected된 Object의 Bounding box중 confidence score가 일정 이하인 값(오브젝트가 맞는지 긴가민가한, 정확도가 떨어지는 값)을 제거한다 2. 가장 높은 confide..
Box를 그렸으니 원본과 얼마나 맞아 떨어지는지를 확인해야 한다 IoU: Intersection over Union 모델이 예측한 결과와 실측(Ground Truth) Box가 얼마나 정확하게 겹치는가를 나타내는 지표 $$IoU=\frac{Area of Overlap(개별 Box가 서로 겹치는 영역)}{Area of Union(전체 Box의 합집합 영역)}$$ IoU의 값이 0.4정도라면 예측이 아주 맞지 않는다 값이 0.7정도라면 나쁘지 않게 맞았고, 1에 가까울 수록 예측이 맞았다고 보면 된다 목표는 당연히 IoU값이 1에 가깝게 만드는 것 얼마 이상의 값부터 맞았다고 생각할지는 보통 0.5부터 적당히 조정한다 IoU구하기-입력인자로 후보 박스와 실제 박스를 받아서 IOU를 계산하는 함수 생성 imp..
Selective Search 실습 및 시각화 AlpacaDB/selectivesearch github.com/AlpacaDB/selectivesearch AlpacaDB/selectivesearch Selective Search Implementation for Python. Contribute to AlpacaDB/selectivesearch development by creating an account on GitHub. github.com !pip install selectivesearch 이것을 설치한다 import selectivesearch import cv2 import matplotlib.pyplot as plt import os %matplotlib inline default_dir =..