0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用英特尔开发板部署YOLOv5完成透明物体目标检测

英特尔物联网 来源:英特尔物联网 2024-12-13 11:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:

杨雪峰 英特尔创新大使

哪吒套件简介

Intel的哪吒(Nezha)开发套件是一款专为边缘AI物联网应用设计的高性能计算平台,搭载了Intel N97处理器、内置IntelUHD Graphics GPU,并提供高达8GB LPDDR5内存与32GB至64GB eMMC存储选项。它支持Windows和Linux操作系统,具备丰富的接口如千兆以太网HDMI 1.4、USB 3.0/2.0以及GPIO等,兼容树莓派扩展板。

此外,该套件采用无风扇设计并集成了TPM 2.0安全模块,适用于自动化、物联网网关、数字标牌及机器人等多种场景,结合OpenVINO工具包可加速深度学习模型推理,便于开发者快速构建高效且安全的解决方案。

YOLOv5简介

YOLOv5是YOLO(You Only Look Once)系列中的一种实时对象检测系统,它以速度快、准确性高而闻名。对于开发者来说,YOLOv5提供了一种简单易用的方法来创建高效的对象检测模型。官方GitHub仓库提供了丰富的资源和示例代码,可以帮助用户快速入门并开始构建自己的检测器。

哪吒套件部署YOLOv5

YOLOv5以其出色的实时性能和高准确性而受到广泛欢迎,并且官方提供了详尽的文档和支持,与其他设备相同,在哪吒套件上部署YOLOv5进行透明物体目标检测时,用户仍需注意一些关键步骤。

首先,确保开发环境已正确配置,包括安装所有必要的依赖项如Python、PyTorch等。接着,准备训练数据集是至关重要的一步,这通常涉及将图像及其标注信息按照特定格式整理好。对于透明物体检测这样的特定任务,可能还需要对模型做一些微调以优化其识别能力。整个过程虽然需要一定的技术背景支持,但借助于丰富的在线资源和社区帮助,即使是初次尝试者也能顺利完成部署。

下面的步骤可以让你在搭载在哪吒套件的windows平台快速上手训练自己的模型。

搭配环境与安装依赖

在win+R中打开cmd,输入以下代码创建并进入一个名为yolov5s, python3.8版本的虚拟环境:

conda create -n yolov5s python=3.8
conda activate yolov5s

克隆仓库:从官方GitHub仓库克隆YOLOv5项目到本地机器。

git clone https://github.com/ultralytics/yolov5
cd yolov5

然后输入以下代码,即可自动下载安装所有需要的库

pip install -r requirements.txt

如果下载速度过慢,可能会导致报错,可以复制下面代码(清华源)到cmd中运行,然后在重新进行上面下载库的步骤:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --ad
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes

Trans10k数据集准备

1.数据集下载

Trans10K是一个公开的大规模透明物体分割数据集,包含10,428张真实场景图像,每张都经过手动标注。它提供了多样化的透明物体样本,如杯子、瓶子和窗户等。数据集分为训练(5,000张)、验证(1,000张)和测试(4,428张)三部分,并进一步细分为简单和困难类别,整个数据集大小约为10.6GB。

可以使用相应的SDK进行下载:

pip install openxlab #安装
pip install -U openxlab #版本升级
import openxlab
openxlab.login(ak=, sk=) #进行登录,输入对应的AK/SK
from openxlab.dataset import info
info(dataset_repo='OpenDataLab/Trans10K') #数据集信息及文件列表查看
from openxlab.dataset import get
get(dataset_repo='OpenDataLab/Trans10K', target_path='/path/to/local/folder/') # 数据集下载
from openxlab.dataset import download
download(dataset_repo='OpenDataLab/Trans10K',source_path='/README.md', target_path='/path/to/local/folder') #数据集文件下载

下载后解压即可。

2.格式化数据

Trans10K数据集通常包含图像及其对应的标注文件。为了与YOLOv5兼容,您需要确保每个图像都有一个对应的.txt文件,其中包含目标框的位置信息。格式如下:

class_index x_center y_center width height

所有坐标都是相对于图像尺寸的归一化值(0.0到1.0之间)。

然而Trans10K的标注格式不是YOLO格式。

a6e96710-b86c-11ef-93f3-92fbcf53809c.png

