我正在使用YOLOv4训练我的自定义检测器。来源:https://github.com/AlexeyAB/darknet
训练时的问题之一是GPU和可用的视频RAM的计算能力。对象类的数量与训练模型所需的时间之间的关系是什么?此外,是否有可能通过减少对象类的数量来显著减少图像的推理时间?目标是在Raspberry Pi或Jetson Nano上运行推理。
任何帮助都是非常感谢的。谢谢。
发布于 2020-07-25 15:32:18
的变化是类的数量不会对推理时间产生重大影响。
例如,在具有3个Yolo层的Yolov4的情况下,类的变化导致conv层在Yolo层之前的filter size的变化,以及Yolo层中的一些计算减少,仅此而已。与总体推理时间相比,这是非常微小的,因为conv层之前的Yolo层是具有非常小的宽度和高度的底层,并且花费在依赖于Yolo层中的类数量的逻辑上的时间也非常少。

这里:
filters=(classes + 5)x3请注意,较小版本的yolov4,即tiny-yolov4,只有两个Yolo层,而不是三个。
如果你的意图是减少推理时间,特别是在覆盆子pi或jetson nano上,而不会损失准确性/mAP,请做以下事情:
INT8而不是FP32运行推理。您可以使用此repo实现此目的。您可以对Jetson nano和raspberry pi执行此操作。cuDNN和tensorRT原语构建的深度神经网络库,专门用于NVIDIA Jetson板。您可以将此用于Jetson nano。请注意,使用时,您可以使用INT8和FP16而不是FP32来减少检测时间。以下技术可以用来减少推理时间,但它们的代价是准确性/mAP显著下降:
你可以用更小的版本而不是完整的Yolo versions.
发布于 2020-07-27 01:42:33
我尝试在YOLOv3上将班级数量从80个班级减少到5个班级,我的目标是只检测车辆,结果发现时间减少了。例如,使用英特尔酷睿i5-6300UCPU@ 2.40 GHz,时间减少了50%,而对于Nvidia GeForce 930M,时间减少了20%。一般来说,处理器越强大,减少的时间就越少。
https://stackoverflow.com/questions/63076707
复制相似问题