news 2026/4/3 4:29:30

无人机夜间道路两边摊贩检测数据集 无人机夜间摆摊检测数据集 城管夜间无人机巡查*设计,利用 YOLOv8 在小样本、高分辨率、复杂夜间场景下实现 流动摊贩自动识别,助力智慧城市建设与非现场执法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
无人机夜间道路两边摊贩检测数据集 无人机夜间摆摊检测数据集 城管夜间无人机巡查*设计,利用 YOLOv8 在小样本、高分辨率、复杂夜间场景下实现 流动摊贩自动识别,助力智慧城市建设与非现场执法

无人机夜间道路两边摊贩检测数据集
无人机:DJI MAVIC 3
数据:原始图片+XML标签
总内存大小:758M(188张)
图片分辨率:4K
采集高度:40m
采集角度:30°~90°
采集时间:2025.07
类别:流动摊贩

应用场景:用于城管执法、占道经营、摊贩整顿、交通安全等低空目标检测等领域


🚁 无人机夜间摊贩检测数据集(DJI Mavic 3)

项目内容说明
数据集名称无人机夜间道路两边摊贩目标识别数据集
采集设备DJI Mavic 3 无人机
数据类型原始图像(JPG/PNG) +PASCAL VOC 格式 XML 标签
总图像数量188 张
总数据大小758 MB
图像分辨率4K(3840 × 2160 或 4096 × 2160),高清晰度
采集高度40 米(低空航拍)
拍摄角度30° ~ 90°(含斜视与垂直俯视),模拟真实执法视角
采集时间2025年7月(夏季,夜间)
光照条件夜间场景(含路灯、摊位照明、车灯等复杂光源,部分图像存在低照度、眩光)
目标类别1 类:流动摊贩(包括小吃车、地摊、移动售货车、遮阳棚等占道经营设施)
标注格式PASCAL VOC XML
• 每张图对应一个.xml文件
• 包含<object><bndbox>等标准字段
典型目标特征- 小目标密集分布
- 背景复杂(道路、车辆、行人、树木)
- 夜间低对比度
- 部分目标被遮挡
应用场景• 城管智能巡查
• 占道经营自动识别
• 夜间摊贩治理
• 低空交通安全监控
• 无人机AI执法系统
适用模型任务目标检测(Object Detection)
推荐模型YOLOv5/v8, Faster R-CNN, RT-DETR(需将 XML 转为 YOLO 或 COCO 格式)


🔧 格式转换建议(XML → YOLO)

若需用于 YOLO 训练,可使用以下脚本转换:

# voc2yolo.pyimportxml.etree.ElementTreeasETimportosdefconvert_bbox(size,box):dw=1.0/size[0]dh=1.0/size[1]x=(box[0]+box[1])/2.0y=(box[2]+box[3])/2.0w=box[1]-box[0]h=box[3]-box[2]return(x*dw,y*dh,w*dw,h*dh)defparse_xml(xml_path,img_width=3840,img_height=2160):tree=ET.parse(xml_path)root=tree.getroot()lines=[]forobjinroot.iter('object'):cls='vendor'# 单一类别xmlbox=obj.find('bndbox')b=(float(xmlbox.find('xmin').text),float(xmlbox.find('xmax').text),float(xmlbox.find('ymin').text),float(xmlbox.find('ymax').text))bb=convert_bbox((img_width,img_height),b)lines.append(f"0{bb[0]:.6f}{bb[1]:.6f}{bb[2]:.6f}{bb[3]:.6f}")returnlines

⚠️ 数据集局限性

问题说明
样本量小仅 188 张,需数据增强(mosaic、亮度扰动、旋转)
单类别仅“流动摊贩”,无法区分摊贩类型
夜间挑战低照度、反光、运动模糊可能影响模型鲁棒性

✅ 推荐训练策略

  1. 数据增强
    • 随机亮度/对比度调整(模拟不同夜间光照)
    • 添加高斯噪声
    • Mosaic 增强(提升小目标检测能力)
  2. 输入尺寸:YOLO 训练时设imgsz=1280以保留 4K 图像细节;
  3. 预训练模型:使用在夜间场景(如 FLIR)上微调的权重初始化。

🛰️总结:该数据集是城市治理智能化的稀缺资源,聚焦夜间低空摊贩识别,虽规模较小,但具有真实执法价值。适用于构建轻量化、高精度的无人机AI巡查系统。

以下是基于您提供的“无人机夜间道路两边摊贩目标识别数据集”(188张4K图像 + PASCAL VOC XML标签)构建YOLOv8 目标检测系统的完整方案,包含数据转换、模型训练、推理部署全流程代码。


