Study

영상 자동 저장부터 AI 학습용 이미지 추출까지 Python OpenCV로 처리하는 실전 방법

posttistory 2025. 5. 3.

목차

반응형

 

영상 자동 저장과 이미지 추출을 하나의 흐름으로 자동화하면,
AI 모델 학습용 데이터셋 구축부터 품질 모니터링, 보안 캡처 시스템까지 다양한 활용이 가능합니다.
이 글에서는 영상 스트림에서 필요한 장면을 조건에 따라 자동 저장하고,
이미지로 추출해 정리하는 실전 코드를 Python OpenCV 기반으로 정리합니다.


영상 데이터 자동 저장이 필요한 이유

영상 속 데이터를 다룰 때 가장 먼저 고려해야 할 부분은 데이터를 언제, 어떻게 저장할 것인가입니다.
단순히 영상을 저장하는 것을 넘어서,

  • 학습용 이미지 생성
  • 시점별 캡처
  • 특정 이벤트 대응용 장면 저장
    등은 모두 자동 저장 시스템이 전제되어야 가능합니다.

OpenCV는 이 과정에서 이미지 추출 자동화 + 저장 최적화에 유용하게 활용됩니다.

 

반응형

환경 준비 및 OpenCV 설치

작업에 앞서 OpenCV를 설치합니다. GUI 환경이 있는 로컬에서는 아래 명령어를 사용하세요.

pip install opencv-python

서버 환경에서는 다음과 같이 설치하는 것이 안정적입니다.

pip install opencv-python-headless

영상 스트림 자동 저장 + 이미지 추출 코드

다음 예제는 실시간 영상 스트림에서 30프레임마다 이미지로 저장하고,
파일 이름과 경로를 자동으로 지정하여 정리하는 구조입니다.

import cv2
import os
import time

folder = 'dataset_output'
os.makedirs(folder, exist_ok=True)

cap = cv2.VideoCapture('sample_video.mp4')
index = 0

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    if index % 30 == 0:
        timestamp = time.strftime('%Y%m%d_%H%M%S')
        filename = f'{folder}/frame_{timestamp}_{index}.jpg'
        cv2.imwrite(filename, frame)
        print(f'Saved: {filename}')

    index += 1

cap.release()
  • 시간+프레임 조합으로 파일명이 구성되어 자동 분류가 용이합니다.
  • 파일명 기준으로 저장 간격을 추적하거나, 외부 연동도 가능하도록 설계되어 있습니다.

실시간 영상 자동 캡처 예제

다음은 웹캠으로 영상을 실시간으로 받아보며,
원하는 시점마다 이미지를 저장할 수 있도록 구성한 예제입니다.

import cv2
import time

cap = cv2.VideoCapture(0)
count = 0

while True:
    ret, frame = cap.read()
    if not ret:
        break

    cv2.imshow('Camera Feed', frame)

    key = cv2.waitKey(1)
    if key == 32:  # 스페이스바
        timestamp = time.strftime('%H%M%S')
        filename = f'image_{timestamp}_{count}.jpg'
        cv2.imwrite(filename, frame)
        print(f'Saved: {filename}')
        count += 1

    elif key == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

자동화 시스템에 적합한 활용 대상 예시

  • AI 학습용 데이터셋 생성 자동화
  • 품질 검사 영상 중 이상 장면만 저장
  • 학교, 병원, 공공기관 영상 자동 캡처 시스템 구축
  • 강의 영상 정지 화면 캡처 → 슬라이드 생성
  • 게임 스트리밍 영상 → 자동 하이라이트 캡처

 


실무 적용 팁

  • 영상 길이가 긴 경우, 프레임 추출 주기를 테스트하면서 적절히 조절하세요.
  • 저장 위치는 로컬 디렉토리 외에 Google Drive, NAS, AWS S3 등 외부 저장소와 연동 가능합니다.
  • 이미지 크기나 형식을 줄이면 저장 속도 및 용량 관리에 유리합니다.

 

반응형

댓글