如何对经过训练的目标检测模型进行剪枝?

Posted

技术标签:

【中文标题】如何对经过训练的目标检测模型进行剪枝?【英文标题】:How to perform pruning on trained object detection model? 【发布时间】:2021-12-09 01:01:47 【问题描述】:

您好,我已经使用 tensorflow 1.14 对象检测 API 训练了对象检测模型,我的模型表现良好。但是,我想减少/优化模型的参数以使其更轻。如何在经过训练的模型上使用剪枝?

【问题讨论】:

你有充分的理由在 2021 年使用 TF1 和 Faster-RCNN 吗?更新的框架和检测器可能会为您提供更多的功能和灵活性。 我尝试过Yolo、SSD等新型号,但在我的问题上没有得到想要的结果。然而,由于两阶段网络,Faster RCNN 提供了更好的检测性能。我也用过TF2。 Faster RCNN 模型的问题在于推理速度。 是的,但是 Faster-RCNN 经历了一些改进。有明显的,例如用更新和更强的东西替换 VGG16 主干,例如 ResNeXt-101 和不太明显的,例如添加 FPN 层。我很确定 RetinaNet 与 Faster-RCNN 一样准确,但速度更快,对于 YOLOv4 甚至 YOLOv3 也是如此。都是一级检测器。 @SomethingSomething 感谢您的建议。您能否就我的问题进一步建议我。我实际上是在尝试检测路面上的裂缝,但问题是背景和裂缝颜色几乎相似。在这种情况下,哪种模型效果更好?我是这个领域的新手。 直观地说,没有一个模型比其他模型更适合此任务。问题是你的问题是什么样的。道路上的裂缝是否被训练数据集中的边界框包围?这些边界框是否看起来“典型”,即不是很长等。只要存在图案差异,相似的颜色就不是问题。你能用眼睛发现裂缝吗?如果可以,那么探测器也可以 【参考方案1】:

你查看过 Tensorflow 网站上的Pruning guide 吗? 它有 concrete examples 关于如何修剪模型以及对大小和性能改进进行基准测试。

【讨论】:

以上是关于如何对经过训练的目标检测模型进行剪枝?的主要内容,如果未能解决你的问题,请参考以下文章

目标检测:FP(误检)和FN(漏检)统计

基于YOLO的手部检测和计数实现(课程设计,训练测试+模型剪枝+模型压缩)

基于YOLO的手部检测和计数实现(课程设计,训练测试+模型剪枝+模型压缩)

tensorflow利用预训练模型进行目标检测:预训练模型的使用

AI人工智能-目标检测模型一览

深度学习目标检测---使用yolov5训练自己的数据集模型(Windows系统)