강의자료 · 마이크로프로세서응용설계

Camera Frame과 Frame Rate · 학습

실행 조건

입력: 생성 영상과 Timestamp. 실제 촬영 예제는 Raspberry Pi OS의 Picamera2를 사용합니다. OS에 없는 경우 터미널에서 sudo apt install python3-picamera2.

이번에 배울 내용

해상도와 촬영 간격을 정하려면 저장량·관측 범위·Frame Rate의 교환 관계를 알아야 합니다.

전체 흐름

Frame 배열 → ROI·해상도 → Timestamp → 메모리·실제 FPS

한 Frame의 비용

압축 전 저장량은 높이×너비×채널 수×채널당 Byte입니다. 해상도를 두 축에서 두 배로 키우면 픽셀 수는 네 배가 됩니다. ROI로 필요한 구역만 쓰면 관측 정보와 처리 비용을 함께 조절할 수 있습니다.

요청한 FPS와 실제 기록

노출·전송·변환·저장에 시간이 걸립니다. 실제 FPS는 Timestamp의 간격으로 계산합니다. Frame 수만 세거나 요청 설정값만 기록하면 끊김·지연을 놓칠 수 있습니다.

풀이 예제

제공 NumPy 코드가 만드는 120×160×3 uint8 RGB 영상을 사용합니다.

import numpy as np
import matplotlib.pyplot as plt
x,y=np.meshgrid(np.linspace(0,255,160),np.linspace(0,255,120))
frame=np.stack([x,y,255-x],axis=-1).astype(np.uint8)
small=frame[::2,::2]
print(frame.shape,frame.nbytes,small.shape,small.nbytes)
(120, 160, 3) 57600 (60, 80, 3) 14400

참고 예제

추가 예제 보기

참고 자료