java加载YOLOV10模型

前言

前段时间学习了下YOLOV10就是按照网上的教程搭建个环境搞了个demo。因为本职是搞java的想用java加载推理模型,当时想到的就是利用opencv处理,但后来发现YOLOV10这个版本有些节点(TopK这个节点因为我对模型不是太了解暂且叫节点吧)不支持,前面的版本是支持的例如YOLOV8的。
这里有个issue刚好它那个模型裁剪的图片我这里是加载不出来的,我把那个节点删了后面会报些其他错,我不知道他怎么处理的,有懂的可以评论留言。
opencv最新的版本是4.10,可能5.0的正式版本出来可能会直接支持的,想尝鲜的也可以自己编译。
前几天的时候我突然发现了一个宝库onnxruntime有java版本,YOLO的模型可以转ONNX啊于是试了下果然可以。

YOLOV10

1.模型文件和工程文件
2.测试模型或者训练自己模型的可以试下
3.因为里面的ultralytics如果是单独下载的话需要指定当前的目录。但是我用pycharm有个问题就是应用不到这个依赖(我得解决办法是把下载的这个文件目录复制一份放到python的lib库里面),当然最新的ultralytics不知道是否已经支持了YOLOV10了可以试下。
4.还有个问题就是torch的GPU版本默认是安装的CPU的,需要到torch官网自己下载个合适的GPU版本下面是,查看版本的。

python
import torch
print(torch.__version__)
print(torch.cuda.is_available())

5.训练过程中报错:页面文件太小,无法完成操作
将train.py文件中的workers参数的默认值改小,为0或者1试试
6.显存不够的out of memory 可以适当调整下batchsize、imgsz
java使用onnxruntime
POM加载依赖就可以了,(想试下的可以直接用上面下载的YOLOV10模型转换下就可以了)

<!-- https://mvnrepository.com/artifact/com.microsoft.onnxruntime/onnxruntime -->
<dependency>
    <groupId>com.microsoft.onnxruntime</groupId>
    <artifactId>onnxruntime</artifactId>
    <version>1.18.0</version>
</dependency>

2.关于使用网上找下吧

onnxruntime注意问题

1.原图片和模型的输入要求有个缩放的问题
2.返回的坐标点xywh2xyxy,我用的YOLOV10的返回的是xyxy。但我不知道onnxruntime是否可以直接设置,还是模型本身就有设置。字面意思:xywh返回的是中心点的坐标和宽高,xyxy对角线的坐标点
3.问题是win平台下的onnxruntime.dll版本问题报一个错:the given version [14] is not supported, only version 1 to 10 is supported in this build.
4.上面的问题可以在github上下载最新的onnxruntime.dll注意系统。
5.关于上面的问题main方法做测试的时候可能没问题,但是跑服务的时候springboot有问题。网上的方法大部分是放到同级目录如果是tomcat的话放到bin目录下面,但我觉得还是直接主动加载最新的dll可控靠谱。

要在Java中实现YOLOv5模型,可以使用以下步骤: 1. 准备YOLOv5模型:首先,确保你已经获得了YOLOv5的预训练模型权重文件(.pt文件)。你可以从YOLOv5的官方GitHub页面或其他可靠来源下载。 2. 导入Java深度学习库:Java并没有像Python那样成熟的深度学习生态系统,但你可以使用一些Java的深度学习库来实现YOLOv5。其中一个选择是DL4J(DeepLearning4J),它是一个基于Java的深度学习库,提供了一些神经网络模型和相关工具。 3. 加载YOLOv5模型:使用DL4J或其他Java深度学习库,加载YOLOv5模型的权重文件。你需要编写Java代码来加载模型并构建相应的计算图。 4. 图像预处理:在输入图像之前,你需要对图像进行预处理以满足YOLOv5模型的要求。这通常包括图像缩放、归一化和转换为模型所需的格式。你可以使用Java图像处理库,如OpenCV或JavaCV来完成这些操作。 5. 执行推理:将预处理后的图像输入到YOLOv5模型中,执行推理过程。你需要编写Java代码来处理模型输出,并解析出检测到的物体类别、边界框位置和置信度等信息。 请注意,由于Java在深度学习领域的支持相对较弱,所以实现YOLOv5模型可能需要一些额外的工作和技术调整。如果你对Java没有特殊要求或限制,建议使用Python等更适合深度学习的语言来实现YOLOv5模型。这样可以更轻松地使用已经成熟的深度学习库(如PyTorch或TensorFlow)和相关工具。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力读研的小小明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值