0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVIDIA Jetson 系列针对CSI摄像头提供Camera SubSystem提高效率

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 作者:NVIDIA英伟达企业解 2021-12-24 09:01 次阅读

在最开始介绍 Jetbot 的时候有提到,这套智能小车只使用一个 CSI 摄像头作为全部输入的设备,因为这种设备的体积轻巧、功耗较低,并且 NVIDIA Jetson 系列针对 CSI 摄像头提供了一组 Camera SubSystem 来提高效率,非常适合用在智能车方案上的视频图像输入。下表是各种摄像头的简单比较表,这样就能一目了然地理解 Jetbot 为何挑选 CSI 摄像头作为输入设备。

eb6d7494-61b2-11ec-b2e9-dac502259ad0.png

首先要提示的,Jetson Nano(含2GB)所支持的是 CSI-2 版本接口,早期用在树莓派上 50 元以下的 CSI 接口摄像头是不能使用的,主要以 IMX219 芯片的摄像头为主,价格大约在 100 元以上,因此请勿选购错误。

本文并不花时间去说明 CSI 摄像头的工作原理,主要配合 Jetbot 的安装,以及执行最简单指令去确认您手上的摄像头是否良好可用,否则等整机都装好之后再进行测试,如果遇到不良的摄像头还得再拆卸下来,是一件颇为浪费时间的事情。

将CSI摄像头装到Jetson Nano(含2GB)上

这种接口并不支持即插即用(PnP, Plug and Play)功能,不能像 USB 摄像头可以随时插入 Jetson Nano(含2GB),必须在开机之前就先装好。如果开机后测试发现不成功,就得关机后再检查是否有什么地方安装不正确?或者接触不良的问题,就便利性而言不如 USB 摄像头那么顺手。

安装 CSI 摄像头的接口如下图左方的卡座,要拔取卡笋进行安装时千万小心力度,这个塑料件比较脆弱,一不小心弄断了,不仅无法再安装 CSI 摄像头,也严重影响 Jetson Nano(含2GB)的质保,需要非常小心处理!

卡座上透过一根专属的软排线(如上图右)与 CSI 摄像头进行连接,这个软排线是有方向性的,如上图右所显示,软排线有金属针脚的一面要朝内(核心模块)方向,将排线完整塞进卡座之后,再将卡笋往下压,确保完全压倒底,否则摄像头可能因为排线接触不良而无法正常工作

