【在英伟达nvidia的jetson-orin-nx上使用调试摄像头-初步调试USB摄像头与Camera Conn.#0/#1接口-基础测试】

本文主要是介绍【在英伟达nvidia的jetson-orin-nx上使用调试摄像头-初步调试USB摄像头与Camera Conn.#0/#1接口-基础测试】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【在英伟达nvidia的jetson-orin-nx上使用调试摄像头-初步调试USB摄像头与Camera Conn.#0/#1接口-基础测试】

  • 1、概述
  • 2、实验环境
  • 3、 物品说明
    • (0)各种各样摄像头
    • (1)USB摄像头
    • (2)CSI摄像头
    • (3)CSI排线
      • (1)CSI排序种类
      • (2)不要热插拔
  • 4、自我总结
  • 5、实验过程
    • (1)usb摄像头测试过程
      • 1、实验过程
      • 2、实验结果
    • (2)CSI摄像头测试过程
      • 1、实验过程
      • 2、实验结果
    • (3)CSI摄像头使用opencv的demo
      • 1、实验过程-简单dome
      • 2、实验结果
      • 3、实验过程-人脸识别
      • 4、实验结果
  • 6、代码相关链接
  • 7、细节部分
    • (1)系统版本有点稍微改动。
    • (2)为什么cheese不能调用csi摄像头
    • (3)什么是.xml文件
    • (4)CSI排线接口,注意插得面。
    • (5) opencv相关问题:无法找到库“CV2”
    • (6) opencv相关问题:无法找到模型文件
    • (7) 其他努力:尝试改python代码
  • 8、总结

1、概述

自己学习一些AI有段时间,还在入门阶段,目前学习了一点“吴恩达的《人人学AI》”课程,既然买了jetson orin nx 还是想学点AI东西的。

看到很多AI相关,都是需要配合摄像头的,但作为新手,可以说完全摸不着头脑,不知道用什么指令,也不知道如何操作,自己通过询问买jetson商家和上网查资料,目前已经能简单在jetson orin nx 点起摄像头了,所以记录下来,也为感兴趣的你铺平道路。

2、实验环境

初次了解,这里使用提供软硬件信息吧。
硬件信息:Jetson Orin nx
软件版本:Linux ubuntu 5.10.120-tegra #1 SMP PREEMPT Tue Aug 1 12:32:50 PDT 2023 aarch64 aarch64 aarch64 GNU/Linux (注意因为重新刷机,版本有点改变)
在这里插入图片描述

其它硬件:USB摄像头,CSI的摄像头,和CSI排线。

3、 物品说明

声明:以下物品,是本人自己做此次实验购买的物品,如有需要,自己考虑买不买。

当自己为初学者的时候,想要个摄像头,其实完全不知道应该买哪种,也不知道买回来能不能用,就比较担心,有个好的办法就是,买那种套件指定的一般就可以的,就像自己买的jetson orin nx 套件,其实这家就有带摄像头的套餐,其实你不必买那个套餐,但是你可以查到那种摄像头,然后买那种摄像头就可以了。

(0)各种各样摄像头

开始的自己其实设置对摄像头也是不了解,市面是摄像头五花八门,也不确定使用哪种,如下链接是,对各种摄像头总结说明,可以快速帮你了解各种摄像头。
链接:硬件设计 之摄像头分类(IR摄像头、mono摄像头、RGB摄像头、RGB-D摄像头、鱼眼摄像头)
在这里插入图片描述

(1)USB摄像头

本次在jetson-orin-nx使用摄像头连接如下,和jetson orin nx板子是一家买的。

我这里只是给个参照,请各位根据自己需求购买相关摄像头。

物品链接:创乐博 树莓派 jetson 免驱USB 摄像头视觉云台 AI 人脸识别视觉对焦距离可调 USB摄像头
在这里插入图片描述

一般来说,只要是usb接口的摄像头,大部分都是驱动都是在的,直接使用cheese工具都能直接打开,当然这部保证全部,目前接触几款都是可以的。

(2)CSI摄像头

这种摄像头,就是使用在这上面的,我们需要看下载板的图,如下,就是Camera conn.#0 [j20]和Camera conn.#1 [j21]。
这个图是出自“jetson orin nano developer kit…"文档,可以去英伟达官网搜索。
在这里插入图片描述
如下,其中一个是,我自己的套件里带的摄像头。
在这里插入图片描述
物品链接:https://item.jd.com/10069364522103.html

另一个是后买的摄像头,也是同一家,当时就是怕装上不好使。
在这里插入图片描述

物品链接:https://item.jd.com/10020835077458.html

(3)CSI排线

(1)CSI排序种类

这个CSI排序需要单独说明下,因为自己买回上面“创乐博 Raspberry Pi 树莓派 USB 摄像头 英伟达红外夜视补光灯 可选支持3B/4B 英伟达摄像头(支持夜视)”模块后,发现排线根本插不进去,所以商家标注支持jetson系列,是有些误导的。那个排线是不支持jetson orin nx的,这种排线是支持 jetson Xauvier NX 及其一些相关类似载板的。

