【2024APMCM亚太杯A题】详细解题思路
A题 复杂场景下的水下图像增强研究
- 解题思路
- 问题一
- 图像统计分析技术
- 一、检测 偏色 的技术
- 二、检测 弱光 的技术
- 三、检测 模糊 的技术
- 聚类算法
- 问题二
- 问题三
- 问题四
- 完整论文与代码
解题思路
问题一
问题 1:请使用类似上文提到的图像统计分析技术,对附件 1 提供的水下图像进行多角度分析。将附件 1 提供的图像分为偏色、弱光、模糊三类,并在“Answer.xls”附件中三个位置填写文件名,并说明这样分类的原因。
图像统计分析技术
除了文中提到的直方图和边缘算子,以下是一些常见的图像统计分析技术,这些技术可用于对水下图像或其他图像进行深入分析:
- 灰度共生矩阵(GLCM)
用于分析图像的纹理特征,通过统计像素灰度值之间的空间关系提取特征,例如对比度、能量、熵和相关性。 - 频域分析
通过傅里叶变换将图像从空间域转换到频域,分析图像的频率分布,例如低频区域用于检测整体亮度分布,高频区域用于检测边缘和纹理。 - 颜色空间转换与分析
将图像从RGB空间转换到其他颜色空间(如HSV、Lab),分析亮度、饱和度和色调的分布,用于处理水下光照和色彩失真的问题。 - 梯度计算
利用梯度算子(如Sobel、Prewitt、Scharr)计算图像的梯度强度和方向,以检测边缘清晰度和形状特征。 - 熵计算
图像熵用于量化图像中信息的复杂度。熵越高,表示图像信息越丰富,随机性越高。 - 小波变换
通过小波分解图像,分析其不同尺度的细节和纹理特征,用于检测图像的细节信息和去噪处理。 - 边缘分割和轮廓分析
应用Canny、Laplacian等边缘检测算子,通过统计物体轮廓的长度、面积或形状,获取图像中目标的结构信息。 - 光流分析
用于动态图像或视频中,统计像素的运动信息(如方向和速度),评估水下物体移动的轨迹。 - 直方图均衡化与统计
分析图像亮度值分布,检查亮度均匀性并评估对比度调整的效果。 - 图像特征点统计
通过特征点检测算法(如SIFT、SURF、ORB)统计图像中的关键点密度和分布,用于评估图像质量或检测关键区域。 - 噪声分布分析
分析图像中的噪声类型(高斯噪声、椒盐噪声等)及其强度,确定去噪处理的必要性和方法。 - 形态学分析
使用数学形态学操作(如腐蚀、膨胀、开运算和闭运算)分析图像结构和目标物体的形态特征。 - 亮度对比分析
统计图像中明暗区域的分布比例,分析亮度对比度是否适合人眼感知。
一、检测 偏色 的技术
1.颜色直方图分析
统计不同通道(R、G、B或HSV空间中的H通道)的颜色分布,检查颜色是否集中在某一特定通道上。例如,偏蓝或偏绿色可能是水下图像常见的偏色情况。
2.颜色空间转换与分析
转换到Lab或YUV颜色空间,分析亮度(L通道)和色彩信息(a、b通道)的偏移程度。Lab颜色空间中的a、b分量可以直观反映色彩失衡。
3.白平衡检测
计算图像中灰度均衡性是否异常,例如通过灰度世界假设(Gray World Assumption)检测整体色彩是否失衡。
4.颜色饱和度检测
在HSV颜色空间中分析S通道分布。如果S值异常集中或过低,可能暗示偏色情况。
二、检测 弱光 的技术
1.亮度直方图分析
分析图像灰度分布或亮度分布(Y通道、L通道或HSV的V通道)。当亮度值集中在低范围时,可以判定图像为弱光。
2.对比度测量
使用亮度对比度公式(如对比度=亮度最大值与最小值的差值)检测整体对比度。弱光图像通常对比度较低。
3.熵计算
弱光图像的信息熵较低,因为暗区像素分布单一,图像信息不丰富。
4.伽马分布分析
检测亮度分布曲线是否偏向低值区域,低伽马值可能表明弱光问题。
5.动态范围分析
检查图像的动态范围(即亮度值从最低到最高的跨度)。弱光图像动态范围通常较窄。
三、检测 模糊 的技术
1.梯度分布统计
使用梯度算子(如Sobel、Prewitt)统计图像中梯度值的分布情况。模糊图像通常梯度强度较低,边缘模糊。
2.拉普拉斯方差分析
计算图像的拉普拉斯算子方差。如果方差值过低,说明图像的清晰度较差。
3.频域分析
对图像进行傅里叶变换,分析高频分量的分布。模糊图像高频成分衰减显著。
4.边缘检测结果统计
使用Canny或其他边缘检测算法统计边缘数量和清晰度。如果边缘数量明显减少或边缘较软,则可能是模糊图像。
5.对比度梯度分析(Contrast Gradient Analysis)
模糊图像的局部对比度梯度变化较小,清晰度低。
6.视觉感知清晰度模型(VSI)
通过视觉感知清晰度指数(Visual Saliency Index)分析图像模糊程度,模拟人眼感知。
聚类算法
将所有特征进行值计算出来,进行聚类算法。
问题二
基于问题 1 中提出的退化类型,利用问题中提供的水下成像模型,构建附有图像的水下场景图像退化模型。分析不同场景 [1] 拍摄的水下图像的退化原因(包括但不限于偏色、弱光等)。分析这些退化模型的相同点或不同点(例如,从颜色、光照、清晰度等角度进行分类)。
- 偏色
偏色主要由水对不同波长光的吸收和散射导致。由于水对红光吸收更强、对蓝光吸收较弱,深水区域通常会出现偏蓝或偏绿色现象。
原因分析:
水深:光吸收随着水深增加,红光消失,绿光和蓝光主导。
水体成分:悬浮颗粒和有机物会改变光的散射特性。
环境光变化:水下环境光随光源类型、光照强度和方向变化。 - 弱光
弱光由环境光随深度衰减和光散射引起,导致整体亮度降低。
原因分析:
光照强度不足:在深水或阴影区域,光线衰减较快。
后向散射分量:增加了散射光线,导致环境光的有效亮度降低。
光透射率变化:水体浑浊度降低了光传递到目标的能力。 - 模糊
模糊通常是由前向散射引起的。光线被悬浮颗粒散射后进入成像系统,形成模糊的视觉效果。
原因分析:
悬浮颗粒的浓度:颗粒密度增加会导致更多的前向散射。
物体与相机的距离:距离越远,散射效应越显著,导致图像模糊。
具体退化类型的影响可以通过调整参数进行模拟:
1.偏色:在 J(x)中增加颜色吸收模型(对 R/G/B 三通道的光强分别进行非线性衰减)。
2.弱光:降低环境光 B 的强度,同时调整透射率 t(x) 使整体亮度衰减。
弱光表现为整体亮度降低,常由环境光衰减、后向散射等引起。弱光退化可以通过调整环境光强度 B 和透射率 t(x) 来模拟。
3.模糊:加入基于前向散射的点扩散函数(PSF),模拟悬浮颗粒散射导致的模糊效果。
问题三
问题 3:基于问题 2 中建立的水下场景图像退化模型,提出针对单一场景(如偏色、模糊、弱光)量身定制的水下图像增强方法,并使用附件中提供的图像数据验证所提出的增强方法。将附件 2 中的测试图像的增强结果及其对应的评价指标纳入论文中,计算并呈现输出图像的 PSNR、UCIQE、UIQM 等评价指标,并填入“Answer.xls”中提供的附件 1 结果表格中。
增强方法:基于颜色校正与光照补偿的多阶段方法
偏色校正:
- 使用光吸收补偿模型恢复不同波长的光信息。
- 动态白平衡增强整体颜色均衡性。
亮度补偿: - CLAHE 和伽马校正提高暗区域的亮度和对比度。
视觉优化: - 高斯滤波器和 Retinex 进一步平滑颜色过渡,并增强细节。
问题四
现有的水下图像增强模型在不同场景下的建模适应性存在差异。请结合上述问题和附件中提供的图像,提出一种针对复杂场景的水下图像增强模型(例如非物理模型,可参考文献[2]-[5]),该模型应能够增强多种复杂场景下的水下图像退化问题。将附件2中测试图像的增强结果及其对应的评价指标纳入论文展示,计算并输出输出图像的PSNR、UCIQE、UIQM等评价指标,并填入“Answer.xls”中附件2结果表格中。
提出一种联合优化网络 (Joint Optimization Network, JONet),包括以下模块:
1.多通道特征提取模块(MCFE)
用于捕获不同通道的颜色、纹理和亮度特征。
2.全局与局部增强模块(GLE-LFE)
用于处理光照不均和局部模糊问题。
3.多任务损失函数(MTL)
联合优化图像的颜色校正、对比度增强和清晰度。
- 训练数据:使用公开水下图像数据集(如 UIEB 数据集)和生成的合成退化图像。
- 训练过程:
- 数据增强:包括模拟偏色、弱光和模糊退化。
- 优化器:使用 Adam 优化器,学习率设置为 10^{-4}。
- 推理过程:输入退化图像,直接输出增强图像 I′(x)。
完整论文与代码
完成解题思路,以及完整论文代码请看下方~
相关文章:

