Tunnel Crack Detection Thermal And Visible Dataset (CrackTAV)|隧道检测数据集|多模态数据数据集
收藏Tunnel Crack Detection Thermal And Visible Dataset (CrackTAV)
概述
Tunnel Crack Detection Dataset (CrackTAV) 是一个用于隧道裂缝检测的综合数据集,支持使用多模态图像进行研究。数据集包括可见光(RGB)、红外(IR)、RGB_IR_Fused、RGBT 和 RGBIR 图像,使研究人员能够在不同的通道配置和模态下探索检测模型的性能。该数据集旨在解决复杂光照条件和环境因素变化带来的挑战。
下载链接
- 百度网盘: CrackTAV Dataset (提取码:
1472
)
数据集结构
数据集的组织结构如下: plaintext CrackTAV/ ├── README.md # 数据集描述 ├── images/ # 包含数据集中的所有图像 │ ├── RGB/ # 3通道RGB图像(可见光) │ ├── IR/ # 3通道IR图像(热成像) │ ├── RGB_IR_Fused/ # 3通道融合RGB和IR图像 │ ├── RGBT/ # 4通道RGB和温度图像 │ └── RGBIR/ # 6通道RGB和IR图像 ├── labels/ # 裂缝的地面真值标签 │ ├── RGB/ # RGB图像的标签 │ ├── IR/ # IR图像的标签 │ ├── RGB_IR_Fused/ # 融合RGB_IR图像的标签 │ ├── RGBT/ # RGBT图像的标签 │ └── RGBIR/ # RGBIR图像的标签 └── metadata.csv # 包含每个图像额外信息的元数据文件
数据格式
图像规格
- RGB图像: 3通道图像,代表可见光谱。
- IR图像: 3通道热成像图像。
- RGB_IR_Fused图像: 3通道图像,结合RGB和IR数据。
- RGBT图像: 4通道图像,包括RGB和一个温度通道。
- RGBIR图像: 6通道图像,结合RGB和IR数据。
- 分辨率: 所有图像均为256x256像素。
- 文件格式: 图像以JPEG格式保存。
标注规格
- 格式: 标注以PNG格式的二进制掩码提供。
- 值: 掩码中的每个像素值为:
0
表示背景(非裂缝区域)1
表示裂缝区域
示例图像
以下是数据集中的示例图像,包括RGB、IR、RGB_IR_Fused、RGBT和RGBIR图像及其对应的标签:
- RGB图像示例
- IR图像示例
- RGB_IR_Fused图像示例
如何使用
加载图像和标签
以下Python代码展示了如何根据其模态加载图像和相应的标签: python import os from PIL import Image import numpy as np
def load_image_and_label(image_id, modality=RGB): img_path = fCrackTAV/images/{modality}/{image_id}.jpg label_path = fCrackTAV/labels/{modality}/{image_id}.png
image = Image.open(img_path)
label = Image.open(label_path)
return np.array(image), np.array(label)
示例用法
image_id = img_001 image, label = load_image_and_label(image_id, modality=RGB) print("Image shape:", image.shape) print("Label shape:", label.shape)
使用数据集进行模型训练
以下代码展示了如何在PyTorch中使用数据集进行模型训练。它创建了一个自定义的Dataset
类和一个DataLoader
用于批处理。
python
import os
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
from PIL import Image
import numpy as np
加载图像和标签的函数
def load_image_and_label(image_id, modality=RGB): img_path = fCrackTAV/images/{modality}/{image_id}.jpg label_path = fCrackTAV/labels/{modality}/{image_id}.png image = Image.open(img_path) label = Image.open(label_path) return np.array(image), np.array(label)
自定义Dataset类
class CrackDataset(Dataset): def init(self, image_dir, label_dir, transform=None): self.image_dir = image_dir self.label_dir = label_dir self.transform = transform self.image_ids = os.listdir(image_dir)
def __len__(self):
return len(self.image_ids)
def __getitem__(self, idx):
image_id = self.image_ids[idx].split(.)[0]
image, label = load_image_and_label(image_id, modality=RGB)
if self.transform:
image = self.transform(image)
label = self.transform(label)
return image, label
定义变换并创建DataLoader
transform = transforms.Compose([ transforms.ToTensor(), ])
dataset = CrackDataset(CrackTAV/images/RGB, CrackTAV/labels/RGB, transform=transform) dataloader = DataLoader(dataset, batch_size=8, shuffle=True)
示例用法
for images, labels in dataloader: print("Batch of images:", images.size()) print("Batch of labels:", labels.size()) break
引用
如果您在研究中使用此数据集,请按如下方式引用:
