这里来看一个实例,基于YOLO实现对高速公路的车速检测。
整个过程可以说非常简单,主要用到YOLO、ByteTrack及OpenCV。通过ByteTrack进行车辆目标跟踪,从而方便获取其位置信息。
要实现车速计算,最简单的方法自然是根据识别框的像素位置进行估计,但是这种方式存在一种问题,无法从图像的像素值得到其实际物理的距离。为此,需要通过一种映射关系建立与真实世界的联系。
在OpenCV中提供了getPerspectiveTransform函数,我们可以将图像中的四边形变换为一个矩形,从而建立其关系。因为龙门架的高度、车道线的距离一般是规定不变的,从而借助这些隐含信息作为参考,得到其真实的距离度量。
问题在于如何得到图像中的坐标点,假设我们知道其坐标点信息,那么就可以建立联系了,从而解决车速检测的问题。
最后为了避免车速出现一些异常值,可以对一秒钟内的速度取平均值,这样有助于系统更加稳健。
最后我们还可以使用YOLO制造热力图,将其进行显示,详情可以参考使用YOLOv8创建交通热力图。
参考文章:
https://cloud.tencent.com/developer/article/2389959?policyId=1004