## 先完整阅读文档!!!
## 项目由来
1. 在调用深度学习训练好的AI模型时,如果使用python调用非常简单,甚至不用编写代码,大部分深度学习框架就是python编写的,自带有推理逻辑文件和方法
2. 但是不是每个同学都会python,不是每个项目都是python语言开发,不是每个岗位都会深度学习
3. 由于大部分服务器项目还是由java语言居多,java方向的开发者也多,由于本人找遍全网也没有找到java调用AI模型的例子,
4. 所以特意编写一个java调用AI模型的方法(全网应该就这一份)。思路是通用的,只需要替换不同的模型即可达到不同效果
6. 极其轻量,两个依赖,一个java主文件即可运行
5. **不懂项目有什么用作?不知道用在什么地方?没关系,先下载运行看效果后立马就明白了!**
---
## 紧接着下载运行看效果再研究代码
1. 下载代码可直接运行主文件:`ObjectDetection_1_25200_n.java` , `ObjectDetection_n_7.java`,`ObjectDetection_1_n_8400.java` 都 **可以直接运行不会报错**
2. `CameraDetection.java`,是实时视频流识别检测,也可直接运行( **仅支持有摄像头的电脑或笔记本** ),三个文件完全独立,不互相依赖,如果有GPU帧率会更高,需要开启调用GPU
3. 多个主文件是为了支持不用网络结构的模型,即使是`onnx`模型,输出的结果参数也不一样,目前支持三种结构,下面有讲解
4. 可以封装为`http` `controller` `api`接口,也可以结合摄像头实时分析视频流,进行识别后预览和告警
5. 支持`yolov7` , `yolov5`和`yolov8`,`paddlepaddle`后处理稍微改一下也可以支持, **代码中自带的onnx模型仅仅为了演示,准确率非常低,实际应用需要自己训练**
6. 训练出来的模型成为基础模型,可以用于测试。生产环境的模型需要经过模型压缩,量化,剪枝,蒸馏,才可以使用(当然这不是java开发者的工作)。会提升视频华民啊帧率达到60-120帧左右。点击查看:[百度压缩模型工具](https://www.paddlepaddle.org.cn/tutorials/projectdetail/3949129),[基础概念](https://zhuanlan.zhihu.com/p/138059904),[参考文章](https://zhuanlan.zhihu.com/p/430910227)
6. 替换`model`目录下的onnx模型文件,可以识别检测任何物体(烟火,跌倒,抽烟,安全帽,口罩,人,打架,计数,攀爬,垃圾,开关,状态,分类,等等),有模型即可
7. 模型不是onnx格式怎么办?不要紧张,主流模型都可以转为onnx格式。怎么转?看完文档就知道了!
---
## ObjectDetection_1_25200_n.java
- `yolov5`
- **85**:每一行`85`个数值,`5`个center_x,center_y, width, height,score ,`80`个标签类别得分(不一定是80要看模型标签数量)
- **25200**:三个尺度上的预测框总和 `( 80∗80∗3 + 40∗40∗3 + 20∗20∗3 )`,每个网格三个预测框,后续需要`非极大值抑制NMS`处理
- **1**:没有批量预测推理,即每次输入推理一张图片

---
## ObjectDetection_n_7.java
- `yolov7`
- **Concatoutput_dim_0** :变量,表示当前图像中预测目标的数量,
- **7**:表示每个目标的七个参数:`batch_id,x0,y0,x1,y1,cls_id,score`

---
## ObjectDetection_1_n_8400.java
- `yolov8`

---
## 暂不直接支持输出结果是三个数组参数的模型(因为不常用)
- 但是这种结构模型可以导出为`[1,25200,85]`或`[n,7]`输出结构,然后就可以使用已有代码调用。
- **yolov5** :导出onnx时增加参数 `inplace=True,simplify=True`(ObjectDetection_1_25200_n.java)
- **yolov7** :导出onnx时增加参数 `grid=True,simplify=True`(ObjectDetection_1_25200_n.java) 或者 `grid=True,simplify=True,end2end=True`(ObjectDetection_n_7.java)


---
## ONNX
Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移.
是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch,TensorFlow,PaddlePaddle,MXNet)可以采用相同格式存储模型数据并交互。 ONNX的规范及代码主要由微软,亚马逊 ,Facebook 和 IBM 等公司共同开发,以开放源代码的方式托管在Github.
## 图片效果



## 视频效果(必看)
- https://live.csdn.net/v/308058
- https://live.csdn.net/v/296613
- https://blog.csdn.net/changzengli/article/details/129661570
## 有用链接
- https://blog.csdn.net/changzengli/article/details/129182528
- https://blog.csdn.net/xqtt29/article/details/110918397
- https://blog.csdn.net/changzengli/article/details/127904594
- 使用封装后的javacpp中的javacv 和 ffmpeg 也可以
## 使用GPU前提
- 安装对应版本的:cuda 和 cudnn,版本需要和自己电脑上的GPU型号对应,和项目无关
- 并测试是否安装成功,一定要测试
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java 调用 Python YOLO ONNX 模型进行视频目标检测与识别,该方案支持 YOLOv5、YOLOv7、YOLOv8 等主流模型,并包含预处理、后处理步骤,可集成 RTSP/RTMP 协议进行视频流处理。系统架构包括 Java 应用程序负责视频流获取、预处理、数据传递、模型调用、后处理和结果展示,Python 脚本负责加载 ONNX 模型、进行目标检测、并返回识别结果,以及 ONNX 模型本身。流程步骤包括视频流获取,使用 Java 库解析 RTSP/RTMP 协议的视频流,将视频帧转换为符合模型输入要求的格式;预处理,对视频帧进行 resize、normalization、padding 等操作,使其符合模型输入要求,将预处理后的数据转换为 Numpy 数组格式,以便传递给 Python 脚本;模型调用,使用 Java 的 JNI 或其他机制调用 Python 脚本,传递预处理后的数据,Python 脚本加载 ONNX 模型并执行目标检测,并将结果返回 Java 应用程序;后处理,将 Python 返回的结果进行解析和处理,例如过滤置信度较低的检测结果、绘制识别框等
资源推荐
资源详情
资源评论


























收起资源包目录














































共 32 条
- 1
资源评论

- 代码就在那2025-05-29资源有一定的参考价值,与资源描述一致,很实用,能够借鉴的部分挺多的,值得下载。
- 普通网友2024-12-24资源简直太好了,完美解决了当下遇到的难题,这样的资源很难不支持~

abments
- 粉丝: 2551
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- XP-网络故障解决措施全集.doc
- 电气自动化在水利水电工程中的应用分析1.docx
- 时间触发通信:原理与应用
- 基于JSP的教学管理系统大学本科方案设计书.doc
- 基于PLC的物料分拣控制系统的设计.doc
- 实验项目管理-需求书.doc
- 最新高端简约英文版互联网科技金融商务工作计划总结PPT模PPT模板.pptx
- 移动通信技术与计算机网络.docx
- 面翻洪海广告设备有限公司项目管理书.doc
- 电网调度自动化系统的应用.pdf
- 互联网+时代高校线上线下混合式教学模式探究.docx
- 2017级大数据技术与应用专业人才培养方案.doc
- 论网络虚拟财产的民法界定.docx
- 基于 Python 实现自动驾驶的规划与控制代码
- 酒店无线网络覆盖解决方案.docx
- 电子科技16秋《供配电系统监控与自动化》在线作业2-辅导资料.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
