计算算法帧率---视频或单幅图像:time(),timeit.default_timer()

说明:

用于代码计算帧率fps,帧率fps = 每秒运行帧数(f/s)。

常用函数两种:time(),timeit.default_timer()

一、time()

time.time():返回当前时间的时间(从1970纪元开始的浮点秒数)

import time
print(time.time())

运行结果:1583933719.603091,大约计算一下1970-2020年60*60*24*30*12*50=1.56*e9,差不离。单位为秒

用在测试视频的代码中:

 

sum_time = 0.0 #当前耗费总时长
fps_curr = 0.0 #当前帧率
frame_num = 0  #当前读入总帧数

video_capture = cv2.VideoCapture(video_path)
while True:
    starttime = time.time()
    frame_num = frame_num +1

    ret, frame = video_capture.read()  # 循环读入每一帧
    if ret != True:
        break
    --------------------------
            程序主体
    --------------------------

    endtime = time.time()
    sum_time = endtime - starttime + sum_time
    fps_curr = sum_time/frame_num


    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
video_capture.release()
cv2.destroyAllWindows()

二、 timeit.default_timer()

timeit.default_timer()
默认的计时器,一般是 time.perf_counter(),time.perf_counter() 方法能够在任一平台提供最高精度的计时器(它也只是记录了自然时间,记录自然时间会被很多其他因素影响,例如计算机的负载)。

from timeit import default_timer as timer

accum_time = 0
curr_fps = 0
fps = "FPS: ??"
prev_time = timer()

vid = cv2.VideoCapture(video_path)    
while True:
    return_value, frame = vid.read()
    
    ------------------------------
    程序主体(例如
    image = Image.fromarray(frame)
    image = yolo.detect_image(image)
    ------------------------------

    curr_time = timer()
    exec_time = curr_time - prev_time
    prev_time = curr_time
    accum_time = accum_time + exec_time
    curr_fps = curr_fps + 1
    if accum_time > 1:
        accum_time = accum_time - 1
        fps = "FPS: " + str(curr_fps)
        curr_fps = 0
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

注:此例来源于yolov3_keras;另注意import的方式

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: timeit.default_timer()是Python中一个计时器函数,用于返回当前时间的高精度计时器的值。它会根据操作系统的不同,返回不同的计时器,以保证计时的准确性。在Python中,我们可以使用它来测试代码的执行时间。 ### 回答2: timeit.default_timer()是Python中timeit模块中的一个函数,其作用是返回一个CPU时钟计时器的精确时间。 在Python中,可以使用多种方式来计时一个程序的运行时间,比较常见的方式有time模块和timeit模块。在这两种模块中,都有一个函数可以返回当前时间,但是time函数返回的是系统时间,而timeit的default_timer函数返回的是一个CPU时钟计时器的精确时间。 与time模块不同,timeit模块是专门用来测试程序运行时间的工具,通常用于测试一小段代码的运行时间,可以消除因为操作系统调度等原因带来的误差。在使用timeit模块的过程中,我们需要使用default_timer函数来计算程序的运行时间。 具体的使用方法是,首先导入timeit模块,然后使用default_timer函数获取开始时间,执行程序代码,然后再次使用default_timer函数获取结束时间,最后将结束时间减去开始时间即可得到程序的运行时间。例子如下: import timeit start_time = timeit.default_timer() # your code here end_time = timeit.default_timer() print("Time taken: ", end_time - start_time, "seconds") 需要注意的是,default_timer函数返回的是一个浮点数,表示从某个时间点开始运行到当前时间所经过的秒数,单位为秒。因此在显示运行时间时,需要将结果进行格式化。 总之,timeit.default_timer()函数是Python中常用的计时函数,可用于计算程序的运行时间,也是timeit模块内部用来计算程序运行时间的基本函数。 ### 回答3: timeit.default_timer()是Python中的一个函数,它用于返回当前操作系统的精确时间(秒为单位),以便用户可以在Python中进行时间性能测试。 在Python中,timeit是一个专门用于测量小段Python代码执行时间的模块。它提供了更准确的计时器(timeit.Timer)来测量代码的执行时间,而不受整个环境中其他程序可能会产生的影响。timeit模块还可以帮助开发者测试代码的效率,找到效率低下的部分并对其进行优化。 实际上,timeit.default_timer()是timeit模块中的一个默认计时器,它根据不同的操作系统和Python版本自动选择最精确的时间计时器。 在使用timeit.default_timer()函数时,我们可以使用它来计算任何Python代码的执行时间。通常情况下,我们可以使用该函数来测试程序的运行时间,以便我们可以选择使用哪种算法或使用哪种数据结构。 需要注意的是,timeit.default_timer()返回的时间不包括函数调用返回时可能花费的时间,因此可以将两次调用之间的时间用作计时器。而且,时间分辨率可能受到系统内部时钟限制而有所限制,因此经常需要对其结果进行统计分析才能得出可靠的执行时间测量结果。 总之,timeit.default_timer()是Python中一个非常有用的计时器函数,能够帮助我们测试Python代码的执行时间和效率,并找到可能需要优化的部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值