电气设备施工现场风险状态判断ai模型训练数据集

news/2024/11/14 12:43:25/

电气设备施工现场风险状态判断ai模型训练数据集
id:18 电气设备施工现场工人人工智能学习数据和工作环境安全数据,建立系统化管理体系,改变全球EHS范式,预防工业事故。数据集记录了387709例子电力设施建设以及施工现场相关的灾害安全环境数据,格式为jpg;同时以边界框、关键点作为标签,主要以json记录。

数据集名称

电气设备施工现场风险状态判断AI模型训练数据集

数据集描述

数据集旨在用于训练人工智能模型,以识别和判断电气设备施工现场的风险状态,从而帮助建立系统化的管理体系,预防工业事故。数据集包含了大量与电力设施建设和施工现场相关的灾害安全环境数据,可用于训练模型识别工人在施工过程中的不安全行为和环境风险。

数据规模

数据集共记录了387,709个样本,每个样本都是一个与电气设备施工现场相关的图像,格式为JPG。

标签格式

数据集中的标签采用了边界框(bounding boxes)和关键点(keypoints)的方式进行标注,主要以JSON格式记录。这种标注方式使得模型不仅可以识别出图像中的对象,还可以精确到对象的具体位置和姿态。

标注类别

数据集中的标注类别可能包括但不限于:

  • 工人未佩戴安全帽或安全带。
  • 高空作业时无安全措施。
  • 施工现场的其他不安全行为或环境因素。
  • 关键点标注(例如,工人头部、肩膀、手臂等的位置)。
数据集结构

典型的JSON标签文件结构如下:

1{
2    "image_id": "000001",
3    "width": 1920,
4    "height": 1080,
5    "objects": [
6        {
7            "category": "未佩戴安全帽",
8            "bbox": [100, 150, 200, 300],
9            "keypoints": [150, 200, 1, 200, 250, 2, ...]
10        },
11        {
12            "category": "高空作业无人监护",
13            "bbox": [300, 200, 500, 400],
14            "keypoints": [350, 250, 1, 400, 350, 2, ...]
15        }
16    ]
17}
数据来源

数据来源于真实的电气设备施工现场,涵盖了不同的时间段、天气条件和地理环境,以确保数据集的多样性和实用性。

应用场景

数据集可以用于训练和评估机器学习模型,在电力施工和工业安全领域有着广泛的应用前景,包括但不限于:

  • 自动识别施工现场的安全隐患。
  • 辅助现场管理人员及时发现并纠正不安全行为。
  • 提升施工人员的安全意识。
  • 实现智能化的风险管理和预防机制。

示例代码

下面是一个使用Python和相关库(如OpenCV、PyTorch等)来加载和展示数据集的简单示例代码:

1import os
2import json
3import cv2
4import numpy as np
5from PIL import Image
6
7# 数据集路径
8dataset_path = 'path/to/dataset/'
9
10# 加载图像和标签
11def load_image_and_labels(image_path, label_path):
12    # 读取图像
13    image = Image.open(image_path).convert('RGB')
14    # 加载JSON标签文件
15    with open(label_path, 'r') as f:
16        data = json.load(f)
17    return image, data
18
19# 展示图像
20def show_image_with_boxes(image, data):
21    img = np.array(image)
22    for obj in data['objects']:
23        category = obj['category']
24        bbox = obj['bbox']
25        keypoints = obj['keypoints']
26        
27        # 绘制边界框
28        cv2.rectangle(img, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (0, 255, 0), 2)
29        
30        # 绘制关键点
31        for i in range(0, len(keypoints), 3):
32            if keypoints[i + 2] == 1:  # 可见的关键点
33                cv2.circle(img, (int(keypoints[i]), int(keypoints[i + 1])), 5, (0, 0, 255), -1)
34        
35        # 添加类别标签
36        cv2.putText(img, category, (bbox[0], bbox[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
37    
38    cv2.imshow('Image with Boxes and Keypoints', img)
39    cv2.waitKey(0)
40    cv2.destroyAllWindows()
41
42# 主函数
43if __name__ == "__main__":
44    images_dir = os.path.join(dataset_path, 'JPEGImages')
45    labels_dir = os.path.join(dataset_path, 'Annotations')
46    
47    # 获取图像列表
48    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
49    
50    # 随机选择一张图像
51    selected_image = np.random.choice(image_files)
52    image_path = os.path.join(images_dir, selected_image)
53    label_path = os.path.join(labels_dir, selected_image.replace('.jpg', '.json'))
54    
55    # 加载图像和标签
56    image, labels = load_image_and_labels(image_path, label_path)
57    
58    # 展示带有标注框和关键点的图像
59    show_image_with_boxes(image, labels)

这段代码展示了如何加载图像和其对应的JSON标签文件,并在图像上绘制边界框和关键点。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。


http://www.ppmy.cn/news/1527920.html

相关文章

发现的一种很简单的set/get封装办法

参考&#xff1a; C 中简化set/get 函数封装的 方式_c get set-CSDN博客 定义一个模板类 你可以创建一个模板类Property&#xff0c;用于封装设置和获取功能&#xff1a; template<typename T> class Property { private:T value;public:void set(const T& v) {va…

代码随想录算法训练营43期 | Day 21 —— 108.将有序数组转换为二叉搜索树、 538.把二叉搜索树转换为累加树

代码随想录算法训练营 代码随想录算法训练营43期 | Day108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树 代码随想录算法训练营43期 | Day 108.将有序数组转换为二叉搜索树 class Solution { private:TreeNode* traversal(vector<int>& nums, int left…

Java项目实战II基于Java+Spring Boot+MySQL的房屋租赁管理系统的设计与实现

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着城市租…

OpenAIAPI报错和ATL延迟优化

Open AI API报错&#xff1a; ————————————————加更———————————————————— 1.API Error: {“error”:{“message”:“无效的令牌”,“type”:“one_api_error”}}/报错403 调用接口不对&#xff0c;openkey的调用需要对应使用https://open…

C#和数据库高级:抽象类和抽象方法

文章目录 一、为什么使用抽象类和抽象方法&#xff1f;1.1、父类与子类的相互转换 二、抽象类和抽象方法2.1、抽象类的定义和方法声明规范2.2、使用继承多态的机制解决问题 三、抽象类的概念和使用特点总结 一、为什么使用抽象类和抽象方法&#xff1f; 1.1、父类与子类的相互…

二十种编程语言庆祝中秋节

二十种编程语言庆祝中秋节 文章目录 二十种编程语言庆祝中秋节中秋快乐&#xff01;家人们 &#x1f973;一 Python二 C三 C四 Java五 C#六 Perl七 Go八 Asp九 PHP十 JavaScript十一 JavaScript HTML十二 Visual Basic十三 早期 VB十四 Visual C十五 Delphi十六 Shell十七 Cobo…

在设计开发中,如何提高网站的用户体验?

在网站设计开发中&#xff0c;提高用户体验是至关重要的。良好的用户体验不仅能提升用户的满意度和忠诚度&#xff0c;还能增加转化率和用户留存率。以下是一些有效的方法和策略&#xff1a; 优化页面加载速度 减少HTTP请求&#xff1a;合并CSS和JavaScript文件以减少HTTP请求…

人工智能——猴子摘香蕉问题

一、实验目的 求解猴子摘香蕉问题&#xff0c;根据猴子不同的位置&#xff0c;求解猴子的移动范围&#xff0c;求解对应的过程&#xff0c;针对不同的目标状态进行求解。 二、实验内容 根据场景有猴子、箱子、香蕉&#xff0c;香蕉挂天花板上。定义多种谓词描述位置、状态等…