232021周报:输入通道改变

WaterNet论文概要

论文原地址:An Underwater Image Enhancement Benchmark Dataset and Beyond

UIEB数据集

构建了一个水下图像增强基准(UIEB),其中包括950张真实世界的水下图像,其中890张具有相应的参考图像。

水下图像采集有三个目标:
1.应涵盖水下场景的多样性、质量退化的不同特征以及广泛的图像内容;
2.水下图像的数量应该很大;
3.应提供相应的高质量参考图像,以便成对的图像能够进行公平的图像质量评估和端到端学习。

论文提出的原本是图像搜集方法为:这些水下图像是从谷歌,YouTube,相关论文以及我们自己捕获的视频中收集的。
论文中的参考图像为12种图像增强算法产生的结果。然后令多名志愿者进行评判图像增强质量的好坏。这950张图像中有60张图像是没有令评判标准满意的,被称为具有挑战性的图像。志愿者在AB两种方法中挑选满意的增强图像,重复多次方法

在UIEB数据集重新测试数据增强方法

MSE,PSNR和SSIM三个最常见的图像评估指标上,UIEB数据集明显更青睐于F、D两种方法,同样的是,志愿者们的评价标准与之类似。这说明选取数据集的方法与结果得到了很好的验证。
采用两个非参考指标(即UCIQE和UIQM)对UIEB数据集进行评估,实验结果很有意思,接下来我引用原文内容:

直方图和UDCP 分别获得了UCIQE和UIQM的最高分。潜水+和基于融合的不再是表现最好的。有趣的是,在UCIQE和UIQM指标方面的良好表现与主观成对比较不一致,尽管UCIQE和UIQM都声称他们考虑了人类的视觉感知。
因此,人类的视觉感知可能是对水下图像进行色彩校正的一种完全不准确的方式。

WaterNet网络

主要参考了白平衡、伽马校正与均衡化的图像处理方法(输入原始图片与三种图像增强后的图像)。
WaterNet

MIRNet

源代码与预训练模型
请添加图片描述

钢材目标缺陷检测

主流YOLO算法对比

经过对比,选择yolov5n作为检测的base model。评判的标准依据mAP0.5与mAP、模型大小、计算量与FPS,其他参数作为次要参考标准。

数据输入改进

灰度图像输入

在默认参数下,默认输入图像为(batch_size,3,640,640)的图像,要求输出(batch_size,1,640,640),首先对通道数进行修改。

1 Imread函数修改
2 4-image mosaic函数修改(数据裁剪)
3 opencv通过HWC加载图片,而Pytorch需要CHW,故需要将图片通过 'transpose((2, 0, 1)) ’ 转为CHW。难点在于3通道转为单通道时并不是(1,x,x)而是(x,x)

修改后在参数量与GFLOPs上有了改进

