深度学习模型推理时间与FPS的求取⽅法,以及time,OpenCV的API教程
类似深度学习中⽬标检测的深度学习模型中有两个⾮常重要的性能指标,⼀个是MAP就是检测的准确率,另⼀个就是FPS,就是模型的推理速度,那么我们如何能够知道模型和视频的推理速度呢?
接下来我们直接进⼊正题,
(⼀)求取模型的推理时间我们需要借助python包中的time包,time包常⽤的API如下:
import time
time.clock()
time clock() 函数以浮点数计算的秒数返回当前的CPU时间
计算模型推理时间在执⾏模型推理语句前得到时间点,与得到模型推理结果后的时间点进⾏相减,得到推理时间。rectangle函数opencv
输出当前时间电脑的时间
import time
print(time.asctime())
时间输出结果如下:
在模型推理代码开始与结束出进⾏设置,对end与start进⾏相减,得到推理时间的消耗。
start = time.clock()#推理计时开始
pred = model(input_feature.float())
end = time.clock()#计时结束
#print('pred:{}'.format(pred))
print('infer_time:', end-start)
(⼆)计算视频流FPS的代码,整个的算法逻辑是将视频分成帧进⾏存储,将处理后再将视频按帧进⾏输出,具体代码如下
import cv2
cap = cv2.VideoCapture("C:\\Users\\LENOVO\\Desktop\\vid.mp4")
#cap就是视频流存储
# 获取FPS(每秒传输帧数(Frames Per Second))
fps = (cv2.CAP_PROP_FPS)
# 获取总帧数
totalFrameNumber = (cv2.CAP_PROP_FRAME_COUNT)
print("FPS: {:.2f}".format(fps))#⼩数点后保留2位
print("sum: {:.2f}".format(totalFrameNumber))#⼩数点后保留两位
以上是进⾏视频参数的读取操作。接下来进⾏窗⼝播放。
# 当前读取到第⼏帧
COUNT =0
# 若⼩于总帧数则读⼀帧图像
while COUNT < totalFrameNumber:
# ⼀帧⼀帧图像读取
ret, frame = ad()
# 把每⼀帧图像保存成jpg格式(这⼀⾏可以根据需要选择保留)
cv2.line(frame,(0,0),(150,150),(0,0,255),10)
cv2.imwrite(str(COUNT)+'.jpg', frame)#将视频流的分帧进⾏.jpg图⽚的格式保存# 显⽰这⼀帧地图像
COUNT = COUNT +1
cv2.imshow('FPS_infer', frame)#进⾏视频流的输出
# 延时⼀段33ms(1s 30帧)再读取下⼀帧,如果没有这⼀句便⽆法正常显⽰视频    cv2.waitKey(33)
cv2.destroyAllWindows()#关闭所有窗⼝
最后输出窗⼝如下图所⽰:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。