🧩 一、项目目标

  • VOC XML 标签转换为YOLO 格式
  • 使用YOLOv8n训练单类别(vendor)检测模型
  • 支持高分辨率(4K)图像推理
  • 适用于城管无人机夜间巡查

🔧 二、环境准备

pipinstallultralytics opencv-python lxml tqdm numpy matplotlib pillow

✅ 推荐:Python 3.8+,TensorFlow/PyTorch 已由ultralytics自动安装


📁 三、目录结构

night_vendor_yolo/ ├── dataset/ │ ├── images/ # 原始 4K 图像(.jpg) │ └── labels/ # 转换后的 YOLO .txt 标签 ├── voc2yolo.py # XML → YOLO 转换脚本 ├── split_dataset.py # 划分 train/val ├── data.yaml # YOLO 配置文件 ├── train.py # 训练脚本 └── detect_image.py # 单图推理

🔄 四、步骤1:XML → YOLO 格式转换

脚本:voc2yolo.py

# voc2yolo.pyimportosimportxml.etree.ElementTreeasETfrompathlibimportPath# 配置路径IMG_DIR="dataset/images"XML_DIR="dataset/annotations"# 原始 XML 所在目录LABEL_DIR="dataset/labels"os.makedirs(LABEL_DIR,exist_ok=True)# 获取所有图像尺寸(假设所有图为 3840x2160)IMG_WIDTH=3840IMG_HEIGHT=2160defconvert_bbox(size,box):dw=1.0/size[0]dh=1.0/size[1]x=(box[0]+box[1])/2.0y=(box[2]+box[3])/2.0w=box[1]-box[0]h=box[3]-box[2]return(x*dw,y*dh,w*dw,h*dh)forxml_fileinPath(XML_DIR).glob("*.xml"):tree=ET.parse(xml_file)root=tree.getroot()label_file=os.path.join(LABEL_DIR,xml_file.stem+".txt")withopen(label_file,"w")asf:forobjinroot.iter("object"):# 仅一类:vendor → class_id = 0cls_id=0xmlbox=obj.find("bndbox")b=(float(xmlbox.find("xmin").text),float(xmlbox.find("xmax").text),float(xmlbox.find("ymin").text),float(xmlbox.find("ymax").text))bb=convert_bbox((IMG_WIDTH,IMG_HEIGHT),b)f.write(f"{cls_id}{bb[0]:.6f}{bb[1]:.6f}{bb[2]:.6f}{bb[3]:.6f}\n")print("✅ XML → YOLO 转换完成!")

💡 运行前请将原始图像放入dataset/images/,XML 放入dataset/annotations/


✂️ 五、步骤2:划分训练集与验证集

脚本:split_dataset.py

# split_dataset.pyimportosimportrandomimportshutilfrompathlibimportPath random.seed(42)images=list(Path("dataset/images").glob("*.jpg"))random.shuffle(images)n=len(images)n_train=int(n*0.8)# 150 train, 38 valtrain_imgs=images[:n_train]val_imgs=images[n_train:]# 创建子目录forsplitin["train","val"]:os.makedirs(f"dataset/images/{split}",exist_ok=True)os.makedirs(f"dataset/labels/{split}",exist_ok=True)# 移动文件forimgintrain_imgs:shutil.move(str(img),f"dataset/images/train/{img.name}")lbl=Path("dataset/labels")/(img.stem+".txt")iflbl.exists():shutil.move(str(lbl),f"dataset/labels/train/{lbl.name}")forimginval_imgs:shutil.move(str(img),f"dataset/images/val/{img.name}")lbl=Path("dataset/labels")/(img.stem+".txt")iflbl.exists():shutil.move(str(lbl),f"dataset/labels/val/{lbl.name}")print("✅ 数据集已划分为 train/val")

📄 六、步骤3:创建data.yaml

# data.yamlpath:./datasettrain:images/trainval:images/valnc:1names:['vendor']

🚀 七、步骤4:训练 YOLOv8 模型

脚本:train.py

# train.pyfromultralyticsimportYOLO# 加载预训练模型model=YOLO('yolov8n.pt')# 可换为 yolov8s.pt 提升精度# 开始训练(针对小样本 + 夜间场景优化)results=model.train(data='data.yaml',epochs=100,imgsz=1280,# 保持高分辨率(原图4K → 缩放到1280)batch=4,# 小 batch(因图像大)name='night_vendor_yolov8n',device=0,patience=25,hsv_h=0.01,hsv_s=0.5,hsv_v=0.8,# 增强亮度变化(模拟夜间光照)degrees=10.0,translate=0.1,scale=0.2,mosaic=0.8,flipud=0.0,fliplr=0.5)print("✅ 训练完成!模型保存在 runs/detect/night_vendor_yolov8n/")

