文章目录
1. 计算LPIPS
1.0.说明
LPIPS:学习感知图像块相似度(Learned Perceptual Image Patch Similarity, LPIPS)也称为“感知损失”(perceptual loss),用于度量两张图像之间的差别。来源于CVPR2018《The Unreasonable Effectiveness of Deep Features as a Perceptual Metric》
1.1. 代码
要计算两张图片之间的LPIPS(Learned Perceptual Image Patch Similarity)距离,可以使用已经训练好的LPIPS模型来进行计算。以下是一个示例代码,演示了如何使用PyTorch和LPIPS模型计算两张图片的LPIPS距离:
import torch
import lpips
from PIL import Image
# 假设您已经有了要计算LPIPS距离的两张图片 image1 和 image2
# 加载图像文件
image1 = Image.open("image1.jpg")
image2 = Image.open("image2.jpg")
# 加载预训练的LPIPS模型
lpips_model = lpips.LPIPS(net="alex")
# 将图像转换为PyTorch的Tensor格式
image1_tensor = torch.tensor(np.array(image1)).permute(2, 0, 1).unsqueeze(0).float() / 255.0
image2_tensor = torch.tensor(np.array(image2)).permute(2, 0, 1).unsqueeze(0).float() / 255.0
# 使用LPIPS模型计算距离
distance = lpips_model(image1_tensor, image2_tensor)
print("LPIPS distance:", distance.item())
在上述代码中,您需要将要计算LPIPS距离的两张图片存储在变量image1和image2中(可以使用PIL库的Image.open()函数加载图像文件)。
然后,我们加载了预训练的LPIPS模型,这里使用了alex网络。您可以根据需要选择其他可用的网络,如vgg
或squeeze
。
接下来,我们将图像转换为PyTorch的Tensor格式,并进行归一化处理,将像素值范围从[0, 255]归一化到[0, 1]。注意,这里的图像顺序是通道在前,即形状为[C, H, W]。
最后,我们使用LPIPS模型对两张图像的Tensor进行计算,得到LPIPS距离。距离的值通过distance.item()获取。
请确保安装了PyTorch和lpips库。您可以使用以下命令安装lpips库:
pip install lpips
2. 计算SSIM
2.0 说明
结构相似性指数(SSIM,Structural Similarity Index)
2.1 代码
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)