news 2026/4/18 16:26:45

无人机夜间道路两边摊贩检测数据集 无人机夜间摆摊检测数据集 城管夜间无人机巡查*设计,利用 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/4/18 5:28:15

9大AI写作软件体验,论文创作全流程轻松应对

工具对比排名表格 工具名称 核心功能 突出优势 Aibiye 降AIGC率 适配高校规则&#xff0c;AI痕迹弱化 Aicheck 论文降重 速度快&#xff0c;保留专业术语 Askpaper 论文降重 逻辑完整性好 秘塔写作猫 智能降重 结合语法检查 DeepL 多语言降重 翻译改写灵活 知…

作者头像 李华
网站建设 2026/4/17 12:07:09

多智能体系统中的 Agent 交接机制详解与实现

项目地址&#xff1a;https://github.com/kennethleungty/Handoffs-in-LangGraph-Multi-Agent-Systems基于 LangGraph 理解 LLM 智能体如何相互转移控制权大语言模型&#xff08;LLM&#xff09;的推理能力结合记忆、规划和工具使用功能后&#xff0c;形成了所谓的智能体&#…

作者头像 李华
网站建设 2026/4/18 11:07:29

书匠策AI开题报告:让学术起点更智能

从困惑到清晰&#xff1a;开题报告的科学化转型你是否曾经面对一个全新的研究课题&#xff0c;感到无从下手&#xff1f;是否在开题阶段花费大量时间搜索文献、梳理思路&#xff0c;却依然难以确定研究框架&#xff1f;在学术研究的起点处&#xff0c;许多研究者都会面临这样的…

作者头像 李华
网站建设 2026/4/18 9:50:07

DIRECTX RUNTIME终极入门指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作交互式DIRECTX RUNTIME学习应用&#xff0c;要求&#xff1a;1.3D动画演示图形管线工作原理 2.常见错误代码可视化解释 3.一键诊断向导 4.内置模拟器体验不同版本差异 5.提供社…

作者头像 李华
网站建设 2026/4/18 13:51:48

Docker命令零基础入门:图解+实操快速上手

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个面向新手的Docker命令学习应用&#xff0c;功能包括&#xff1a;1) 基础命令图文教程 2) 交互式命令行模拟器 3) 渐进式难度练习 4) 即时反馈和错误纠正。从最简单的docke…

作者头像 李华