DocLayout-YOLO使用指南

在这里插入图片描述
在线体验:https://huggingface.co/spaces/opendatalab/DocLayout-YOLO
论文地址:https://arxiv.org/abs/2410.12628
代码地址:https://github.com/opendatalab/DocLayout-YOLO

一. 安装

由于我只想把DocLayout-YOLO当做工具使用,因此使用pip安装

pip install doclayout-yolo

二. 代码封装

import os
import cv2
import torch
from doclayout_yolo import YOLOv10


class DocLayoutYOLO(YOLOv10):
    def __init__(self, model_path="./doclayout_yolo_docstructbench_imgsz1024.pt"):
        super().__init__(model_path)
        self.model.names = {0: 'title', 1: 'plain text', 2: 'abandon', 3: 'figure', 4: 'figure_caption', 
                      5: 'table', 6: 'table_caption', 7: 'table_footnote', 8: 'isolate_formula', 9: 'formula_caption'}
        self.model.device = 'cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu'
        print(f"Using device: {self.model.device}")

    def predict(self, image_path, imgsz=1024, conf=0.5):
        results = super().predict(source=image_path, imgsz=imgsz, conf=conf, device=self.model.device)
        
        if results and len(results) > 0:
            result = results[0]
            boxes = result.boxes.xyxy
            cls = result.boxes.cls
            conf_scores = result.boxes.conf
            orig_img = result.orig_img
            
            class_names = []
            for i in range(len(boxes)):
                cls_name = self.model.names[int(cls[i])]
                class_names.append(cls_name)
            
            return boxes.int().tolist(), class_names, conf_scores.tolist(), orig_img
        else:
            return torch.int().empty(0, 4).tolist(), [], torch.empty(0).tolist(), None


def main():
    """
    测试示例
    """
    model = DocLayoutYOLO()
    boxes, names, conf, orig_img = model.predict("./test.jpeg")
    print(boxes)    # 框的坐标
    print(names)    # 框的类别
    print(conf)     # 框的置信度


if __name__ == "__main__":
    main()

三. 效果

在这里插入图片描述
在这里插入图片描述

<think>好的,我需要帮助用户找到DL-30模块的使用教程或文档。首先,我得确认DL-30模块是什么类型的设备。根据用户提供的引用,我看到提到了基恩士的DL-EP1模块,这可能与DL-30有关联,但不确定是否同一系列。引用[2]提到的是基恩士DL-EP1的通讯说明书,这可能是一个类似的模块,所以或许DL-30也是基恩士的产品? 接下来,我需要检查用户提供的参考文献是否有直接相关的信息。引用[2]是基恩士DL-EP1的通讯说明书,这可能包含硬件连接、通讯协议等信息,但用户询问的是DL-30,可能需要确认是否同一品牌或系列。如果没有直接信息,可能需要建议用户查阅基恩士的官方网站或联系技术支持。 另外,用户提供的其他引用如mooc-dl和gallery-dl是关于下载器的项目,可能与DL-30无关。引用[4]提到的DocLayout-YOLO是目标检测相关的,似乎也不相关。因此,重点应放在引用[2]上,但需要确认是否适用于DL-30。 如果DL-30是基恩士的模块,那么基恩士官网可能会有相应的手册。此外,用户可能需要访问基恩士的官方网站,搜索DL-30的产品页面,那里通常会提供用户手册、技术文档和示例代码。如果官网没有公开资料,可能需要联系他们的技术支持获取。 另外,考虑到用户可能无法访问某些资源,可以建议在CSDN文库或其他技术文档平台搜索,例如引用[2]提到的资源可能存放在CSDN文库中,用户可以在那里查找DL-30的相关文档。还可以建议用户检查模块附带的光盘或纸质文档,通常硬件产品会提供这些资料。 如果这些途径都不可行,可能需要询问更具体的模块功能或应用场景,以便进一步缩小搜索范围。例如,DL-30是用于数据采集、通讯还是其他用途?不同的应用可能有不同的文档资源。 总结步骤: 1. 确认DL-30是否为基恩士产品,查看引用[2]是否相关。 2. 建议访问基恩士官网或联系技术支持获取官方文档。 3. 推荐在CSDN文库等平台搜索用户手册。 4. 检查模块附带的资料。 5. 如仍无法找到,建议用户提供更多细节以便进一步帮助。</think>关于DL-30模块的使用方法,以下是分步骤说明: 1. **确认模块品牌与型号** DL-30模块可能属于工业自动化领域的设备(如基恩士Keyence品牌)。需首先确认模块的具体品牌,因不同厂商的文档获取方式不同。若为基恩士产品,可参考其官方资源[^2]。 2. **获取官方文档** - **访问基恩士官网**:在[基恩士中国官网](https://www.keyence.com.cn/)搜索“DL-30”或通过产品分类查找对应模块。 - **联系技术支持**:若官网未公开文档,可通过在线客服或电话直接索取技术手册。 - **配套光盘/纸质文档**:新购模块通常附带安装指南和通讯协议说明书。 3. **第三方技术平台搜索** - **CSDN文库**:搜索关键词“DL-30 使用说明书”或“DL-30 通讯协议”,可能找到用户上传的非官方资源(需注意版权)[^2]。 - **技术论坛**:访问工控论坛(如中华工控网)查询相关讨论。 4. **功能验证与示例代码** 若模块支持编程控制(如PLC或Python),需根据通讯协议(如Modbus、TCP/IP)编写接口。例如,基恩士模块常用指令如下: ```python import socket # 示例:通过TCP/IP连接DL-30模块 def send_command(ip, port, command): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect((ip, port)) s.sendall(command.encode()) response = s.recv(1024) return response ``` 5. **注意兼容性与安全** - 确认模块的输入电压、接口类型与现有系统匹配。 - 操作前断开高风险负载,避免短路或过载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值