| Developers' Corner

MVTec Heatmap 热度图

假设您想要实现一个基于 HALCON 深度学习的分类应用,并要评估一个经过训练的模型。那么,您需要关于这个模型的反馈,即关于其性能、偏差和其他可能的缺陷,以便调整硬件采集设置、训练参数、数据集和图像预处理。

为此,HDevelop 的程序为您提供了一系列性能指标:当前神经网络模型从评估数据集、Top-k 误差、精度和召回率以及(可交互的!)混淆矩阵获得的各种数字。

除了这些“干巴巴”的数字之外,HDevelop 的热度图程序还可以帮助您理解模型:对于一个给定的类别,样本热度图能够以极高的空间分辨率展示各个样本区域对模型的激活程度(热度)。您可以立即看出所学的特征是否合理。

只有特征热度图可以帮助您深入了解模型。

在所有最新的 HALCON 版本中,基于梯度加权类别激活映射 (Grad-CAM) 算法 [1] 的热度图替代了基于置信度的热度图。它几乎是瞬时的,更加稳健,而且不需要任何参数化。

如果是出于评估目的,只需看一下性能指标,并且每个(!)类别查看一些样本的热度图就足够了。作为一种评估方法,它非常简单快捷。如果指标和热度图都没问题,评估就完成了。如果不是,热度图会以视觉形式引导您回顾训练中的瑕疵。下面试举一例:

假设您已经训练了一个水果分类,其中的指标非常好。但是只要看一眼苹果图像的热度图,就会发现活动位于实际的苹果实例之外。它可能会在一个局部背景图案中显示活动,这个图案在苹果图像集中不断出现,但永远不会在代表梨的图像集中出现。

在此,热度图精确显示出训练偏差的证据。可以由此出发,重新考虑环境条件、照明、训练参数等。

需要注意的是,Grad-CAM 热度图是由经过训练的神经网络的不同层计算出来的,因此强调局部特征以及语义特征。正因如此,热度图不能作为分割的依据。

 [1] 该算法基于在 HALCON 算子参考资料中引用的一篇文章。

例如,左边面的热度图调用自两个药片样本的类别污染: