Jetson Nano使用YOLOv4-Tiny进行目标检测

一.简介

本文硬件是Jetson Nano 4G,操作系统ubuntu18.04。利用nano自带的模型对图像的检测识别。

二.环境搭建

第一步:jetson nano更换国内源

首先备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后输入 sudo gedit /etc/apt/sources.list 打开文本编译器

然后换源 比如清华源 自行百度寻找源地址,下面提供一种方式:

sudo vim sources.list

按i键进入编辑模式;将源地址换为国内源地址

deb Index of /ubuntu-ports/ bionic main restricted

deb Index of /ubuntu-ports/ bionic-updates main restricted

deb Index of /ubuntu-ports/ bionic universe

deb Index of /ubuntu-ports/ bionic-updates universe

deb Index of /ubuntu-ports/ bionic multiverse

deb Index of /ubuntu-ports/ bionic-updates multiverse

deb Index of /ubuntu-ports/ bionic-backports main restricted universe multiverse

deb Index of /ubuntu-ports/ bionic-security main restricted

deb Index of /ubuntu-ports/ bionic-security universe

deb Index of /ubuntu-ports/ bionic-security multiverse

然后按esc键退出编辑模式,输入shift+:键 再输入wq! 保存和退出

最后再输入 sudo apt-get update 更新一下软件源

注: apt-get 自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统

第二步:jetson nano自带环境检查

终端输入 python3 --version 输出版本号(若安装)

再输入python3 进入python环境

输入import cv2 cv2.version 会输入版本号

退出 quit()或者ctrl+t

例如在我的小车设备上运行结果
Jetson Nano使用YOLOv4-Tiny进行目标检测
第三步:安装一个jetson的运行状态查看工具 jetson-stats

安装命令 sudo pip3 install jetson-stats

安装成功之后 再输入命令 sudo jtop 就会弹出下图
Jetson Nano使用YOLOv4-Tiny进行目标检测
第四步:jetson nano显卡信息查询
Jetson Nano使用YOLOv4-Tiny进行目标检测
打开终端 切换到cuda 路径下

输入 cd /usr/local/cuda-10.2/samples/1_Utilities/deviceQuery

切换到该目录下,先编译一下

输入 sudo make

编译完成之后 输入 ./deviceQuery

可以看到显卡的信息
Jetson Nano使用YOLOv4-Tiny进行目标检测

三.模型部署

3.1相关配置准备

第一步:jetson nano下载编译jetson-inference

终端输入 sudo apt update 更新一下安装软件列表

之后再输入 sudo apt autoremove 自动删除不需要的软件包

最后再升级一下现有的程序 sudo apt upgrade

然后下载一个cmake(允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程)

命令 sudo apt install cmake

先建立一个文件夹 mkdir ~/workspace

cd ~/workspace/

输入 git clone https://gitee.com/vcan123/jetson-inference
如下图成功
Jetson Nano使用YOLOv4-Tiny进行目标检测
下载完成之后 cd jetson-inference/ 进入到该文件夹下

然后输入 git submodule update --init 进行初始化
Jetson Nano使用YOLOv4-Tiny进行目标检测
然后输入 cd tools

输入 sed -in-place -e ‘s@https://nvidia.box.com/shared/static@https://bbs.gpuworld.cn/mirror@g’ download-models.sh 进行换源
Jetson Nano使用YOLOv4-Tiny进行目标检测
然后返回上一路径 cd …

创建build文件夹 mkdir build

然后cd build
Jetson Nano使用YOLOv4-Tiny进行目标检测
输入cmake …

然后会弹出下载模型的界面,这里选择全部不下 按quit退出
Jetson Nano使用YOLOv4-Tiny进行目标检测
然后会让我们安装pytorch版本,这里我们选择python3.6 按ok

下载完之后 开始编译 输入make (时间好长)
Jetson Nano使用YOLOv4-Tiny进行目标检测
Jetson Nano使用YOLOv4-Tiny进行目标检测

3.2使用YOLOv4-Tiny进行目标检测

切换路径: cd ~/jetson-inference/data/networks/darknet
Jetson Nano使用YOLOv4-Tiny进行目标检测

四.运行结果

图像测试:

./darknet detect cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg
Jetson Nano使用YOLOv4-Tiny进行目标检测
Jetson Nano使用YOLOv4-Tiny进行目标检测
码字不易,转载请备注
Jetson Nano使用YOLOv4-Tiny进行目标检测

上一篇:windows服务器使用 azure devops 批量自动发布网站到IIS


下一篇:使用iis搭建网站