⚠️注意

  • batch=4:因 4K 图像显存占用高;
  • imgsz=1280:平衡细节保留与 GPU 显存;
  • hsv_v=0.8:增强亮度扰动,提升夜间鲁棒性。

🔍 八、步骤5:单图推理(4K 支持)

脚本:detect_image.py

# detect_image.pyfromultralyticsimportYOLOimportcv2# 加载最佳模型model=YOLO('runs/detect/night_vendor_yolov8n/weights/best.pt')defdetect_4k_image(image_path,output_path="result.jpg"):# YOLOv8 自动处理高分辨率输入results=model(image_path,imgsz=1280,# 推理尺寸conf=0.3,# 置信度阈值(夜间可适当降低)iou=0.45)# 保存带框图像annotated=results[0].plot()cv2.imwrite(output_path,annotated)print(f"✅ 检测结果保存至{output_path}")# 使用示例if__name__=="__main__":detect_4k_image("test_night.jpg","vendor_detected.jpg")

📹 九、(可选)视频/摄像头实时检测

# detect_video.pyfromultralyticsimportYOLOimportcv2 model=YOLO('runs/detect/night_vendor_yolov8n/weights/best.pt')cap=cv2.VideoCapture("night_drone.mp4")# 或 0(摄像头)whileTrue:ret,frame=cap.read()ifnotret:breakresults=model(frame,imgsz=1280,conf=0.3)annotated=results[0].plot()cv2.imshow("Vendor Detection",annotated)ifcv2.waitKey(1)&0xFF==ord('q'):breakcap.release()cv2.destroyAllWindows()

📊 十、预期性能(188张小样本)

指标预期值说明
mAP@0.5≥ 0.75夜间小目标挑战大
Recall≥ 0.70部分遮挡摊贩可能漏检
推理速度~15 FPS(RTX 3060, 1280×1280)

💡提升建议

  • 使用Mosaic 增强缓解样本少问题;
  • 微调置信度阈值conf=0.2~0.4);
  • 后期可加入红外图像(若可用)提升夜间效果。

📥 获取完整项目包

回复“打包”,我将为你提供:

✅ 完整代码(含voc2yolo.py,train.py,detect_image.py
data.yaml和目录模板
✅ 数据增强配置建议
✅ 模型导出脚本(ONNX/TensorRT)用于无人机端部署


🛰️总结
本系统专为城管夜间无人机巡查设计,利用 YOLOv8 在小样本、高分辨率、复杂夜间场景下实现流动摊贩自动识别,助力智慧城市建设与非现场执法。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/18 8:27:45

STAR-CCM+许可证使用合规与HPC资源审计季度标准化流程

STAR-CCM许可证使用合规与HPC资源审计季度标准化流程作为一名在计算流体力学&#xff08;CFD&#xff09;领域深耕多年的工程师&#xff0c;我经常被问到&#xff1a;“在使用STAR-CCM时&#xff0c;如何确保许可证的合规使用&#xff1f;又如何对HPC资源进行季度审计&#xff…

作者头像 李华
网站建设 2026/3/12 9:35:00

书匠策AI:如何用智能助手轻松搞定开题报告?

大家好&#xff01;今天我们来聊聊一个让无数研究生“头疼”的问题——开题报告。你是否曾在深夜面对空白的文档发呆&#xff0c;不知道如何确定研究方向&#xff1f;或是已经收集了大量资料&#xff0c;却不知如何组织成一篇逻辑清晰的开题报告&#xff1f;如果你正为此烦恼&a…

作者头像 李华
网站建设 2026/3/14 10:49:15

3分钟快速验证:自制EDGE卸载小工具

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速开发一个简易EDGE卸载工具原型&#xff0c;要求&#xff1a;1.使用批处理脚本实现核心卸载功能 2.包含基本的错误处理 3.显示进度提示 4.生成简单日志 5.支持静默模式。代码不…

作者头像 李华
网站建设 2026/3/25 14:21:08

零基础教程:手把手教你下载正版CentOS7系统镜像

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作一个交互式CentOS7下载引导程序&#xff0c;功能&#xff1a;1)步骤式图形界面引导 2)自动识别用户系统架构 3)校验和验证指导 4)启动盘制作教程。要求输出包含图文并茂的操作…

作者头像 李华
网站建设 2026/3/29 20:22:55

VMWARE虚拟机新手入门:10分钟学会安装和使用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个面向新手的VMWARE虚拟机教学应用&#xff0c;包含&#xff1a;1. 分步骤安装指南 2. 基础操作视频教程 3. 常见问题解答 4. 简单虚拟机创建向导 5. 安全使用提示。要求界面…

作者头像 李华