반응형
현재 하고 있는 프로젝트는 자율주행로봇이고 이때 물체를 인식하는 yolov4를 하기 위해서는 데이터셋이 필요하며
이 데이터셋은 사람이 직접 사진을 하나씩 박스를 쳐주어야 한다.
이 사진을 구할때 좋은 방법중 하나가 로봇이 주행할 예상거리를 미리 영상으로 녹화한 다음에
그 영상을 프레임 단위로 잘라 몇백장의 사진을 구하는 것이다.
우선 내가 의자에 폰을 묶어 로봇처럼 움직이며 찍은 영상이 있다.
이 영상을 파이썬 코드로 자르면 되는데
__author__ = 'Seran'
import cv2
# 영상의 의미지를 연속적으로 캡쳐할 수 있게 하는 class
vidcap = cv2.VideoCapture('{영상의 경로}.mp4')
count = 0
while (vidcap.isOpened()):
# read()는 grab()와 retrieve() 두 함수를 한 함수로 불러옴
# 두 함수를 동시에 불러오는 이유는 프레임이 존재하지 않을 때
# grab() 함수를 이용하여 return false 혹은 NULL 값을 넘겨 주기 때문
ret, image = vidcap.read()
if (int(vidcap.get(1)) % 10 == 0):
print('Saved frame number : ' + str(int(vidcap.get(1))))
cv2.imwrite("C:/Users/BIT/Desktop/miniproj/img/%d.jpg" % count, image)
print('Saved frame%d.jpg' % count)
count += 1
vidcap.release()
파이썬 코드이고 아래 부분의 % 10 부분을 바꾸면 영상당 저장되는 사진 수를 조절할 수 있다.
이제 이 사진들을 토대로 전에 했던 박스치는 과정을 통해 데이터셋을 만들고 yolo로 학습 시켜야 한다.
반응형
'embedded > yolov4_darknet' 카테고리의 다른 글
3. 구글에서 이미지크롤링 하기 (0) | 2021.09.08 |
---|---|
1. yolo_mark 설치 (0) | 2021.09.08 |