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

     2023-02-16     28

关键词:

【中文标题】如何对经过训练的目标检测模型进行剪枝?【英文标题】: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 关于如何修剪模型以及对大小和性能改进进行基准测试。

【讨论】:

在 mAP 不稳定的情况下,我应该何时停止目标检测模型训练?

...MobileNet,并对来自该数据集的100张图像进行评估。问题是经过大约24小时的训练 查看详情

经典目标检测算法介绍

...)监督训练样本数紧缺时,在额外的数据上预训练的模型经过fine-tuning可以取得很好的效果。第一个贡献影响了之后几乎所有2-stage方法,而第二个贡献中用分类任务(Imagenet)中训练好的模型作为基网络,在检测 查看详情

如何保存经过训练的模型(估计器)并将其加载回来以使用 Tensorflow 中的数据对其进行测试?

】如何保存经过训练的模型(估计器)并将其加载回来以使用Tensorflow中的数据对其进行测试?【英文标题】:Howtosaveatrainedmodel(Estimator)andLoaditbacktotestitwithdatainTensorflow?【发布时间】:2017-04-0721:25:30【问题描述】:我的模型有这... 查看详情

如何使用经过训练的 CNN 模型(torch7 格式)进行单张图像推理?

】如何使用经过训练的CNN模型(torch7格式)进行单张图像推理?【英文标题】:HowtodoasingleimageinferenceusingatrainedCNNmodel(torch7format)?【发布时间】:2018-09-2811:17:01【问题描述】:我已经获得了一个经过训练的torch7格式的CNN模型。如... 查看详情

tensorflow利用预训练模型进行目标检测:预训练模型的使用(代码片段)

一、运行样例官网链接:https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb 但是一直有问题,没有运行起来,所以先使用一个别人写好的代码上一个在ubuntu下可用的代码链接:https://gitee.com/bubbl... 查看详情

论文阅读|compressingbert:studyingtheeffectsofweightpruningontransferlearning

...;[githubcode] 本文研究对BERT的剪枝。结论:BERT可以在预训练时进行一次修剪,而不是在不影响性能的情况下对每个任务进行单独修剪。针对不同水平的修剪:低水平的修剪(30-40%)根本不会增加训练前的损失或影响下游任务的转... 查看详情

移动目标检测(纯图像方式无神经网络训练)(代码片段)

...  二值化、膨胀操作  设置检测区域,车辆经过直线后才进行检测 整体效果:上方的数字表示的是当前经过图片中黄线后检测到的车辆数量总结:帧差法虽然实现起来简单,可是具有它的局限性,摄像头与背景... 查看详情

目标检测如何提高网络的特征提取能力

参考技术A1,通过对输入数据的手动查验或自动化统计,确定较好的canny阈值2,利用阈值对训练样本中10-20个batch的数据进行canny边缘增强3,增强方式为:原图转灰度提取到的canny边缘所对应的原图像素位置进行对比度增强或直接... 查看详情

如何在 Keras 中使用经过训练的模型进行预测

】如何在Keras中使用经过训练的模型进行预测【英文标题】:HowtoperformpredictionwithatrainedmodelinKeras【发布时间】:2020-02-2704:19:19【问题描述】:我是Keras的新手。通过在线教程之后的迁移学习,我尝试为我的自定义数据集训练模型... 查看详情

如何使用最新的 MobileNet (v3) 进行目标检测?

】如何使用最新的MobileNet(v3)进行目标检测?【英文标题】:HowToUseTheLatestMobileNet(v3)forObjectDetection?【发布时间】:2020-04-1117:15:59【问题描述】:我一直在尝试使用最新的MobileNetMobileNet_v3来运行对象检测。您可以从此处找到Google的... 查看详情

目标检测:fp(误检)和fn(漏检)统计(代码片段)

...景或者小目标检测场景中,会存在一些FP(误检),FN(漏检)。如何对检测的效果进行可视化,以帮助我们改进模型,提高模型recall值。步骤(1):数据需要准备为yolo格式(2)训练数据获得模型model(3)利用训练的模型再测试集上预测,获得pr... 查看详情

如何利用opencv进行样本训练

OpenCV训练分类器一、简介目标检测方法最初由PaulViola[Viola01]提出,并由RainerLienhart[Lienhart02]对这一方法进行了改善。该方法的基本步骤为:首先,利用样本(大约几百幅样本图片)的harr特征进行分类器训练,得到一个级联的booste... 查看详情

基于yolov4的目标检测系统(附matlab代码+gui实现)(代码片段)

...标检测系统代码,采用YOLOv4检测网络作为核心模型,用于训练和检测各种任务下的目标,并在GUI界面中对各种目标检测结果可视化。文章详细介绍了YOLOv4的实现过程,包括算法原理、MATLAB实现代码、训练数据集、训练过程和图形... 查看详情

如何实现神经网络剪枝?

】如何实现神经网络剪枝?【英文标题】:Howtoimplementneuralnetworkpruning?【发布时间】:2019-10-1110:24:41【问题描述】:我在keras中训练了一个模型,我正在考虑修剪我的全连接网络。我对如何修剪图层有点迷茫。“学习权重和连接... 查看详情

机器学习树模型预剪枝和后剪枝(代码片段)

...的过程中的树模型的超参数会影响模型的精度,那么如何调整超参数呢?可以提前限制模型的超参数,也可以在训练模型之后再调整。本文将介绍树模型的预剪枝和后剪枝的实践过程。原始模型使用基础数据集和基础... 查看详情

使用opencv自带的预训练模型yolov3调用摄像头进行目标检测超少代码!懒人必备!(代码片段)

使用OpenCV自带的预训练模型YOLOv3调用摄像头进行目标检测【超少代码!懒人必备!】想要跑一个使用摄像头进行目标检测的模型玩一玩,想要简单又想要酷炫,想要少写代码,有想要足够好的效果!那不如... 查看详情

基于pytorch预训练模型使用fasterrcnn调用摄像头进行目标检测无敌详细!简单!超少代码!(代码片段)

基于pytorch预训练模型使用FasterRCNN调用摄像头进行目标检测【无敌详细!简单!超少代码!】详细完整项目链接:https://download.csdn.net/download/weixin_46570668/86954697?spm=1001.2014.3001.5503使用Pytorch自带的预训练模型fasterr 查看详情

小目标检测

...能最不令人满意。本文研究了这种现象,发现:在大多数训练迭代中,小目标几乎不占总损失的一部分,从而导致不平衡优化的性能下降。受此启发,本文提出了Stitcher,一个反馈驱动的数据提供商,旨在以平衡的方式训练目标... 查看详情