yolov5+opencv+java:通过DJL在maven项⽬中使⽤yolov5的⼩demo
⽬录
前⾔
这篇博客主要是介绍如何通过djl在java中调⽤yolov5进⾏推理,顺便也学习了⼀下在java上的opencv api。
是由亚马逊(Amazon)提供的⼀个深度学习⼯具包,能够让java开发者在java上调⽤⽬前主流的深度学习框架,像pytorch、tensorflow、mxnet、paddlepaddle(飞桨居然也有份 ),也包括onnx格式的模型。
环境
idea&pycharm
torch1.8.1+cu111
java1.8
opencv 4.5.2
导出yolov5s模型
这次demo就直接使⽤yolov5s的预训练模型。yolov5项⽬本⾝就⾃带了⾮常完善的模型导出脚本,yolov5的5.0发⾏版也⽐之前的版本完善很多。
yolov5的模型导出脚本是models/export.py⽂件,
导出之前需要设置⼀下
权重⽂件的位置
输⼊图⽚的尺⼨
是否要输出bbox
模型所在设备
rectangle函数opencv上图红⾊的框按我的进⾏设置就⾏了,绿⾊的框根据⾃⼰的情况进⾏设置。
设置好以后运⾏代码就可以在和权重⽂件相同的位置到⽣成的torchscript模型权重。
编写Maven项⽬
编写l⽂件
djl使⽤pytorch需要引⼊相关依赖
pytorch-model-zoo
pytorch-engine
pytorch-native-auto
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0"
xsi="/2001/XMLSchema-instance"
schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>xyz.hyhy</groupId>
<artifactId>TestAI</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<mavenpiler.source>8</mavenpiler.source>
<mavenpiler.target>8</mavenpiler.target>
<djl.version>0.11.0</djl.version>
</properties>
<dependencies>
<dependency>
<groupId>ai.djl</groupId>
<artifactId>api</artifactId>
<version>${djl.version}</version>
</dependency>
<dependency>
<groupId>ai.djl.pytorch</groupId>
<artifactId>pytorch-model-zoo</artifactId>
<version>${djl.version}</version>
</dependency>
<dependency>
<groupId>ai.djl.pytorch</groupId>
<artifactId>pytorch-engine</artifactId>
<version>${djl.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>ai.djl.pytorch</groupId>
<artifactId>pytorch-native-auto</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</project>
引⼊opencv依赖
下载opencv
到官⽹下载opencv库
获取opencv的jar包和动态链接库dll⽂件
下载完会得到⼀个exe⽂件,实际只是个压缩包,解压后到build⽂件夹下将jar包和x64或x86⽂件夹下的dll⽂件⼀起复制到项⽬的lib⽂件夹下。dll⽂件根据⾃⼰系统是64位还是32位进⾏选择。
将lib⽂件夹添加为Library
将yolov5权重⽂件放到资源⽂件
将之前导出的hscript.pt⽂件放到resources/yolov5s⽂件夹下。另外还要编写⼀个coco.names⽂件,⽤来说明分类任务的类名。
coco.names
person
bicycle
car
motorbike
aeroplane
bus
train
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论