视频中的车流量统计_3.13

目标

  • 了解视频中处理车流量统计的方法

前面已经完成了视频中车辆的检测功能,下面我们对车辆进行跟踪,并将跟踪结果绘制在视频中。

主要分为以下步骤:

  • 对目标进行追踪
  • 绘制车辆计数结果
  • 将检测结果绘制在视频中并进行保存

1.对目标进行追踪


    # yolo中检测结果为0时,传入跟踪器中会出现错误,在这里判断下,未检测到目标时不进行目标追踪
    if np.size(dets) == 0:
        continue
    else:
        tracks = tracker.update(dets)  # 将检测结果传入跟踪器中,返回当前画面中跟踪成功的目标,包含五个信息:目标框的左上角和右下角横纵坐标,目标的置信度

    # 对跟踪器返回的结果进行处理
    boxes = []  # 存放tracks中的前四个值:目标框的左上角横纵坐标和右下角的横纵坐标
    indexIDs = []  # 存放tracks中的最后一个值:置信度,用来作为memory中跟踪框的Key
    previous = memory.copy()  # 用于存放上一帧的跟踪结果,用于碰撞检测
    memory = {} # 存放当前帧目标的跟踪结果,用于碰撞检测
    # 遍历跟踪结果,对参数进行更新
    for track in tracks:
        boxes.append([track[0], track[1], track[2], track[3]])  # 更新目标框坐标信息
        indexIDs.append(int(track[4]))  # 更新置信度信息
        memory[indexIDs[-1]] = boxes[-1]  # 将跟踪框以key为:置信度,value为:跟踪框坐标形式存入memory中

  1. 绘制车辆计数的相关信息

 cv2.line(frame, line[0], line[1], (0, 255, 0), 3)  # 根据设置的基准线将其绘制在画面上
    cv2.putText(frame, str(counter), (30, 80), cv2.FONT_HERSHEY_DUPLEX, 3.0, (255, 0, 0), 3)  # 绘制车辆的总计数
    cv2.putText(frame, str(counter_up), (130, 80), cv2.FONT_HERSHEY_DUPLEX, 3.0, (0, 255, 0), 3)  # 绘制车辆正向行驶的计数
    cv2.putText(frame, str(counter_down), (230, 80), cv2.FONT_HERSHEY_DUPLEX, 3.0, (0, 0, 255), 3)  # 绘制车辆逆向行驶的计数

将结果保存在视频中

# 未设置视频的编解码信息时,执行以下代码
    if writer is None:
        # 设置编码格式
        fourcc = cv2.VideoWriter_fourcc(*"mp4v")
        # 视频信息设置
        writer = cv2.VideoWriter("./output/output.mp4",
                                 fourcc,
                                 30,
                                 (frame.shape[1], frame.shape[0]),
                                 True)
    # 将处理后的帧写入到视频中
    writer.write(frame)
    # 显示当前帧的结果
    cv2.imshow("", frame)
    # 按下q键退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

相关推荐

  1. 视频车流量统计_3.13

    2024-03-26 14:14:02       18 阅读
  2. MapReduce模拟统计每日车流量-解决方案

    2024-03-26 14:14:02       37 阅读
  3. 2276. 统计区间整数数目

    2024-03-26 14:14:02       38 阅读
  4. 概率统计在AI作用

    2024-03-26 14:14:02       18 阅读
  5. 统计字符串a出现个数

    2024-03-26 14:14:02       15 阅读
  6. 统计二进制1个数

    2024-03-26 14:14:02       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-26 14:14:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-26 14:14:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-26 14:14:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-26 14:14:02       20 阅读

热门阅读

  1. Unity中使用AssetPostprocessor对模型动画处理

    2024-03-26 14:14:02       21 阅读
  2. Redis 教程系列之Redis 客户端连接(八)

    2024-03-26 14:14:02       15 阅读
  3. Redis 安装

    2024-03-26 14:14:02       19 阅读
  4. 设计模式概念、分类和原则

    2024-03-26 14:14:02       16 阅读
  5. ThreadLocal的主要特点:

    2024-03-26 14:14:02       19 阅读
  6. B+ 树和B树有什么区别,数据库索引为什么用B+树

    2024-03-26 14:14:02       19 阅读
  7. FastAPI+React全栈开发07 MongoDB数据库的结构

    2024-03-26 14:14:02       17 阅读