道路横幅检测数据集 2000张 街道横幅 带标注 voc yolo

项目背景:

城市中的街道横幅通常用于广告宣传、公共通知等目的,但在某些情况下,它们也可能影响交通安全或市容市貌。因此,对街道横幅进行自动化检测不仅可以帮助城市管理机构及时发现并处理不当悬挂的横幅,还可以辅助交通管理部门排除潜在的视线遮挡隐患。本数据集旨在为街道横幅的检测提供高质量的标注数据,支持自动化检测系统的开发与应用。

数据集概述:

  • 名称:道路横幅检测数据集
  • 规模:共计2,000张图像
  • 类别:单一类别,“0”表示街道横幅(Banner)
  • 标注格式:支持VOC和YOLO格式的标注文件,可以直接用于模型训练
数据集特点:
  1. 针对性强:专注于街道横幅的检测,确保数据集的针对性和实用性。
  2. 高质量标注:每张图像都已详细标注,确保数据的准确性和可靠性。
  3. 适用范围广:支持多种标注格式(VOC、YOLO),方便科研人员和开发者直接使用。
  4. 标准格式:采用广泛使用的标注文件格式,方便导入不同的检测框架。
数据集内容:

  • 街道横幅(Banner):标注了城市街道中的横幅。
数据集用途:
  1. 城市治理:可用于训练和评估深度学习模型,特别是在街道横幅检测方面。
  2. 交通管理:帮助实现道路交通安全监测,减少人工巡查的工作量。
  3. 科研与教育:为街道横幅检测领域的研究和教学提供丰富的数据支持。
使用场景:
  1. 实时监控:在城市管理监控系统中,利用该数据集训练的模型可以实时检测街道横幅。
  2. 违规排查:在违规横幅排查和清理中,利用该数据集可以提高排查的准确性和速度。
  3. 生产管理:在城市管理和服务工作中,利用该数据集可以提高工作效率和管理水平。
技术指标:
  • 数据量:共计2,000张图像,专注于街道横幅检测。
  • 标注格式:支持VOC和YOLO格式的标注文件,方便导入不同的检测框架。
  • 标注精度:所有图像均已详细标注,确保数据的准确性和可靠性。
注意事项:
  • 数据隐私:在使用过程中,请确保遵守相关法律法规,保护个人隐私。
  • 数据预处理:在使用前,建议进行一定的数据预处理,如图像归一化等。
关键代码示例:

以下是关键代码的示例,包括数据加载、模型训练、检测和结果展示。

