• Yolo-FastestV2:更快更轻


    (说明:如果您认为下面的文章对您有帮助,请您花费一秒时间点击一下最底部的广告以此来激励本人创作,谢谢)

    基于Yolo改进的轻量级目标检测算法,参数仅为250k,智能手机可以达到300fps。

    Yolo Fastest专注于单核、实时推理性能和实时条件下的低CPU使用率。它不仅可以在手机上实现实时性能,还可以在RK3399、树莓派Pi 4和各种Cortex-A53上实现,同时保持低成本。功耗设备满足某些实时性能标准。毕竟,这些嵌入式设备比手机弱得多,但它们的应用范围更广,价格也更便宜。

    让我谈谈Yolo的初衷。大多数人在早期轻型物体检测中使用Mobilenet SSD。在实际测试中,难以在常用的ARM设备上实现实时性;这只能在一些高端手机上实现。所有大内核在启动时几乎都无法达到实时性,更不用说“强大”的RK3399和业界其他常用的ARM CPU了。实时性基本上是不可能的。

    与Yolo网络对比

    首先,将Yolo-FastestV2与Yolo-FastestV1.1进行比较:

    7501a1bc3aed6eec92ba2d0ff8dc89e3.png

    作者没有优化精度,而是优化了速度。毕竟,作者追求的是最快的。然而,0.3%的精度损失已被替换为推理速度提高30%,参数数量减少25%。不追求速度,但更注重算法效果和推理效率的成本效益。

    后来,作者用mobilenet优化了YOLOV3的轻量级。Kirin 990的运算速度为1.8B次,性能可达~55fps,大内核完全开启。虽然高端手机可以实现良好的速度,但业内常用的一些低端手机CPU和高端芯片RK3399仍无法满足实时性要求。

    其次,在实际应用中,考虑到功耗和系统资源占用,通常没有充分利用多核对模型进行推理。毕竟,有些资源是为其他应用程序保留的,所以通常使用单核,最多使用双核。尤其是在手机上,功耗问题尤为严重。如果在模型推断期间CPU使用率过高,将导致过热和频率降低,这将适得其反。

    最后,电池寿命将缩短。尤其是在手机上,功耗问题尤为严重。如果在模型推断期间CPU使用率过高,将导致过热和频率降低,这将适得其反。

    Yolo-FastestV2的改进

    首先,将模型的主干替换为ShuffleNet V2。与原始主干相比,内存访问减少且更轻。其次,Anchor的匹配机制指的是YOLOV5,它实际上是Yolov 5和Darknet的官方版本。YOLOV4在Anchor中的匹配机制是完全不同的。

    下一步是检测头的解耦。这也是对YoloX的参考。它将返回检测帧并对前景和背景进行分类。检测类别的分类将Yolo的特征图耦合到三个不同的特征图中,其中前景背景的分类和检测类别的归类共享相同的网络分支参数。

    最后,用s形软最大值代替检测损失类别分类。

    顺便说一句,这次只有两个刻度检测头输出11x11和22x22,因为三个检测头(11x11、22x22、44x44)和两个检测头的精度在coco中没有太大差异。我认为原因如下:

    • 主干线对应于44x44分辨率的特征图太少;

    • 正archors和负archors严重失衡;

    • 小对象是困难的样本,需要很高的模型学习能力;

    因此,我们不仅应该关注耗时的模型推理,还应该关注模型推理所消耗的系统资源、内存和CPU使用。例如,两种型号的CPU都可以达到30fps,但在单核实时的情况下,CPU仅占型号A的20%。当四个内核完全打开时,B型可以实现实时性。CPU使用率可能为100%,但B型性能可能更好。在这种情况下,需要权衡利弊。

    稍后,您可能会更关注与yolox和nanoDet的比较。准确度肯定无法与之相比,但速度应该快两到三倍。PP-YOLO Tiny的体积仅为1.3M(“比YOLO更轻,更快?”)与Yolo最快fp32相比,int8的容量有点短。Yolo-FastestV2 int8只有250kb,虽然我还没有运行PP-Yolo Tiny,但它应该仍然比这快。因此,模式的选择取决于每个人的需求。

    RK3399和树莓Pi 4与ncnn bf16s匹配,但YOLO-FastestV2可以是实时的。

    模型的最终测量效果:

    9786d7750b55bf8bff8b020340d121bc.png

    ba94205b65fe9acb452338680c368721.png

    github链接:https://github.com/dog-qiuqiu/Yolo-FastestV2

     

  • 相关阅读:
    【蓝桥杯国赛真题06】python绘制菱形圆环 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析
    Maven解决静态资源过滤问题
    Linus Torvalds接受来自微软的Linux Hyper-V升级
    【树莓派不吃灰】基础篇⑮ SSH远程访问安全,涉及/etc/hosts.allow白名单 和 /etc/hosts.deny黑名单、ufw防火墙、密钥登录
    python实战故障诊断之CWRU数据集(一):数据集初识
    Mongodb操作基础 分片
    刷题记录第二十七天-环形链表II
    绿盟安全事件响应观察及远程代码执行漏洞
    要让程序员在代码中添加注释
    程序环境和预处理
  • 原文地址:https://blog.csdn.net/CSS360/article/details/126388396