(附代码)一个可视化选择最优backbone的小方法

共 2256字,需浏览 5分钟

 ·

2021-07-01 13:03

点击左上方蓝字关注我们



全网搜集目标检测相关,人工筛选最优价值内容

编者荐语
随着CNN越来越深入和广泛,可视化通常是开发人员解释他们的模型的唯一方法。无论你是试图找出模型不能工作的原因,还是试图验证模型的性能,又或者是试图为你的管道选择最佳的 CONV-FE,可视化通常是最接近教科书上的解决方案的替代品。

转载自 | 迈微AI研习社


理想情况下,我在这里描述用代码的技巧应该适用于任何使用卷积特征提取器(CONV-FE)的深度学习(Deep Learning, DL)模型。(“Feature Extractor”有时也被称为“backbone” 或 “Encoder”)

今天我们将看到一个巧妙的技巧来可视化化任何CV任务的CONV-FE。我们将使用带有TensorFlow后台的Keras来演示这个技巧。这个技巧可以用来“调试”没有正确训练的模型,或者“检查”/“解释”训练好的模型。

对于新读者来说,值得一提的是架构和CONV-FE之间的区别。SSD, YOLO和F-RCNN是当今一些流行的目标检测架构。正如你所知道的,架构是具有某种形式的灵活性的模板,用户可以根据自己的用例选择调整架构。

对于新读者来说,值得一提的是架构和骨干之间的区别。大多数架构都将CONV-FE视为插件。一些流行的CONV-FE是 VGG-16、ResNet50和MobileNetV2。通常可以看到,使用特定体系结构构建的模型的性能(包括速度和准确性)将受到很大的影响。出于这个原因,实践者提到了他们在模型名称本身中使用的 VGG-16。一个F-RCNN(ResNet50)是一个模型与F-RCNN论文中描述的架构,使用ResNet50 CONV-FE构建。换句话说,F-RCNN(MobileNetV2)和F-RCNN(vg -16)遵循相同的网络架构,但使用不同的CONV-FEs。因此,我们可以期望每个系统都有不同的性能。CONV-FEs也有他们的架构,这就是为什么我们有VGG-16和VGG-19的原因。


Figure 1: 通用对象检测算法的模板. 这适用于 YOLO、F-RCNN、SSD 等。


图1显示了一个基于DL的目标检测系统的高级架构。众所周知的体系结构如YOLO、F-RCNN和SSD都可以用这个模板。[W, H, 3]表示图像的输入宽度和高度,也表示输入图像有3通道。[w, h, N]表示转换函数的输出维数。需要注意的是,由于N是特征提取器最后一层CONV层中滤波器的数量,所以通常是一个很大的数量(对于VGG-16, N = 512)。w和h几乎总是比w, h小,因为在今天的大多数架构中,CONV块通常后面跟着池化层。

如上所述,对于我们的CV系统而言,选择一个对 CONV-FE是至关重要的。然而,问题在于N的值很大。不可能想象一个所有维度都任意大的三维张量!这就是我们今天要解决的问题。我们马上开始吧。

我们先选择一个CONV-FE,用VGG-16试试。

一旦模型被加载,我们需要做一些脚本来加载我们想要尝试我们的技巧的图像。我在这里不描述这些步骤,因为它们在你的特定用例中会有很大的不同。现在,我们只假设所有所需的图像都存储在工作目录中名为“images”的目录中。现在让我们使用这个技巧!

你将看到类似于下面的输出(这些也将保存在直接在工作目录中创建的“results”目录中)

Figure 2.1: Results1_Elephant


Figure 2.2: Results2_Car


Figure 2.3: Results3_Man


Figure 2.4 Results4_PCB


第二列显示了任意通道可以在由CONV-FE产生的输出特征映射中实现的像素级最大值。第三列显示了所有通道的平均值。我们说,如果我们的结果中的第二列和第三列显示出清晰的特征分离,那么CONV-FE适用于我们的数据集。

如我们所见,1和2的结果非常好,但3和4的结果表明,如果你有全屏PCB图像或穿着传统服装的印度男人的图像,当前的模型并不真的适合。但是,如果你的数据集包含野生动物或汽车/车辆的图片,那么这个模型似乎是一个不错的选择。

现在,让我们做一个小小的调整。根据图1,输出特性映射可以有任意数量(N)的输出通道。这是我们无法可视化和比较CONV-FEs的主要原因。我们使用常见的聚合技术,即求和和平均,来获得特征图质量的总体近似。我没有沿着通道使用像素级的中间值进行聚合。

感兴趣的读者可以参考源码,试一试,了解更多细节。


  • 源码 https://github.com/IshanBhattOfficial/Vizualize-CONV-FeatureExtractors

  • 英文原文:https://medium.com/analytics-vidhya/how-to-select-the-perfect-cnn-back-bone-for-object-detection-a-simple-test-b3f9e9519174


END



双一流大学研究生团队创建,专注于目标检测与深度学习,希望可以将分享变成一种习惯!

整理不易,点赞三连↓

浏览 75
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报