数据加载(以VOC格式为例):
1import os
2import cv2
3import xml.etree.ElementTree as ET
4import numpy as np
5
6# 数据集路径
7DATASET_PATH = 'path/to/dataset'
8IMAGES_DIR = os.path.join(DATASET_PATH, 'JPEGImages')
9ANNOTATIONS_DIR = os.path.join(DATASET_PATH, 'Annotations')
10
11# 加载数据集
12def load_dataset(directory):
13    images = []
14    annotations = []
15
16    for img_file in os.listdir(IMAGES_DIR):
17        if img_file.endswith('.jpg') or img_file.endswith('.png'):
18            img_path = os.path.join(IMAGES_DIR, img_file)
19            annotation_path = os.path.join(ANNOTATIONS_DIR, img_file.replace('.jpg', '.xml').replace('.png', '.xml'))
20            
21            image = cv2.imread(img_path)
22            tree = ET.parse(annotation_path)
23            root = tree.getroot()
24            
25            objects = []
26            for obj in root.findall('object'):
27                bbox = obj.find('bndbox')
28                xmin = int(bbox.find('xmin').text)
29                ymin = int(bbox.find('ymin').text)
30                xmax = int(bbox.find('xmax').text)
31                ymax = int(bbox.find('ymax').text)
32                objects.append([xmin, ymin, xmax, ymax])
33            
34            images.append(image)
35            annotations.append(objects)
36
37    return images, annotations
38
39train_images, train_annotations = load_dataset(os.path.join(DATASET_PATH, 'train'))
40val_images, val_annotations = load_dataset(os.path.join(DATASET_PATH, 'val'))
41test_images, test_annotations = load_dataset(os.path.join(DATASET_PATH, 'test'))
模型训练:
1# 初始化YOLOv8模型
2model = YOLO('yolov8n.pt')
3
4# 转换VOC格式到YOLO格式
5def convert_voc_to_yolo(annotations, image_shape=(640, 640)):
6    yolo_annotations = []
7    for ann in annotations:
8        converted = []
9        for obj in ann:
10            x_center = (obj[0] + obj[2]) / 2 / image_shape[1]
11            y_center = (obj[1] + obj[3]) / 2 / image_shape[0]
12            width = (obj[2] - obj[0]) / image_shape[1]
13            height = (obj[3] - obj[1]) / image_shape[0]
14            converted.append([0, x_center, y_center, width, height])
15        yolo_annotations.append(converted)
16    return yolo_annotations
17
18# 定义训练参数
19EPOCHS = 100
20BATCH_SIZE = 16
21
22# 转换并训练模型
23train_yolo_annots = convert_voc_to_yolo(train_annotations)
24val_yolo_annots = convert_voc_to_yolo(val_annotations)
25
26results = model.train(data='street_banner_detection.yaml', epochs=EPOCHS, batch=BATCH_SIZE)
模型检测:
1# 加载训练好的模型
2model = YOLO('best.pt')
3
4# 检测图像
5def detect_street_banners(image):
6    results = model.predict(image)
7    for result in results:
8        boxes = result.boxes
9        for box in boxes:
10            x1, y1, x2, y2 = box.xyxy[0]
11            conf = box.conf
12            class_id = box.cls
13            
14            # 显示结果
15            cv2.rectangle(image, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
16            cv2.putText(image, f'Banner, Conf: {conf:.2f}', (int(x1), int(y1)-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
17    
18    return image
19
20# 测试图像
21test_image = cv2.imread('path/to/test_image.jpg')
22result_image = detect_street_banners(test_image)
23cv2.imshow('Detected Street Banners', result_image)
24cv2.waitKey(0)
25cv2.destroyAllWindows()
配置文件 street_banner_detection.yaml
 

yaml

深色版本

1train: path/to/train/images
2val: path/to/val/images
3test: path/to/test/images
4
5nc: 1  # Number of classes
6names: ['Banner']  # Class name
7
8# Training parameters
9batch_size: 16
10epochs: 100
11img_size: [640, 640]  # Image size
使用指南:
  1. 数据准备:确保数据集路径正确,并且数据集已准备好。
  2. 模型训练:运行训练脚本,等待训练完成。
  3. 模型检测:使用训练好的模型进行检测,并查看检测结果。
结语:

本数据集提供了一个高质量的道路横幅检测数据集,支持自动化横幅检测、城市治理等多个应用场景。通过利用该数据集训练的模型,可以提高街道横幅检测的效率和准确性。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1537073.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

滑坡落石检测数据集

滑坡落石检测数据集 1500张 滑坡落石 带标注 voc yolo 项目背景: 滑坡落石是地质灾害中的一种常见现象,它对人类生活和基础设施构成了严重威胁。及时准确地检测滑坡落石对于预防灾害发生、减少损失至关重要。传统的检测方法往往依赖于人工巡查&#xff…

【Python】高效图像处理库:pyvips

月亮慢慢变圆,日子慢慢变甜。 在图像处理领域,pyvips 是一个轻量级且高效的库,适合处理大规模图像、实现高性能的操作。相较于其他常见的图像处理库如 PIL 或 OpenCV,pyvips 以其低内存占用和出色的速度脱颖而出。本文将介绍 pyv…

第312题|二重积分求旋转体体积(二)|武忠祥老师每日一题

解题思路:先画出图像,再利用旋转体体积计算公式进行解题。 1. 旋转体体积计算公式: 2.点到直线计算公式: 有了上面两条知识储备之后我们开始计算。 第一步:先计算出点到直线的距离: ymx,y-mx…

清理Go/Rust编译时产生的缓存

Go Mac 1T的磁盘频频空间高级,发现是/Users/yourname/Library/Caches/go-build 目录占用了大量空间。 此目录保存来自 Go 构建系统的缓存构建工件。 如果目录太大,请运行go clean -cache。 运行go clean -fuzzcache以删除模糊缓存。 当时直接手工清理了…

【UE5 C++课程系列笔记】01——Visual Studio环境安装

1. 进入Visual Studio 官网,点击下载 下载社区版即可 下载后点击应用程序开始安装 2. 在“工作负荷”中,勾选如下选项 在“单个组件”中,勾选如下选项: 3. 等待下载安装 4. 安装好后,点击“继续但无需代码” 选择“工具…

机器学习-梯度下降实验一

import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split, KFold from sklearn.metrics import mean_squared_error, r2_score from mpl_toolkits.mplot3d import Axes3D # 用于3D图plt.rcParams[fon…

LEAN 赋型唯一性(Unique Typing)之 κ 简化 (κ reduction)

在《赋型唯一性的证明过程简介》 提及到,κ 简化 (κ reduction)概念的引入,是为了证明,在不考虑 证据不区分(Proof Irrelevance)的情况,表达式具备唯一常态(Unique norm…

基于paddleocr的批量图片缩放识别

说明 在进行ocr文字识别的时候,有时候我们需要使用批量测试的功能,但是有些图片会识别失败或者个别根本识别不出来,这时候我们可以通过对原图片进行缩放,提高图像的分辨率,然后再次识别,这样可以大大提高图…

轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数

示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4]示例 2: 输入:nums [-1,-100,3,99], k 2 输出:[3,99,-1,-100] 解释: 向右…

网络安全学习(四)Burpsuite

经过测试,发现BP需要指定的JAVA才能安装。 需要的软件已经放在我的阿里云盘。 (一)需要下载Java SE 17.0.12(LTS) Java Downloads | Oracle 1.2023版Burp Suite 完美的运行脚本的环境是Java17 2.Java8不支持 看一下是否安装成功&#xff0c…

智慧火灾应急救援:无人机、直升机航拍视角下的火灾应急救援检测数据集代码

智慧火灾应急救援:无人机、直升机航拍视角下的火灾应急救援检测数据集 引言 随着科技的发展,无人机、直升机等飞行器在火灾应急救援中的应用越来越广泛。这些飞行器不仅能快速到达火场,而且可以通过搭载的高清摄像机和其他传感器获取火场的…

编辑器拓展(入门与实践)

学习目标:入门编辑器并实现几个简单的工具 菜单编辑器 MenuItem [MenuItem("编辑器拓展/MenuItem")]static void MenuItem(){Debug.Log("这是编辑器拓展");} } 案例 1:在场景中的 GameObject 设置 1. 设置面板2. 直接创建 GameObject 结构…

jvisualvm工具使用-jvm本地调优(一)

前言: 公司的项目上线后,吞吐量越来越小了,也没有特殊异常抛出,测试环境、预生产又一切正常,反复看了日志,不纠结了,直接把可能影响的因素复制到本地开始jvm调试,随便记录贴个安装教…

linux概述与安装虚拟机

linux 1.Linux 概述 Linux 是一个极具影响力和广泛应用的操作系统。 它起源于芬兰人林纳斯・托瓦兹在大学期间编写的开源内核。Linux 作为一个整体,是免费供用户使用的,具备多用户、多任务、支持多线程的强大特性。 Linux 内核是其核心部分&#xff…

鸿蒙 ArkUI组件二

ArkUI组件(续) 文本组件 在HarmonyOS中,Text/Span组件是文本控件中的一个关键部分。Text控件可以用来显示文本内容,而Span只能作为Text组件的子组件显示文本内容。 Text/Span组件的用法非常简单和直观。我们可以通过Text组件来显…

上海餐饮数据分析与可视化

数据下载入口:PandasPyecharts | 上海市餐饮数据分析可视化 - Heywhale.com 数据介绍 类别:餐饮类别的名称(如烧烤、美食、粤菜等)行政区:餐厅所在行政区的名称(如浦东新区、闵行区等)点评数&a…

【Spring框架精讲】进阶指南:企业级Java应用的核心框架(Spring5)

文章目录 【Spring框架精讲】进阶指南:企业级Java应用的核心框架(Spring5)1.Spring框架快速入门1.1七大核心模块1.1.1 Spring Core1.1.2 Spring-Beans1.1.3 Spring Context1.1.4 Spring-Expression1.1.5 Spring AOP1.1.6 JDBC和DAO模块(Spring DAO&#…

C语言 | Leetcode C语言题解之第412题Fizz Buzz

题目&#xff1a; 题解&#xff1a; /*** Note: The returned array must be malloced, assume caller calls free().*/ char ** fizzBuzz(int n, int* returnSize) {/*定义字符串数组*/char **answer (char**)malloc(sizeof(char*)*n);for(int i 1;i<n;i){/*分配单个字符串…

visual prompt tuning和visual instruction tuning

visual prompt tuning&#xff1a;作为一种微调手段&#xff0c;其目的是节省参数量&#xff0c;训练时需要优化的参数量小。 输入&#xff1a;视觉信息image token可学习的prompt token 处理任务&#xff1a;比如常见的分类任务 visual prompt tuning visual instruction tu…

Microsoft 365 Copilot: Wave 2

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…