【AI达人创造营三期-Antigen Detector(新冠试剂盒检测)部署】
(前言)Jetson TX2推理效果展示:
配套原项目地址Antigen Detector(新冠试剂盒检测)
1 推理时间
YOLOE+Faiss-cpu检索Infer Time在400ms-700ms左右
2 可视化检测结果展示
部署流程
步骤一:Jetson TX2刷机
(我的电脑是双系统,在给Jetson TX2刷机的时候,使用的是Ubuntu18.04)
1.1 Jetson TX2开箱。
包含以下东西:
①主板
②主板电源线(不知道为什么,我收到的电源线少了一半,没有插头~ ~ ~ ~,霉神附体)
③两根天线、一根micro-usb线(用于刷机使用)还有一根白色不知名的线
确认完东西之后,便可以准备开始刷机了!!!
1.2 刷机
英伟达官网下载SDKManager,可登录NVIDIA Jetpack下载,并在Ubuntu18.04上安装好。
下载完SDKManager之后,在host端安装即可:终端输入sudo dpkg -i <XXX.deb> 进行安装。
安装完成后,输入sdkmanager即可运行。
先进行登录:
紧接着,根据界面提示一直傻瓜式操作即可。Step3的时候,要进行留意:
此时选择manual setup,不要选择 automatic setup。
接下来,将TX2用micro-usb与主机连接,再让TX2进入recovery模式:按住左下角红色POWER BIN上电,然后按按钮REC按钮,然后松开即可。
进入恢复模式后,TX2是黑屏的。你可以在主机的终端中输入lsusb,若显示nvidia crop,即连接成功。点击flash开始安装。
当安装进度约为45%左右(即jetpack os安装完成),TX2会点亮屏幕。此时,不会继续安装。先在TX2上设置用户信息、密码、语言、时区等信息,进入ubuntu桌面。然后在主机上输入刚刚设置的用户名和密码,再继续安装。
Note:整个刷机过程中,最最最重要的事情!!!!!!!!!!!!
1、在安装过程中,如果出现安装失败的提示(Step 3的时候),不要直接退出软件,点击RETRY FAILED ITEMS对失败的部分重新安装,不然重新启动软件后它会重装所有选择的条目。由于网络的原因可能会多次失败,要一直重试直到所有软件安装完毕。亲测有效!!!!
2、再上述重新安装的时候,有时可能会出现连接不到Jetson TX2的情况,这时只需要重新插拔一下即可!!!
步骤二:Jetson TX2端推理环境配置
2.1 安装archiconda
先下载archiconda的安装文件,该文件已经放入该项目下的数据集里,可下载拷贝至Jetson TX2中。
进入到archiconda安装文件所在的目录下,然后在终端运行如下图所示命令开始安装。
之后一路yes即可完成安装!!!
2.2 创建虚拟环境
紧接着创建名为antigener_detecion的虚拟环境,使用python3.6。注意创建虚拟环境的时候,名字可以随意,但是python必须使用3.6版本!!!
2.3 激活虚拟环境。
2.4 在虚拟环境下配置相关依赖
分别为paddlepaddle-gpu arm、opencv-python、faiss-cpu和pyyaml。其中paddlepaddle-gpu有在arm架构上编译好的whl文件,我也放到了本项目数据集中,可直接下载使用。
步骤三:Jetson TX2端推理
3.1 直接推理
配置好上述环境之后,可拷贝部署代码至Jetson TX2上进行部署。(部署代码在本项目所附的数据集中,可下载拷贝!!!)拷贝完成解压后,进入项目文件夹直接运行python antigener_detection_v2.py便执行推理程序,可输入待检测图片的路径完成推理并可视化检测结果,同时也会输出检测结果日志。
检测结果日志如下图所示:
检测结果可视化(部分):
FastDeploy部署
如果要使用FastDeploy部署,烧录TX2系统时一定要注意烧录Jetpack>=4.6版本的!!!
1 python包编译环境准备
·gcc/g++ >= 5.4·cmake >= 3.18.0·jetpack >= 4.6·python >= 3.6
Cmake版本升级
刷完机后Cmake的版本可能不满足要求,需要对Cmake进行一下升级。
首先下载所需要的版本的Cmake:
wget https://cmake.org/files/v3.18/cmake-3.18.1.tar.gz
# 解压
tar -xvzf cmake-3.18.1.tar.gz
# 进入目录下
chmod 777 ./configure
./configure
# 编译,安装
make
sudo make install
# 最后替代旧版的cmake
sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
编译FastDeploy python包
# 先git FastDeploy仓库代码
git clone https://github.com/PaddlePaddle/FastDeploy.git
# 进入目录
cd FastDeploy/python
# 编译相关配置
export ENABLE_ORT_BACKEND=ON
export ENABLE_TRT_BACKEND=ON
export WITH_GPU=ON
export ENABLE_VISION=ON
export BUILD_ON_JETSON=ON# 编译包
python setup.py build
python setup.py bdist_wheel
安装
直接pip install wheel包即可。
使用FastDeploy预测改写代码
import fastdeploy as fd
import osdef build_option():option = fd.RuntimeOption()option.use_gpu()option.use_trt_backend()return optionruntime_option = build_option()"""
"/home/hansansui/TX2Deploy/antigener_detection/params/infer_cfg.yml"
下面的config_file根据上述路径下的infer_cfg.yml修改。
然后保存到:/home/hansansui/TX2Deploy/antigener_detection/params/detection_model/infer_cfg.yml
"""
model_dir = "/home/hansansui/TX2Deploy/antigener_detection/params/detection_model"
model_file = os.path.join(model_dir, "inference.pdmodel")
params_file = os.path.join(model_dir, "inference.pdiparams")
config_file = os.path.join(model_dir, "infer_cfg.yml")model = fd.vision.detection.PPYOLOE(model_file, params_file, config_file, runtime_option=runtime_option)def antigener_classification_fastdeploy(img, model, det_threshed=0.6, negative_threshed=0.65):results = model.predict(img, det_threshed)count = 0results_dict = {'positive':[], 'negative':[]}for result in results:count += 1x1, y1, x2, y2 = result['bbox']roi_img = img[int(y1):int(y2), int(x1):int(x2)]if result['label_name'] == 'positive':"""输出为positive+confidence.经后处理如果也认定阳性,输出为positive, confidence为1."""length = postprocess_after_detection(roi_img, count)if length == 2:results_dict['positive'].append([x1, y1, x2, y2, 1.0])else:results_dict['positive'].append([x1, y1, x2, y2, result['score']])else: #阴性if result['score'] > negative_threshed:length = postprocess_after_detection(roi_img, count)if length == 1:results_dict['negative'].append([x1, y1, x2, y2, 1.0])else:results_dict['negative'].append([x1, y1, x2, y2, result['score']])else:"""小于这个阈值,输出为positive,confidence为1-confidence。经后处理后若认为为positive, confidence为1。"""length = postprocess_after_detection(roi_img, count)if length == 2:results_dict['positive'].append([x1, y1, x2, y2, 1.0])else:results_dict['positive'].append([x1, y1, x2, y2, 1 - result['score']])
ict['positive'].append([x1, y1, x2, y2, 1 - result['score']])return results_dict
总结
这次的部署任务,踩了一些小坑,也耗费了很多时间。不过还好,最终还是部署上了。
部署模型是一个很重要的阶段,因为很多时候是只有落地部署了才能发挥它们的价值。因此,关于模型部署的很多知识、很多工具还是要好好学习的。
而飞桨的AI达人创造营便提供了这样的机会,免费发放硬件供大家部署学习!!!
感谢飞桨,感谢AI达人创造营组委会!!!
此文章为搬运
原项目链接
【AI达人创造营三期-Antigen Detector(新冠试剂盒检测)部署】相关推荐
- 【AI达人创造营三期】在地平线X3上部署车牌识别系统
[AI达人创造营三期]在地平线X3上部署车牌识别系统 一. 项目介绍 本项目属于AI达人创造营三期项目,主要探索如何将PaddleOCR训练的车牌识别模型部署在地平线X3的板子上,并实现实时推理. 二 ...
- 【AI达人创造营三期】Jetson Nano实时监测学生坐姿,预防近视
1.前言 本来以为jetson nano就是一台小型计算机而已,把模型复制到上面运行就可以了,可实际操作起来遇到了很多问题,踩了很多坑,现在整理一下. 参考资料: 基于FastDeploy将PicoD ...
- 【AI达人创造营三期】Fastdeploy与英特尔NUC推动智慧城市巡检应用落地
Fastdeploy与英特尔NUC推动智慧城市巡检应用落地 1.项目背景 智慧城市是指利用大数据.物联网(IoT)人工智能和5G等数字技术,提高政府公共服务水平.社会治理效能.推动经济增长和不断增强人 ...
- 【AI达人创造营三期】Jetson Nano篮球和运动员检测分割的部署
简介 1.1 背景与意义简介 目标跟踪是计算机视觉领域的一个重要问题,目前广泛应用在体育赛事转播.安防监控和无人机.无人车.机器人等领域.在篮球比赛的场景中,主要是针对篮球和运动员的检测.通过对这些目 ...
- 【AI达人创造营第二期】基于PaddleClas的新冠肺炎CT影像的分类
转自AI Studio,原文链接:[AI达人创造营第二期]基于PaddleClas的新冠肺炎CT影像的分类 - 飞桨AI Studio 一.项目背景 新近爆发的2019新型冠状病毒(SARS-CoV- ...
- 笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解
笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解 针对特定场景任务从模型选择.模型训练.超参优化.效果展示这四个方面进行模型开发. 一.模型选择 从任务类型出发,选择最合适的模型. ...
- 飞浆领航团AI达人创造营第01课|让人拍案叫绝的创意都是如何诞生的?
时间:2021年7月27日 下午18:25 内容:创意的获取渠道和创意的评估方法 昨晚看了飞桨领航团AI达人创造营的第一节直播,现在将第一节的笔记以及感受整理如下,依次来激励自己的后续学习,希望能过 ...
- 【AI达人创造营第二期】基于Jetson nano的餐厅自助结账系统部署
基于Jetson nano的餐厅自助结账系统部署 一. 前言 二. 开发环境 2.1 硬件 2.2 软件 三. Jetson nano基础环境配置 3.1 镜像烧录 3.2 网络连接 3.3 更换镜像 ...
- 百度AI达人创造营|第一课、拍案叫绝的创意
百度AI达人创造营 课程设计 课程 内容 第一课 让人拍案叫绝的创意都是如何诞生的 第二课 数据集的获取途径和数据处理的技巧 第三课 深度学习模型训练和关键参数调优详解 第四课 教你5种简单高效的部署 ...
最新文章
- (C++)string 的两种输入方式和输出方式
- Median of Two Sorted Arrays
- 比较正宗的验证邮箱的正则表达式js代码详解
- Android之sqlite的使用 (转载)
- RabbitMQ系列笔记work模式
- IronRuby 发布第一个版本
- Go语言的变量、函数、Socks5代理服务器 1
- [linux] redhat 7 iptables 配置
- brave+kafka+zipkin+cassandra搭建分布式链路跟踪系统
- QinQ、VLAN Mapping原理和配置
- easyphp(xctf)
- 【IoT】 产品设计之拆机报告:天猫精灵之万能红外遥控器
- 《数据结构(C语言版)》严蔚敏代码实现———顺序表
- 使用Riverbed SteelCentral NetProfiler,大海捞针不再难
- POI 导出Excel
- 2018年8月win10教育版education最新激活密钥
- v.douyin.com/xxx v.ixigua.com/xxx抖音西瓜网址官方生成制作抖音西瓜缩短口令网址(仅供参考学习)
- shell字符串,字符数组,遍历
- 软考高项真题解析-关键路径的计算
- 计算机科学与技术文献翻译,计算机科学与技术外文文献翻译.doc