木材缺陷分割数据集,10个不同的类别,包括活节、死节、树脂、带裂缝的节、裂缝、骨髓、石英岩、丢节、蓝斑和过生长区

detectron2安装使用与踩坑记录 detectron2安装使用与踩坑记录,detectron2是Facebook开源的一个视觉检测相关的库,建立在Detectron和maskrcnn-benchmark基础之上,可以进行目标检测、语义分割、全景分割,以及人体体姿骨干的识别。 阅读详情

木材缺陷分割数据集,该数据集包含20276张图像,其中包含86803个标记的对象,属于10个不同的类别,包括活节、死节、树脂、带裂缝的节、裂缝、骨髓、石英岩、丢节、蓝斑和过生长区。共162GB在这里插入图片描述
实时监控系统集成示例

import cv2
import torch
from detectron2.config import get_cfg
from detectron2.modeling import build_model
from detectron2.checkpoint import DetectionCheckpointer
from detectron2.data import MetadataCatalog, DatasetCatalog
from detectron2.utils.visualizer import Visualizer
from detectron2.data.datasets import register_coco_instances

# 注册数据集
register_coco_instances("wood_train", {}, "./wood_defect_dataset/annotations/instances_default.json", "./wood_defect_dataset/images")
register_coco_instances("wood_val", {}, "./wood_defect_dataset/annotations/instances_default.json", "./wood_defect_dataset/images")

# 加载配置文件
cfg = get_cfg()
cfg.merge_from_file("./config.yaml")
cfg.MODEL.WEIGHTS = "./output/model_final.pth"  # 替换为你训练好的模型路径
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5  # 设置置信度阈值

# 构建模型
model = build_model(cfg)
DetectionCheckpointer(model).load(cfg.MODEL.WEIGHTS)
model.eval()

# 打开摄像头或视频流
cap = cv2.VideoCapture(0)  # 0 表示默认摄像头,也可以是视频文件路径

while True:
    ret, frame = cap.read()
    if not ret:
        break
    
    # 进行预测
    inputs = [{"image": torch.as_tensor(frame.transpose(2, 0, 1))}]
    with torch.no_grad():
        outputs = model(inputs)[0]
    
    # 获取预测结果
    boxes = outputs["instances"].pred_boxes.tensor.cpu().numpy()
    scores = outputs["instances"].scores.cpu().numpy()
    classes = outputs["instances"].pred_classes.cpu().numpy()
    masks = outputs["instances"].pred_masks.cpu().numpy()
    
    # 绘制边界框和掩码
    metadata = MetadataCatalog.get("wood_val")
    v = Visualizer(frame[:, :, ::-1], metadata=metadata, scale=1.2)
    out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
    
    # 显示结果图像
    cv2.imshow('Wood Defect Detection', out.get_image()[:, :, ::-1])
    
    # 检查按键退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放资源
cap.release()
cv2.destroyAllWindows()


好的,我们将使用Detectron2来训练和测试木材缺陷分割数据集。以下是详细的步骤,包括数据集准备、训练、评估和可视化。

### 环境准备

首先,确保你已经安装了Detectron2和其他必要的Python库:

