当前位置: 首页 > news >正文

一种滑窗像素自差值的深度学习损失函数

公司项目,已申请专利。

深度学习作为新兴技术在图像领域蓬勃发展,因其自主学习图像数据特征避免了人工设计算法的繁琐,精准的检测性能、高效的检测效率以及对各种不同类型的图像任务都有比较好的泛化性能,使得深度学习技术在图像领域得到广泛应用,包括图像检测、图像分类、图像重构等。

在图像生成/重构任务中,如何评价生成/重构的图像和原图的差异即损失函数,是指导神经网络调试训练的关键因素,一般的图像生成/重构损失函数为均方误差(MSE)和KL距离。而均方误差通过计算两种图中每一个相同位置像素的差值,这种方法过于细颗粒度了,如果两张图像内容大体相同而图像位置有偏差,这时生成/重构图已经算是准确的,但均方误差可能偏大;KL距离则过于关注整张图形的像素分布而忽略了细节,且KL距离需要知道均值和方差,这往往是不可知的。这些都会造成神经网络继续向过拟合方向优化。

卷积操作的特性比如平移不变性、旋转不变性等,在图像处理中具有独特的优势。

本专利基于卷积操作的特性,设计了一种采用滑窗像素自差值的新的损失函数,通过计算滑动窗口里的像素的自差值,得到整张输出图像和真值图像各自的自差值总和,两者进行相减作为最终的损失值。通过计算各自图像的像素自差值,得到图像各像素之间的差异性,作为图像自身的信息表示,通过卷积的平移不变性和旋转不变性,消除了图像之间位移带来的误差,消除了均方误差损失函数过于细粒度,KL距离忽略细节的弊端,能够更加全面的把握图像的整体信息,更加准确地计算图像的损失,更好地指导神经网络的训练学习,并且通过设置不同的卷积参数,可以更好地控制图像损失的颗粒度以收敛速度。

1.均方误差损失函数和KL距离损失函数

均方误差(MSE)是最常用的回归损失函数。MSE是目标变量与预测值之间距离平方之和,本专利使用经过LVAE神经网络模型恢复重构后的图片和标原图对应像素进行MSE,得到误差值,再进行反向梯度计算,更新神经网络的权重值。

在给定的隐变量空间维度为 n 的条件下,已知均值 μ 和方差σ2 ,KL loss 定义为:

 

2.滑窗像素自差值损失函数Conv-Loss

2.1滑窗像素自差值损失函数计算方法

本专利利用滑窗操作的方式,使用窗口分别在整张输出图和真值图上进行滑动并对窗口里的像素值进行自差值计算,滑窗核为方形,大小由控制参数kernel_size调节,比如3×3、5×5等,每次移动的步长由控制参数stride控制,stride为1的话就是对所有像素都进行操作,第三个控制参数为空洞系数dilate。窗口从图像左上角像素开始,按照stride向右移动,到达右上角像素时,按照stride卷积窗口中心回到左侧第stride行第一个像素,基于按照stride向右移动,直到图像右下角的像素或是超过图像边缘位置。

以kernel_size为3×3,stride为1,dilate为0的窗口为例,从图像的左上角像素开始,像素位于卷积窗口中心,计算该像素和滑动窗口内的其他像素的差值平方并处以计算次数,比如,图像左上角的像素x00在卷积窗口里的周围像素为右边像素x01,下方像素x10和右下角像素x11,则计算:

 

如果卷积窗口的中心像素周边都有其他像素,则计算:

如果dilate参数不为零(比如等于1),则使用对应卷积窗口中的像素进行计算,如有超出图像边缘的点,则不列入计算。

 如果是三通道图像则分别计算RGB通道的损失值,之后相加并除以通道数。最后将所有loss进行加和,得到输出图和真值图各自的滑窗像素点自差值Lossout和Losslabel,将两者相减作为最终的输出损失。

2.2 多头滑窗像素自差值损失函数

通过设置不同的滑窗控制参数,可以计算得到不同的像素自差值即多头模式,不同控制参数的损失函数可以获取图像不同角度的损失信息,将其结果进行加权加和,可以更全面的反映输出图像和真值图像的差异性。以三头损失函数为例,α、β和γ是不同控制参数损失函数的加权权重参数,α+β+γ=1

1.本专利通过使用滑窗的方式计算图像像素的自差值,得到图像像素差异信息的表示,借鉴了卷积操作的不变性,消除了一般算法对于图像位置信息过于敏感的弊端以及对于颗粒度无法正确把握的缺点;

2.本专利滑窗可以通过调节滑窗的不同参数达到控制损失函数颗粒度以及收敛速度的可控性;

3.通过设置不同参数到达不同的损失函数,可以表征不同图像角度的差异信息,对其进行权重加和,可以更全面地反映输出图像和真值图的差异性。

 

相关文章:

  • ZBrush2025.1.3 中文版【ZBrush2025版下载】附安装教程
  • iperf网络性能测试
  • 定时器详解
  • el-select组件相关总结
  • 一、UI自动化测试01--认识和元素定位方法
  • 如何在学习通快速输入答案(网页版),其他学习平台通用,手机上快速粘贴
  • Redis为什么不直接使用C语言中的字符串?
  • 在应用运维过程中,业务数据修改的证据留存和数据留存
  • Spring Boot 参考文档导航手册
  • BT169-ASEMI无人机专用功率器件BT169
  • JVM运行机制全景图:从源码到执行的全过程
  • 记录前端vue3封装一个modal弹框
  • swagger快速入门
  • css word
  • 微信小程序 - 获取当前地址经纬度
  • 解释PyTorch中的广播机制
  • 使用命令关闭Redis服务端
  • 微信小程序核心技术栈
  • 【前后端分离项目】Vue+Springboot+MySQL
  • k8s中资源的介绍及标准资源namespaces实践
  • 中央纪委办公厅公开通报3起整治形式主义为基层减负典型问题
  • 我国对国家发展规划专门立法
  • 体育公益之约跨越山海,雪域高原果洛孕育足球梦
  • 航天科技集团质量技术部部长严泽想升任集团副总经理
  • 民生访谈|公共数据如何既开放又安全?政务领域如何适度运用人工智能?
  • 交通枢纽、产业升级,上海松江新城有这些发展密码