这就需要编写一个脚本来将标注转换为YOLO格式。转换脚本如下:

  import cv2
  import numpy as np
  import os
  from pathlib import Path
  path_to_masks = 'path/to/mask'
  path_to_save_yolo_labels = ' path/to/mask/label'
  def convert_mask_to_bbox(mask_path, save_path):
    # 创建保存路径
    Path(save_path).mkdir(parents=True, exist_ok=True)
    
    # 遍历 mask 文件
    for mask_file in os.listdir(mask_path):
      if mask_file.endswith(".png"): # mask 以 .png 格式保存
        mask = cv2.imread(os.path.join(mask_path, mask_file), cv2.IMREAD_GRAYSCALE)
        contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
        
        # 获取文件名,无扩展名
        filename = os.path.splitext(mask_file)[0]
        bbox_file = open(os.path.join(save_path, filename + ".txt"), 'w')
        
        for contour in contours:
          x, y, w, h = cv2.boundingRect(contour)
          # YOLO 格式:class x_center y_center width height (归一化到[0,1]范围)
          img_height, img_width = mask.shape
          x_center = (x + w / 2) / img_width
          y_center = (y + h / 2) / img_height
          width = w / img_width
          height = h / img_height
          # 假设所有目标都是同一类 (class = 0)
          bbox_file.write(f"0 {x_center} {y_center} {width} {height}
")
                bbox_file.close()
  # 使用示例
  convert_mask_to_bbox(path_to_masks, path_to_save_yolo_labels)

3.组织文件结构

按照YOLOv5的要求组织文件结构。需要以下目录结构:

/path/to/dataset/


├── images/
│  ├── train/
│  └── val/
└── labels/
  ├── train/
  └── val/

images/ 目录下存放图像文件。

labels/ 目录下存放相应的标注文件(.txt)。

4.配置data.yaml文件

编辑YOLOv5项目中的data.yaml文件或者新建一个trans10k_data.yaml,指定数据集路径及类别信息,如下所示。

train: /path/to/dataset/images/train # 训练图片路径
val: /path/to/dataset/images/val   # 验证图片路径
nc: 1 # 类别数量,假设只有一个类别
names: ['transparent_object'] # 类别名称列表

启动训练

使用以下命令启动训练过程。您可以根据硬件性能调整图片大小(--img)、批量大小(--batch)等选项。

python train.py --img 640 --batch 16 --epochs 50 --data data/trans10k_data.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt

训练完成后,就得到了一个能够检测透明目标的模型。

总结

通过遵循上述步骤,即使是初学者也能迅速掌握YOLOv5的训练方法并在Intel的哪吒(Nezha)开发套件上成功运行。哪吒套件凭借其高性能的Intel N97处理器、内置的Intel UHD Graphics GPU以及高达8GB的LPDDR5内存,为实时目标检测提供了强大的计算支持。

借助YOLOv5的强大功能以及个性化的Trans10K数据集,用户能够快速开发出针对透明物体的高度精确的对象检测模型。哪吒套件的无风扇设计和丰富的接口选项比如千兆以太网、HDMI 1.4、USB 3.0/2.0等,使其非常适合部署在各种边缘计算环境中,无论是智能监控、工业自动化还是其他物联网应用,都能提供可靠且高效的解决方案。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    61

    文章

    10275

    浏览量

    179290
  • 物联网
    +关注

    关注

    2939

    文章

    47317

    浏览量

    407831
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113307
  • 目标检测
    +关注

    关注

    0

    文章

    230

    浏览量

    16378

原文标题:开发者实战|英特尔开发板部署YOLOv5:完成透明物体目标检测

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    YOLOv5】LabVIEW+YOLOv5快速实现实时物体识别(Object Detection)含源码

    前面我们给大家介绍了基于LabVIEW+YOLOv3/YOLOv4的物体识别(对象检测),今天接着上次的内容再来看看YOLOv5。本次主要是
    的头像 发表于 03-13 16:01 3075次阅读

    YOLOv5】LabVIEW+TensorRT的yolov5部署实战(含源码)

    今天主要和大家分享在LabVIEW中使用纯TensoRT工具包快速部署并实现yolov5物体识别
    的头像 发表于 08-21 22:20 2037次阅读
    【<b class='flag-5'>YOLOv5</b>】LabVIEW+TensorRT的<b class='flag-5'>yolov5</b><b class='flag-5'>部署</b>实战(含源码)

    【米尔RK3576开发板评测】+项目名称YOLOV5目标检测

    命令启动ADB服务。 最后就可以使用命令推送文件到开发板上,或者使用命令拉回需要的文件。 adb push install/rk3576_linux_aarch64/rknn_yolov5
    发表于 02-15 13:24

    基于YOLOv5目标检测文档进行的时候出错如何解决?

    你好: 按Milk-V Duo开发板实战——基于YOLOv5目标检测 安装好yolov5环境,在执行main.py的时候会出错,能否帮忙看
    发表于 09-18 07:47

    英特尔独立显卡上部署YOLOv5 v7.0版实时实例分割模型

    本文将介绍在基于 OpenVINO 在英特尔独立显卡上部署 YOLOv5 实时实例分割模型的全流程,并提供完整范例代码供读者使用。
    的头像 发表于 12-20 11:32 5648次阅读

    yolov5训练部署全链路教程

    本教程针对目标检测算法yolov5的训练和部署到EASY-EAI-Nano(RV1126)进行说明。
    的头像 发表于 01-05 18:00 4341次阅读
    <b class='flag-5'>yolov5</b>训练<b class='flag-5'>部署</b>全链路教程

    使用旭日X3派的BPU部署Yolov5

    本次主要介绍在旭日x3的BPU中部署yolov5。首先在ubuntu20.04安装yolov5,并运行yolov5并使用pytoch的pt模型文件转ONNX。
    的头像 发表于 04-26 14:20 1667次阅读
    使用旭日X3派的BPU<b class='flag-5'>部署</b><b class='flag-5'>Yolov5</b>

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署
    的头像 发表于 05-12 09:08 2197次阅读
    在AI爱克斯<b class='flag-5'>开发板</b>上用OpenVINO™加速<b class='flag-5'>YOLOv</b>8<b class='flag-5'>目标</b><b class='flag-5'>检测</b>模型

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评
    的头像 发表于 05-26 11:03 2237次阅读
    AI爱克斯<b class='flag-5'>开发板</b>上使用OpenVINO加速<b class='flag-5'>YOLOv</b>8<b class='flag-5'>目标</b><b class='flag-5'>检测</b>模型

    在树莓派上部署YOLOv5进行动物目标检测的完整流程

    卓越的性能。本文将详细介绍如何在性能更强的计算机上训练YOLOv5模型,并将训练好的模型部署到树莓派4B上,通过树莓派的摄像头进行实时动物目标检测。 一、在电脑上训练
    的头像 发表于 11-11 10:38 4751次阅读
    在树莓派上<b class='flag-5'>部署</b><b class='flag-5'>YOLOv5</b>进行动物<b class='flag-5'>目标</b><b class='flag-5'>检测</b>的完整流程

    使用英特尔哪吒开发套件部署YOLOv5完成透明物体目标检测

    英特尔的哪吒(Nezha)开发套件是一款专为边缘AI和物联网应用设计的高性能计算平台,搭载了英特尔 N97处理器、内置英特尔 UHD Graphics GPU,并提供高达8GB LPD
    的头像 发表于 11-25 17:15 1085次阅读
    使用<b class='flag-5'>英特尔</b>哪吒<b class='flag-5'>开发</b>套件<b class='flag-5'>部署</b><b class='flag-5'>YOLOv5</b><b class='flag-5'>完成</b><b class='flag-5'>透明</b><b class='flag-5'>物体</b><b class='flag-5'>目标</b><b class='flag-5'>检测</b>

    yolov5训练部署全链路教程

    1.Yolov5简介YOLOv5模型是Ultralytics公司于2020年6月9日公开发布的。YOLOv5模型是基于YOLOv3模型基础上
    的头像 发表于 07-25 15:22 1343次阅读
    <b class='flag-5'>yolov5</b>训练<b class='flag-5'>部署</b>全链路教程

    基于瑞芯微RK3576的 yolov5训练部署教程

    的网络结构分为输入端BackboneNeck、Head 四个部分。 本教程针对目标检测算法yolov5的训练和部署到EASY-EAI-Orin-nano(RK3576)进行说明,而数
    的头像 发表于 09-11 16:43 2378次阅读
    基于瑞芯微RK3576的 <b class='flag-5'>yolov5</b>训练<b class='flag-5'>部署</b>教程

    迅为如何在RK3576上部署YOLOv5;基于RK3576构建智能门禁系统

    迅为如何在RK3576开发板部署YOLOv5;基于RK3576构建智能门禁系统
    的头像 发表于 11-25 14:06 1050次阅读
    迅为如何在RK3576上<b class='flag-5'>部署</b><b class='flag-5'>YOLOv5</b>;基于RK3576构建智能门禁系统

    基于迅为RK3588开发板实现高性能机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程

    基于迅为RK3588开发板实现高性能机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程
    的头像 发表于 11-28 11:32 880次阅读
    基于迅为RK3588<b class='flag-5'>开发板</b>实现高性能机器狗主控解决方案- AI能力实战:<b class='flag-5'>YOLOv5</b><b class='flag-5'>目标</b><b class='flag-5'>检测</b>例程