论文阅读 Explainable Image Similarity Integrating Siamese Networks and Grad-CAM

给出论文(Explainable Image Similarity Integrating Siamese Networks and Grad-CAM)的内容解读、代码运行说明

论文链接:J. Imaging | Free Full-Text | Explainable Image Similarity: Integrating Siamese Networks and Grad-CAM (mdpi.com)

代码文件:ioannislivieris/Grad_CAM_Siamese (github.com)

论文理解

Grad CAM Siamese 算法集成了孪生网络和 Grad-CAM,以提供图像相似性任务的可解释性。前者用于计算两个输入图像之间的相似性,而后者用于可视化和解释由基于卷积的孪生网络做出的决策。

该算法的一个优点是,它能够提供图像相似度评分以及支持决策的视觉直观解释(事实解释)和不支持决策的解释(反事实解释)。

非事实性解释:当删除这些特征,决策会更加准确,或理解为:a description of “what would have not happened when a certain decision was taken”。详见参考文献19:Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

数据集

  1. 花卉数据集(Flowers dataset):
    • 包含4242张花卉图片,分辨率为320×240。
    • 图片被分类为五个类别:“chamomile”(甘菊)、“tulip”(郁金香)、“rose”(玫瑰)、“sunflower”(向日葵)和“dandelion”(蒲公英)。
  2. 皮肤癌数据集(Skin cancer dataset):
    • 包含2800张图片,分辨率为224×224。
    • 图片涉及1400个恶性(Malignant)和1400个良性(Benign)的肿瘤病例。
  3. AirBnB数据集(AirBnB dataset):
    • 包含864张室内和室外房屋图片,分辨率为600×400。
    • 图片被分类为12个类别:“backyard”(后院)、“basement”(地下室)、“bathroom”(浴室)、“bedroom”(卧室)、“decor”(装饰)、“dining-room”(餐厅)、“entrance”(入口)、“house-exterior”(房屋外观)、“kitchen”(厨房)、“living-room”(客厅)、“outdoor”(户外)、“staircase”(楼梯)和“TV room”(电视房)。

模型训练过程

  1. 创建训练对。对于训练数据集中的每张图片,研究者会随机选择另外两张图片。其中一张图片与原始图片属于同一个类别(同类图片),另一张图片属于不同的类别(异类图片)。也因此,Training instances、Validation instances、Testing instances输出均为偶数,而且三者和为输入图片数的两倍。
  2. 分配标签。如果两张图片属于同一个类别,这对图片会被标记为标签零(0)。这意味着它们是相似的或相同的。如果两张图片属于不同的类别,这对图片会被标记为标签一(1)。这意味着它们是不同的。
  3. 定义相似度。孪生网络的输出是一个距离值,它表示两张图片之间的相似程度。距离值越小,表示图片越相似;距离值越大,表示图片越不相似。相似度是通过 1 减去距离值 d 来定义的,即相似度 = 1 − d。这样,如果d接近0(即图片非常相似),相似度就会接近1;如果d较大(即图片不相似),相似度就会接近0。当然可以预设阈值为 0.5 来准确判断相似与否,这也是论文中所采用的方式。
  4. 通过随机选择正样本(同一类别的图片)和负样本(不同类别的图片),孪生网络可以通过对比学习来优化其参数,使得正样本间的距离减小,负样本间的距离增大。
  5. 对于正样本对(同一类别的图片),我们希望这个得分接近1(或较高的值),表示它们是相似的;对于负样本对(不同类别的图片),我们希望得分接近0(或较低的值),表示它们是不相似的。

关于计算相似度值的细节:

02.Inference.pypred = model(image1, image2),调用 utils/Siamese.pyforward(),进一步利用欧氏距离 F.pairwise_distance 计算距离值,并将这个距离视为不相似度,后面 1-model() 就是相似度。

损失函数计算公式
L = 1 2 [ ( 1 − y ) ( D w ) 2 + y { max ⁡ ( 0 , m − D w ) } 2 ] , \mathcal{L}=\frac{1}{2}\left[(1-y)\left(D_w\right)^2+y\left\{\max \left(0, m-D_w\right)\right\}^2\right], L=21[(1

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值