DrawingProcess
๋“œํ”„ DrawingProcess
DrawingProcess
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (964)
    • Profile & Branding (22)
      • Career (15)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (97)
      • Book (66)
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • ์ธ์ƒ์„ ์‚ด๋ฉด์„œ (64)
      • ๋‚˜์˜ ์ทจ๋ฏธ๋“ค (7)
      • ๋‚˜์˜ ์ƒ๊ฐ๋“ค (42)
      • ์—ฌํ–‰์„ ๋– ๋‚˜์ž~ (10)
      • ๋ถ„๊ธฐ๋ณ„ ํšŒ๊ณ  (5)

๊ฐœ๋ฐœ์ž ๋ช…์–ธ

โ€œ ๋งค์ฃผ ๋ชฉ์š”์ผ๋งˆ๋‹ค ๋‹น์‹ ์ด ํ•ญ์ƒ ํ•˜๋˜๋Œ€๋กœ ์‹ ๋ฐœ๋ˆ์„ ๋ฌถ์œผ๋ฉด ์‹ ๋ฐœ์ด ํญ๋ฐœํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ผ.
์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ด๋Ÿฐ ์ผ์ด ํ•ญ์ƒ ์ผ์–ด๋‚˜๋Š”๋ฐ๋„ ์•„๋ฌด๋„ ๋ถˆํ‰ํ•  ์ƒ๊ฐ์„ ์•ˆ ํ•œ๋‹ค. โ€

- Jef Raskin

๋งฅ์˜ ์•„๋ฒ„์ง€ - ์• ํ”Œ์ปดํ“จํ„ฐ์˜ ๋งคํ‚จํ† ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฃผ๋„

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
DrawingProcess

๋“œํ”„ DrawingProcess

[Perception] Python OpenCV๋ฅผ ์ด์šฉํ•œ ์˜์ƒ ์žฌ์ƒ๊ณผ Frame Rate (FPS) ์กฐ์ ˆ
Study: Artificial Intelligence(AI)

[Perception] Python OpenCV๋ฅผ ์ด์šฉํ•œ ์˜์ƒ ์žฌ์ƒ๊ณผ Frame Rate (FPS) ์กฐ์ ˆ

2024. 2. 10. 04:44
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” '[Perception] Python OpenCV๋ฅผ ์ด์šฉํ•œ ์˜์ƒ ์žฌ์ƒ๊ณผ Frame Rate (FPS) ์กฐ์ ˆ'์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
์—ฐ์†๋œ ์ด๋ฏธ์ง€๋‚˜ ๋น„๋””์˜ค ํŒŒ์ผ์„ ๋‹ค๋ฃฐ๋•Œ ์žฌ์ƒ๋˜๋Š” ํ”„๋ ˆ์ž„์˜ ์†๋„๋ฅผ ์กฐ์ ˆํ•ด์•ผํ•˜๋Š” Task๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ด๋ฏธ์ง€ ํ”„๋กœ์„ธ์‹ฑ์„ ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ, ๋ชจ๋“  ํ”„๋ ˆ์ž„์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์—ฐ์‚ฐ์œผ๋กœ ์ธํ•ด ์žฌ์ƒ์ด ์ง€์—ฐ๋˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ง€์—ฐ์‹œ๊ฐ„ ๋ฐ ์ฒ˜๋ฆฌ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Frame Per Second (FPS)

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

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Study: Artificial Intelligence(AI)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋…ผ๋ฌธ๋ฆฌ๋ทฐ] Swin Transformer - Hierarchical Vision Transformer using Shifted Windows  (1) 2024.02.08
[Perception] ๋ฐ์ดํ„ฐ ๋ ˆ์ด๋ธ”๋ง ํˆด ์†Œ๊ฐœ(Labeling, Annotation) - image, point cloud  (0) 2024.01.13
[Perception] PointCloud Open3D ์‚ฌ์šฉ๋ฒ•  (2) 2024.01.12
[Pointcloud] Driving area extraction based on point cloud (ground segmentation)  (0) 2023.11.28
[Pointcloud] RANSAC (RANdom SAmple Consensus)์„ ์ด์šฉํ•œ ๋„๋กœ์™€ ๊ฐ์ฒด ๊ตฌ๋ถ„  (0) 2023.11.26
    'Study: Artificial Intelligence(AI)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [๋…ผ๋ฌธ๋ฆฌ๋ทฐ] Swin Transformer - Hierarchical Vision Transformer using Shifted Windows
    • [Perception] ๋ฐ์ดํ„ฐ ๋ ˆ์ด๋ธ”๋ง ํˆด ์†Œ๊ฐœ(Labeling, Annotation) - image, point cloud
    • [Perception] PointCloud Open3D ์‚ฌ์šฉ๋ฒ•
    • [Pointcloud] Driving area extraction based on point cloud (ground segmentation)
    DrawingProcess
    DrawingProcess
    ๊ณผ์ •์„ ๊ทธ๋ฆฌ์ž!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”