【2024APMCM亚太杯A题】详细解题思路
A题 复杂场景下的水下图像增强研究 解题思路问题一图像统计分析技术一、检测 偏色 的技术二、检测 弱光 的技术三、检测 模糊 的技术 聚类算法 问题二问题三问题四完整论文与代码 解题思路 问题一 问题 1:请使用类似上文提到的图像统计分析技术,对附件 …...

用 React18 构建Tic-Tac-Toe(井字棋)游戏
下面是一个完整的 Tic-Tac-Toe(井字棋)游戏的实现,用 React 构建。包括核心逻辑和组件分离,支持两人对战。 1. 初始化 React 项目: npx create-react-app tic-tac-toe cd tic-tac-toe2.文件结构 src/ ├── App.js…...
数据结构及算法--排序篇
在 C 语言中,可以通过嵌套循环和比较运算符来实现常见的排序算法,比如冒泡排序、选择排序或插入排序 目录 基础算法: 1.冒泡排序(Bubble Sort) 2.选择排序(Selection Sort) 3.插入排序&…...
泷羽sec学习打卡-网络七层杀伤链1
声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于蓝队基础的那些事儿-Base1 基本的企业网络架构是怎样的呢?高层管理IT管理影子IT中央技术…...

【QT】绘图
个人主页~ 绘图 一、绘图1、基础内容2、绘制形状(1)线段(2)矩形(3)圆形(4)文本(5)画笔(6)画刷 3、绘制图片(1)…...
vue3+elementui-plus el-dialog全局配置点击空白处不关闭弹窗
在与main.ts同级下的plugins文件夹(如果没有,新建一个)下建一个element.js文件(名字随便取) element.js文件内容如下: import ElementPlus from element-plus export default (app) > {console.log(app…...
Markdown语法说明
这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...

推荐一款专业电脑护眼工具:CareUEyes Pro
CareUEyes Pro是一款非常好用的专业电脑护眼工具,软件小巧,界面简单,它可以自动过滤电脑屏幕的蓝光,让屏幕显示更加的不伤眼,更加舒适,有效保护你的眼睛,可以自定义调节屏幕的色调,从…...

对subprocess启动的子进程使用VSCode python debugger
文章目录 1 情况概要(和文件结构)2 具体设置和启动步骤2.1 具体配置Step 1 针对attach debugger到子进程Step 2 针对子进程的暂停(可选) Step 3 判断哪个进程id是需要的子进程 2.2 启动步骤和过程 3 其他问题解决3.13.2 ptrace: Operation not permitted…...

Django启用国际化支持(2)—实现界面内切换语言:activate()
文章目录 ⭐注意⭐1. 配置项目全局设置:启用国际化2. 编写视图函数3. 配置路由4. 界面演示5、扩展自动识别并切换到当前语言设置语言并保存到Session设置语言并保存到 Cookie ⭐注意⭐ 以下操作依赖于 Django 项目的国际化支持。如果你不清楚如何启用国际化功能&am…...

基于单片机的多功能跑步机控制系统
本设计基于单片机的一种多功能跑步机控制系统。该系统以STM32单片机为主控制器,由七个电路模块组成,分别是:单片机模块、电机控制模块、心率检测模块、音乐播放模块、液晶显示模块、语音控制模块、电源模块。其中,单片机模块是整个…...
VSCode 如何选中包含某个字母的所有行
文章目录 写在前面一、需求描述二、解决方法参考链接 写在前面 自己的测试环境:VSCode 一、需求描述 由于需要处理文件,需求是删除文件中包含某个字母的所有行。 二、解决方法 在 Visual Studio Code (VSCode) 中,如果你想选中所有包含某…...

CSRF保护--laravel进阶篇
laravel对csrf非常重视,专门针对csrf作出了很多的保护。如果您是刚刚接触laravel的路由不久,那么您可能对于web.php路由文件的post请求很疑惑,因为get请求很顺利,而post请求则可能会遭遇失败。其中一个失败的原因是由于laravel的c…...

计算机网络-理论部分(二):应用层
网络应用体系结构 Client-Server客户-服务器体系结构:如Web,FTP,Telnet等Peer-Peer:点对点P2P结构,如BitTorrent 应用层协议定义了: 交换的报文类型,请求or响应报文类型的语法字段的含义如何…...

k8s1.31版本最新版本集群使用容器镜像仓库Harbor
虚拟机 rocky9.4 linux master node01 node02 已部署k8s集群版本 1.31 方法 一 使用容器部署harbor (1) wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce systemctl enable docker…...
QT中使用json格式存取矩阵数据
在 Qt 中,可以通过 QJsonDocument 和 QJsonArray 方便地存取 JSON 格式的矩阵数据。以下是存储和读取矩阵数据的完整实现示例。 1. 矩阵存储为 JSON 将矩阵(QVector<QVector<double>> 或其他二维数组)存储为 JSON 文件。 实现代码 #include <QJsonArray&g…...
k8s 集群安装
安装rockylinux https://www.jianshu.com/p/a5fe20318b8e https://www.cnblogs.com/haoee/p/18290506 配置VirtualBox双网卡 https://www.cnblogs.com/ShineLeBlog/p/17580311.html https://zhuanlan.zhihu.com/p/341328334 https://blog.csdn.net/qq_36544785/article/deta…...
Elasticsearch面试内容整理-核心概念与数据模型
在 Elasticsearch 中,理解核心概念与数据模型是非常重要的,因为它们定义了数据如何被组织、存储和搜索。以下是 Elasticsearch 的核心概念和数据模型的详细介绍。 核心概念 集群(Cluster) ● 集群是由一个或多个节点组成的,用于共同存储和搜索数据的集合。...

Spring Boot实现License生成和校验
Spring Boot实现License生成和校验 证书准备 # 1. 生成私钥库 # validity:私钥的有效期(天) # alias:私钥别称 # keystore:私钥库文件名称(生成在当前目录) # storepass:私钥库密码…...

es写入磁盘的过程以及相关优化
数据写入到内存buffer同时写入到数据到translog buffer,这是为了防止数据不会丢失每隔1s数据从buffer中refresh到FileSystemCache中,生成segment文件,这是因为写入磁盘的过程相对耗时,借助FileSystemCache,一旦生成segment文件,就能通过索引查询到了refresh完,memory bu…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

篇章二 论坛系统——系统设计
目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

aurora与pcie的数据高速传输
设备:zynq7100; 开发环境:window; vivado版本:2021.1; 引言 之前在前面两章已经介绍了aurora读写DDR,xdma读写ddr实验。这次我们做一个大工程,pc通过pcie传输给fpga,fpga再通过aur…...

解决MybatisPlus使用Druid1.2.11连接池查询PG数据库报Merge sql error的一种办法
目录 前言 一、问题重现 1、环境说明 2、重现步骤 3、错误信息 二、关于LATERAL 1、Lateral作用场景 2、在四至场景中使用 三、问题解决之道 1、源码追踪 2、关闭sql合并 3、改写处理SQL 四、总结 前言 在博客:【写在创作纪念日】基于SpringBoot和PostG…...

暴雨新专利解决服务器噪音与性能悖论
6月1日,我国首部数据中心绿色化评价方面国家标准《绿色数据中心评价》正式实施,为我国数据中心的绿色低碳建设提供了明确指引。《评价》首次将噪音控制纳入国家级绿色评价体系,要求从设计隔声结构到运维定期监测实现闭环管控,加速…...