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

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

公司项目,已申请专利。

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

在图像生成/重构任务中,如何评价生成/重构的图像和原图的差异即损失函数,是指导神经网络调试训练的关键因素,一般的图像生成/重构损失函数为均方误差(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.通过设置不同参数到达不同的损失函数,可以表征不同图像角度的差异信息,对其进行权重加和,可以更全面地反映输出图像和真值图的差异性。

 

http://www.xdnf.cn/news/2194.html

相关文章:

  • MySQL主从数据库配置教程
  • 谈谈关于【枚举】类型变量的好处
  • ARM架构的微控制器总线矩阵优先级与配置
  • SpringMVC
  • OpenFeign 日志配置
  • 在应用运维过程中,业务数据修改的证据留存和数据留存
  • 62.不同路径
  • Android移动应用开发:创建计算器
  • 模型 隐含前提
  • 【后端】主从单体数据库故障自动切换,容灾与高可用
  • Jest 快照测试
  • 前端面试 HTML篇
  • vue中 vue.config.js反向代理
  • 元数据驱动的 AI 开发:从数据目录到模型训练自动化
  • 蓝桥杯 8. 移动距离
  • 【QuPath】人工标注WSI
  • 产销协同是什么?产销协同流程有哪些?
  • 2025.04.26-淘天春招笔试题-第二题
  • AutoSAR从概念到实践系列之MCAL篇(二)——Mcu模块配置及代码详解(下)
  • Pygame事件处理详解:键盘、鼠标与自定义事件
  • QT对话框及其属性
  • Tauri文件系统操作:桌面应用的核心能力(入门系列四)
  • 深度解析责任链Filter模式:构建灵活可扩展的请求处理管道
  • Spring Boot 支持政策
  • 【数据结构与算法】从完全二叉树到堆再到优先队列
  • 【每天一个知识点】点乘(Dot Product)
  • 【C语言练习】004. 使用各种运算符进行计算
  • 【高频考点精讲】前端职业发展:如何规划前端工程师的成长路径?
  • 【白雪讲堂】构建与优化企业知识图谱的实战指南
  • 关于GoWeb(1)