前言
前段时间学习了下YOLOV10就是按照网上的教程搭建个环境搞了个demo。因为本职是搞java的想用java加载推理模型,当时想到的就是利用opencv处理,但后来发现YOLOV10这个版本有些节点(TopK这个节点因为我对模型不是太了解暂且叫节点吧)不支持,前面的版本是支持的例如YOLOV8的。
这里有个issue刚好它那个模型裁剪的图片我这里是加载不出来的,我把那个节点删了后面会报些其他错,我不知道他怎么处理的,有懂的可以评论留言。
opencv最新的版本是4.10,可能5.0的正式版本出来可能会直接支持的,想尝鲜的也可以自己编译。
前几天的时候我突然发现了一个宝库onnxruntime有java版本,YOLO的模型可以转ONNX啊于是试了下果然可以。
java使用onnxruntime
- POM加载依赖就可以了
xml
<!-- 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
- 返回的坐标点xywh2xyxy,我用的YOLOV10的返回的是xyxy。我不知道onnxruntime是否可以直接设置,还是模型本身就有设置。
- 问题是win平台下的onnxruntime.dll版本问题报一个错:the given version [14] is not supported, only version 1 to 10 is supported in this build.
- 上面的问题可以在github上下载最新的onnxruntime.dll注意系统。
- 关于上面的问题main方法做测试的时候可能没问题,但是跑服务的时候springboot有问题需要主动加载最新的dll。