网上有一个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)相关推荐

  1. Deepson在Jetson Nano上进行视频分析的入门

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮 ...

  2. 在 jetson nano 上构建 isaac SDK 示例时出错:JetPack43 未在任何 .rc 文件中定义

    运行 isaac sdk 示例脚本 ( https://docs.nvidia.com/isaac/isaac/doc/tutorials/nano.html ) 时出现错误: sudo ./engi ...

  3. 小白从零开始在jetson nano上进行YOLOV3-Tiny 与 tensorrt加速检测

    一.前期准备需要 1.一块jetson nano版 2.SD卡(已经烧录好了镜像资源) 3.电脑上下载XFPT7(对于学生完全免费)(方便从电脑上直接传输文件进入板子) 二.软件需求(在电脑上,因为在 ...

  4. 基于PP-ShiTu的零售商品结算系统设计与在Jetson Nano上部署推理使用

    文章目录 第一章 作品概述 1.1 团队介绍 1.2 背景 1.3 简介 1.4 创新点与问题 1.5 发展前景 1.6 技术路线 第2章 技术方案 2.1 主体检测 2.2 特征提取 2.3 向量检 ...

  5. 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 ...

  6. 在Jetson Nano上安装RTL8821cu驱动

    在Jetson Nano上安装RTL8821cu驱动 下载该芯片的驱动 编译 网卡模式转换 Jetson Nano没有自带无线网卡,我用的是USB无线网卡,而且还是TP-Link的TL-WDN5200 ...

  7. Jetson nano 上使用ROS进行双目摄像头(CSI-IMX219)操作标定

    Jetson nano 上使用ROS进行双目摄像头(CSI-IMX219)操作标定 Nvidia的Jetson nano上使用索尼的IMX219相机操作ROS CSI-IMX219简介 imx219是 ...

  8. 在jetson nano上安装ROS melodic

    Jetson nano的镜像使用的是Ubuntu18.04 LTS (绰号Bionic),因此在jetson nano上安装ROS得选择Melodic版,但是因为jetson nano使用的是ARM6 ...

  9. 【MindSpore易点通·漫游世界】在Jetson Nano上安装MindSpore 1.6.0 CPU版

    尽管在官网,MindSpore没有CUDA10的aarch64版本.(注:当时时刻为2022年2月) 只有aarch的CPU版本: Python的版本也只有3.6.9.但是作为昇思开发者的张小白,仍然 ...

最新文章

  1. 【刷题】BZOJ 4516 [Sdoi2016]生成魔咒
  2. pthred()多线程计算派
  3. jsp弹窗修改信息_WEB最最最初级修改用户信息
  4. ESX VCENTER克隆或复制产生的GUEST OS,网卡问题处理
  5. 今年光伏市场规模可达30GW 分布式有望占据三分江山
  6. 为《31天成为IT服务达人》征求正式名字
  7. 数学函数(C/C++)
  8. python计算a的平方加b的平方_NumPy计算范数2的平方
  9. 计算机二级c语言作弊技巧,计算机等级考试二级C语言题型分析及应试技巧(1)
  10. mmo游戏开发应在profile下运行,才能保证正式运行不卡
  11. Linux 端口转发 端口映射
  12. java 构造方法 继承_java-继承/构造方法?
  13. 重名困扰探究系列之二账户号与登录方式 中
  14. 基于python和深度学习(语音识别、NLP)实现本地离线智能语音控制终端(带聊天功能和家居控制功能)
  15. Ip camera(网络摄像头)试用
  16. 秒 毫秒 微秒 纳秒 Hz KHz MHz GHz
  17. selenium+python模拟浏览器进入好友QQ空间留言
  18. 关于华为DevEco studio2.0的安装和运行第一个hello world的文章
  19. 串口波特率等概念(转https://blog.csdn.net/dagefeijiqumeiguo/article/details/68921820)
  20. python用来初始化对象属性的是_猪行天下之Python基础——8.1 类与对象

热门文章

  1. IOC容器中bean的生命周期
  2. oracle导入dmp秒退,Oracle导入dmp遇到问题解决
  3. CCS6-28335新建工程
  4. 论流氓软件,以及其解决方法。
  5. 9-2 time类的加工
  6. 【玩转嵌入式屏幕显示】(四)TFT-LCD屏幕显示英文字符(ASCII)和字符串
  7. 鸿蒙与北斗星云手机,为何其他国产手机不接入鸿蒙?王成录一语道出真谛
  8. 炸分王的省选2021(A)游记
  9. Unity案例课程 - 涂鸦跳跳 Day 1
  10. 使用安卓模拟器时提示关闭hyper-v