译者 | 朱先忠
审校 | 重楼
本篇是模型关于训练图像分割模型系列文章的第2部分。模型训练的实战目的是对用户反馈做出响应,并根据反馈(鼠标点击)调整其预测结果。用户应用
在第1部分中,图像我们描述了训练现成的分割反馈图像分割模型以响应用户反馈的一般策略。在第1部分结束时发现的模型问题是,手动生成训练模型所需的实战点击是乏味、耗时的用户应用,并且如果数据集非常大和/或模型需要经常重新训练,图像这种方式可能根本不可行。分割反馈因此,模型生成点击需要自动化——这就是实战本篇的主题。
首先,用户应用让我们再来回顾一下我们正在试图解决的问题:
图像来源:乳腺超声图像数据集
左侧矩形显示的是带有正确标注标签的图像;感兴趣区域(RoI:region of interest)由人类专家用黄色标记;这是我们期望从模型中得到的预测的理想形状。中间矩形内容是来自模型的实际预测。右侧的矩形显示了真阳性区域(标签和预测一致)、假阳性区域(模型预测RoI,但标签中没有这样的东西)和假阴性区域(模型什么都不预测,但有实际的RoI)。TP区域以白色显示,FP区域以绿色显示,FN区域以红色显示。
为了引导模型的预测,我们在TP和FN区域分别放置了正(绿色)点击,在FP区域放置了负(红色)点击,然后用图像中包含的点击训练新模型。
对于操作人员来说,放置点击是直观的。但是,如果你想将流程分解为单独的逻辑步骤和标准的话,则会变得非常复杂:
最后两个标准很难做到。其中的模糊性(“不太接近”)以及这两个标准相互矛盾的事实,使得很难以保证收敛到模仿操作员操作的解决方案的方式来生成点击。
值得欣喜的是,下面我们将展示另外一种方法,它将数学概念(Voronoi镶嵌)与物理学知识(能量和模拟退火)相结合,能够顺利产生我们所需的结果。
维基百科页面中很好地解释了Voronoi镶嵌这个概念;但是,在这里我想再补充解释一下这一概念。
在左边的矩形中,我们有一个正方形区域,其中有几个种子点。对于任何种子点,帧(图像片断)中必须有一个区域,其中所有像素都更靠近该种子,而不是所有其他种子。在右边的矩形中,我们展示了这些图像片断,颜色编码与种子相匹配。每个图像片断被称为Voronoi单元,找到图像片断的过程的结果被称为沃罗诺伊镶嵌。
本例中的种子是随机选择的。我们得到的镶嵌结果是不一致的。为了获得均匀的镶嵌,种子还必须是其对应图像片断的质心(或接近质心)——这被称为质心Voronoi镶嵌。在众多可能的例子中,下面是一个非常琐碎的例子:
要找到将导致区域的质心Voronoi镶嵌或近似的点击坐标(种子),可以使用类似Lloyd算法的方法,而且速度非常快。这里有一个Lloyd算法的模拟器,它可以在你的浏览器中实时工作。但存在两个问题:
因此,我们需要一种能够处理任意形状的东西,即使形状是凹形的,也能将点击保持在区域内,并且在琐碎的矩形情况下表现得像Lloyd算法。质心Voronoi平铺的推广,适用于任意形状,即使是凹形。这是下一节的主题。
考虑这种下图中的平铺:
单击分布足够均匀,并且单击坐标离质心不远(所有形状都是凸的)。就我们的目的而言,这是一个不错的分布。我们能找到一个与点击坐标相对应的目标函数吗?我们可以反复尝试最大化或最小化该函数,从而得出这样的分布吗?
让我们看看点击周围的空间:
像素能量热图
想象一下,图像中的每个像素都被分配了一个“能量”。只有一次单击——最近的单击,会贡献像素的能量。所有其他点击都没有任何作用。任何像素的能量与其最近点击的距离成反比。因此,要找到任何像素的能量,我们需要:
上面显示的图像只是像素能量的热图,给出了点击分布。Voronoi瓷砖(Voronoi Tiles)的边缘已经被相邻点击之间最暗的区域所暗示。
如果我们计算所有像素的总能量,然后四处移动点击,寻找总能量最高的点击位置,这会导致区域的均匀平铺吗?事实上,这正是上面显示的点击分布获得的方式:
完整的代码显示在链接地址https://github.com/FlorinAndrei/segmentation_click_train/blob/main/uniform_clicks.py处。该算法很稳健,可以很好地处理凹形形状——这里是一个在镰刀形片段中以视觉上均匀的方式放置点击的例子:
将点击放置在凹形区域
分割片段是较浅的蓝色阴影,镰刀的形状,与深色背景形成对比。其中,点击对应于最亮的地方。
点击不会太靠近片段的边缘,因为这会减少总能量(片段边缘以外的像素没有能量)。它们不会靠得太近,因为这不会“激发”远离紧密点击组的像素。该算法是自我调节的。
注意:这个问题与手机信号塔覆盖问题有相似之处,即你试图在地图上放置N个手机信号塔,以便在大多数地区信号尽可能强。
概括一下,我们正在尝试训练图像分割模型,使其对用户反馈(鼠标点击)做出响应。整个过程是:
以下是根据实际基线模型预测为图像片段生成的均匀点击的一些示例。我们从数据集中挑选了3张图像,用基线模型进行了预测,并查看了每张图像的TP、FP和FN片段。每个片段都是比背景浅的蓝色阴影,点击对应于每个片段中最亮的点。
图像来源:乳腺超声图像数据集
点击最终或多或少地被放置在操作员将要放置的位置:彼此不要太近,也不要太靠近边缘,有利于每个片段中的大块或宽区域。点击分布在视觉上看起来是均匀的。
至此,我们已经成功训练了现成的图像分割模型来响应用户反馈,而不会以任何方式改变它们的架构,也不会在ImageNet上从头开始重新训练它们。
需要说明的是,经过点击训练的模型并不一定比基线模型表现得更好。如图所示,通过点击进行训练只能使模型对用户反馈做出响应。当然,在用于创建5个训练组的数据集上,点击训练的模型将大大优于基线模型。这是因为创建点击本质上是在训练和测试之间泄露数据。在以前100%看不见的数据上,点击训练模型和基线模型的性能相同。
以下是点击训练模型对用户反馈的响应方式的更多应用情形。
在上述两种情况下,您都可以从模型中看到两种输出:纯分割和热图。热图只是RoI的可能性图。
本文中的这个项目是我在数据科学硕士研究的最后一个学期的毕业项目的延伸。
毕业项目和这项工作都是在威斯康星大学拉克罗斯分校的乳腺超声图像计算机辅助诊断(CADBUSI)项目中完成的,由Jeff Baggett博士监督。参考地址:https://datascienceuwl.github.io/CADBUSI/。
包含本文代码的GitHub存储库:https://github.com/FlorinAndrei/segmentation_click_train。
本文中使用的所有超声图像都是乳腺超声图像数据集的一部分,可在CC BY 4.0许可证下获得。引文链接有:
Al-Dhabyani, W., Gomaa, M., Khaled, H., & Fahmy, A. (2019)。《乳腺超声图像数据集》(Dataset of Breast Ultrasound Images)。ResearchGate。检索日期:2023年5月1日,论文:https://www.sciencedirect.com/science/article/pii/S2352340919312181。
最后,本文中不属于乳腺超声图像数据集的图像由作者创建。
朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。
原文标题:Train Image Segmentation Models to Accept User Feedback via Voronoi Tiling, Part 2,作者:Florin Andrei
(责任编辑:热点)
爱司凯(300521.SZ)2020年度净亏损1214.64万元 不以公积金转增股本
大家人寿减持同仁堂6857.36万股 持股比例从14.99%减少至9.99%
国家外汇局:二季度我国经常账户顺差8470亿元 直接投资顺差169亿元
钢铁行业6月份利润大幅改善 行业数据回暖 存在阶段性投资机会
LPR转换大限将至!到底是转还是不转,关键还是选择“适合自己的”!
奥海科技(002993.SZ)发布公告:对子公司增资并完成工商变更登记
沪指冲高回落再破3200点 “黑天鹅”事件依旧不改A股中长期向好趋势