在Jetson Nano上十行代码实现目标检测(jetson_inference)
网上有一个10行代码搞定目标检测的视频教程
参考网址:https://www.bilibili.com/video/av91150116/
经测非常实用,通过10行代码实现目标检测,在Jetson Nano上迅速搭建一个目标识别的示例和开发环境。
视频例程使用Jetson官方的深度学习库(jetson_inference)进行目标检测程序实现
项目链接:https://github.com/dusty-nv/jetson-inference
项目介绍页面中Building the Project from Source给出了从源代码进行安装和配置的指南
指南链接:https://github.com/dusty-nv/jetson-inference/blob/master/docs/building-repo-2.md
概要步骤如下
建议在进行安装之前先进行系统环境配置,如apt、pip的源设置,中文输入等。
一、jetson-inference下载和安装
步骤如下
1. 预安装软件
首先安装需要用到的软件包
$ sudo apt instal git cmake libpython3-dev python3-numpy
假定apt update在系统配置时已经运行过了,这里不再重复。
2. 下载代码库
然后下载软件源代码库
$ git clone --recursive https://github.com/dusty-nv/jetson-inference
这一步比较费事,这是一个递归的源代码库,包含多个子代码库,因为国内外网络环境的问题,从Github下载会出现连接不稳定,不能下载全的情况。这种情况建议多尝试几次,或者从其它地方进行下载。
3. 编译安装
之后进入代码目录进行编译安装
$ cd jetson-inference
创建一个cmake编译目录
$ mkdir build
$ cd build
进行cmake
$ cmake ..
在cmake过程中会弹出对话框让选择下载模型和安装pytorch,因为国内连接国外不稳定,建议选择不安装(通过TAB键选择Quit和Skip,按回车),后面进行离线下载和安装。
cmake完成之后,进行编译和安装
$ make -j4
$ sudo make install
这样jetson-inference库就安装完成了。编译之后会在build目录下生成jetson-inference库相关文件,包括头文件、库文件、帮助文件、脚本工具、示例程序等。make install会把相关的文件复制到对应的系统目录。
其中download-model.sh和install-pytorch.sh文件分别是下载模型和安装pytorch的脚本文件,可以查看参考文件,进行离线下载和安装。
其中会生成一个aarch64目录,里面包含jetson-inference库的相关文件,目录结构如下
其中lib目录包含库文件,include目录包含头文件,bin目录包含一些图像分类、目标识别等相关的命令和工具。
4. 测试
安装完成之后,build/aarch64/bin目录包含了一些图像分类、目标识别等方面的执行文件,如下
可以用这些程序进行目标识别的测试。在bin目录下运行
$ ./imagenet.py --network=resnet-18 images/jellyfish.jpg images/test/output_jellyfish.jpg
就可以对imags/jellyfish.jpg图片进行分类识别。识别结果输出在images/test/output_jellyfish.jpg文件。
因为安装时没有选择在线下载模型,这个程序运行不能成功。可以自己下载模型和建立python文件来进行基于jetson-inference库的例程开发。
5. 模型下载
Github提供了离线下载模型的方法,通过
模型下载链接:https://github.com/dusty-nv/jetson-inference/releases
可以根据需要下载对应的模型,下载到data/networks目录,然后解压,比如
$ tar -zxvf SSD-Mobilenet-v2.tar.gz
常见的有GoogleNet,ResNet,SSD-Mobilenet等,如下
下载和解压到data/networks目录之后,就可以在程序中使用jetson-inference库调用这些模型了。
二、例程编写和测试
这里用一个10行代码的例程来实现目标识别。参考视频,代码如下
import jetson.inference
import jetson.utilsnet = jetson.inference.detectNet('SSD-Mobilenet-v2', threshold=0.5)
camera = jetson.utils.gstCamera(1280,720,'0')
display = jetson.utils.glDisplay()while display.IsOpen():img, width, height = camera.CaptureRGBA()detections = net.Detect(img, width, height)display.RenderOnce(img, width, height)display.SetTitle('Object Detection | Network %.1f FPS'%net.GetNetworkFPS())
采用SSD-Mobilenet-v2网络对摄像头视频进行在线目标识别。假定命名程序文件detect_net.py,然后运行
$ python3 detect_net.py
程序结果就会出现摄像头的画面和在线识别的结果,如下
实际测试响应效果良好,能够达到20多fps的帧率,没有滞后感。
在Jetson Nano上十行代码实现目标检测(jetson_inference)相关推荐
- Deepson在Jetson Nano上进行视频分析的入门
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮 ...
- 在 jetson nano 上构建 isaac SDK 示例时出错:JetPack43 未在任何 .rc 文件中定义
运行 isaac sdk 示例脚本 ( https://docs.nvidia.com/isaac/isaac/doc/tutorials/nano.html ) 时出现错误: sudo ./engi ...
- 小白从零开始在jetson nano上进行YOLOV3-Tiny 与 tensorrt加速检测
一.前期准备需要 1.一块jetson nano版 2.SD卡(已经烧录好了镜像资源) 3.电脑上下载XFPT7(对于学生完全免费)(方便从电脑上直接传输文件进入板子) 二.软件需求(在电脑上,因为在 ...
- 基于PP-ShiTu的零售商品结算系统设计与在Jetson Nano上部署推理使用
文章目录 第一章 作品概述 1.1 团队介绍 1.2 背景 1.3 简介 1.4 创新点与问题 1.5 发展前景 1.6 技术路线 第2章 技术方案 2.1 主体检测 2.2 特征提取 2.3 向量检 ...
- linux或Jetson nano上安装torchvision或安装pillow报错:The headers or library files could not be found for jpeg
1 错误分析 我在Jetson nano上安装torchvision的时候报错(torchvision依赖pillow库):The headers or library files could not ...
- 在Jetson Nano上安装RTL8821cu驱动
在Jetson Nano上安装RTL8821cu驱动 下载该芯片的驱动 编译 网卡模式转换 Jetson Nano没有自带无线网卡,我用的是USB无线网卡,而且还是TP-Link的TL-WDN5200 ...
- Jetson nano 上使用ROS进行双目摄像头(CSI-IMX219)操作标定
Jetson nano 上使用ROS进行双目摄像头(CSI-IMX219)操作标定 Nvidia的Jetson nano上使用索尼的IMX219相机操作ROS CSI-IMX219简介 imx219是 ...
- 在jetson nano上安装ROS melodic
Jetson nano的镜像使用的是Ubuntu18.04 LTS (绰号Bionic),因此在jetson nano上安装ROS得选择Melodic版,但是因为jetson nano使用的是ARM6 ...
- 【MindSpore易点通·漫游世界】在Jetson Nano上安装MindSpore 1.6.0 CPU版
尽管在官网,MindSpore没有CUDA10的aarch64版本.(注:当时时刻为2022年2月) 只有aarch的CPU版本: Python的版本也只有3.6.9.但是作为昇思开发者的张小白,仍然 ...
最新文章
- 【刷题】BZOJ 4516 [Sdoi2016]生成魔咒
- pthred()多线程计算派
- jsp弹窗修改信息_WEB最最最初级修改用户信息
- ESX VCENTER克隆或复制产生的GUEST OS,网卡问题处理
- 今年光伏市场规模可达30GW 分布式有望占据三分江山
- 为《31天成为IT服务达人》征求正式名字
- 数学函数(C/C++)
- python计算a的平方加b的平方_NumPy计算范数2的平方
- 计算机二级c语言作弊技巧,计算机等级考试二级C语言题型分析及应试技巧(1)
- mmo游戏开发应在profile下运行,才能保证正式运行不卡
- Linux 端口转发 端口映射
- java 构造方法 继承_java-继承/构造方法?
- 重名困扰探究系列之二账户号与登录方式 中
- 基于python和深度学习(语音识别、NLP)实现本地离线智能语音控制终端(带聊天功能和家居控制功能)
- Ip camera(网络摄像头)试用
- 秒 毫秒 微秒 纳秒 Hz KHz MHz GHz
- selenium+python模拟浏览器进入好友QQ空间留言
- 关于华为DevEco studio2.0的安装和运行第一个hello world的文章
- 串口波特率等概念(转https://blog.csdn.net/dagefeijiqumeiguo/article/details/68921820)
- python用来初始化对象属性的是_猪行天下之Python基础——8.1 类与对象