Python/파이썬 OpenCV 공부

[파이썬 OpenCV] 연산 시간 측정 방법 - cv2.TickMeter

AI 꿈나무 2020. 9. 27. 14:32
반응형

황선규 박사님의 OpenCV 강의를 공부하면서 정리하였습니다.

 


연산 시간 측정 방법

 컴퓨터 비전은 대용량 데이터를 다루고, 일련의 과정을 통해 최종 결과를 얻으므로 매 단계에서 연산 시간을 측정하여 관리할 필요가 있습니다.

 

 

1. 연산 시간 측정 - cv2.TickMeter

 OpenCV에서는 TickMeter 클래스를 이용하여 연산 시간을 측정할 수 있습니다.

 

[함수 설명]

cv2.TickMeter() -> tm

 

• tm: cv2.TickMeter 객체

 

 cv2.TickMerer() 클래스 안에 있는 메소드를 확인하겠습니다.

tm.start() : 시간 측정 시작

• tm.stop() : 시간 측정 끝

• tm.reset() : 시간 측정 초기화

 

• tm.getTimeSec() : 측정 시간을 초 단위로 반환

• tm.getTimeMilli() : 측정 시간을 밀리 초 단위로 반환

• tm.getTimeMicro() : 측정 시간을 마이크로 초 단위로 반환

 

 

tm 클래스를 이용하여 윤곽선 영상을 출력하는데에 걸리는 시간을 측정하도록 하겠습니다.

 

[예제 코드]

img = cv2.imread('hongkong.jpg')

tm = cv2.TickMeter()

# 윤곽선이 작동하는 시간을 측정하려고 함
tm.reset()
tm.start()
t1 = time.time()

edge = cv2.Canny(img, 50, 150)

tm.stop()
ms = tm.getTimeMilli() # 밀리 초 단위 시간을 받아옴

print('time:', (time.time() - t1) * 1000)
print('Elapsed time: {}ms.'.format(tm.getTimeMilli()))

 

[결과]

 649ms가 걸렸습니다. 이는 매우 느린 속도입니다.

 

반응형