π‘ λ³Έ λ¬Έμλ '[Perception] Python OpenCVλ₯Ό μ΄μ©ν μμ μ¬μκ³Ό Frame Rate (FPS) μ‘°μ 'μ λν΄ μ 리ν΄λμ κΈμ λλ€.
μ°μλ μ΄λ―Έμ§λ λΉλμ€ νμΌμ λ€λ£°λ μ¬μλλ νλ μμ μλλ₯Ό μ‘°μ ν΄μΌνλ Taskκ° λ°μνκ² λ©λλ€. νΉν, μ€μκ°μΌλ‘ μ΄λ―Έμ§ νλ‘μΈμ±μ νκ² λ κ²½μ°, λͺ¨λ νλ μμ μκ³ λ¦¬μ¦μ μ μ©νκ² λλ©΄ μ°μ°μΌλ‘ μΈν΄ μ¬μμ΄ μ§μ°λλ μν©μ΄ λ°μνκ² λ©λλ€. μ§μ°μκ° λ° μ²λ¦¬μκ°μ μΈ‘μ νκΈ° μν λ΄μ©μ μ 리νμμΌλ μ°Έκ³ νμκΈ° λ°λλλ€.
1μ΄ λμ 10κ°μ νλ μ(μ΄λ―Έμ§)μ΄ μ¬μλλ μμμ΄ μλ€κ³ κ°μ ν΄λ³΄κ² μ΅λλ€. λ¨μΌ νλ μ μ°μ°μ΄ 1μ΄κ° 걸리λ λ₯λ¬λ μκ³ λ¦¬μ¦μ μ μ©νκ²λλ©΄, μμμ 1μ΄μ΄μ§λ§ 10μ΄μ μκ°λμ μμμ΄ μ¬μλκ² λ©λλ€. λ¬Όλ‘ λͺ¨λ νλ μμ λν΄ μκ³ λ¦¬μ¦μ΄ μ μ©λλ©΄ μ’κ² μ§λ§ μ€μκ°μ΄ μꡬλλ μν©μμλ μ§μ°μ΄ λ°μνκ² λμ£ . μ΄λ¬ν μ§μ°μ λ°©μ§νκΈ° μν΄ time ν¨μλ₯Ό μ΄μ©νμ¬ μκ³ λ¦¬μ¦μ μ μ©λλ FPSλ₯Ό μ§μ ν΄λ³΄κ² μ΅λλ€.
1. VideoCapture.py (κΈ°λ³Έ μΊ‘μ² λͺ¨λ λΆλ¬μ€κΈ°)
import cv2
import time
video = cv2.VideoCapture(0) # WebCamμ κ²½μ° 0 λλ 1
# λΉλμ€ νμΌμ κ²½μ° 'κ²½λ‘/νμΌλͺ
.νμ₯μ'
while True:
ret, frame = video.read()
openCVλ₯Ό ν΅ν΄ λΉλμ€ λͺ¨λμ λΆλ¬μ΅λλ€. λ ΈνΈλΆμ κ²½μ° 0 λλ 1μΌλ‘ WebCamμΌλ‘ ν¬νΈκ° μ΄λ¦¬κ² λλ©° νΉμ λμμ νμΌμ λ‘λν κ²½μ°, κ²½λ‘μ νμΌλͺ μ ' ' μ λ£μ΄ λΆλ¬μμ£Όμλ©΄ λ©λλ€. μ°μλλ λͺ¨λ μμμ λΆλ¬μ€κΈ° μν΄ whileλ¬ΈμΌλ‘ 무ν루νλ₯Ό λ§λμ ν, read() ν¨μλ₯Ό ν΅ν΄ νλ μμ μ½μ΄μ€λλ€.
- ret = νλ μ μ½κΈ°μ μ±κ³΅νλ©΄ True κ° λ°ν
- frame = λ°°μ΄ νμμ μμ νλ μ (κ°λ‘ X μΈλ‘ X 3) κ° λ°ν
2. VideoCapture.py (λΉλμ€ μ¬μ)
while True:
ret, frame = video.read()
if ret in True :
cv2.imshow('Video',frame)
if cv2.waitKey(1) > 0:
break
retκ° ture κ°μ κ°μ§ κ²½μ°μλ§ μμμ μΆλ ₯ν©λλ€. cv2.imshow() ν¨μλ‘ μμμ μ§μ ν΄μ£Όλ©° waitKey()λ ν€λ³΄λ μ λ ₯μ κΈ°λ€λ¦¬λ ν¨μμ΄μ§λ§ μ°λ¦¬λ μμμ μ°μμ μΌλ‘ μ¬μν κ²μ΄κΈ°μ μ λ ₯ λκΈ° μκ°μ 1msλ‘ μ§μ νμ¬ μ λ ₯ κ΄κ³μμ΄ 1ms λ§λ€ μλ‘κ² κ°±μ ν©λλ€.
3. VideoCapture.py (λΉλμ€ FPS μ§μ )
prev_time = 0
FPS = 10
while True:
ret, frame = video.read()
current_time = time.time() - prev_time
if (ret is True) and (current_time > 1./ FPS) :
prev_time = time.time()
cv2.imshow('VideoCapture', frame)
if cv2.waitKey(1) > 0 :
break
μ§μ λ FPSκ°κ³Ό prev_timeμ 0μΌλ‘ μ΄κΈ°νν©λλ€. μ΄ν, νμ¬ μκ°κ³Ό μ΄μ νλ μ μ¬μ 루νμμ μ μ₯λ μκ° κ°μ λΉκ΅νμ¬ κ²½κ³Όλ μκ°κ°μ λ°μμ΅λλ€. λ§μ§λ§μΌλ‘ ifλ¬Έμμ μ§μ λ FPSκ°κ³Ό λΉκ΅νμ¬ FPSκ° μ΄μμ μκ°μ΄ κ²½κ³Ό λμμ λ μλ‘μ΄ νλ μμ μΆλ ₯νκ² λ©λλ€.
μ°Έκ³
- [Blog] OpenCVλ₯Ό μ΄μ©ν μμ μ¬μκ³Ό Frame Rate (FPS) μ‘°μ : https://deep-eye.tistory.com/10