前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV4.8 Java SDK实现YOLOv5模型部署

OpenCV4.8 Java SDK实现YOLOv5模型部署

作者头像
OpenCV学堂
发布2024-05-17 18:29:58
3081
发布2024-05-17 18:29:58
举报

OpenCV Java开发环境配置

Java 开发的IDE,推荐选择IDEA这个,真的比较好用,我下载的是社区版,免费可用。

安装好以后直接点击打开,选择 New Project

添加本地的OpenCV Java SDK的 Jar文件依赖包

从Project Structure到 Modules 到 Module SDK 添加Jars or Dependence

OpenCV Java 代码测试

OpenCV Java配置好以后,测试代码首先需要加载DLL,然后依赖Java SDK,可以实现图像加载与显示。测试代码如下:

代码语言:javascript
复制
package org.example;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;


//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class YOLOv5DNNDetector {
    public static void main(String[] args) {
        System.load("D:/opencv-4.8.0/opencv/build/java/x64/opencv_java480.dll");
        System.out.println("start to read image...");
        Mat inputImage = Imgcodecs.imread("D:/images/lena.jpg");
        HighGui.imshow("Java OpenCV开发测试", inputImage);
        HighGui.waitKey(0);
        HighGui.destroyAllWindows();
        System.exit(0);
    }
}

运行结果如下:

YOLOv5模型部署

基于YOLOv5 7.0版本,完成了对象检测

代码语言:javascript
复制
public static void main(String[] args) {

    System.load("D:/opencv-4.8.0/opencv/build/java/x64/opencv_java480.dll");
    System.out.println("start to read image...");
    String file_path = "D:/python/yolov5-7.0/classes.txt";
    try {
        Mat inputImage = Imgcodecs.imread("D:/bird_test/city-walk.jpg");
        java.util.ArrayList<Rect> boxes = new ArrayList<>();
        FileInputStream fis = new FileInputStream(file_path);
        BufferedReader br = new BufferedReader(new InputStreamReader(fis));
        YOLOv5DNNDetector detector = new YOLOv5DNNDetector("D:/python/yolov5-7.0/yolov5s.onnx", 0.5f, 0.5f, 640, 640);
        String line;
        ArrayList<String> map_labels = new ArrayList<>();
        while ((line = br.readLine()) != null) {
            map_labels.add(line);
        }
        detector.addAllLabels(map_labels);
        detector.infer_image(inputImage, boxes);
        HighGui.imshow("OpenCV4.8 for Java YOLOv5对象检测演示", inputImage);
        HighGui.waitKey(0);
        HighGui.destroyAllWindows();
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.exit(0);
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档