本文中将实现基于KerasCV YOLOv8的交通灯信号检测,并附录完整代码。。
自从You Only Look Once(简称 YOLO)的诞生以来,目标检测问题主要通过深度学习来解决。大多数深度学习架构通过巧妙地将目标检测问题构建为多个小分类问题和回归问题的组合来实现。具体而言,它是通过在输入图像上生成许多不同形状和大小的锚框,并为每个锚框分配一个类别标签以及x、y、宽度和高度的偏移量来实现。训练后的模型可预测每个框的类别标签以及目标物体的每个框的x、y、宽度和高度的偏移量。
但是,当Yolov8集成到KerasCV呢?本文则将Yolov8检测模型集成到KerasCV库,并使用交通灯数据集微调Yolov8,实现交通灯信号的检测。
其中,KerasCV是一个模块化的计算机视觉组件库,可以与TensorFlow、PyTorch等深度学习框原生配合使用。它是基于 Keras Core 构建的,其中包括了模型、层、评估指标、回调函数等等。这些组件可以在任何框架中进行训练和序列化,并且可以在不同框架之间进行重用,避免了复杂的迁移过程。KerasCV是Keras用于计算机视觉任务的扩展,包括针对常见的计算机视觉数据集(例如Coco、Imagenet等)的预训练模型。
交通灯数据集
本文中使用 Thinklab的小型交通灯数据集 (S2TLD) 训练KerasCV YOLOv8模型。该数据集包含4564个图像,注释以XML格式呈现。数据集的不同场景如下图所示。