损失函数篇——针对YOLO-MIFIN模型
1. 总损失函数(公式9)
L all = λ conf L conf + λ cls L cls + λ loc L loc (9) L_{\text{all}} = \lambda_{\text{conf}} L_{\text{conf}} + \lambda_{\text{cls}} L_{\text{cls}} + \lambda_{\text{loc}} L_{\text{loc}} \tag{9} Lall=λconfLconf+λclsLcls+λlocLloc(9)
- 组成与作用:
- 置信度损失 L conf L_{\text{conf}} Lconf:衡量预测框中是否包含目标的置信度误差(常用二元交叉熵);
- 分类损失 L cls L_{\text{cls}} Lcls:计算目标类别的分类误差(常用交叉熵或Focal Loss);
- 定位损失 L loc L_{\text{loc}} Lloc:评估预测框与真实框的位置偏差(如EIoU、NWD等)。
- 超参数意义:
- λ conf , λ cls , λ loc \lambda_{\text{conf}}, \lambda_{\text{cls}}, \lambda_{\text{loc}} λconf,λcls,λloc:控制各部分损失的权重,需根据任务调整(例:工业检测中定位精度更重要,可增大 λ loc \lambda_{\text{loc}} λloc)。
2. 平衡高效损失(BE Loss,公式10)
L BE = IoU γ ( β L EIoU + ( 1 − β ) L NWD ) (10) L_{\text{BE}} = \text{IoU}^{\gamma} \left( \beta L_{\text{EIoU}} + (1-\beta) L_{\text{NWD}} \right) \tag{10} LBE=IoUγ(βLEIoU+(1−β)LNWD)(10)
- 设计目标:解决多尺度缺陷检测中大小目标的不平衡问题。
- 核心机制:
- IoU加权项 IoU γ \text{IoU}^{\gamma} IoUγ:抑制低质量预测框的梯度影响( γ \gamma γ 控制抑制强度);
- 动态平衡参数 β \beta β:调节EIoU(大目标优化)与NWD(小目标优化)的贡献比例。
- 适用场景:
- 光伏电池缺陷检测中,既有大尺寸缺陷(如黑芯),又有微小裂纹(如finger),需联合优化。
3. EIoU Loss(公式11)
L EIoU = 1 − IoU + ρ 2 ( b , b g t ) w c 2 + h c 2 + ρ 2 ( w , w g t ) w c 2 + ρ 2 ( h , h g t ) h c 2 (11) L_{\text{EIoU}} = 1 - \text{IoU} + \frac{\rho^2(b, b^{gt})}{w_c^2 + h_c^2} + \frac{\rho^2(w, w^{gt})}{w_c^2} + \frac{\rho^2(h, h^{gt})}{h_c^2} \tag{11} LEIoU=1−IoU+wc2+hc2ρ2(b,bgt)+wc2ρ2(w,wgt)+hc2ρ2(h,hgt)(11)
- 改进点:在IoU基础上增加三项惩罚:
- 中心点距离项: ρ ( b , b g t ) \rho(b, b^{gt}) ρ(b,bgt) 为预测框与真实框中心的欧氏距离,强制中心对齐;
- 宽度比惩罚项: ρ ( w , w g t ) = ∣ w − w g t ∣ \rho(w, w^{gt}) = |w - w^{gt}| ρ(w,wgt)=∣w−wgt∣,优化宽高比;
- 高度比惩罚项: ρ ( h , h g t ) = ∣ h − h g t ∣ \rho(h, h^{gt}) = |h - h^{gt}| ρ(h,hgt)=∣h−hgt∣。
- 符号定义:
- w c , h c w_c, h_c wc,hc:覆盖预测框与真实框的最小包围框的宽高;
- 优势:对大目标(如光伏电池中的黑芯)的边界框回归更精准。
4. NWD Loss(公式12)
L NWD = 1 − exp ( − W 2 2 ( N p , N g ) C ) (12) L_{\text{NWD}} = 1 - \exp\left( -\frac{\sqrt{W_2^2(N_p, N_g)}}{C} \right) \tag{12} LNWD=1−exp(−CW22(Np,Ng))(12)
- 核心思想:将边界框建模为高斯分布,通过**二阶Wasserstein距离(W2距离)**衡量预测分布 N p N_p Np 与真实分布 N g N_g Ng 的差异。
- 数学细节:
- 高斯分布参数化:
- 预测框 p = ( c x p , c y p , w p 2 , h p 2 ) p = (cx_p, cy_p, \frac{w_p}{2}, \frac{h_p}{2}) p=(cxp,cyp,2wp,2hp) → N p ∼ N ( μ p , Σ p ) N_p \sim \mathcal{N}(\mu_p, \Sigma_p) Np∼N(μp,Σp);
- 真实框 g = ( c x g , c y g , w g 2 , h g 2 ) g = (cx_g, cy_g, \frac{w_g}{2}, \frac{h_g}{2}) g=(cxg,cyg,2wg,2hg) → N g ∼ N ( μ g , Σ g ) N_g \sim \mathcal{N}(\mu_g, \Sigma_g) Ng∼N(μg,Σg)。
- W2距离简化计算:
W 2 2 ( N p , N g ) = ∥ μ p − μ g ∥ 2 2 + Tr ( Σ p + Σ g − 2 ( Σ p 1 / 2 Σ g Σ p 1 / 2 ) 1 / 2 ) W_2^2(N_p, N_g) = \| \mu_p - \mu_g \|_2^2 + \text{Tr}(\Sigma_p + \Sigma_g - 2(\Sigma_p^{1/2} \Sigma_g \Sigma_p^{1/2})^{1/2}) W22(Np,Ng)=∥μp−μg∥22+Tr(Σp+Σg−2(Σp1/2ΣgΣp1/2)1/2)
实际应用中常简化为中心点与宽高的欧氏距离(见公式12)。
- 高斯分布参数化:
- 优势:对小目标(如光伏裂纹)的尺寸变化更敏感,缓解IoU对小目标低敏感的缺陷。
5. 实际应用建议
- 超参数调优:
- γ ∈ [ 0.5 , 2 ] \gamma \in [0.5, 2] γ∈[0.5,2]:控制IoU加权强度,值越大对低IoU预测的抑制越强;
- β ∈ [ 0.3 , 0.7 ] \beta \in [0.3, 0.7] β∈[0.3,0.7]:根据数据集中大小目标比例调整(小目标多则降低 β \beta β)。
- 部署场景:
- 工业质检:侧重定位精度,可增大 λ loc \lambda_{\text{loc}} λloc 和 β \beta β;
- 小目标密集场景:增大NWD权重(降低 β \beta β),并提高 γ \gamma γ。
通过联合优化EIoU与NWD,BE Loss在光伏缺陷检测中实现了大目标的精准定位与小目标的稳定检出,为多尺度目标检测提供了通用损失设计范式。
简单解释:四个公式的作用
- 总损失函数(公式9)
- 作用:把检测任务拆成三部分计算误差——
- 置信度:判断“这里有没有缺陷”(比如用概率表示);
- 分类:确定缺陷类型(比如裂纹还是黑芯);
- 定位:调整预测框的位置和大小,让它更贴近真实缺陷。
- 超参数:三个λ(λ_conf、λ_cls、λ_loc)像音量旋钮,控制哪部分误差更重要(比如定位不准就调大λ_loc)。
- 作用:把检测任务拆成三部分计算误差——
- 平衡高效损失(BE Loss,公式10)
- 作用:解决“大缺陷容易检测,小缺陷难抓准”的问题。
- 设计:
- EIoU:专门优化大缺陷的位置和形状(比如黑芯要框得严丝合缝);
- NWD:针对小缺陷(比如细裂纹),用分布差异衡量误差,比传统方法更敏感;
- 平衡参数β:按需分配权重(比如数据集中小缺陷多,就多用NWD)。
- EIoU Loss(公式11)
- 作用:让预测框和真实框更贴合。
- 改进:
- 基础IoU:只看重叠面积(比如两个框重叠越多,误差越小);
- 额外惩罚:如果中心点偏移或宽高比例不对,额外扣分(比如框对了位置但形状太胖,也算错)。
- NWD Loss(公式12)
- 作用:解决小目标检测“框不准”的问题。
- 原理:把框看成模糊的高斯分布(比如用“范围概率”代替硬边界),比较预测和真实分布的差异。即使框没完全对准,只要覆盖区域接近,也算部分正确。
一句话总结:
- 公式9:总误差 = 判断有无缺陷的误差 + 分类误差 + 定位误差(三部分按重要性加权);
- 公式10:定位误差 = 大缺陷优化(EIoU) + 小缺陷优化(NWD),两者动态平衡;
- 公式11:大缺陷定位要严格(中心对齐、形状匹配);
- 公式12:小缺陷定位看整体区域匹配(模糊匹配更友好)。
相关文章:
损失函数篇——针对YOLO-MIFIN模型
1. 总损失函数(公式9) L all λ conf L conf λ cls L cls λ loc L loc (9) L_{\text{all}} \lambda_{\text{conf}} L_{\text{conf}} \lambda_{\text{cls}} L_{\text{cls}} \lambda_{\text{loc}} L_{\text{loc}} \tag{9} LallλconfLconfλ…...
【MySQL 数据库】增删查改操作CRUD(上)
🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. CRUD 简介 2. Create -- 新增 2.1 语法 2.2 练习 3. Retrieve -- 检索 3.1 Select -- 查询 3.1.1 全列查询 3.1.2 指定列查询 3.1.3 表达式查询 3.…...
pycharm 有智能提示,但是没法自动导包,也就是alt+enter无效果
找到file->settings->editor->inspections 把python勾选上,原来不能用是因为只勾选了一部分。...
web前端: 什么是web?
web前端指的是利用HTML、CSS、JavaScript等各种web技术,做出能在浏览器上运行且用户可见的界面,比如网站网页、APP软件界面、游戏前端界面等。web前端主要包括web全局架构、web视觉表现和web交互效果这三部分。 WEB发展史 Web(World Wide We…...
Java 开发中主流安全框架的详细对比,涵盖 认证、授权、加密、安全策略 等核心功能,帮助开发者根据需求选择合适的方案
以下是 Java 开发中主流安全框架的详细对比,涵盖 认证、授权、加密、安全策略 等核心功能,帮助开发者根据需求选择合适的方案: 1. 主流安全框架对比表 框架名称类型核心功能适用场景优点缺点官网/文档Spring Security企业级安全框架认证、授…...
Linux网络编程——TCP协议格式、可靠性分析
目录 一、前言 二、TCP协议格式 三、TCP的可靠性 TCP协议的确认应答机制 总结 四、TCP协议的缓冲区及流量控制 五、 TCP流量控制 六、TCP报文类型 标记位 一、前言 在上一篇文章中,我们重点介绍了UDP协议格式的一些内容。在本文中介绍的便是TCP协议格式的…...
【深度学习】Downstream Model:预训练模型的下游应用与微调技术
Downstream Model:预训练模型的下游应用与微调技术 文章目录 Downstream Model:预训练模型的下游应用与微调技术1 什么是Downstream Model(下游模型)2 预训练模型与下游任务的关系3 微调技术与迁移学习微调的必要性高效迁移学习参…...
C# ref out关键字 理解学习记录
ref 在传参是可以以指针的方式传递,而不是传参数的值 举例,函数返回void ,局部变量要传参后得到结果: ref传参前要实例化赋值,而函数体内不一定要赋值 out 传参前不一定要赋值,而函数体内一定要赋值 ,与r…...
网络建设与运维神州数码DCN VRF虚拟路由转发 路由表隔离
作用: 通过在一台路由器或者三层交换机上创建多张路由表实现数据的隔离,常用与MPLS VPN、防火墙.... 如果发送的包在同一VRF中,则查表,查找到匹配的路由条目后,将指示的端口转发给下一跳 如果不在同一VRF中则丢弃。…...
Python中的AdaBoost分类器:集成方法与模型构建
引言 在机器学习领域,集成方法(Ensemble Methods)是一种通过结合多个基学习器来提高模型性能的技术。AdaBoost(Adaptive Boosting)是集成方法中的一种经典算法,它通过迭代训练多个弱分类器,并将…...
11:00开始面试,11:08就出来了,问的问题有点变态。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...
大模型本地部署系列(1) Ollama的安装与配置
一. Ollama简介 Ollama 是一个 本地化的大模型运行工具,可以让你在自己的电脑(比如Mac、Windows、Linux)上直接下载和运行各种开源的大型语言模型(比如 LLaMA 3、Mistral、Gemma 等),而无需依赖互联网或云…...
宝塔面板数据库管理页面打不开,提示405 Not Allowed
宝塔面板数据库的管理按钮打开,提示405 Not Allowed 一般是php版本不匹配。 PHPMyAdmin 4.x PHP 5.2:安装 phpMyAdmin 4.1 PHP 5.3/5.4:安装 phpMyAdmin 4.4 PHP 5.5:安装 phpMyAdmin 4.4 PHP 5.6:安装 phpMyAdmin 4…...
文件上传漏洞原理学习
什么是文件上传漏洞 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。“文件上传” 本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全&#…...
数字的乘阶运算
求数字的乘阶: 例如:6的乘阶运算:6*5*4*3*2*1 例如:3的乘阶运算:3*2*1 class Program{static void Main(string[] args){Console.WriteLine("请输入数字:");int num_01 Convert.ToInt32 (Con…...
OpenCV——图像融合
OpenCV——图像融合 一、引言1.1 图像融合分类 二、C代码实现三、效果展示3.1 标准球3.2 铝制底座 一、引言 在许多计算机视觉应用中(例如机器人运动和医学成像),需要将来自多幅图像的相关信息集成到一幅图像中。这种图像融合将提供更高的可靠性、准确性和数据质量…...
基于 Spring Boot 瑞吉外卖系统开发(四)
基于 Spring Boot 瑞吉外卖系统开发(四) 新增分类 新增分类UI界面,两个按钮分别对应两个UI界面 两个页面所需的接口都一样,请求参数type值不一样,type1为菜品分类,type2为套餐分类。 请求方法都为POST。…...
C语言for循环嵌套if相关题目
一、题目引入 以下代码程序运行结果是多少? 二、思路解析 进入一个for循环 a<100 进入第一个if b1不大于20为假 进入第二个if b4 a这时a自增为2 当b4时,满足第二个if条件 1.b4,a2 当b7时,满足第二个if条件 2.bb37,a3 当b10时,满足第二个if条件 …...
springAOP终极总结
开头先大致说一下bean的生命周期 创建 Bean 实例 → 填充属性 → 初始化前: → 所有 postProcessBeforeInitialization(bean, name) 执行 init 方法(比如 PostConstruct) → 所有 postProcessAfterInitialization(bean, name) OKÿ…...
紫光展锐5G SoC T8300:影像升级,「定格」美好世界
影像能力已成为当今衡量智能手机性能的重要标尺之一。随着消费者对手机摄影需求日益提升,手机厂商纷纷在影像硬件和算法上展开激烈竞争,力求为用户带来更加出色的拍摄体验。 紫光展锐专为全球主流用户打造的畅享影音和游戏体验的5G SoC——T8300&#x…...
视频设备轨迹回放平台用EasyCVR打造变电站智慧消防远程集中视频监控方案
一、方案背景 近年来,电力系统中变电站火灾事故频发,消防势态不容乐观。强化变电站的消防安全管理,成为电网企业核心的任务之一,预防火灾、消除隐患不容延缓。目前,我国消防安全领域仍面临着诸多的挑战,基…...
JVM性能调优:参数配置×内存诊断×GC调优实战
🚀前言 “你的Java应用是否还在经历莫名卡顿?半夜被OOM报警惊醒?GC日志像天书看不懂? 本文将用20个真实案例50个关键参数,带你掌握: 参数调优:如何用-XX:UseG1GC让GC暂停从秒级降到毫秒级&…...
如何优化 App 启动速度以实现快速打开
一、启动阶段分析(先明确问题) Android App 启动分为三个阶段: 冷启动(最慢):进程不存在,需初始化系统和 App 资源 温启动:Activity 被销毁但进程存活 热启动(最快&am…...
逍遥模拟器ARM过检测技术全解析
逍遥模拟器ARM框架安装magisk和修改设备型号隐藏应用隐藏root过检测 逍遥模拟器ARMmagisk改设备型号隐藏应用隐藏root 引言 逍遥模拟器以其出色的性能和丰富的功能,深受广大用户喜爱,让用户能在电脑上轻松运行各类安卓应用和游戏。然而,为保…...
每日定投40刀BTC(13)20250404 - 20250408
定投 坚持 《劲松吟》 千山寒雪覆虬枝, 犹自擎空展翠姿。 岂畏风霜摧瘦骨? 心如磐石立崖时。 十年蓄得凌云志, 终向苍穹吐碧丝。 莫道深冬无劲色, 长将孤影刻天墀。...
量子计算模拟中的GPU加速:从量子门操作到Shor算法实现
一、量子模拟的算力困境与GPU破局 量子计算模拟面临指数级增长的资源需求:n个量子比特的态向量需要2^n个复数存储空间。当n>30时,单机内存已无法承载(1TB需求)。传统CPU模拟器(如Qiskit的Aer)在n28…...
牛客 小红杀怪
通过枚举所有使用y技能的次数来枚举出所有方案,选出最合适的 #include<iostream> #include<cmath> #include<algorithm> using namespace std;int a, b, x, y; int ans500;int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>&…...
部署大模型不再难:DeepSeek + 腾讯云 HAI 实战教程
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
企业资源计划(ERP)系统:数字化转型的核心引擎
在当今高度数字化的商业环境中,企业资源计划(Enterprise Resource Planning,ERP)系统已成为企业优化运营、提升竞争力的重要工具。本文将从定义与发展、核心功能模块、行业应用场景、优势与挑战以…...
基于二叉堆实现的 PriorityQueue
基于二叉堆实现的 PriorityQueue 是一种常见的数据结构,广泛用于任务调度、路径搜索、事件模拟等场景。下面我将用 Java 语言实现一个简单的基于最小堆的 PriorityQueue,即优先级最小的元素先出队。 ✅ 实现目标 使用数组实现二叉最小堆(即父…...
