# research_objectdetection_segmentation **Repository Path**: pi-lab/research_objectdetection_segmentation ## Basic Information - **Project Name**: research_objectdetection_segmentation - **Description**: 面向无人机的目标检测与场景分割 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-26 - **Last Updated**: 2025-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 面向无人机的视觉目标检测与分割 ## 1. 研究背景 随着无人机技术的快速发展和制造成本的显著降低,无人机遥感已成为获取高空视角数据的重要手段,在**智慧农业、应急救援、交通监控、电力巡检、军事侦察**等领域展现出巨大的应用潜力。相较于传统卫星遥感和载人航空摄影,无人机具有**机动灵活、成本低廉、分辨率可调、受天气影响小**等独特优势,能够实现对目标区域的快速响应与精细化观测。 然而,无人机平台产生的海量航拍图像与视频数据,对传统的**人工判读**方式提出了严峻挑战,存在**效率低、成本高、易出错、实时性差**等局限。如何自动化、智能化地理解无人机视觉内容,精准识别关键目标并解析复杂场景,已成为制约无人机应用深度与广度的核心瓶颈。 近年来,深度学习技术在计算机视觉领域取得突破性进展,为目标检测与场景分割提供了强大的技术支撑。**目标检测**旨在定位并识别图像中的特定目标(如车辆、人员、建筑物等),而**场景分割**则追求像素级语义理解,实现对地面场景的精细化解构(如道路、植被、水域等)。将这两项技术深度融合并应用于无人机视角,不仅能够提升无人机系统的自主感知能力,更能为各行业的智能决策提供可靠的数据基础,具有重要的理论价值与广阔的应用前景。 ![obj_det](images/uav_objdet.jpeg) ![road_seg](images/sam_road_mask_and_graph.png) ## 2. 研究目标 本研究旨在面向无人机航拍图像,构建一个**高效、鲁棒、轻量化**的目标检测与场景分割协同处理框架,实现对复杂场景下多尺度目标的精准识别与地物要素的精细化解译。具体研究目标如下: 1. **算法适应性优化**:针对无人机图像**大视场、高分辨率、目标尺度变化剧烈、视角特殊**等特点,改进现有深度学习模型,提升对小目标和密集目标的检测精度,改善场景分割的边缘细节保留能力。 2. **多任务协同机制**:探索**目标检测与场景分割的联合学习范式**,通过共享特征表示与任务间信息交互,提升整体模型的推理效率与精度,降低计算冗余。 3. **轻量化模型设计**:研究模型剪枝、知识蒸馏等**模型压缩技术**,降低算法对计算资源的需求,使其具备在无人机机载边缘计算平台实时部署的潜力。 4. **实证验证与应用示范**:在公开数据集(如VisDrone、UAVid)及实际采集数据上进行充分实验,验证所提方法的有效性,并尝试在**特定应用场景**(如违建识别、灾情评估)中开展应用验证,形成可复现、可落地的技术方案。 通过本研究,预期为无人机智能视觉分析提供**算法创新**与**实践参考**,推动无人机从"数据采集平台"向"智能感知终端"的演进。 ## 3. 研究方法 - 目标检测 采用 **"数据驱动→模型适配→迭代优化→部署验证"** 的螺旋上升研究范式,分四个主阶段逐步推进,每个阶段内部包含学习-实践-验证闭环。 ### 3.1 阶段1:基础学习与数据准备(1-2周) **目标**:掌握基本原理,构建高质量数据集 - **步骤1.1:文献研读与方案设计** - 精读5-8篇近3年顶会论文(CVPR/ICCV/ECCV无人机相关) - 归纳无人机目标识别的**三大挑战**:小目标、密集目标、视角畸变 - 确定基线模型(推荐YOLOv5/v8或RT-DETR,兼顾精度与速度) - **步骤1.2:数据采集与清洗** - 收集数据:下载公开数据集(VisDrone, UAVDT)+ 无人机实飞采集(如条件允许) - 数据筛选:剔除模糊、过曝、无目标的废片,保留**3000-5000张**有效图像 - 数据标注:使用LabelImg或CVAT,遵循**COCO格式**,注意**小目标框≥10像素** - **步骤1.3:数据增强与仿真** - 物理仿真:使用ImgAug库实现**随机旋转、透视变换**(模拟无人机倾角) - 天气仿真:添加雾化、光照变化(模拟不同气象条件) - 生成** Mosaic、Mixup** 增强样本,扩充小目标多样性 ### 3.2 阶段2:模型适配与训练(2-3周) **目标**:针对无人机特性改进模型 - **步骤2.1:基线模型训练** - 划分数据集:训练集70% | 验证集20% | 测试集10% - 配置超参:初始学习率0.01,Batch Size≥16,Epochs=100-150 - 监控指标:mAP@0.5、Recall、FPS - **步骤2.2:针对性改进(核心创新点)** - **小目标优化**:在FPN层添加**P2小特征层**(stride=4),提升小目标分辨率 - **注意力机制**:嵌入CA(Coordinate Attention)或EMA模块,增强关键区域聚焦 - **损失函数改进**:采用SIoU或Focal Loss,缓解密集目标遮挡问题 - **轻量化解构**:使用GhostNet或MobileNetV3替换Backbone,参数量减少50% - **步骤2.3:增量学习策略** - 先在大规模通用数据集(COCO)预训练,再在无人机数据上**微调**(Fine-tune) - 采用**冻结训练**:前30轮冻结Backbone,训练Neck和Head,加速收敛 ### 3.3 阶段3:验证分析与迭代优化(1-2周) **目标**:诊断问题,精准调优 - **步骤3.1:误差分析** - 使用混淆矩阵定位**易混类别**(如汽车/面包车) - 可视化PR曲线,分析Recall不足的原因(漏检 vs 误检) - 统计不同尺度目标的AP值,识别**小目标性能瓶颈** - **步骤3.2:针对性调优** - **漏检率高**:增加正样本IoU阈值(0.5→0.6),或添加更多小目标增强 - **误检率高**:在Neck层添加**背景抑制分支**,降低虚警 - **边缘预测不准**:使用**边界框回归精细化**(Bounding Box Refinement)后处理 - **步骤3.3:对比实验设计** - 设置3-4组对照:基线模型 | 改进模型A | 改进模型B | SOTA模型 - 固定随机种子,确保实验可复现 - 绘制**mAP-FPS散点图**,在精度-速度Pareto前沿评估性能 ### 3.4 阶段4:部署测试与总结(1周) **目标**:验证实用性,形成结论 - **步骤4.1:模型轻量化导出** - 使用ONNX或TensorRT进行模型转换,FP16量化 - 在Jetson Nano或RK3588等边缘设备测试**推理速度** - **步骤4.2:实飞验证(可选)** - 将模型集成至无人机图传链路,测试**实时检测延迟** - 录制3-5组典型场景视频,统计**端到端识别准确率** - **步骤4.3:论文撰写与总结** - 绘制技术路线图、PR曲线图、检测结果对比图 - 总结**创新点**:针对无人机场景的2-3项具体改进 - 提出不足与展望:如极端天气鲁棒性、夜间检测等 ## 4. 研究方法 - 场景分割 采用 **"数据预处理→模型改进→后处理优化→边缘部署"** 的递进式研究路径,重点解决无人机图像**高分辨率、多尺度目标、类别不均衡**三大核心挑战。 #### 4.1 阶段1:基础学习与数据工程(1-2周 **目标**:掌握分割原理,构建高质量标注数据 - **步骤1.1:文献调研与基线确定** - 精读3-5篇顶会论文(如U-Net、DeepLab系列、SegFormer) - 对比分析**编码器-解码器结构**与**Transformer架构**的适用性 - 选定基线模型(推荐 sam_road, CoANet ,兼顾精度与效率) - **步骤1.2:数据预处理与标注** - 数据筛选:从City-scale, SpaceNet, DeepGlobe 或自采数据中选取**2000-3000张**典型场景图 - **滑窗裁剪**:将4K分辨率原图切分为 $512\times512$ 或 $1024\times1024$ patches,重叠率20%(避免边界效应) - 像素级标注:使用**LabelMe**或**CVAT**,重点关注**边缘细节**(建筑物轮廓、道路边界) - 类别定义:推荐5-8类(道路、建筑、植被、水域、背景),避免过细导致样本稀疏 - **步骤1.3:数据增强策略** - 颜色抖动:模拟无人机不同时段光照变化 - **随机缩放**(0.5-2.0倍):增强多尺度鲁棒性 - **Grid Mask** 和 **Copy-Paste**:提升小目标(如车辆)的分割效果 #### 4.2 阶段2:模型改进与训练(2-3周) **目标**:针对无人机特性优化分割模型 - **步骤2.1:基线模型训练** - 配置超参:学习率0.0001(AdamW优化器),Batch Size=8-16,训练100轮 - 损失函数:采用 **Focal Loss + Dice Loss** 组合,缓解类别不平衡 - 评估指标:mIoU(均交并比)、PA(像素准确率)、**Boundary IoU**(边缘精度) - **步骤2.2:核心改进模块(创新点)** - **高分辨率特征融合**:在Decoder端添加**PSP金字塔池化模块**,捕获多尺度上下文 - **边缘增强分支**:并行设计**边界检测辅助任务**,使用Sobel算子计算边缘真值,强化细节分割 - **轻量注意力模块**:嵌入**ECA(高效通道注意力)**,增强关键地物特征响应,参数量仅增5% - **类别重加权**:统计各类别像素占比,对**道路、建筑**等小占比类别赋予更高权重(权重=1/√频率) - **步骤2.3:训练技巧** - **多尺度训练**:每10轮随机调整输入分辨率(512→768→1024),增强尺度泛化 - **Warm-up + Cosine退火**:前5轮线性升温学习率,避免早期震荡 - **冻结编码器**:前20轮冻结ImageNet预训练权重,专注优化解码器 #### 4.3 阶段3:验证分析与精细化调优(1-2周) **目标**:诊断分割缺陷,针对性改进 - **步骤3.1:误差可视化分析** - 绘制**混淆矩阵热力图**,定位易混类别对(如植被/裸地、阴影/水域) - 可视化预测掩膜与真值的**差异区域**(红色标出错分、漏分区域) - 统计不同地物类别的IoU分布,识别**性能瓶颈类别** - **步骤3.2:后处理优化** - **CRF(条件随机场)后处理**:细化预测掩膜边缘,提升0.5-1% mIoU - **小目标孔洞填充**:对建筑、车辆掩膜进行**形态学闭运算**,消除内部空洞 - **多patch融合策略**:测试时使用**重叠滑窗+投票法**融合边界区域预测,消除切块伪影 - **步骤3.3:消融实验** - 设计4组对照:基线 | +注意力 | +边缘分支 | +后处理 - 记录每组**参数量、推理时间、mIoU**,生成对比表格 - 可视化改进前后的**分割细节对比图**(放大建筑物边缘、道路交叉口) #### 4.4 阶段4:轻量化部署与总结(1周) **目标**:验证实时性,完成研究闭环 - **步骤4.1:模型轻量化** - **ONNX导出**:固定batch size,简化计算图 - **TensorRT INT8量化**:校准100张样本,在Jetson Orin上测试,加速3-5倍 - 对比FP32/FP16/INT8的精度损失(mIoU下降<2%为可接受) - **步骤4.2:整图推理测试** - 对未切分的4K原图进行**全分辨率推理**,测试显存占用与速度 - 若显存不足,采用**级联预测**:先下采样粗分割,再局部精细分割 - **步骤4.3:应用验证** - 选择1-2个场景(如**校园测绘**、**农田监测**),生成**语义分割图**并叠加到原图 - 计算各类别面积占比,输出**统计报告**(如植被覆盖度、道路密度) - 撰写总结:提炼2-3条针对无人机分割的**有效经验**,如"边缘辅助分支对小目标建筑提升显著" ## 参考资料 ### Code YOLO V4: * https://gitee.com/pi-lab/pi-det 无人机航拍图像的物体检测 * https://gitee.com/pi-lab/yolov4_pytorch PyTorch版本YOLO-v4 YOLO V5: * https://github.com/ultralytics/yolov5 YOLO V8: * https://github.com/Pertical/YOLOv8 road network extraction: * https://github.com/htcr/sam_road Segment Anything Model for large-scale, vectorized road network extraction from aerial imagery. CVPRW 2024 * https://github.com/mj129/CoANet CoANet: Connectivity Attention Network for Road Extraction From Satellite Imagery Segmentation: * https://model.aibase.com/models/details/1915694323351576578 Segformer B2 1024x1024 City 160k * https://github.com/qubvel-org/segmentation_models.pytorch Semantic segmentation models with 500+ pretrained convolutional and transformer-based backbones. * https://github.com/ydhongHIT/DDRNet Deep Dual-resolution Networks for Real-time and Accurate Semantic Segmentation of Road Scenes ### 数据集 * https://github.com/VisDrone/VisDrone-Dataset City-scale and SpaceNet https://github.com/TonyXuQAQ/RNGDetPlusPlus * SpaceNet - https://drive.google.com/uc?id=1FiZVkEEEVir_iUJpEH5NQunrtlG0Ff1W - The data_split.json is copied from the dataset.json in this folder. * CityScale - https://drive.google.com/uc?id=1R8sI1RmFe3rUfWMQaOfsYlBDHpQxFH-H - Find the 20cities folder under this folder. Then, run "python generate_labes.py" under both dirs. (https://github.com/htcr/sam_road)