请参考“菜鸟手册(2):给 Jetson Nano 安装 CSI 摄像头”(https://cloud.tencent.com/developer/article/1421907)一文,有非常详尽的步骤与动态简图能完整表达过程。总而言之,这个摄像头的安装有些细微之处,需要细心处理。一旦安装测试好之后,也尽量不要拆卸。

测试CSI摄像头的运行

由于 Jetbot 会关闭 Ubuntu 图形桌面,因此过去所学到调用 nvarguscamera 指令,去启动 CSI 摄像头并在图形桌面上显示的方法,在这里都不能适用,但是 v4l2-ctl 工具还是能做最基本的检测

下面的测试都在 Jetbot 上的 Jupyter 环境上进行,也顺便讲解一下 Jupyter 上调用摄像头与显示内容的方法,先熟悉一下这方面的使用是很重要,因为后面所有实验都要用到 CSI 摄像头。

现在从 PC 上的浏览器输入 “:8888” 进入 Jetbot 的 Jupyter 操作界面,然后开启一个命令终端(如下图):

ec0a4e86-61b2-11ec-b2e9-dac502259ad0.png

现在先用 v4l2-ctl 工具检查一下 CSI 摄像头的状况,请在终端输入以下指令:

#如果是Docker版,请先安装v4l-utils工具aptinstallv4l-utils#执行检测指令v4l2-ctl--list-devices#如果检测到/dev/video0,继续检测这个设备的细部参数v4l2-ctl --device=/dev/video0 --all

细部参数就不花时间说明,主要让大家知道当有需要的时候,就可以用 v4l2-ctl 这个工具查看细节。

接下去开始用 Jupyter 的代码,来测试 CSI 摄像头的工作状况。首先创建一个新的“Notebook”(如下图步骤),这是 Jupyter 的工作区域。

ec4d9eac-61b2-11ec-b2e9-dac502259ad0.png

每次新开的 Notebook 都是如下图的状况,会有一个[ ] 与一个方框:

ec91e404-61b2-11ec-b2e9-dac502259ad0.png

现在就将下面代码复制到在 Notebook 的方框内里,由于前面“v4l2-ctl”检测到这个摄像头的宽高为(1640, 1232),因此在代码中将摄像头与 widgets 的图形尺寸都设为这两个数字:

fromjetbotimportCamera,bgr8_to_jpegimportipywidgets.widgetsaswidgetsfromIPython.displayimportdisplayimporttraitletscamera=Camera.instance(width=1640,height=1232)image=widgets.Image(format='jpeg',width=1640,height=1232)camera_link=traitlets.dlink((camera,'value'),(image,'value'),transform=bgr8_to_jpeg)display(image)

然后按一下“Ctrl-Enter”组合键就能执行,正常的话就能在下方看到一个方框显示摄像头所捕捉的动态画面,这样就完成 CSI 摄像头的测试。显示有点小延迟是正常的,毕竟这里选择的是(1640, 1232)尺寸,试试将尺寸都缩小到 1/2 之后,是不是就流畅的多?

如果要停止摄像头播放,就用上面的“+”号添加一个“指令格”,然后在里面输入:

camera_link.unlink()

然后用“Ctrl-Enter”执行这个指令,这时候显示画面就处于冻结状态,不会播放显示器所捕捉的内容。

假如想要让摄像头再次执行播放,就在下面再添加一个“指令格”,输入:

camera_link.link()

按下“Ctrl-Enter”执行,就会看到显示框里的内容又开始执行动态播放了。

代码解说

由于 Jupyter 并不支持 OpenGL 功能,无法像图形桌面那样直接播放视频,因此在这里需要使用一些固定的技巧,将视频转成图形方式去显示,上面这段代码可以说是 Jetbot 所有实验启动 CSI 摄像头的标准内容。

这个代码中有几个关键的部分:

1. jetbot的Camera模块:

早期 Jetbot 的摄像头是基于 NVIDIA 的 JetCam 项目,提供对 CSI 与 USB 两类摄像头的支持,不过最新版本中仿佛只对 CSI 摄像头提供支持,并且将底层的代码放在 jetbot/camera 下面的几只 .py 里面。

这使得调用方式变得非常简单,只要将宽与高提供给 Camera.instance (宽,高)就可以,不需要再指定摄像头的编号。

2. ipywidgets:

这个模块为 jupyter 提供非常好用的“互动式小部件”,为原本只提供静态显示的教学环境,注入非常生动与多样化互动的功能。

熟悉图形化开发工具的朋友就应该知道,很多这类工具会提供下拉式选项、滑块调整、复选框、文字框这类的小部件,可以组建较为复杂的仪表盘。

在后面控制 Jetbot 车轮的实验中会使用到多种这类小部件,这里只是用到比较简单的 widgets.image 功能,设定输出为“jpeg”格式图像。

3. iPython.display:

这是一个 python 互动式界面里的显示功能,这里就是将 widget.image 输出的 jpeg 图像显示在 Jupyter。

4. traitlets:

如果从整个英文字去翻译,这个库就被称为“叛徒库”,其实是蛮奇怪的东西。但如果将这个字切割成“trait”与“-let”组合,就能解释成“小特征”的含义,例如 booklet 是小册子、eaglet 是小老鹰的意思。

这个库的功能非常强大,除了能为我们处理“类型检查”之外,还能为动态计算提供预设值、修改属性之后发出更改的事件信号、处理属性值之间的交互影响,为我们简化很多复杂的交错关系。

在上述代码中“camera_link=traitlets.dlink((camera, 'value'), (image, 'value'), transform=bgr8_to_jpeg)”,将摄像头读取的图像与 widgets.image 所创建的 image 对象产生动态关联,并将摄像头图形执行“bgr8_to_jpeg”转换,存放到 image 里,最后再由 display(image)显示出来。

至于 camera_link 物件就能在后面透过.link()与.unlink()执行开关人任务,以实现“暂停”与“再启动”的功能。

这样我们对 Jetbot 摄像头的调用与使用,就有个初步的了解,在后面实验中就能更清楚的感受到这些功能的使用。

原文标题:NVIDIA Jetson Nano 2GB 系列文章(43):CSI摄像头安装与测试

文章出处:【微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

审核编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4929

    浏览量

    102791
  • 摄像头
    +关注

    关注

    59

    文章

    4806

    浏览量

    95390
  • 浏览器
    +关注

    关注

    1

    文章

    1014

    浏览量

    35269

原文标题:NVIDIA Jetson Nano 2GB 系列文章(43):CSI摄像头安装与测试

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    初创公司借助NVIDIA Metropolis和Jetson提高生产线效率

    初创公司使用 NVIDIA Metropolis 视觉 AI 和 Jetson 边缘 AI 平台提高生产线效率
    的头像 发表于 11-19 14:39 98次阅读

    蓝牙定位系统:实现精准定位、提高效率的利器

    在当今数字化的时代,精准定位技术在各个领域发挥着至关重要的作用。其中,蓝牙定位系统以其独特的优势,成为了提高效率的强大工具。 蓝牙定位系统的工作原理基于蓝牙信号的强度和传播特性。通过在特定区域内
    的头像 发表于 10-14 10:14 216次阅读
    蓝牙定位系统:实现精准定位、<b class='flag-5'>提高效率</b>的利器

    南芯科技发布单芯片车载摄像头PMIC系列,为更高级别的智能驾驶提供支持

    南芯科技(证券代码:688484)宣布推出专为车载摄像头模块设计的高性能电源管理芯片 (PMIC) 系列。凭借“ 高集成、高效率、高可靠 ”的优势,该 PMIC 系列仅用单颗芯片即可实
    的头像 发表于 09-30 13:53 222次阅读
    南芯科技发布单芯片车载<b class='flag-5'>摄像头</b>PMIC<b class='flag-5'>系列</b>,为更高级别的智能驾驶<b class='flag-5'>提供</b>支持

    摄像头气密性测试设备:高精度,高效率

    如今,随着科学技术的飞速发展,摄像头作为信息采集和传输的关键设备,其性能和稳定性直接关系到许多领域的安全性和效率。气密性作为摄像头防水防尘的重要指标,是保证其长期稳定运行的关键。因此,高精度、
    的头像 发表于 09-23 14:49 166次阅读
    <b class='flag-5'>摄像头</b>气密性测试设备:高精度,<b class='flag-5'>高效率</b>

    D类放大器中用于提高效率的 Y 桥应用说明

    电子发烧友网站提供《D类放大器中用于提高效率的 Y 桥应用说明.pdf》资料免费下载
    发表于 09-13 11:03 0次下载
    D类放大器中用于<b class='flag-5'>提高效率</b>的 Y 桥应用说明

    NVIDIA摄像头追踪工作流的应用架构

    提高安全性并优化运营,仓库、工厂、体育场、机场等大型区域通常会有数百个摄像头进行监控。多摄像头追踪指的是通过这些摄像头追踪对象,并精确测量其活动,以此实现对空间的有效监控和管理。
    的头像 发表于 09-06 14:23 252次阅读
    <b class='flag-5'>NVIDIA</b>多<b class='flag-5'>摄像头</b>追踪工作流的应用架构

    取得平衡:可提高效率并控制EMI的汽车设计

    电子发烧友网站提供《取得平衡:可提高效率并控制EMI的汽车设计.pdf》资料免费下载
    发表于 08-28 11:58 0次下载
    取得平衡:可<b class='flag-5'>提高效率</b>并控制EMI的汽车设计

    基于RK3588J的6路MIPI CSI视频采集案例分享,多路视频系统必看!

    :rk3588_linux_release_v1.2.1摄像头模块型号:TL13850和Camera Module v2视频分辨率:1920x1080@30fps 图 1 6路视频采集效果图 备注:由于案例通过
    发表于 08-22 11:51

    激光焊接:CCM摄像头模组精密制造的核心

    ,并展示了激光锡焊技术如何以其高精度、高稳定性和高效率克服这些挑战,满足现代CCM摄像头模组制造的严苛标准。大研智造作为行业的领先品牌,提供了定制化解决方案和全方位服务,推动了激光锡焊技术的发展和应用。
    的头像 发表于 08-19 11:44 427次阅读
    激光焊接:CCM<b class='flag-5'>摄像头</b>模组精密制造的核心

    智能摄像头抄表器是什么?

    进行图像识别,实现无接触、无误差的远程抄表,极大地提高了抄表效率和准确性。2.技术原理与优势2.1AI图像识别:智能摄像头抄表器的核心在于其内置的AI算法,能够准
    的头像 发表于 04-24 14:14 535次阅读
    智能<b class='flag-5'>摄像头</b>抄表器是什么?

    提高效率的DC电源模块设计技巧

    BOSHIDA  提高效率的DC电源模块设计技巧 设计高效率的BOSHIDA  DC电源模块可以帮助减少能源浪费和提高系统功耗,以下是一些设计技巧: 1. 选择高效率的功率转换器:选择
    的头像 发表于 02-26 14:27 498次阅读
    <b class='flag-5'>提高效率</b>的DC电源模块设计技巧

    什么是电源模块效率 如何计算 提高效率的方法

    什么是电源模块效率 如何计算 提高效率的方法 BOSHIDA博士达 电源模块效率是指输入电能转换为输出电能的比例,通常以百分比表示。高效率的电源模块能够最大限度地将输入电能转化为有用的
    的头像 发表于 02-02 09:44 1008次阅读

    搬运机器人已经成为提高效率、降低成本的关键技术

    物流、制造业和仓储等领域,搬运机器人已经成为提高效率、降低成本的关键技术。近年来,随着技术的不断突破,搬运机器人正朝着更加智能、高效和可靠的方向发展。
    的头像 发表于 01-22 12:00 498次阅读
    搬运机器人已经成为<b class='flag-5'>提高效率</b>、降低成本的关键技术

    NVIDIA Jetson 的嵌入式系统AI应用

    在这个平台上可以使用多个不同的芯片 ,案例的主角是AIMobile AIM Edge Ncox,一款基于NVIDIA Jetson Orin NX的小型被动冷却嵌入式系统。该系统具有6-8个Arm内核和NVIDIA Ampere
    发表于 12-11 17:37 529次阅读

    带有快速体二极管的MOSFET器件通过LLC拓扑和FREDFET来提高效率

    带有快速体二极管的MOSFET器件通过LLC拓扑和FREDFET来提高效率
    的头像 发表于 12-08 17:35 655次阅读
    带有快速体二极管的MOSFET器件通过LLC拓扑和FREDFET来<b class='flag-5'>提高效率</b>