监控实时视频跳帧推理检测识别原理代码示例

嵌入式设备或者移动端设备由于没有GPU,是NPU、TPU、CPU导致模型推理速度跟不上

此时就需要抽帧跳帧检测推理识别

原理:假设视频是30帧,则目标画面在毫秒内也就是3帧之内变化不大,只需要识别第一帧,第二帧和第三帧使用第一帧的识别结果进行标注画锚框

    ## 嵌入式设备深度学习AI推理跳帧检测原理
    cap = cv2.VideoCapture(0)

    # 跳几帧推理检测:推荐2或者3,优先推荐设置为2(跳过一帧:间隔1帧推理一次),如果性能达不到可以设置3(跳过2帧:间隔2帧推理一次)
    # 但是市面上大部分设置的是3
    detect_skip = 3

    # 跳帧计数
    detect_skip_index = 1;

    # 最新一帧也就是上一帧推理结果
    dict_result = None

    while True:
   
        ret, img = cap.read()

        if img.shape[-1]==4:
            img=cv2.cvtColor(img,cv2.COLOR_BGRA2BGR)

        # 余数为0
        if detect_skip_index % detect_skip == 0 or dict_result == None:
            detect_skip_index = 1

            # 模型推理
            dict_result = detect(model, img, device)
        else:
            detect_skip_index = detect_skip_index + 1

        cv2.imshow("result", draw_result(img,dict_result))
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()

百度paddle官方原文

监控实时视频跳帧推理检测识别原理代码示例_第1张图片

你可能感兴趣的:(音视频,深度学习,人工智能,python)