程序语言
未读
Java调用OnnxRuntime推理(纯代码)
这段代码是用于加载和使用ONNX模型进行图像预测的Java程序。它首先加载一个ONNX模型,该模型被设计用于检测图像中的物体。程序通过调用`OnnxModelLoader`的`loadModel`方法来加载模型,并检查模型输入信息的元数据。加载模型后,程序使用`OnnxModelPredictHandler`类的`predict`方法,对指定路径的图片进行预测,并返回预测结果。
预测过程涉及图像预处理(例如调整图像大小以匹配模型的输入要求),然后使用ONNX运行时环境(OrtSession)运行模型,并处理模型的输出。预测结果被存储在`PredictResult`对象中,并可以通过`pointBox`方法将预测结果显示在图形界面上。
程序还包含了`OnnxModelHolder`类,用于存储模型的运行时环境、会话、标签信息、输入数据的维度等信息。此外,`OnnxModelPredictHandler`类实现了`PredictHandler`接口,定义了预测处理的方法,如使用图片路径、输入流或`BufferedImage`对象作为输入进行预测。
代码中的注释和命名规则使用了Java的编程规范,并且使用了Lombok库来减少样板代码(如getter和setter方法)的编写。
注意,这段代码依赖于JavaCV和ONNX Runtime的Java库,这些库需要在项目的依赖管理工具(如Maven)中正确配置。
搭建opencv和JavaOnnxRuntime环境
好的,以下是关于Windows环境搭建、安装环境信息、Docker环境搭建的总结:
一、Windows环境搭建
1. 系统:Windows 10。
2. 显卡信息:RTX 1060 6GB。
3. Java:版本8u202。
二、安装环境信息
1. CUDA:版本11.8。
2. CUDNN:版本8.5.0.96。
3. OpenCV:版本4.7.0。
三、Docker环境搭建
1. 获取docker镜像
可以通过docker pull命令获取镜像,镜像名称为junpzx/jdk:8-ubuntu20.04-opencv4.7.0-cuda11.8.0-cudnn8-runtime。
2. 启动镜像
使用docker run命令启动镜像,并指定使用GPU的权限(如果需要的话)。
四、Dockerfile配置说明
在Dockerfile中,首先设置基础镜像为nvidia/cuda:11.8.0-cudnn8-runtime,然后安装opencv和其他必要的依赖。配置过程中需要注意版本的选择和路径的设置,确保安装成功。最后,配置中文环境和时区,并设置容器启动时需要执行的命令。
五、注意事项
在安装opencv和java调用onnx runtime时,可能会遇到程序突然退出的问题。这可能是因为缺少依赖或者版本不兼容导致的。可以尝试下载并放置zlibwapi.dll依赖到JDK的bin目录下解决问题。
六、自行下载jdk-8u202并替换Dockerfile文件相关内容
如果需要根据自己的需求替换Dockerfile文件中的jdk版本,可以自行下载jdk-8u202,然后替换Dockerfile文件中的相关路径和文件名。确保替换后的路径和文件名与实际的jdk安装路径和文件名一致。
以上是Windows环境搭建、安装环境信息、Docker环境搭建的总结,希望能对你有所帮助。
程序语言
未读
Java中的“锁”事
乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此概念对应的实际应用。先说概念。对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java中,sync
框架技术
未读
自定义Jsch连接池,实现Sftp文件上传和Shell远程解压
♉前言在工作过程中遇到了文件上传和文件线上解压等场景,于是决定使用Jsch的SFTP,最开始使用的是一个单纯的SFTP工具类,但是在使用过程发现其是不支持多线程的,于是将其改造成了多线程版本,使用一段时间后,发现文件上传等接口的时间有点长,于是使用XRebel进行排查问题,发现在创建Sftp和she
程序语言
未读
Java8新特性之Stream用法
一、概述Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Strea