如下图,是摄像头带套件的,自己买的,以及jetson orin nx 套件带的。
在这里插入图片描述

在jetson orin nx上接口变得窄一些,可以自己买,或者使用配套带的,如下物品链接,也不是很贵。
物品链接:掌卓树莓派4B 摄像头排线 CSI接口 500万像素 FPC排线 zero摄像头
在这里插入图片描述

(2)不要热插拔

前车之鉴后车之师,前往不要热插拔。
前车之鉴后车之师,前往不要热插拔。
前车之鉴后车之师,前往不要热插拔。

自己为啥要自己买这种排序,就是在jetson orin nx 运行过程中,直接插拔摄像头,然后排线就烧了,希望大家注意吧,一定要关机下电。如下,让大家看看烧的排线,引以为戒。

在这里插入图片描述

4、自我总结

(1)摄像头物品模块熟悉
本身实验,其实很多时间,都用在学习相关摄像头知识上了,以及相关线的连接。
这点需要自己多看些资料,并且选择自己合适摄像头开发模块,本次相关总结看上一节。

(2)相关工具与指令
如果只是简单调用摄像头,无论是usb摄像头,还是CSI接口摄像头,指令其实都是非常简单的。

如果只是简单测试下usb摄像头,可以使用cheese工具,直接在命令行输入.

cheese

如果只是简单测试下CSI摄像头,需要打对应指令。

DISPLAY=:1.0 nvgstcapture-1.0

(3)初识应用AI模型
后来使用csi摄像头模块,简单跑了下OpenCV的工具,里面有个简单dome,其实有个是人脸识别的,后来查到,才知道,我们调用这个程序,其实是使用已经训练好的模型,也算是初步使用AI了。

5、实验过程

如下图,就是本次设备了,需要先连接后摄像头和线,USB摄像头直接插在usb口上,csi排线接在接口上。
在这里插入图片描述

(1)usb摄像头测试过程

1、实验过程

建议先只链接一个USB摄像头,这样也不乱,一个个验证比较好。
开机后,打开终端,先送搜以下,看看摄像头在不在,是否被系统识别了。如下,因为自己已经熟悉了,所以都插上了。
使用命令查看摄像头。

ls /dev/vid*ce

在这里插入图片描述

之后,USB摄像头其实测试也是非常简单的,打开终端直接输入。

cheese

在这里插入图片描述

2、实验结果

一般没有什么问题的话,会直接出图的。
我这里还是不想本人出镜,就拿个本子挡住了。
在这里插入图片描述

(2)CSI摄像头测试过程

csi相对复杂点,并且不能直接使用cheese工具。并且在调试过程中,还遇到了问题。

1、实验过程

建议先只链接一个CSI摄像头,这样也不乱,一个个验证比较好。
开机后,打开终端,先送搜以下,看看摄像头在不在,是否被系统识别了。如下,因为自己已经熟悉了,所以都插上了。
使用命令查看摄像头。

ls /dev/vid*ce

在这里插入图片描述
之后,打开终端,输入如下指令。
这个指令是自己尝试成功了的。

DISPLAY=:1.0 nvgstcapture-1.0

当时商家给到指令是

DISPLAY=:0.0 nvgstcapture-1.0

不管如何尝试,系统都会报错,其实也没有刷系统,但就是不行,后来自己没办法,加上排线烧了,按照商家建议,将摄像头发回验证,后刷系统,还是不行,自己尝试尝试后,才弄通,所以在报如下问题时,建议两条命令都尝试下。
在这里插入图片描述

以下指令是根据商家(就是买套件jetson orin nx商家售后)说明,也有相关教程。
链接:Jetson Orin NX CLB套件客户资料
百度网盘链接:https://pan.baidu.com/s/1axRaDMaezUEm3h6_OHEf6w
提取码:wjl5

2、实验结果

如上所示,使用如下指令后,可以正常调用摄像头了。
我这里还是不想本人出镜,就拿个本子挡住了。
在这里插入图片描述

(3)CSI摄像头使用opencv的demo

按照商家教学视频,其实还有简单的调用opencv的一个dome,这其实就是为了以后以代码的形式调用摄像头。
我们需要去网上克隆,然后安装相关opencv相关工具。

不出意外,自己还是碰到了坑的,具体情况,请看“”细节部分“”。

----------------(6)opencv相关问题:无法找到库“CV2”

1、实验过程-简单dome

我们先去从git上克隆相关demo
指令如下

    1  git clone https://github.com/jetsonhacks/CSI-Camera.git2  ls3  cd CSI-Camera/4  ls5  python3 simple_camera.py 

在这里插入图片描述

2、实验结果

如果工具安装好的情况下,直接可以打开的,相关问题请看“细节部分”。
当然,还是有可能会报错误,可以加入“sudo”权限

sudo python3 simple_camera.py 

在这里插入图片描述

3、实验过程-人脸识别

