news 2026/9/3 7:30:29

无人机夜间道路两边摊贩检测数据集 无人机夜间摆摊检测数据集 城管夜间无人机巡查*设计,利用 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/9/2 23:30:08

书匠策AI:科研起跑线上的智能领航员

引言&#xff1a;当学术研究遇上人工智能各位科研工作者和学术探索者们&#xff0c;大家好&#xff01;如果你曾经为开题报告绞尽脑汁&#xff0c;为研究方向迷茫不已&#xff0c;为文献综述夜不能寐&#xff0c;那么今天我要介绍的这款工具&#xff0c;可能会改变你对学术研究…

作者头像 李华
网站建设 2026/9/2 23:25:36

CWRSYNC:AI如何优化文件同步开发流程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 使用快马平台生成一个基于CWRSYNC的智能文件同步工具。要求&#xff1a;1.支持多平台文件同步&#xff08;Windows/Linux&#xff09;2.集成AI自动冲突检测与解决功能3.提供可视化…

作者头像 李华
网站建设 2026/9/2 23:24:21

Python注释入门:写给零基础小白的完整指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个交互式Python注释学习应用&#xff1a;1. 提供注释基础知识讲解 2. 展示好的和坏的注释示例 3. 提供实时练习环境 4. 自动检查用户编写的注释 5. 给出改进反馈。要求界面友…

作者头像 李华
网站建设 2026/9/3 1:18:10

ResNet18缺陷检测案例:3步复现工业级应用

ResNet18缺陷检测案例&#xff1a;3步复现工业级应用 引言 作为一名工厂技术员&#xff0c;你可能经常在论文里看到各种先进的AI质检方案&#xff0c;但回到现实却发现厂里连像样的AI服务器都没有。这种"纸上谈兵"的落差感我太理解了——直到我发现用ResNet18这样轻…

作者头像 李华
网站建设 2026/9/3 0:27:10

StructBERT零样本分类优化技巧:提升分类精度的5个方法

StructBERT零样本分类优化技巧&#xff1a;提升分类精度的5个方法 1. 引言&#xff1a;AI 万能分类器的时代来临 在当今信息爆炸的时代&#xff0c;文本数据的自动化处理已成为企业智能化转型的核心需求。无论是客服工单、用户反馈、新闻资讯还是社交媒体内容&#xff0c;都需…

作者头像 李华