다음 파이썬 코드는 웹캠으로 촬영되는 영상의 프레임을 샘플링해서 이미지 파일로 저장해주는 코드입니다. 특정 대상에 대한 이미지 데이터베이스를 만들기 위해서 작성한 코드입니다. 모든 프레임을 저장하면 사실상 각 이미지간 차이가 거의 없기 때문에 4개 프레임마다 하나씩 저장하는 식으로 코딩했습니다. img1.jpg, img2.jpg, img3.jpg,...와 같은 이름의 이미지 파일이 images라는 이름의 하위 디렉토리에 저장됩니다. q키를 입력하면 영상 촬영이 종료되고, 이어서 프로그램도 종료됩니다.
참고로 이 코드는 opencv-python 패키지에 의존합니다. 즉, opencv-python 패키지를 설치해주셔야 합니다.
>> conda install opencv-python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import cv2
# open webcam (웹캠 열기)
webcam = cv2.VideoCapture(0)
if not webcam.isOpened():
print("Could not open webcam")
exit()
sample_num = 0
captured_num = 0
# loop through frames
while webcam.isOpened():
# read frame from webcam
status, frame = webcam.read()
sample_num = sample_num + 1
if not status:
break
# display output
cv2.imshow("captured frames", frame)
if sample_num == 4:
captured_num = captured_num + 1
cv2.imwrite('./images/img'+str(captured_num)+'.jpg', frame)
sample_num = 0
# press "Q" to stop
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# release resources
webcam.release()
cv2.destroyAllWindows()
|
cs |
위 코드를 실행시키고 충분히 데이터가 수집될 때까지 웹캠으로 영상을 촬영했더니 다음과 같은 이미지 파일들이 생성되었습니다. 참고로 저는 가위, 바위, 보를 분류할 수 있는 분류기를 재미삼아 만들고 있기 때문에, 가위, 바위, 보에 대한 이미지들을 수집했습니다. 다른 이미지들을 얻기 위해 손을 이리저리 돌려가며 촬영했습니다.
잠시만 촬영했는데도 수백장의 이미지가 수집되었네요. ㅎㅎ 아마 이 방법이 가장 빠르게 수백, 수천, 수만 장의 이미지를 수집하는 방법이 아닐까 싶습니다. 구글의 teachable machine이 딥러닝 모델을 훈련시키기 위해 필요한 이미지들을 이러한 방식으로 수집하더군요. ㅎㅎ
언제나 질문과 지적에는 열려 있습니다. 댓글로 남겨주세요.^^
'코딩 > python + 컴퓨터비전' 카테고리의 다른 글
[python] 미리 훈련된 MobileNet으로 이미지 분류하기 (0) | 2020.07.26 |
---|---|
[python] 뽀로로 친구들을 검출해보자(Tensorflow object detection API) (0) | 2020.06.19 |
[python] convolution과 activation을 분리해서 해주려면? (4) | 2020.06.09 |
[Anaconda+python] 전이학습 이용해서 가위, 바위, 보 분류기 만들기 (29) | 2020.04.20 |
[Anaconda+python] 웹캠 영상 프레임 샘플링해서 저장하기(쉽게 이미지 데이터베이스 만들기) (17) | 2020.03.19 |
[python] 웹에서 이미지 수집하기, 이미지 크롤링 (beautifulsoup 활용) (11) | 2020.03.18 |
[Anaconda+python] 미리 훈련된 ResNet50으로 이미지 분류하기 (0) | 2020.03.14 |
[python] opencv (cv2) 패키지 유용한 함수 10개 정리 (0) | 2020.02.29 |
[ubuntu+python] BRISQUE 모델로 이미지 품질 평가하기 (0) | 2020.02.22 |