无人机低空街景语义分割数据集|4K航拍|城市巡检|深度学习视觉任务工程集
标签:#无人机数据集 #语义分割 #低空巡检 #街景理解 #计算机视觉 #深度学习 #目标检测 #智慧城管 #自动驾驶感知


城市低空治理、无人机自动巡检、自动驾驶路侧感知、智慧城管全域感知,正从"看得见"向"看得懂、分得清、管得住"升级。高精度、像素级、真实场景的低空街景语义分割数据 ,已成为算法落地的核心瓶颈------缺少贴近真实巡检高度、角度、光照与目标分布的标注数据,模型极易在工程部署中出现泛化差、小目标漏检、道路/植被/车辆混淆等问题。本文完整开放一套高分辨率无人机低空街景语义分割数据集,配套深度学习训练代码与工程范式,可直接用于街道巡检、目标分割、异常检测、场景理解等任务。
🧾 数据集总览
- 数据集名称:无人机高分辨率街景语义分割数据集
- 采集设备:DJI Mavic 3
- 数据类型:原始RGB图像 + 像素级语义分割掩码
- 总容量:6.7GB
- 样本总量:430张
- 图像分辨率:4K(超高精度)
- 采集高度:20--45m(典型低空巡检作业高度)
- 采集角度:45°俯拍(工程主流视角)
- 标注类别:8大类(背景杂波、建筑、道路、树木、低矮植被、移动车辆、静止车辆、行人)
- 适用任务:低空目标分割、街道巡检、目标检测、场景理解、异常识别、自动驾驶感知


📁 目录结构
drone_street_segmentation/
├── images/ # 原始4K航拍图(*.png)
│ ├── 000300.png
│ ├── 000500.png
│ └── ...
├── masks/ # 语义分割标签图(单通道索引色)
├── train.txt # 训练集列表
├── val.txt # 验证集列表
├── README.md
└── codes/
├── dataset.py # 数据集加载
├── model.py # 分割模型
├── train.py # 训练入口
└── infer.py # 推理可视化
🧠 深度学习工程代码(带场景经验注释)
1. 环境配置(无人机视觉常用)
bash
# 低空分割专用环境(适配4K大图、小目标、多类别)
conda create -n drone_seg python=3.8
conda activate drone_seg
pip install torch torchvision opencv-python pillow albumentations
pip install segmentation-models-pytorch tqdm
2. 数据集加载(适配无人机4K大图+掩码对齐)
python
# dataset.py
# 【场景经验】无人机图像目标尺度差异大,需严格保持img/mask同步变换
import os
import cv2
import torch
from torch.utils.data import Dataset
class DroneStreetDataset(Dataset):
def __init__(self, image_dir, mask_dir, file_list, transform=None):
self.image_dir = image_dir
self.mask_dir = mask_dir
self.file_list = file_list
self.transform = transform
def __len__(self):
return len(self.file_list)
def __getitem__(self, idx):
name = self.file_list[idx].strip()
img_path = os.path.join(self.image_dir, f"{name}.png")
mask_path = os.path.join(self.mask_dir, f"{name}.png")
img = cv2.imread(img_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
mask = cv2.imread(mask_path, cv2.IMREAD_GRAYSCALE)
if self.transform:
augmented = self.transform(image=img, mask=mask)
img = augmented["image"]
mask = augmented["mask"]
return img, mask.long()
3. 数据增强(低空巡检专用策略)
python
# transforms.py
# 【场景经验】无人机常出现倾斜、旋转、光照变化,增强需保留道路/车辆/行人结构
import albumentations as A
from albumentations.pytorch import ToTensorV2
def get_train_aug(img_size=512):
return A.Compose([
A.Resize(height=img_size, width=img_size),
A.RandomRotate90(p=0.5),
A.HorizontalFlip(p=0.5),
A.RandomBrightnessContrast(p=0.2),
A.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
ToTensorV2(),
])
4. 训练核心(多类别交叉熵+小目标加权)
python
# train.py
# 【场景经验】行人/车辆占比小,使用CrossEntropyLoss并适度加权
import torch
import torch.nn as nn
from torch.utils.data import DataLoader
def train_one_epoch(model, loader, optimizer, criterion, device):
model.train()
total_loss = 0.0
for img, mask in loader:
img, mask = img.to(device), mask.to(device)
outputs = model(img)
loss = criterion(outputs, mask)
optimizer.zero_grad()
loss.backward()
optimizer.step()
total_loss += loss.item()
return total_loss / len(loader)
5. 推理可视化(输出巡检分割结果)
python
# infer.py
# 【场景经验】输出彩色掩码便于巡检人员/平台直观判读
def visualize_result(img, pred_mask, class_num=8):
palette = np.array([[0,0,0],[128,0,0],[0,128,0],...]) # 8类调色板
color_mask = palette[pred_mask.cpu().numpy()]
return (img * 0.5 + color_mask * 0.5).astype(np.uint8)
🎯 类别定义(工程级标准)
- 背景杂波:天空、线缆、遮挡、非巡检目标
- 建筑:房屋、墙体、构筑物
- 道路:车行道、人行道、路面
- 树木:高大乔木
- 低矮植被:草坪、灌木、花坛
- 移动车辆:行驶中车辆
- 静止车辆:停靠车辆
- 行人:街道人员与骑行者
🧪 典型应用场景
- 无人机自动巡检:占道、违停、垃圾、异常事件
- 智慧城管:街面秩序、绿化、设施、人员流量
- 自动驾驶:路侧感知、可行驶区域、目标分割
- 城市建模:高精地图要素提取、三维重建语义先验
- 低空安防:人流/车流监测、区域入侵识别
✅ 工程价值
- 真实低空作业高度+角度,开箱即用
- 4K高分辨率,小目标(行人/车辆)保留完整
- 像素级标注,直接训练分割/检测模型
- 覆盖城市街道典型要素,泛化性强
- 配套代码可快速落地到无人机机载端/云端
📌 使用说明
- 数据格式:PNG无损存储,掩码为单通道类别索引
- 训练建议:输入尺寸512×512/768×768,启用多尺度训练
- 硬件建议:GPU显存≥6GB(4K图建议10GB+)
- 扩展方向:可新增井盖、消防通道、交通标志、抛洒物等扩展类别