```bash
# 安装pytorch
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118  # 根据你的CUDA版本选择合适的命令

# 安装detectron2
pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu118/index.html  # 根据你的CUDA版本选择合适的命令

# 安装其他必要的库
pip install numpy opencv-python-headless matplotlib pycocotools

数据集结构

假设你的数据集目录结构如下:

wood_defect_dataset/
├── images/
│   ├── img_00001.jpg
│   ├── img_00002.jpg
│   └── ...
└── annotations/
    ├── instances_default.json  # COCO格式的标注文件

创建配置文件 config.yaml

我们需要创建一个配置文件来描述训练参数和数据集路径。Detectron2提供了许多预定义的配置文件,我们可以在此基础上进行修改。

注册数据集

我们需要注册数据集以便Detectron2能够找到并加载它们。

编写训练脚本

下面是一个完整的训练脚本,用于使用Mask R-CNN训练木材缺陷分割数据集:

运行训练脚本

将上述代码保存为一个Python文件(例如 train_wood_defects_maskrcnn.py),然后在终端中运行:

python train_wood_defects_maskrcnn.py --config-file config.yaml

解释

  1. 注册数据集: 使用 register_coco_instances 函数注册训练和验证数据集。
  2. 设置日志记录器: 使用 setup_logger 设置日志记录器。
  3. 配置文件: 使用 get_cfg 加载配置文件,并根据需要进行调整。
  4. 自定义评估器: 继承 DefaultTrainer 并重写 build_evaluator 方法以使用 COCOEvaluator。
  5. 主函数: 设置参数、构建模型、加载权重、启动训练或评估。

可视化预测结果

使用 Detectron2 进行预测和可视化

Detectron2 提供了方便的工具来进行预测和可视化。以下是一个完整的脚本,用于加载训练好的模型并对测试集中的图像进行预测和可视化:

解释

  1. 注册数据集: 使用 register_coco_instances 函数注册训练和验证数据集。
  2. 加载配置文件: 使用 get_cfg 加载配置文件,并指定训练好的模型权重路径。
  3. 构建模型: 使用 build_model 构建模型并加载权重。
  4. 测试集路径: 指定测试集图像路径。
  5. 创建输出目录: 创建用于保存结果图像的目录。
  6. 获取元数据: 获取数据集的元数据信息。
  7. 遍历测试集中的所有图像: 使用 Path('./wood_defect_dataset/images').glob('*.jpg') 获取所有测试图像路径。
  8. 读取图像: 使用 cv2.imread() 读取图像。
  9. 预测: 使用训练好的模型对图像进行预测。
  10. 可视化: 使用 Visualizer 将预测结果绘制到图像上。
  11. 保存结果图像: 将处理后的图像保存到指定的输出目录。

运行脚本

将上述代码保存为一个Python文件(例如 evaluate_and_visualize_wood_defects_maskrcnn.py),然后在终端中运行:

python evaluate_and_visualize_wood_defects_maskrcnn.py

结果

运行脚本后,你会在 ./wood_defect_dataset/output 目录中看到带有预测结果的图像。这些图像会在检测到的木材缺陷区域上绘制边界框、标签和掩码。

通过这些步骤,你可以全面地评估和可视化你的木材缺陷分割模型的表现。如果需要进一步优化模型,可以根据评估结果调整超参数或增加数据增强技术。

部署到工业监控系统

为了将训练好的模型部署到工业监控系统中,可以按照以下步骤进行:

  1. 导出模型:
    将训练好的YOLOv8模型导出为ONNX格式或其他适合部署的格式。

    python export.py --weights runs/segment/wood_defect_detection/exp/weights/best.pt --include onnx
    
  2. 集成到监测系统:
    将导出的模型集成到现有的工业监测系统中。这可能涉及到编写推理代码,使用OpenCV或其他库读取实时视频流,并进行预测。

  3. 实时监控:
    实现一个实时监控系统,定期捕获木材图像并使用模型进行预测。如果检测到缺陷,触发警报机制。

  4. 警报机制:
    设计一个警报机制,当检测到木材缺陷时,自动发送通知给相关人员或机构。

以下是一个简单的示例,展示如何将训练好的模型集成到实时监控系统中:

解释

  1. 注册数据集: 使用 register_coco_instances 函数注册训练和验证数据集。
  2. 加载配置文件: 使用 get_cfg 加载配置文件,并指定训练好的模型权重路径。
  3. 构建模型: 使用 build_model 构建模型并加载权重。
  4. 打开摄像头或视频流: 使用 cv2.VideoCapture(0) 打开默认摄像头,或者传入视频文件路径。
  5. 实时预测: 在循环中不断读取帧并进行预测。
  6. 绘制边界框和掩码: 使用 Visualizer 将预测结果绘制到图像上。
  7. 显示结果图像: 使用 cv2.imshow() 显示处理后的图像。
  8. 检查按键退出: 按下 ‘q’ 键退出循环。

运行脚本

将上述代码保存为一个Python文件(例如 real_time_monitoring_wood_defects.py),然后在终端中运行:

python real_time_monitoring_wood_defects.py

结果

运行脚本后,你会看到一个实时监控窗口,其中会显示当前摄像头捕捉的画面,并在检测到的木材缺陷区域上绘制边界框、标签和掩码。

通过这些步骤,你可以实现一个完整的木材缺陷检测系统,提高木材加工的质量和效率。


一键体验Detectron2框架中的所有预训练模型 阅读详情

相关推荐

Detectron 2的简介、安装与demo运行

简介 Detectron 2是基于 PyTorch 框架的目标检测平台,源码地址。 新模型Detectron2 包括原始 Detectron 中的所有模型,例如 Faster R-CNN,Mask R-CNN,RetinaNet 和 DensePose。除此之外,Detectron2 还加入了几个新模型,包括:Cascade R-CNN,Panoptic FPN 和 TensorMask,未来...

贾路飞的博客 7470

Detectron2的入门学习

文章目录前言一、Detectron2的安装二、简单的运行案例1.利用已有的模型进行各种测试2.训练自己的模型总结 前言   detectron2是Facebook的一个机器视觉相关的库,建立在Detectron和maskrcnn-benchmark基础之上,可以进行目标检测、语义分割、全景分割,以及人体体姿骨干的识别。这个项目在GitHub上已经有超过了20k的星星。 一、Detectron2的安装   在Detectron2的官网上已经给出了Linux平台的安装方法。在这里介绍另外一个常用的平台即wi

Lonery的博客 1万+

缺陷检测数据集2,带定位标签

缺陷检测数据集,带标签。数据量500+。从网站上下载的。

detectron2的简介和配置

detectron2 前言:距离上一篇博客过了两年,几近放弃DL和RL这非常有趣的领域,近日重拾DL,在摸索中打算整理一下深度学习框架,争取做到“探索”和“利用“相统一hhh,还是要紧跟潮流啊。因为重装了一遍服务器并且更新了显卡驱动,很多基础的库需要重新安装。 detectron2简介(以下简称DET2) detectron2是facebook AI research(FAIR)重构detectron的深度学习框架,是2020年最火的深度学习框架(另外还有mmdetection,simplede..

d948142375的博客 3万+

CELF(Cost-Effective Lazy Forward selection)具有成本效益的惰性前向选择算法

CELF(Cost-Effective Lazy Forward selection)算法解析      引言:在社交网络影响力最大化问题的求解过程中,我们往往需要去选择一些目标种子结点作为信息初始传播的源头。贪婪算法在传播效果上的解决可以达到影响的最大化,但是在时间复杂度上面显得确十分糟糕。为此CELF算法应势而生,CELF算法利用了函数次模性的特点,在第一轮选择种子结点时,计算网络中所有节点的边际收益,但将在之后的过程中,不再做网络节点边际收益的重复计算,这相对于传统的贪婪算法,将在时间上得到非常明显的

hahaxq的博客 2477

# 多用户 JupyterHub 配置教程(通用 Linux 服务器版)

以上即是通用 Linux 服务器上的多用户 JupyterHub 实战配置。从安装认证与 Spawner 选择自动创建系统用户到反代与运维,覆盖了小团队到中等规模的主流场景。根据团队增长与合规要求,你可以进一步引入、统一身份源(LDAP/OAuth2/Keycloak)与资源配额治理,平滑演进到企业级部署。

数字化老司机 1288

如何使用Detectron2来训练和测试木材缺陷分割数据集。 含20276张图像,其中包含86803个标记的对象,属于10个不同的类别 实现一个完整的木材缺陷检测系统

如何使用Detectron2来训练和测试木材缺陷分割数据集。 含20276张图像,其中包含86803个标记的对象,属于10个不同的类别 实现一个完整的木材缺陷检测系统

QQ_1309399183的博客 1098

eQTL:连接突变与基因表达的桥梁

欢迎关注”生信修炼手册”!在高等生物中,很多的重要性状都为数量形状,比如农作物的产量,人类复杂疾病(高血液,糖尿病)等等。对于这些数量性状而言,往往受到多个基因的调控作用。为了更好的开展...

庐州月光的博客 7067

【Detectron2】使用 Detectron2 训练基于 coco 数据集的目标检测网络

用 Detectron2 训练基于 coco 数据集的目标检测网络

呆呆的猫的博客 1万+

达梦DCA2023年10月培训及考试总结

本次培训共分三天,培训内容不单单是DCA的单机安装、实例创建、库表操作等,培训内容是把关系型数据库的理论及DM8的产品结合起来讲,很实用。具体的考试则是需要个人大量的线下练习,考试总体而言都是培训讲过的内容,只要用心听,好好练习,哪怕是没有计算机基础的童鞋也能考过。提示:以下是本篇文章正文内容,下面案例可供参考总体而言,本次考试不是很难,用心准备,考前认真听讲,考后多次练习,基本都能通过。

qinjuao的博客 2320

把 SAP BTP Destination 写进 MTA:一段 com.sap.application.content 配置背后的部署编排学

MTA内容模块解析:SAP BTP中的声明式部署机制 本文详细解析了mta.yaml中com.sap.application.content模块在SAP BTP云环境中的作用。该模块通过声明式配置实现内容投递,无需编译或部署代码。核心功能包括: Destination创建:通过content-target:true标识将配置投递到Destination服务 HTML5应用部署:将静态资源投递到HTML5 Application Repository 安全集成:配置XSUAA服务实现OAuth2用户令牌交换

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 164

Detectron2(到底是怎么用的?)

结合官方文档的Detectron2介绍

p3116002589的博客 2820

CoppeliaSim和Python进行无人机联合仿真

CopeeliaSim和Python进行无人机轨迹跟踪联合仿真。首先建立起CoppeliaSim和Python的连接,其次在Python中生成轨迹,CoppeliaSim仿真环境中的无人机进行跟踪,并绘制出轨迹曲线,有每一步详细的教学。

加斯顿工程师的博客 987

A Generic Deep-Learning-Based Approach for Automated Surface Inspection-论文阅读笔记

本文提出了一种通用的ASI方法。该方法利用预训练的DL网络提取patch特征,根据patch特征生成缺陷热图,并对热图进行阈值分割,预测缺陷区域。该方法不需要大规模的训练数据,因为patch特征是从预训练模型中提取的高层表示,无需任何训练。此外,提议的方法通过基于训练好的patch分类器生成缺陷热图来识别缺陷区域。实验结果表明,该方法适用于小数据集,大大降低了数据采集成本,并且该方法适用于多种类型的表面缺陷数据集。......

weixin_43749999的博客 1964

RDKit | 基于Pytorch和RDKit建立QSAR模型

QSAR 定量构效方法(quantitative structure-activity relationship, QSAR)是应用最为广泛的药物设计方法。所谓定量构效方法就是通过一些数理统计方法建立其一系列化合物的生理活性或某种性质与其物理化学性质之间的定量关系,通过这些定量关系。可以预测化合物的生理活性或某些性质,指导我们设计出具有更高活性的化合物。 早在...

DrugOne 5077

Oracle 查看 rman 备份情况 SQL 语句

每天一个 DBA 小知识,助你更进一步!

LuciferLiu_DBA 3117

detectron2训练自己的数据集

关于detectron2的代码跑通过程

传统图像处理,深度学习,目标检测(分类,检测,分割),多目标追踪,部署等 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Detectron2入门教程

0. 前言 目标:走马观花,两天时间浏览Detectron2源码,稍微记录一下。 与 TensorFlow Object Detection API、mmdetection 一样,Detectron2 也是通过配置文件来设置各种参数,所有的相关内容都像搭积木一样一点一点拼凑起来。 我自己感觉,一般所有代码都可以分为三个部分,所以看Detectron2的源码也分为以下三个部分。 数据处理...

weixin_36670529的博客 3万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

detectron2安装详细教程+demo测试

win10 下 detectron2 安装详细教程,手把手教你配置!!

Yikou的个人技术博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

深度学习 | Detectron2使用指南

文章目录1. Detectron2安装1.1 Linux1.2 Windows1.2.1 VS2019 C++编译环境1.2.2 pycocotools1.2.3 Detectron22. 自定义数据集2.1 关于COCO格式2.2 注册数据集2.3 可视化工具2.4 自定义数据增强3. 自定义模型3.1 特征提取网络(backbone)3.2 候选框生成器(proposal_generator)3.3 检测器(roi_heads)3.4 模型框架(meta_arch)4. 模型训练4.1 默认训练4.2

Justlovesmile的博客 1万+

【Detectron2】Detectron2学习笔记

Detectron2 操作介绍

呆呆的猫的博客 6918

Windows 11 系统安装 Detectron2 详细指南与实战应用

Detectron2 是 Facebook AI Research (FAIR) 开发的一款开源目标检测与图像分割框架,作为 Detectron 和 maskrcnn-benchmark 的继任者,它提供了更加灵活、高效和可扩展的代码库。该框架支持 Facebook 内部的众多计算机视觉研究项目和生产应用,已经成为工业界和学术界广泛采用的标杆工具。4.3.1 准备自定义数据# 注册自定义数据集# 获取数据集元数据print(f"类别数量:len。

AI技术改变世界 2249

零基础视角----学习detectron2如何训练自己数据集

前言:关于VOC数据集 下面以VOC 2007为例分析一下里面数据集格式: ├── Annotations 进行 detection 任务时的标签文件,xml 形式,文件名与图片名一 一对应 ├── ImageSets 包含三个子文件夹 Layout、Main、Segmentation,其中 Main 存放的是分类和检测的数据集分割文件 ├── JPEGImages 存放 .jpg 格式的图片文件 ├── SegmentationClass 存放按照 class 分割的图片 └── Segmentatio

weixin_44881441的博客 6328
上一篇: 航空影像的输电线路与输电塔分割数据集,航拍输电线路与输电塔分割数据集
下一篇: 如何使用GA-SVM(遗传算法优化的支持向量机)处理小样本_DGA变压器故障诊断相关 变压器油中溶解气体,7种特征量的小样本数据集,5种特征量的数据集
DeepLearningYolo
博客等级 码龄1年 94粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值