LPIPS图像相似性度量标准:The Unreasonable Effectiveness of Deep Features as a Perceptual Metric
目录
一、感知相似性
二、传统度量和深度学习法
三、原理
四、测试和代码
五、测试结果
六、参考文献
一、感知相似性
人类可以快速评估两幅图像之间的感知相似性,但是底层过程非常复杂。
纹理图像包含了纹理颜色、纹理基元等丰富的图像信息。在计算机视觉研究领域中,人们使用感知
相似性来度量不同纹理之间的相似程度,研究人类对纹理图像的视觉感知。纹理相似性度量广泛应用于纹理识别和材质识别,是对象识别和场景理解的关键技术之一。研究人员通过计算特征之间的距离度量估计纹理感知相似性。
近年来,对图像网络分类进行训练的VGG网络的特性作为图像合成的训练损失具有显著的作用。
二、传统度量和深度学习法
将左右的两个图像块和中间的图像块进行比较:
如图表示,每一组有三张图片,由传统的评价标准如L2、SSIM、PSNR等评价结果和人体认为的大不相同,这是传统方法的弊端。如果图片平滑,那么传统的评价方式则大概率会失效。而目前GAN尤其是VAE等生成模型生成结果都过于平滑。
而最后三行的评价为深度学习的方式,可以看到,通过神经网络(非监督、自监督、监督模型)提取特征的方式,并对特征差异进行计算能够有效进行评价,而且能够和人体评价相似。
三、原理
如图所示,将两个输入送入神经网络F(可以为VGG、Alexnet、Squeezenet)中进行特征提取,对每个层的输出进行激活后归一化处理,记为,然后经过w层权重点乘后计算L2距离(有小伙伴指出,在源码中,并未进行开方,可以查看代码122-135行,多谢指点,谢谢!https://github.com/richzhang/PerceptualSimilarity/blob/31bc1271ae6f13b7e281b9959ac24a5e8f2ed522/lpips/lpips.py#L122
https://github.com/richzhang/PerceptualSimilarity/blob/31bc1271ae6f13b7e281b9959ac24a5e8f2ed522/lpips/lpips.py#L122),最后取平均获得距离。论文将该度量记为LPIPS。
公式如下:(因此实际中,公式不开方)
当w值为1时,即公式计算余弦距离。
论文中将LPIPS分为三类:
四、测试和代码
1、python环境下安装 pip install lpips
2、准备好图片,注意:图片读取后应归一化,且注意数据类型,见代码。我的图片如下所示,为1536*512大小。你可以直接载入你自己的图片。我们比较的是模型结果和目标结果。
3、代码:(注意可以选择预训练网络模型为alex或者vgg,这里我选择的是alex)
#coding=gbk
import cv2
import lpips
import torchvision.transforms as transforms
import torch
#载入指标模型
loss_fn_alex = lpips.LPIPS(net='alex') # best forward scores
loss_fn_vgg = lpips.LPIPS(net='vgg') # closer to "traditional" perceptual loss, when used for optimization#读取图片
test1 = cv2.imread('test_picture_117.png')
test2 = cv2.imread('test_picture_124.png')
#分割目标图片
test1_org = test1[:,:512,:]/255 #原始图片
test1_res = test1[:,512:1024,:]/255 #模型输出结果
test1_label = test1[:,1024:1536,:]/255 #label图片test2_org = test2[:,:512,:]/255
test2_res = test2[:,512:1024,:]/255
test2_label = test2[:,1024:1536,:]/255#转为tensor
transf = transforms.ToTensor()test1_org = transf(test1_org)
test1_res = transf(test1_res)
test1_label = transf(test1_label)
test2_org = transf(test2_org)
test2_res = transf(test2_res)
test2_label = transf(test2_label)#转换数据类型
test1_orgg = test1_org.to(torch.float32)
test1_ress = test1_res.to(torch.float32)
test1_labell = test1_label.to(torch.float32)
test2_orgg = test2_org.to(torch.float32)
test2_ress = test2_res.to(torch.float32)
test2_labell =test2_label.to(torch.float32)#测试
d11 = loss_fn_alex(test1_ress, test1_labell)
d12 = loss_fn_alex(test1_ress, test2_labell)
print('d11:',d11)
print('d12:',d12)d22 = loss_fn_alex(test2_ress, test2_labell)
d21 = loss_fn_alex(test2_ress, test1_labell)
print('d22:',d22)
print('d121:',d21)
五、测试结果
值越小越好。d11、d22表示生成结果和对应的label之间的LPIPS距离,d12、d21为生成结果和非对应label结果。可见对应的情况下值应当低且实际结果如下所示,事实确实如此。
六、参考文献
原创文章:LPIPS图像相似性度量标准:The Unreasonable Effectiveness of Deep Features as a Perceptual Metric_Alocus_的博客-CSDN博客_lpips度量
LPIPS图像相似性度量标准:The Unreasonable Effectiveness of Deep Features as a Perceptual Metric相关推荐
- LPIPS 图像相似性度量标准(感知损失)
可学习感知图像块相似度(Learned Perceptual Image Patch Similarity, LPIPS) 项目主页:https://richzhang.github.io/Perc ...
- 【论文笔记】ECCV_2016_The Unreasonable Effectiveness of Noisy Data for Fine-Grained Recognition
文章目录 基础信息 Abstract 1 Introduction 2 Related Work 3 Noisy Fine-Grained Data 3.1 Categories 3.2 Images ...
- The Unreasonable Effectiveness of Recurrent Neural Networks
Andrej Karpathy blog 转自:http://karpathy.github.io/2015/05/21/rnn-effectiveness/ Karpathy 关于RNN的博客 Th ...
- 「Computer Vision」Note on Revisiting Unreasonable Effectiveness of Data
QQ Group: 428014259 Sina Weibo:小锋子Shawn Tencent E-mail:403568338@qq.com http://blog.csdn.net/dgyuans ...
- CV之IE之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成不同尺寸和质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)—五个架构设计思维导图
CV之IE之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成不同尺寸和质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)-五个架构设计思维导图 ...
- 图像检索:图像相似性度量
本文摘选自<基于半监督和主动学习相结合的图像的检索研究>.讲述了图像相似度度量的方法. 图像检索的性能不仅依赖于所抽取的图像特征,在颜色.纹理和形状等图像特征被提取出并建立起索引后,图像检 ...
- 中职计算机图形图像课程标准,计算机图形与图形图像处理技术的相互结合
钟志锋 [摘 要] 随着社会的不断发展和进步,中职教育也越发需要进步和更新才可以适应新时期对中职学生的要求.而计算机图形与图形图像处理技术也是顺应时代而生的新兴技术.计算机图形与图形图像处理技术已经成 ...
- php图片的编码是什么,jpeg是什么图像压缩编码标准
jpeg是面向连续色调静止图像的压缩编码标准:其主要是采用预测编码.离散余弦变换以及熵编码的联合编码方式,以去除冗余的图像和彩色数据,属于有损压缩格式,它能够将图像压缩在很小的储存空间,一定程度上会造 ...
- 中职计算机图形图像课程标准,计算机图形图像处理课程标准.doc
<计算机图形图像处理>课程标准 1.前言 1.1 课程性质 本课程是中等职业学校电子商务专业一门专业基础课程.培养学生从事电子商务网页制作及应具备的图形图像设计与制作能力,为学生日后工作奠 ...
最新文章
- corosync+pacemaker+drbd构建mysql高可用平台的简单案例
- Thymeleaf中使用if和unless实现状态的判断显示达到if-else逻辑判断的效果
- 异常php有必要吗,关于php异常的问题,到底有什么好处?
- ux设计中的各种地图_移动应用程序设计中的常见UX错误
- (网页)AngularJS 参考手册
- 1049. 数列的片段和(20)
- SAP License:IMG子菜单
- Spring MVC异常处理详解
- FFmpeg学习(1)——视频文件格式转换
- 用正则表达式抓取网络连接的简单实现
- linux无法侦听10000以上的端口,linux – git-daemon:“无法在主机(null)端口9418上分配任何侦听套接字”...
- 如何使用 jdk帮助文档
- 2019各个省会城市全新DNS大全一
- ios10下的通知更新
- vscode中打开浏览器的快捷键_VSCode设置默认打开的浏览器的方法
- 母牛生小牛问题-字节跳动笔试题
- java代码实现打气球游戏_关于javascript和css3开发打气球小游戏的完整代码
- 干货!5招搞定问卷调查差异化分析
- 互斥事件的概念和公式_互斥事件
- java 日期 第几周-java 获取给定日期属于当年第几周
热门文章
- JsonPath用法详解
- 下载!微软出品的最新 Kubernetes 学习指南 3.0
- 中国式造假之一-陕西华南虎事件今公布结果
- 把IE浏览器的背景改成保护视力的颜色
- H5Gateway设计(二)
- mysql怎么查询当前登录的用户
- 烤仔建工 | 友谊长存,2022新年派对中韩社区艺术交流展圆满落幕
- Python 8行代码模拟鼠标自动删除微信收藏
- 小于三位的正整数 正则式_蓝调解码|样板文章,投稿必读:计算思维培养的“递进式”活动设计研究...
- 《乔布斯传》经典摘录(四)