embedded/yolov4_darknet

2. python으로 동영상을 프레임단위로 자르기

crab. 2021. 9. 8. 16:19
반응형

현재 하고 있는 프로젝트는 자율주행로봇이고 이때 물체를 인식하는 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