<think>好的,我现在需要帮助用户解决如何下载RESIDE数据集并将其标注转换为YOLO格式的问题。首先,我需要回忆一下RESIDE数据集的相关信息。根据用户提供的引用[2],RESIDE是一个水下图像增强的基准数据集,可能包含不同类型的子集,比如水下图像、合成雾天图像等。因此,用户可能需要先确定具体需要哪个子集的数据。 接下来是下载步骤。用户可能对如何找到和下载RESIDE数据集不太清楚。我需要引导用户到官方网站或者论文中提供的链接进行下载。例如,RESIDE数据集通常会在其项目页面或相关论文中提供下载链接,可能需要填写表单或者通过邮件获取权限。 然后是数据集的目录结构。了解RESIDE的数据组织方式对后续转换很重要。通常,数据集的标注可能采用COCO或VOC格式,或者是自定义的格式。用户需要检查数据集的文档或示例文件来确定标注格式,例如是否有XML文件(VOC)或JSON文件(COCO)。 接下来是转换步骤。根据引用[1]中的信息,用户可能需要将现有的标注格式(如COCO或VOC)转换为YOLO格式。YOLO格式要求每个图像对应一个.txt文件,其中包含类别ID、归一化的中心坐标和宽高。因此,用户需要编写或使用现有的转换脚本。引用[1]提到有整理过COCO、VOC、YOLO之间的转换代码,可能可以复用其中的部分逻辑,或者用户需要根据RESIDE的具体格式进行调整。 此外,用户可能还需要验证转换后的标注是否正确,比如使用可视化工具检查边界框的位置。引用[3]提到YOLO的应用和训练,可能需要用户确保转换后的格式符合YOLO训练的要求,比如类别ID是否正确,路径配置是否准确等。 最后,用户可能需要进一步的帮助,比如如何处理数据集划分(训练集、验证集)或调整YOLO配置文件。需要确保回答覆盖这些潜在的问题点,并提供相关资源或步骤指引。 总结步骤:下载RESIDE数据集,确认标注格式,使用转换脚本或自行编写代码转换为YOLO格式,验证转换结果,准备YAML配置文件。同时,提醒用户注意路径设置和类别一致性,并提供相关参考资料。</think>### 分步说明:下载RESIDE数据集并转换为YOLO格式 #### 1. **下载RESIDE数据集** - **官方渠道**:访问RESIDE数据集官网([项目页面](https://li-chongyi.github.io/proj_benchmark.html))或论文提供的下载链接[^2]。 - **子集选择**:根据需求选择需要的子集(如`UIEB`用于水下图像增强,`O-HAZE`用于雾天场景)。 - **数据内容**:下载后数据集通常包含: ``` RESIDE/ ├── train/ │ ├── images/ # 训练集图像 │ └── annotations/ # 标注文件(可能是COCO/VOC格式) └── test/ ├── images/ └── annotations/ ``` #### 2. **确认标注格式** - **检查标注文件**: - **COCO格式**:查找`instances_train.json`类别的JSON文件。 - **VOC格式**:查找`.xml`文件(每个图像对应一个XML标注)。 - **自定义格式**:若为其他格式,需根据数据集文档解析。 #### 3. **转换为YOLO格式** - **YOLO格式要求**: - 每个图像对应一个`.txt`文件,格式:`[class_id] [x_center] [y_center] [width] [height]`,数值需归一化到`[0,1]`。 - 例如:`0 0.45 0.62 0.3 0.4`。 - **转换方法**: - **使用现成工具**:若标注为COCO/VOC格式,可直接使用[引用1](^1)中的转换代码(需调整路径)。 - **自定义脚本**(示例): ```python import json import os # 示例:COCO转YOLO def coco_to_yolo(coco_json, output_dir): with open(coco_json) as f: data = json.load(f) # 创建类别映射(根据RESIDE类别顺序) categories = {cat['id']: idx for idx, cat in enumerate(data['categories'])} for ann in data['annotations']: image_id = ann['image_id'] img_info = next(img for img in data['images'] if img['id'] == image_id) img_w, img_h = img_info['width'], img_info['height'] # 提取边界框并归一化 x, y, w, h = ann['bbox'] x_center = (x + w/2) / img_w y_center = (y + h/2) / img_h w_norm = w / img_w h_norm = h / img_h # 写入YOLO格式文件 txt_path = os.path.join(output_dir, f"{img_info['file_name'].split('.')[0]}.txt") with open(txt_path, 'a') as f_txt: f_txt.write(f"{categories[ann['category_id']]} {x_center} {y_center} {w_norm} {h_norm}\n") ``` #### 4. **验证转换结果** - **可视化检查**:使用OpenCV或LabelImg工具查看标注是否对齐。 - **示例代码**: ```python import cv2 image = cv2.imread("image.jpg") h, w = image.shape[:2] with open("image.txt") as f: for line in f.readlines(): cls_id, xc, yc, bw, bh = map(float, line.strip().split()) # 反归一化 x = int((xc - bw/2) * w) y = int((yc - bh/2) * h) width = int(bw * w) height = int(bh * h) cv2.rectangle(image, (x, y), (x+width, y+height), (0,255,0), 2) cv2.imshow("Preview", image) cv2.waitKey(0) ``` #### 5. **准备YOLO训练配置** - **创建`data.yaml`**: ```yaml train: ../RESIDE/train/images val: ../RESIDE/test/images nc: 5 # 类别数(根据RESIDE实际类别修改) names: ['fish', 'coral', 'diver', 'ship', 'trash'] # 示例类别名称 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值