在一些装好情况下。直接使用命令,相关问题请见。
----------------(7) opencv相关问题:无法找到模型文件

sudo python3 simple_camera.py 

4、实验结果

在这里插入图片描述

6、代码相关链接

(1)本次代码是找的网上连接。
https://github.com/jetsonhacks/CSI-Camera
在这里插入图片描述

   1  git clone https://github.com/jetsonhacks/CSI-Camera.git

(2)Jetson Orin Nano CLB 套件客户资料:
百度网盘链接:https://pan.baidu.com/s/1XsdE23B5ptOMfxgSZypXaw
提取码:xnlp

(3)链接:Jetson Orin NX CLB套件客户资料
百度网盘链接:https://pan.baidu.com/s/1axRaDMaezUEm3h6_OHEf6w
提取码:wjl5

7、细节部分

(1)系统版本有点稍微改动。

因为重新刷机了,和之前有点改变,但是暂时没有遇到相关系统引起问题。

(2)为什么cheese不能调用csi摄像头

Jetson Orin NX是一款嵌入式计算平台,具备强大的AI计算能力和图像处理能力。它配备了多个接口,包括CSI(CameraSerial Interface)摄像头接口,可用于连接CSI摄像头模块。

然而,Jetson Orin NX上的CSI摄像头接口并不直接支持通用的摄像头驱动程序,例如Cheese所使用的V4L2(Video for Linux 2)驱动程序。这意味着你不能直接通过Cheese这样的应用程序来打开和访问Jetson Orin NX上连接的CSI摄像头。

相反,Jetson Orin NX上使用的是NVIDIA提供的专用摄像头驱动程序和软件开发工具包(SDK),称为NVIDIA Jetpack。Jetpack提供了用于访问和控制CSI摄像头接口的API和工具,如GStreamer、NvMedia、OpenCV等。

可以使用这些工具和API来开发自己的图像处理应用程序,或者使用NVIDIA提供的示例应用程序来进行摄像头采集和处理。

如果想使用Jetson Orin NX上的CSI摄像头,需要使用NVIDIA Jetpack提供的相应工具和API来访问摄像头,而不是使用Cheese这样的通用摄像头应用程序。这样可以确保你能够充分利用Jetson Orin NX的硬件和软件优势进行图像处理和计算视觉任务

(3)什么是.xml文件

在OpenCV中,.xml文件通常是指用于存储和加载训练好的机器学习模型的文件格式。这些模型通常用于目标检测、人脸识别、姿态估计等计算机视觉任务。

OpenCV中的许多算法和模型都使用了机器学习技术,包括支持向量机(SVM)、卷积神经网络(CNN)和级联分类器(Cascade Classifier)等。这些模型在训练阶段生成的权重和参数会被保存为.xml文件,以便在后续的应用中使用。

例如,在人脸识别任务中,OpenCV提供了名为Haar级联分类器的算法。该算法使用了一系列的Haar特征和AdaBoost分类器进行人脸检测。在训练阶段,该算法会生成一组权重和分类器参数,并将其保存为.xml文件。在应用阶段,可以使用这个.xml文件加载模型,并在图像中进行人脸检测。

总结来说,.xml文件在OpenCV中通常用于存储和加载训练好的机器学习模型的参数和权重。它是一种常见的文件格式,用于在计算机视觉和图像处理任务中使用预训练的模型。

(4)CSI排线接口,注意插得面。

简单说,排线接口是有方向的,注意被插错。
在这里插入图片描述

(5) opencv相关问题:无法找到库“CV2”

其中一个坑就是工具匹配的坑,貌似我的python默认有个2.7版本的,相关opencv工具下下来后,直接装哪里了,后来没办法,只能卸载2.7的,重新安装一遍

如下表现是,找不到cv2的这个库
在这里插入图片描述
或者另一种错误。
在这里插入图片描述
如下图所示,我发现,我有两个版本的python,和一些其他尝试。

在这里插入图片描述

(6) opencv相关问题:无法找到模型文件

其中第二个坑,也许是opencv工具没安装对,来回装卸有点繁琐,中间我还中断过,导致没有了模型文件,导致人脸识别demo一跑就出错。

如下图,报错什么什么为空,虽然是英文的,才想到,应该是缺这个文件。
在这里插入图片描述
然后去对应目录里找,果然没发现文件。
在这里插入图片描述

开始还没有意识到,直接去对应代码里描述目录去翻找,发现确实没有文件,也是在网上找了相关文件,直接弄了个目录,即可以了。
在这里插入图片描述

(7) 其他努力:尝试改python代码

开始以为是摄像头ID啥的可能不对,于是就改代码,怎么改发现都不行,就记录下吧。
在这里插入图片描述
如下是一些重新安装opencv的尝试
在这里插入图片描述

8、总结

原本想简单写的,没想到花了很长时间。

这篇关于【在英伟达nvidia的jetson-orin-nx上使用调试摄像头-初步调试USB摄像头与Camera Conn.#0/#1接口-基础测试】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/280016

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]