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

news2024/12/23 16:47:42

【在英伟达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.git
    2  ls
    3  cd CSI-Camera/
    4  ls
    5  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、总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1119624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE】线程安全的集合类 -- 多线程篇(9)

线程安全的集合类 多线程环境使用 ArrayList多线程环境使用队列多线程环境使用哈希表 多线程环境使用 ArrayList 自己使用同步机制 (synchronized 或者 ReentrantLock)Collections.synchronizedList(new ArrayList); synchronizedList 是标准库提供的一个基于 synchronized 进…

【AIGC】百度文库文档助手之 - 一键生成PPT

百度文库文档助手之 - 一键生成PPT 引言一、文档助手:体验一键生成PPT二、文档助手:进阶用法三、其它生成PPT的方法3.1 ChatGPT3.2 文心一言 引言 就在上个月百度文库升级为一站式智能文档平台,开放四大AI能力:智能PPT、智能总结、…

正则表达式提取http和http内容

http.* 这样匹配到的就是我们要的内容 取反正则:^((?!要取反的正则表达式).)*$ 取反:^((?!http.).)$ 这样匹配到的就是我们不要的内容 提取域名 /[(http|ftp|https):\/\/]?([\w_-](?:(?:\.[\w_-])))([\w.,?^%&:\/~#-]*[\w?^%&\/~#-]…

APK与小程序渗透

文章目录 APK与小程序渗透1. APK2. 小程序2.1 源代码2.2 小程序的默认下载位置 3. 安装证书3.1 openssl配置环境变量3.2 安装证书 APK与小程序渗透 由于APK和小程序与服务器通信还是采用的是https协议,只是使用了加密。只要获取到了HTTP的请求报文就可以回归到Web渗…

单目3D目标检测论文汇总

基于语义和几何约束的方法 1. Deep3DBox 3D Bounding Box Estimation Using Deep Learning and Geometry [CVPR2017] https://arxiv.org/pdf/1612.00496.pdfhttps://zhuanlan.zhihu.com/p/414275118 核心思想:通过利用2D bounding box与3D bounding box之间的几何约…

『C语言进阶』字符函数和内存函数(2)

🔥博客主页: 小羊失眠啦. 🔖系列专栏: C语言、Linux、Cpolar ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、strtok函数1.1 函数认识1.2 注意事项 二、strerror函数2.1 函数认识2.2 注意事项 三、memcpy函数3.1 函数…

1024渗透测试如何暴力破解其他人主机的密码(第十一课)

1024渗透测试如何暴力破解其他人主机的密码(第十一课) 1 crunch 工具 crunch是一个密码生成器,一般用于在渗透测试中生成随机密码或者字典攻击。下面是常见的一些使用方法: 生成密码字典 生成6位数字的字典:crunch 6 6 -t -o dict.txt …

【LeetCode】145. 二叉树的后序遍历 [ 左子树 右子树 根结点]

题目链接 文章目录 Python3方法一: 递归 ⟮ O ( n ) ⟯ \lgroup O(n) \rgroup ⟮O(n)⟯方法二: 迭代 ⟮ O ( n ) ⟯ \lgroup O(n) \rgroup ⟮O(n)⟯方法三: Morris ⟮ O ( n ) 、 O ( 1 ) ⟯ \lgroup O(n)、O(1) \rgroup ⟮O(n)、O(1)⟯写…

学成在线第二天-查询课程、查询课程分类、新增课程接口实现以及跨域的处理思路和全局异常处理的使用以及面试题

目录 一、接口的实现 二、跨域的处理思路 三、全局异常处理 四、面试题 五、总结 一、接口的实现 1. 查询课程接口 思路: 典型的分页查询 按需查询 模糊查询的查询 controller: ApiOperation(value "课程列表", notes "课程…

字节码进阶之java Instrumentation原理详解

文章目录 0. 前言1. 基础2. Java Instrumentation API使用示例 3. Java Agent4. 字节码操作库5. 实际应用6. 注意事项和最佳实践 0. 前言 Java Instrumentation是Java API的一部分,它允许开发人员在运行时修改类的字节码。使用此功能,可以实现许多高级操…

记录一次线下渗透电气照明系统(分析与实战)

项目地址:https://github.com/MartinxMax/S-Clustr 注意 本次行动未造成任何设备损坏,并在道德允许范围内测试 >ethical hacking< 发现过程 在路途中,发现一个未锁的配电柜,身为一个电工自然免不了好奇心(非专业人士请勿模仿,操作不当的话220V人就直了) 根据照片,简…

c++踩坑点,类型转换

std::string转换到PVOID std::string转换到PVOID的方式如下 这样的话成功转换 “const char *” 类型的实参与 “WCHAR *” “const char *” 类型的实参与 “WCHAR *” 类型的形参不兼容 可以看到这种报错&#xff0c;可以直接强转如下&#xff1a; 但是在我们这里不适…

论文总结:EXPRESSIVE SPEECH-DRIVEN FACIAL ANIMATION WITH CONTROLLABLE EMOTIONS

存在的问题:现有的语音驱动面部动画方法可以产生令人满意的嘴部运动和嘴唇同步,但在情感表达和情感控制方面存在不足。 作者使用wav2vec2.0和transformer encoder来获取文本向量和全局风格向量。将其拼接起来通过Auido2FLAME模块来预测flame的参数,Auido2FLAME由多层CNN组成…

大厂秋招真题【贪心】大疆20230813秋招T1-矩形田地

题目描述与示例 题目描述 给定一个矩形田地&#xff0c;其高度为 h 且宽度为 w。同时&#xff0c;你将获得两个整数数组 horizontalCutting 和 verticalCutting&#xff0c;其中 horizontalCutting[i] 表示从矩形田地顶部到第 i 个水平切口的距离&#xff0c;verticalCutting…

【二维差分】ICPC南京 A

https://codeforces.com/gym/104128/problem/A 题意 思路 二维差分经典模型 考虑如果没有洞那么经历操作之后会剩下什么样子的袋鼠。发现上下左右移动可以看成是边界在移动&#xff0c;边界一直保持一个原初的矩形形状&#xff0c;而且上下移动和左右移动没有任何关系。一旦…

自然语言处理---Transformer机制详解之GPT模型介绍

1 GPT介绍 GPT是OpenAI公司提出的一种语言预训练模型.OpenAI在论文<< Improving Language Understanding by Generative Pre-Training >>中提出GPT模型.OpenAI后续又在论文<< Language Models are Unsupervised Multitask Learners >>中提出GPT2模型.…

自然语言处理---RNN、LSTM、GRU模型

RNN模型 RNN模型概述 RNN(Recurrent Neural Network)&#xff0c;中文称作循环神经网络&#xff0c;它一般以序列数据为输入&#xff0c;通过网络内部的结构设计有效捕捉序列之间的关系特征&#xff0c;一般也是以序列形式进行输出。RNN的循环机制使模型隐层上一时间步产生的…

MIPS指令集摘要

目录 MIPS指令R I J三种格式 MIPS五种寻址方式 立即数寻址 寄存器寻址 基址寻址 PC相对寻址 伪直接寻址 WinMIPS64汇编指令 助记 从内存中加载数据 lb lbu lh lhu lw lwu ld l.d lui 存储数据到内存 sb sh sw sd s.d 算术运算 daddi daddui dadd…

自然语言处理---Transformer机制详解之GPT2模型介绍

1 GPT2的架构 从模型架构上看, GPT2并没有特别新颖的架构, 它和只带有解码器模块的Transformer很像. 所谓语言模型, 作用就是根据已有句子的一部分, 来预测下一个单词会是什么. 现实应用中大家最熟悉的一个语言模型应用, 就是智能手机上的输入法, 它可以根据当前输入的内容智…

hdlbits系列verilog解答(向量)-11

文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 向量用于使用一个名称对相关信号进行分组,以使其更易于操作。例如,声明一个名为 8 位向量, wire [7:0] w; 该向量在 w 功能上等效于具有 8 个单独的线网(wire w0, w1, w2, w3, w4, w5, w6, w7)。 与C语言…