jetson-inference----训练自己的目标检测模型(一)

系列文章目录

jetson-inference入门
jetson-inference----docker内运行分类任务
jetson-inference----训练自己的目标检测模型(一)

文章目录

  • 系列文章目录
  • 前言
  • 一、jetson-inference docker环境介绍
  • 二、SSD目标检测
  • 三、训练自己的目标检测模型
  • 总结


前言


一、jetson-inference docker环境介绍

缺少的模型文件,可以 download-models.sh 中找到下载
具体操作可见:jetson-inference----docker内运行分类任务 https://blog.csdn.net/m0_70420861/article/details/135852089?spm=1001.2014.3001.5502

下载 SSD-Mobilenet-v2.tar.gz
放到宿主机:~/jetson-inference/data/networks
解压缩

tar xzvf SSD-Mobilenet-v2.tar.gz

jetson-inference----训练自己的目标检测模型(一)_第1张图片

function download_ssd_mobilenet_v2()
{
        echo "$LOG Downloading SSD-Mobilenet-v2..."
        download_archive "SSD-Mobilenet-v2.tar.gz" "https://nvidia.box.com/shared/static/jcdewxep8vamzm71zajcovza938lygre.gz"
}

二、SSD目标检测

官方文档:https://gitcode.com/dusty-nv/jetson-inference/blob/master/docs/detectnet-console-2.md

启动时映射命令

docker run -it --rm --runtime nvidia -v ~/jetson-inference/data:/jetson-inference/data dustynv/jetson-inference:r32.7.1 /bin/bash

开始测试

cd build/aarch64/bin
# C++
$ ./detectnet --network=ssd-mobilenet-v2 images/peds_0.jpg images/test/output.jpg     # --network flag is optional

# Python
$ ./detectnet.py --network=ssd-mobilenet-v2 images/peds_0.jpg images/test/output.jpg  # --network flag is optional

目标检测结果

jetson-inference----训练自己的目标检测模型(一)_第2张图片
jetson-inference----训练自己的目标检测模型(一)_第3张图片

三、训练自己的目标检测模型

  1. 拍摄自己的对象,标注
  2. 训练
  3. 推理

在主机上使用摄像头可查看:Jeson nano–安装使用摄像头csi/usb https://blog.csdn.net/m0_70420861/article/details/135583513?spm=1001.2014.3001.5501

docker中如何查看宿主机摄像头

首先查询,在docker中无法查询到宿主机中的摄像头

ls /dev/video*

在这里插入图片描述

在这里插入图片描述

CSI 摄像头:使用 “-v /tmp/argus_socket:/tmp/argus_socket – device /dev/video0” 方式进行映射
USB 摄像头:使用 “-v /dev/video0:/dev/video0 –device /dev/video0” 方式进行映射

这里video0是里面查询的,是第几个摄像头,记得改

csi摄像头

 docker run -it --rm --runtime nvidia -v ~/jetson-inference/data/:/jetson-inference/data/ -v
/tmp/argus_socket:/tmp/argus_socket --device /dev/video0 dustynv/jetson-inference:r32.7.1 /bin/bash
docker run -it --rm --runtime nvidia -v ~/jetson-inference/data/:/jetson-inference/data/ -v /dev/video0:/dev/video0 --device /dev/video0 dustynv/jetson-inference:r32.7.1 /bin/bash

在这里插入图片描述
即映射成功,可以在docker中查询摄像头了

usbCamera.py

import cv2
cap=cv2.VideoCapture(0) # 根据设备id填写
while True:
    success,img=cap.read()
    cv2.imshow("Video",img)
    if cv2.waitKey(1)&0xFF==ord('q'):
        break
python usbCamera.py

在docker 运行带图形化界面的程序
–network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix -v
/etc/enctune.conf:/etc/enctune.conf

实例:
先运行

xhost +

再运行

docker run -it --rm --runtime nvidia -v ~/jetson-inference/data/:/jetsoninference/data/ -v /dev/video0:/dev/video0 --device /dev/video1 --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix -v /etc/enctune.conf:/etc/enctune.conf dustynv/jetson-inference:r32.7.1 /bin/bash

即可打开摄像头


总结

下节收集训练数据集,训练推理

你可能感兴趣的:(目标检测,目标跟踪,人工智能)