root@bskyvision: ~#
방명록
태그
RSS

<닫기>

3,585,391/3,798/595

프로필사진
수많은 소음 속에서 신호를 찾아가는 bskyvision입니다.


<닫기>

  • leon_choi이(가) 08.10에 작성한 댓글: 멋쟁이.
  • 꼬장이이(가) 07.25에 작성한 댓글: test.

<닫기>

2020-03-19 16:13:40

다음 파이썬 코드는 웹캠으로 촬영되는 영상의 프레임을 샘플링해서 이미지 파일로 저장해주는 코드입니다. 특정 대상에 대한 이미지 데이터베이스를 만들기 위해서 작성한 코드입니다. 모든 프레임을 저장하면 사실상 각 이미지간 차이가 거의 없기 때문에 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이 딥러닝 모델을 훈련시키기 위해 필요한 이미지들을 이러한 방식으로 수집하더군요. ㅎㅎ  

 

언제나 질문과 지적에는 열려 있습니다. 댓글로 남겨주세요.^^

  1. 꼬장스카이비젼이(가) 2021.02.08 13:40에 작성한 댓글:
  2. 익명이(가) 2021.05.02 14:02에 작성한 댓글:
  3. 초보이(가) 2021.05.02 15:29에 작성한 댓글:
    아 다른 곳에 만들었었네요 해결했습니다.
    감사합니다!!
      주소   수정/삭제   답글
  4. 이상윤이(가) 2022.01.10 15:59에 작성한 댓글:
    images 라는 폴더를 어디에 만들어놓아야 하나요?
      주소   수정/삭제   답글
  5. 차영민이(가) 2022.03.09 11:03에 작성한 댓글:
    재활용을 위해 전이학습을 하고 테스트셋으로 웹캠을 이용하여 종이팩을 사용하려고하는데, 실시간으로 처리하는 방법은 어려울까요??   주소   수정/삭제   답글
이름
비밀번호
홈페이지
비밀여부