Files
FastDeploy/examples/application/java/yolov8/README_CN.md
hjyp cc4bbf2163 [PaddlePaddle Hackathon4 No.185] Add PaddleDetection Models Deployment Java Examples (#1782)
* add java examples

* fix detail

* fix pre-config

---------

Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
2023-04-10 21:23:44 +08:00

2.1 KiB
Raw Blame History

English | 简体中文

YOLOv8 Java 部署示例

本目录下提供java/InferDemo.java, 使用Java调用C++API快速完成PaddleDetection模型YOLOv8在Linux上部署的示例。

在部署前,需确认以下两个步骤

使用Java调用C++ API 可以分为两步:

  • C++端生成动态链接库。
  • Java端调用动态链接库。

C++端生成动态链接库

首先,切换路径到cpp目录,将jdk目录下的jni.hjni_md.h拷贝到当前cpp目录下。

cp /PathJdk/jdk-17.0.6/include/jni.h ./
cp /Pathjdk/jdk-17.0.6/include/linux/jni_md.h ./

接着,在cpp目录下执行以下命令,进行编译,生成动态链接库。

注意:编译时需要通过FASTDEPLOY_INSTALL_DIR选项指明FastDeploy预编译库位置, 当然也可以是自己编译的FastDeploy库位置。

mkdir build && cd build
cmake .. -FASTDEPLOY_INSTALL_DIR /fast-deploy-path
make -j

编译成功后,动态链接库会存放在cpp/build目录下,Linux下以.so结尾,Windows下以.dll结尾。

使用JAVA调用动态链接库

切换路径到java目录下,将FastDeploy的库路径添加到环境变量,注意替换为自己的FastDeploy库所在路径。

source /Path/to/fastdeploy-linux-x64-0.0.0/fastdeploy_init.sh

下载YOLOv8模型文件和测试图片

wget https://bj.bcebos.com/paddlehub/fastdeploy/yolov8s.onnx
wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg

编译Java文件

javac InferDemo.java

编译完成后,执行如下命令可得到预测结果,其中第一个参数指明下载的模型路径,第二个参数指明测试图片路径。

java InferDemo ./yolov8s.onnx ./000000014439.jpg

可视化的检测结果图片保存在本地vis_result.jpg