Line 2: |
Line 2: |
| | | |
| === 概述 === | | === 概述 === |
| + | MV系列相机是为工业领域的AI应用推出的相机。其使用MIPI CSI-2接口,尤其适合嵌入式运算平台使用。它具备丰富的数据格式和触发特性,极低的延时,极高的带宽和可靠的稳定性。 |
| + | |
| + | 本文介绍了如何在英伟达Jetson平台使用MV系列相机。 |
| + | |
| + | ==== 支持的摄像机模组 ==== |
| + | {| class="wikitable" |
| + | ! 系列 |
| + | !型号 |
| + | ! 状态 |
| + | |- |
| + | |MV系列 |
| + | |MV-MIPI-IMX178M |
| + | |完成 |
| + | |- |
| + | |MV系列 |
| + | |MV-MIPI-SC130M |
| + | |完成 |
| + | |- |
| + | |MV系列 |
| + | |MV-MIPI-IMX296M |
| + | |完成 |
| + | |- |
| + | |MV系列 |
| + | |MV-MIPI-IMX287M |
| + | |完成 |
| + | |- |
| + | |MV系列 |
| + | |MV-MIPI-IMX265M |
| + | |完成 |
| + | |- |
| + | |MV系列 |
| + | |MV-MIPI-IMX264M |
| + | |完成 |
| + | |- |
| + | |RAW系列 |
| + | |RAW-MIPI-SC132M |
| + | |完成 |
| + | |- |
| + | |RAW系列 |
| + | |RAW-MIPI-AR0234M |
| + | |完成 |
| + | |- |
| + | |RAW系列 |
| + | |RAW-MIPI-IMX462M |
| + | |完成 |
| + | |} |
| + | 此外,已经调通V-by-One HS连接模式的驱动。 |
| + | |
| + | ==== 支持的Jetson Board ==== |
| + | {| class="wikitable" |
| + | !Jetson型号 |
| + | ! 状态 |
| + | |- |
| + | |Nano A02 |
| + | |完成 |
| + | |- |
| + | |Nano B01 |
| + | |完成 |
| + | |- |
| + | |Nano 2GB |
| + | |完成 |
| + | |- |
| + | |TX2 NX |
| + | |完成 |
| + | |- |
| + | |XAVIER NX |
| + | |完成 |
| + | |- |
| + | |TX2 Devkit |
| + | |完成 |
| + | |- |
| + | |AGX Xavier |
| + | |完成 |
| + | |- |
| + | |AGX Orin |
| + | |完成 |
| + | |- |
| + | |Orin NX |
| + | |完成 |
| + | |- |
| + | |Orin Nano |
| + | |完成 |
| + | |} |
| + | |
| + | ==== 支持的L4T版本 ==== |
| + | |
| + | * Jetpack4.6.1,L4T版本r32.7.1 |
| + | *Jetpack4.6.3,L4T版本r32.7.3 |
| + | *Jetpack5.0.2,L4T版本r35.1 |
| + | *Jetpack5.1,L4T版本r35.2.1 |
| + | *Jetpack5.1.1,L4T版本r35.3.1 |
| + | *Jetpack5.1.2,L4T版本r35.4.1 |
| + | |
| + | =====怎样查看当前L4T版本===== |
| + | 在jetson板子上,查看当前L4T版本,尽量使用同一版本进行替换。 |
| + | |
| + | <code>cat /etc/nv_tegra_release</code> |
| + | |
| + | 如显示: |
| + | |
| + | <code># R32 (release), REVISION: 7.1......</code> |
| + | |
| + | 则表示当前L4T版本为32.7.1,对应的Jetpack版本是Jetpack32.6.1。 |
| + | === 硬件准备以及安装 === |
| + | MV系列相机需要转接板才可以接入Jetson平台。支持情况如下表: |
| + | {| class="wikitable" |
| + | !Camera型号 |
| + | !Jetson型号 |
| + | ! 转接板 |
| + | !FFC线(to 转接板) |
| + | !FFC线(to Jetson主板) |
| + | !摄像机数量 |
| + | !额外供电 |
| + | |- |
| + | | rowspan="10" |MV系列 |
| + | |Nano A02 |
| + | |ADP-MV1 |
| + | |30pin异面FFC |
| + | |15pin异面FFC |
| + | |1 |
| + | |5V DC(必须) |
| + | |- |
| + | |Nano B01 |
| + | |ADP-MV1 |
| + | |30pin异面FFC |
| + | |15pin异面FFC |
| + | |2 |
| + | |5V DC(必须) |
| + | |- |
| + | |Nano 2GB |
| + | |ADP-MV1 |
| + | |30pin异面FFC |
| + | |15pin异面FFC |
| + | |1 |
| + | |5V DC(必须) |
| + | |- |
| + | |TX2 NX |
| + | |ADP-MV1 |
| + | |30pin异面FFC |
| + | |15pin异面FFC |
| + | |2 |
| + | |5V DC(必须) |
| + | |- |
| + | |XAVIER NX |
| + | |ADP-MV1 |
| + | |30pin异面FFC |
| + | |15pin异面FFC |
| + | |2 |
| + | |5V DC(必须) |
| + | |- |
| + | |Orin Nano |
| + | |ADP-MV1 |
| + | |30pin异面FFC |
| + | |15to22 pin 同面FFC |
| + | |2 |
| + | |5V DC(必须) |
| + | |- |
| + | |Orin NX |
| + | |ADP-MV1 |
| + | |30pin异面FFC |
| + | |15to22 pin 同面FFC |
| + | |2 |
| + | |5V DC(必须) |
| + | |- |
| + | |TX2 Devkit |
| + | |ADP-N4 |
| + | |30pin异面FFC |
| + | |B2B连接器 |
| + | |6 |
| + | |5V或12V DC (必须) |
| + | |- |
| + | |AGX Xavier |
| + | |ADP-N4 |
| + | |30pin异面FFC |
| + | |B2B连接器 |
| + | |6 |
| + | |5V或12V DC (必须) |
| + | |- |
| + | |AGX Orin |
| + | |ADP-N4 |
| + | |30pin异面FFC |
| + | |B2B连接器 |
| + | |6 |
| + | |5V或12V DC (必须) |
| + | |- |
| + | | rowspan="10" |RAW-MIPI-SC132M |
| + | |Nano A02 |
| + | |N/A |
| + | |N/A |
| + | |15pin异面FFC |
| + | |1 |
| + | |N/A |
| + | |- |
| + | |Nano B01 |
| + | |N/A |
| + | |N/A |
| + | |15pin异面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |Nano 2GB |
| + | |N/A |
| + | |N/A |
| + | |15pin异面FFC |
| + | |1 |
| + | |N/A |
| + | |- |
| + | |TX2 NX |
| + | |N/A |
| + | |N/A |
| + | |15pin异面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |XAVIER NX |
| + | |N/A |
| + | |N/A |
| + | |15pin异面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |Orin Nano |
| + | |N/A |
| + | |N/A |
| + | |15to22 pin 同面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |Orin NX |
| + | |N/A |
| + | |N/A |
| + | |15to22 pin 同面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |TX2 Devkit |
| + | |ADP-N5 |
| + | |15pin异面FFC |
| + | |B2B连接器 |
| + | |6 |
| + | |N/A |
| + | |- |
| + | |AGX Xavier |
| + | |ADP-N5 |
| + | |15pin异面FFC |
| + | |B2B连接器 |
| + | |6 |
| + | |N/A |
| + | |- |
| + | |AGX Orin |
| + | |ADP-N5 |
| + | |15pin异面FFC |
| + | |B2B连接器 |
| + | |6 |
| + | |N/A |
| + | |- |
| + | | rowspan="10" |RAW系列(RAW-MIPI-SC132M除外) |
| + | |Nano A02 |
| + | |N/A |
| + | |N/A |
| + | |15to22 pin 同面FFC |
| + | |1 |
| + | |N/A |
| + | |- |
| + | |Nano B01 |
| + | |N/A |
| + | |N/A |
| + | |15to22 pin 同面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |Nano 2GB |
| + | |N/A |
| + | |N/A |
| + | |15to22 pin 同面FFC |
| + | |1 |
| + | |N/A |
| + | |- |
| + | |TX2 NX |
| + | |N/A |
| + | |N/A |
| + | |15to22 pin 同面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |XAVIER NX |
| + | |N/A |
| + | |N/A |
| + | |15to22 pin 同面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |Orin Nano |
| + | |N/A |
| + | |N/A |
| + | |22pin 异面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |Orin NX |
| + | |N/A |
| + | |N/A |
| + | |22pin 异面FFC |
| + | |2 |
| + | |N/A |
| + | |- |
| + | |TX2 Devkit |
| + | |ADP-N5 |
| + | |15to22 pin 同面FFC |
| + | |B2B连接器 |
| + | |6 |
| + | |N/A |
| + | |- |
| + | |AGX Xavier |
| + | |ADP-N5 |
| + | |15to22 pin 同面FFC |
| + | |B2B连接器 |
| + | |6 |
| + | |N/A |
| + | |- |
| + | |AGX Orin |
| + | |ADP-N5 |
| + | |15to22 pin 同面FFC |
| + | |B2B连接器 |
| + | |6 |
| + | |N/A |
| + | |} |
| + | ==== MV系列摄像头使用ADP-MV1的连接方式 ==== |
| + | |
| + | ===== MV系列摄像头与ADP-MV1的连接 ===== |
| + | 二者使用0.5mm间距*30P的FFC异面线连接,注意接触面向外。 |
| + | {| class="wikitable" |
| + | !TOP |
| + | !BOTTOM |
| + | |- |
| + | |[[File:ADP-MV1-MV-MIPI-X 01.jpg|center|thumb|600x600px|ADP-MV1 to MV-MIPI-X|alt=]] |
| + | |[[File:ADP-MV1-MV-MIPI-X 02.jpg|alt=|center|thumb|600x600px|ADP-MV1 to MV-MIPI-X]] |
| + | |} |
| + | |
| + | ===== 供电 ===== |
| + | ADP-MV1需要独立的5V供电,可以使用杜邦线直接从Jetson主板取电。 |
| + | [[File:ADP-MV1-MV-MIPI-X 07.jpg|center|thumb|800x800px|ADP-MV1 power supply]] |
| + | <br /> |
| + | |
| + | ===== 使用ADP-MV1连接到Nano和Xavier NX ===== |
| + | Nano系列和NX系列采用这种连接方式。 |
| + | [[File:MV camera and Xavier NX connection.jpg|center|thumb|800x800px|MV camera and Xavier NX connection]]<br /> |
| + | ===== 使用ADP-MV1连接到Orin Nano和 Orin NX ===== |
| + | 二者使用15P转22Pin的FFC同面线连接,注意接触面方向。 |
| + | [[File:MV camera connect to Orin Nano and Orin NX.jpg|center|thumb|800x800px|MV camera connect to Orin Nano and Orin NX]] |
| + | <br /> |
| + | |
| + | ==== MV系列摄像头使用ADP-N4的连接方式 ==== |
| + | |
| + | ===== MV系列摄像头与ADP-N4的连接 ===== |
| + | 二者使用0.5mm间距*30P的FFC同面线连接,注意接触面向外。 |
| + | [[File:ADP-N4 and MV-MIPI-CAM.jpg|center|thumb|800x800px|MV-MIPI-CAM to ADP-N4]] |
| + | |
| + | ===== 供电 ===== |
| + | ADP-N4需要独立的供电。它支持两种供电方式,二选其一即可。 |
| + | |
| + | * 5V DC 接到 J19-9。可以使用杜邦线直接从Jetson主板取电。 |
| + | * 12V DC 接到J11。需使用外置适配器供电。 |
| + | |
| + | ===== 使用ADP-N4的连接到TX2和AGX ===== |
| + | [[File:ADP-N4 to AGX XAVIER.jpg|alt=ADP-N4 to AGX XAVIER|center|thumb|800x800px|ADP-N4 to AGX XAVIER]] |
| + | <br /> |
| + | [[File:ADP-N4 to AGX Orin.jpg|center|thumb|800x800px|ADP-N4 to AGX Orin]] |
| + | [[File:ADP-N4 to TX2 Devkit.jpg|center|thumb|800x800px|ADP-N4 to TX2 Devkit]] |
| + | |
| + | ==== RAW系列摄像头直接连接到Jetson主板 ==== |
| + | |
| + | ===== RAW系列摄像头连接到Nano和Xavier NX ===== |
| + | RAW-MIPI-SC132M使用15pin异面FFC线,其他RAW系列相机使用15to22pin同面FFC线。 |
| + | <br /> |
| + | [[File:RAW-MIPI-AR0234-NANO 01.jpg|center|thumb|800x800px|RAW camera and Jetson Nano connection]] |
| + | |
| + | ===== RAW系列摄像头连接到Orin Nano和 Orin NX ===== |
| + | RAW-MIPI-SC132M使用15to22pin同面FFC线,其他RAW系列相机使用22pin异面FFC线。 |
| + | [[File:RAW-MIPI-IMX462-ORIN NX.jpg|center|thumb|800x800px|RAW-MIPI-IMX462-ORIN NX]] |
| + | <br /> |
| + | |
| + | ==== RAW系列摄像头使用ADP-N5的连接方式 ==== |
| + | |
| + | ===== RAW系列摄像头与ADP-N5的连接 ===== |
| + | RAW-MIPI-SC132M使用15pin异面FFC线,其他RAW系列相机使用15to22pin同面FFC线。 |
| + | [[File:RAW-MIPI-IMX462-ADP-N5.jpg|center|thumb|800x800px|RAW-MIPI-IMX462 connect with ADP-N5]] |
| <br /> | | <br /> |
| | | |
− | === 硬件准备以及安装 === | + | ===== 使用ADP-N5连接到TX2和AGX ===== |
| + | [[File:RAW-MIPI-IMX462 connect to ADP-N5-AGX XAVIER.jpg|center|thumb|800x800px|ADP-N5 to AGX Xavier]] |
| + | <br /> |
| + | ==== V-by-One-HS-KIT摄像机连接示意图 ==== |
| + | [[File:VBYONE connection with Jetson.jpg|center|thumb|800x800px|V-by-One-HS-KIT connection with Jetson]] |
| <br /> | | <br /> |
| + | === 更新Jetson系统 === |
| + | 本章节描述怎样更新Jetson的L4T系统以支持MV摄像头模组。操作系统更新方法,请参考[[VEYE CS Camera for Jetson TX2/zh#.E6.9B.B4.E6.96.B0Jetson Nano.2C Jetson TX2.EF.BC.8CTX2 NX.2C AGX Xavier.E5.92.8CXavier NX.E7.B3.BB.E7.BB.9F|更新Jetson操作系统]]。 |
| | | |
− | === 更新Jetson操作系统 === | + | 特别的,对于MV系列相机,除了在linux系统中增加了摄像头的驱动,我们还增加了一个内核补丁——veye_mv_l4t_<verion>.patch,并提供编译好的Image文件。 |
| + | |
| + | 这个patch具备两个功能: |
| + | |
| + | # 增加了黑白相机的Y10和Y12两种数据格式的支持。 |
| + | # 增加了trigger模式的支持。 |
| + | |
| + | === raw data图片格式说明 === |
| + | 在TX2和XAVIER上,10 bit depth和12 bit depth的raw data在内存中的存储格式是不符合V4L2标准的。我们扩展了linux内核中的定义以支持这种情况。 |
| + | |
| + | TY10、TY12、XY10和XY12是我们新增的类型。 |
| + | |
| + | ===== Nano ===== |
| + | {| class="wikitable" |
| + | !Depth |
| + | !Bit order |
| + | !FourCC |
| + | !Enumerator |
| + | |- |
| + | |8 |
| + | |B7 B6 B5 B4 B3 B2 B1 B0 |
| + | |GREY |
| + | |V4L2_PIX_FMT_GREY |
| + | |- |
| + | |10 |
| + | |0 0 0 0 0 0 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 |
| + | |'Y10 ' |
| + | |V4L2_PIX_FMT_Y10 |
| + | |- |
| + | |12 |
| + | |0 0 0 0 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 |
| + | |'Y12 ' |
| + | |V4L2_PIX_FMT_Y12 |
| + | |} |
| + | |
| + | ===== TX2 ===== |
| + | {| class="wikitable" |
| + | !Depth |
| + | !Bit order (X is undefined) |
| + | !FourCC |
| + | !Enumerator |
| + | |- |
| + | |8 |
| + | |B7 B6 B5 B4 B3 B2 B1 B0 |
| + | |GREY |
| + | |V4L2_PIX_FMT_GREY |
| + | |- |
| + | |10 |
| + | |0 0 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 X X X X |
| + | |TY10 |
| + | |V4L2_PIX_FMT_TX2_Y10 |
| + | |- |
| + | |12 |
| + | |0 0 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 X X |
| + | |TY12 |
| + | |V4L2_PIX_FMT_TX2_Y12 |
| + | |} |
| + | |
| + | ===== XAVIER and Orin ===== |
| + | {| class="wikitable" |
| + | !Depth |
| + | !Bit order (X is undefined) |
| + | !FourCC |
| + | !Enumerator |
| + | |- |
| + | |8 |
| + | |B7 B6 B5 B4 B3 B2 B1 B0 |
| + | |GREY |
| + | |V4L2_PIX_FMT_GREY |
| + | |- |
| + | |10 |
| + | |0 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 X X X X X |
| + | |XY10 |
| + | |V4L2_PIX_FMT_XAVIER_Y10 |
| + | |- |
| + | |12 |
| + | |0 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 X X X |
| + | |XY12 |
| + | |V4L2_PIX_FMT_XAVIER_Y12 |
| + | |} |
| + | 同时,我们提供了工具软件,以便将特殊的数据格式转为标准格式。https://github.com/veyeimaging/pixel_layer_convert<nowiki/>。 |
| + | |
| + | 推荐使用[https://www.offminor.de/ vooya]作为播放器。 |
| | | |
| ==== Trigger模式的支持 ==== | | ==== Trigger模式的支持 ==== |
| + | Jetson系统的默认驱动只支持视频流模式。在其VI驱动中,数据接收功能具有超时机制。我们增加了一个可设的vi_time_out_disable选项,可以动态打开和关闭这个超时机制。 |
| + | |
| + | 具体应用参考下面的应用范例。 |
| + | === 系统状态检测 === |
| + | 完成系统更新后,重启Jetson主板。 |
| + | |
| + | Jetson系统启动过程中,会检测所有i2c bus上摄像头是否存在,如果存在则生成/dev/videoX设备节点。 |
| + | |
| + | 在Jetson板端执行以下命令来检测是否正确连接摄像头。 |
| + | |
| + | <code>dmesg | grep mvcam</code> |
| + | |
| + | 可以看到linux启动阶段probe到的相机型号和以及相机的版本号: |
| + | |
| + | 比如下面这个提示,表示在i2c-10总线上检测到了MV-MIPI-IMX178M摄像机。 |
| + | |
| + | <code>mvcam 10-003b: camera is: MV-MIPI-IMX178M</code> |
| + | |
| + | <code>mvcam 10-003b: firmware version: 0x1080103</code> |
| + | |
| + | ==== /dev/videoX设备节点 ==== |
| + | 摄像头模组在Jetson系统中映射为/dev/videoX设备节点。 |
| + | |
| + | 操作系统启动过程中,按照i2c bus从小到大的顺序探测摄像头。X值是按照探测的逻辑顺序从0开始递增的。 |
| + | |
| + | 举例说,如果只接入一个摄像头,无论硬件连接到哪个位置,X都为0。如果接入5个,则按照i2c bus从小到大,X为[0-4]。 |
| + | |
| + | v4l2-ctl命令中,使用<code>-d /dev/videoX</code>来访问不同的摄像头。 |
| + | |
| + | gstreamer中,v4l2src可以通过指明<code>device=/dev/videoX</code>来访问不同的摄像头。 |
| + | |
| + | === 配置命令行全局变量 === |
| + | 为了后面描述方便,此处根据sensor尺寸,配置全局变量。 |
| + | |
| + | * MV-MIPI-IMX178M |
| + | |
| + | <code>export WIDTH=3088</code> |
| + | |
| + | <code>export HEIGHT=2064</code> |
| + | |
| + | <code>export FPS=22</code> |
| + | |
| + | * MV-MIPI-SC130M |
| + | |
| + | <code>export WIDTH=1280</code> |
| + | |
| + | <code>export HEIGHT=1024</code> |
| + | |
| + | <code>export FPS=108</code> |
| + | |
| + | *MV-MIPI-IMX296M |
| + | |
| + | <code>export WIDTH=1440</code> |
| + | |
| + | <code>export HEIGHT=1088</code> |
| + | |
| + | <code>export FPS=60</code> |
| + | |
| + | *MV-MIPI-IMX265M |
| + | |
| + | <code>export WIDTH=2048</code> |
| + | |
| + | <code>export HEIGHT=1544</code> |
| + | |
| + | <code>export FPS=45</code> |
| + | |
| + | *MV-MIPI-IMX264M |
| + | |
| + | <code>export WIDTH=2432</code> |
| + | |
| + | <code>export HEIGHT=2056</code> |
| + | |
| + | <code>export FPS=28</code> |
| + | |
| + | * MV-MIPI-IMX287M |
| + | |
| + | <code>export WIDTH=704</code> |
| + | |
| + | <code>export HEIGHT=544</code> |
| + | |
| + | <code>export FPS=319</code> |
| + | |
| + | *RAW-MIPI-SC132M |
| | | |
− | ==== raw data图片格式说明 ==== | + | <code>export WIDTH=1080</code> |
| | | |
− | ===== 系统状态验证 ===== | + | <code>export HEIGHT=1280</code> |
− | <br /> | + | |
| + | <code>export FPS=120</code> |
| + | |
| + | *RAW-MIPI-IMX462M |
| + | |
| + | <code>export WIDTH=1920</code> |
| + | |
| + | <code>export HEIGHT=1080</code> |
| + | |
| + | <code>export FPS=60</code> |
| + | |
| + | *RAW-MIPI-AR0234M |
| + | |
| + | <code>export WIDTH=1920</code> |
| + | |
| + | <code>export HEIGHT=1200</code> |
| | | |
| + | <code>export FPS=60</code> |
| === v4l2-ctl 应用范例 === | | === v4l2-ctl 应用范例 === |
− | <br /> | + | =====安装v4l2-utils===== |
| + | <code>sudo apt-get install v4l-utils</code> |
| + | ===== 使用v4l2-ctl配置参数 ===== |
| + | |
| + | ====== 列出相机支持的数据格式 ====== |
| + | <code>v4l2-ctl --list-formats-ext</code> |
| + | |
| + | 下面是在XAVIER系统下,MV-MIPI-IMX178M的例子: |
| + | |
| + | <code>ioctl: VIDIOC_ENUM_FMT</code> |
| + | |
| + | <code> Index : 0</code> |
| + | |
| + | <code> Type : Video Capture</code> |
| + | |
| + | <code> Pixel Format: 'UYVY'</code> |
| + | |
| + | <code> Name : UYVY 4:2:2</code> |
| + | |
| + | <code> Size: Discrete 3088x2064</code> |
| + | |
| + | <code> Interval: Discrete 0.045s (22.000 fps)</code> |
| + | |
| + | <code> Index : 1</code> |
| + | |
| + | <code> Type : Video Capture</code> |
| + | |
| + | <code> Pixel Format: 'NV16'</code> |
| + | |
| + | <code> Name : Y/CbCr 4:2:2</code> |
| + | |
| + | <code> Size: Discrete 3088x2064</code> |
| + | |
| + | <code> Interval: Discrete 0.045s (22.000 fps)</code> |
| + | |
| + | <code> Index : 2</code> |
| + | |
| + | <code> Type : Video Capture</code> |
| + | |
| + | <code> Pixel Format: 'GREY'</code> |
| + | |
| + | <code> Name : 8-bit Greyscale</code> |
| + | |
| + | <code> Size: Discrete 3088x2064</code> |
| + | |
| + | <code> Interval: Discrete 0.045s (22.000 fps)</code> |
| + | |
| + | <code> Index : 3</code> |
| + | |
| + | <code> Type : Video Capture</code> |
| + | |
| + | <code> Pixel Format: 'XY10'</code> |
| + | |
| + | <code> Name : XAVIER 10-bit/16-bit Greyscale</code> |
| + | |
| + | <code> Size: Discrete 3088x2064</code> |
| + | |
| + | <code> Interval: Discrete 0.045s (22.000 fps)</code> |
| + | |
| + | <code> Index : 4</code> |
| + | |
| + | <code> Type : Video Capture</code> |
| + | |
| + | <code> Pixel Format: 'XY12'</code> |
| + | |
| + | <code> Name : XAVIER 12-bit/16-bit Greyscale</code> |
| + | |
| + | <code> Size: Discrete 3088x2064</code> |
| + | |
| + | <code> Interval: Discrete 0.045s (22.000 fps)</code> |
| + | |
| + | 需要特别说明的是,MV系列相机提供的UYVY和NV16模式仅作调试使用,且最大宽度不能超过2880。 |
| + | |
| + | ====== 列出驱动中实现的相机的可配置参数 ====== |
| + | <code>v4l2-ctl -L</code> |
| + | |
| + | <code>User Controls</code> |
| + | |
| + | <code> trigger_mode 0x00981901 (int) : min=0 max=2 step=1 default=0 value=0 flags=volatile, execute-on-write</code> |
| + | |
| + | <code> trigger_src 0x00981902 (int) : min=0 max=1 step=1 default=1 value=1 flags=volatile, execute-on-write</code> |
| + | |
| + | <code> soft_trgone 0x00981903 (button) : flags=write-only, execute-on-write</code> |
| + | |
| + | <code> frame_rate 0x00981904 (int) : min=1 max=22 step=1 default=22 value=22 flags=volatile, execute-on-write</code> |
| + | |
| + | <code> roi_x 0x00981905 (int) : min=0 max=2712 step=8 default=0 value=0</code> |
| + | |
| + | <code> roi_y 0x00981906 (int) : min=0 max=1744 step=4 default=0 value=0</code> |
| + | |
| + | <code>Camera Controls</code> |
| + | |
| + | <code>low_latency_mode 0x009a206d (bool) : default=0 value=0</code> |
| + | |
| + | <code> preferred_stride 0x009a206e (int) : min=0 max=65535 step=1 default=0 value=0</code> |
| + | |
| + | <code> vi_time_out_disable 0x009a2078 (bool) : default=0 value=0</code> |
| + | |
| + | 可以使用下面的方法设置和获取参数。 |
| + | |
| + | <code>v4l2-ctl --set-ctrl [ctrl_type]=[val]</code> |
| + | |
| + | <code>v4l2-ctl --get-ctrl [ctrl_type]</code> |
| + | |
| + | 以上所有功能,均可使用[[Mv mipi i2c.sh user guide|mv_mipi_i2c.sh]]实现。 |
| + | |
| + | 需要指出的是,以上参数在开始取图的状态均不可修改。下面进行逐个说明: |
| + | ====== 配置触发模式====== |
| + | <code>v4l2-ctl --set-ctrl <small>trigger_mode=[0-2]</small></code> |
| + | |
| + | 0:流模式 |
| + | |
| + | 1:普通触发模式 |
| + | |
| + | 2:快速连续触发模式 |
| + | ======配置触发源====== |
| + | <code>v4l2-ctl --set-ctrl <small>trigger_src=[0-1]</small></code> |
| + | |
| + | 0: 软触发 |
| + | |
| + | 1: 硬触发 |
| + | ====== 软触发一次====== |
| + | <code>v4l2-ctl --set-ctrl <small>soft_trgone=1</small></code> |
| + | ======设置帧率====== |
| + | <code>v4l2-ctl --set-ctrl frame_rate=[1-max]</code> |
| + | |
| + | 随分辨率的调整,最大帧率会自动更新。 |
| + | ======设置ROI和数据格式====== |
| + | 举例: |
| + | |
| + | <code>v4l2-ctl --set-ctrl roi_x=0</code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl roi_y=0</code> |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=GREY</code> |
| + | |
| + | 设置roi后,最大帧率会自动调整。请注意,摄像机roi参数需要符合摄像机手册中的要求。 |
| + | |
| + | ====== preferred_stride ====== |
| + | preferred_stride指一行图像数据需要的内存大小。Jetson平台的图像数据是unpacked存储的,即10bit depth和12 bit depth的数据格式下,一个像素占用两个字节。 |
| + | |
| + | * 普通情况下,buffer需要64字节对齐。 |
| + | |
| + | preferred_stride= ALIGN_UP(width*bytes_per_pixel,64) |
| + | |
| + | 比如宽度为3088时: |
| + | |
| + | 8bit depth,preferred_stride=3136。 |
| + | |
| + | 10bit depth,preferred_stride=6208。 |
| + | |
| + | 12bit depth,preferred_stride=6208。 |
| + | |
| + | * 如果使用VIC buffer,则需要256字节对齐。 |
| + | |
| + | preferred_stride= ALIGN_UP(width*bytes_per_pixel,256) |
| + | |
| + | ==== 流模式 ==== |
| + | |
| + | =====设置图像格式===== |
| + | 以最大画面为例: |
| + | |
| + | <code>v4l2-ctl --set-ctrl roi_x=0</code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl roi_y=0</code> |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=GREY</code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl frame_rate=$FPS</code> |
| + | =====帧率统计===== |
| + | <code>v4l2-ctl --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=/dev/null</code> |
| + | ===== 保存图片到文件 ===== |
| + | |
| + | ====== MV-MIPI-IMX178M ====== |
| + | |
| + | * raw8格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=3136</code> |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=3088,height=2064,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=y8-3136x2064.raw</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=6208</code> |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=3088,height=2064,pixelformat=XY10 --stream-mmap --stream-count=1 --stream-to=y10-3104x2064.raw</code> |
| + | |
| + | * raw12格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=6208</code> |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=3088,height=2064,pixelformat=XY12 --stream-mmap --stream-count=1 --stream-to=y12-3104x2064.raw</code> |
| + | |
| + | ====== MV-MIPI-SC130M ====== |
| + | 由于宽度1280是64和256的整数倍,不需要设置preferred_stride。 |
| + | |
| + | *raw8格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=1024,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=y8-1280x1024.raw</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=1024,pixelformat=XY10 --stream-mmap --stream-count=1 --stream-to=y10-1280x1024.raw</code> |
| + | |
| + | ====== MV-MIPI-IMX296M ====== |
| + | |
| + | *raw8格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=1472</code> |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1440,height=1088,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=y8-1472x1088.raw</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1440,height=1088,pixelformat=XY10 --stream-mmap --stream-count=1 --stream-to=y10-1440x1088.raw</code> |
| + | |
| + | ====== MV-MIPI-IMX265M ====== |
| + | |
| + | * raw8格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=2048,height=1544,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=y8-2048x1544.raw</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=2048,height=1544,pixelformat=XY10 --stream-mmap --stream-count=1 --stream-to=y10-2048x1544.raw</code> |
| + | |
| + | * raw12格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=2048,height=1544,pixelformat=XY12 --stream-mmap --stream-count=1 --stream-to=y12-2048x1544.raw</code> |
| + | ======MV-MIPI-IMX264M====== |
| + | |
| + | *raw8 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=2432,height=2056,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=y8-2432x2056.raw</code> |
| + | |
| + | *raw10 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=2432,height=2056,pixelformat=XY10 --stream-mmap --stream-count=1 --stream-to=y10-2432x2056.raw</code> |
| + | |
| + | *raw12 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=2432,height=2056,pixelformat=XY12 --stream-mmap --stream-count=1 --stream-to=y12-2432x2056.raw</code> |
| + | ====== RAW-MIPI-SC132M ====== |
| + | |
| + | * raw8格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=1088</code> |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1080,height=1280,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=y8-1088x1280.raw</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1080,height=1280,pixelformat=XY10 --stream-mmap --stream-count=1 --stream-to=y10-1080x1280.raw</code> |
| + | ======MV-MIPI-IMX287M====== |
| + | |
| + | *raw8 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=704,height=544,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=y8-704x544.raw</code> |
| + | |
| + | *raw10 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=704,height=544,pixelformat=XY10 --stream-mmap --stream-count=1 --stream-to=y10-704x544.raw</code> |
| + | |
| + | *raw12 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=704,height=544,pixelformat=XY12 --stream-mmap --stream-count=1 --stream-to=y12-704x544.raw</code> |
| + | ======RAW-MIPI-AR0234M====== |
| + | |
| + | *raw8格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1200,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=y8-1920x1200.raw</code> |
| + | |
| + | *raw10格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1200,pixelformat=XY10 --stream-mmap --stream-count=1 --stream-to=y10-1920x1200.raw</code> |
| + | ======RAW-MIPI-IMX462M====== |
| + | |
| + | *raw10格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1088,pixelformat=XY10 --stream-mmap --stream-count=1 --stream-to=y10-1920x1088.raw</code> |
| + | |
| + | *raw12格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1088,pixelformat=XY12 --stream-mmap --stream-count=1 --stream-to=y12-1920x1088.raw</code> |
| + | |
| + | 图片格式请参考上面:raw data图片格式说明 章节。 |
| + | |
| + | ===== 实时预览 ===== |
| + | 对于支持GREY格式的摄像头,可以使用qv4l2或者vlc进行视频预览。 |
| + | |
| + | ======使用qv4l2预览画面====== |
| + | Install qv4l2, |
| + | |
| + | <code>sudo apt install qv4l2</code> |
| + | |
| + | 1. Open VLC with command line <code>vlc</code> to launch. |
| + | |
| + | 2. Hit the <code>▶</code>(Play) button to call the open media window.[[File:Mvcam via qv4l2.png|center|thumb|800x800px|Play mv camera using qv4l2|link=http://wiki.veye.cc/index.php/File:Mvcam_via_qv4l2.png]]<br /> |
| + | ======使用VLC预览画面====== |
| + | Install vlc, |
| + | |
| + | <code>sudo apt-get install vlc</code> |
| + | |
| + | 1. Open VLC with command line <code>vlc</code> , or click the icon to launch. |
| + | |
| + | 2. Hit the <code>▶</code>(Play) button to call the open media window. |
| + | |
| + | 3. In <code>Capture Device</code> >> <code>Device Selection</code> >> <code>Video device name</code>, select the camera video node. |
| + | |
| + | 4. Hit <code>Advanced Options...</code> button |
| + | |
| + | 5. Type in the <code>width</code> and <code>height</code>, for example, 1280 and 1024. |
| + | |
| + | 6. Hit <code>OK</code> to save the settings and see the video feed. |
| + | <br />[[File:Mvcam via VLC.png|center|thumb|800x800px|Play mv camera using VLC|link=http://wiki.veye.cc/index.php/File:Mvcam_via_VLC.png]] |
| + | ====== 使用gstreamer预览UYVY格式图像 ====== |
| + | '''注''':为了提高最高帧率和带宽,部分模组升级固件后不再提供UYVY格式。具体请通过脚本的fmtcap指令读取寄存器确认。 |
| + | |
| + | <code>export DISPLAY=:0</code> |
| + | |
| + | UYVY模式支持的最大宽度为2880,使用如下命令可以进行实时预览。 |
| + | |
| + | * MV-MIPI-IMX178M |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=2816,height=2064,pixelformat=UYVY</code> |
| + | |
| + | <code>gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw,format=(string)UYVY, width=(int)2816, height=(int)2064, framerate=(fraction)22/1" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420" ! nv3dsink sync=false</code> |
| + | |
| + | * MV-MIPI-SC130M, MV-MIPI-IMX296M, MV-MIPI-IMX265M,MV-MIPI-IMX264M,MV-MIPI-IMX287M |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=UYVY</code> |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl frame_rate=$FPS</code> |
| + | |
| + | <code>gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw,format=(string)UYVY, width=(int)$WIDTH, height=(int)$HEIGHT, framerate=(fraction)$FPS/1" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420" ! nv3dsink sync=false</code> |
| + | |
| + | ====== 使用opencv预览GREY格式图像 ====== |
| + | <code>sudo apt install python3-opencv</code> |
| + | |
| + | * 我们提供了一个简单的[https://github.com/veyeimaging/nvidia_jetson_veye_bsp/tree/master/samples/opencv/raw_camera sample]实现此功能: |
| + | |
| + | <code>python ./v4l2dev_2_opencv_show_grey.py --roix 0 --roiy 0 --width 640 --height 480 --fps 30</code> |
| + | |
| + | ==== 触发模式 ==== |
| + | =====准备工作===== |
| + | <code>v4l2-ctl --set-ctrl roi_x=0</code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl roi_y=0</code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl low_latency_mode=1</code> |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=GREY</code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl frame_rate=$FPS</code> |
| + | |
| + | 如有必要,设置合适的preferred_stride. |
| + | |
| + | 比如,MV-MIPI-IMX178M,3088*2064: |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=3136</code> |
| + | |
| + | 比如,MV-MIPI-IMX296M,1440*1088: |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=1472</code> |
| + | |
| + | ===== 软触发 ===== |
| + | |
| + | ======设置模式====== |
| + | <code>v4l2-ctl --set-ctrl <small>trigger_mode=1</small></code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl <small>trigger_src=0</small></code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl vi_time_out_disable=1</code> |
| + | ======开始取图====== |
| + | |
| + | * MV-MIPI-IMX178M |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=3088,height=2064,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-3104x2064.raw</code> |
| + | |
| + | * MV-MIPI-SC130M |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=1280,height=1024,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-1280x1024.raw</code> |
| + | |
| + | *MV-MIPI-IMX296M |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=1440,height=1088,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-1472x1088.raw</code> |
| + | |
| + | *MV-MIPI-IMX265M |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=2048,height=1544,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-2048x1544.raw</code> |
| + | |
| + | *MV-MIPI-IMX264M |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=2432,height=2048,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-2432x2048.raw</code> |
| + | |
| + | *RAW-MIPI-SC132M |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=1080,height=1280,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-1080x1280.raw</code> |
| + | |
| + | *MV-MIPI-IMX287M |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=704,height=544,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-704x544.raw</code> |
| + | |
| + | *RAW-MIPI-AR0234M |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1200,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-1920x1200.raw</code> |
| + | |
| + | *RAW-MIPI-IMX462M |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1088,pixelformat=XY10 --stream-mmap --stream-count=-1 --stream-to=y8-1920x1088.raw</code> |
| + | ======进行软触发操作====== |
| + | 在其他的shell终端,可以多次执行下面命令进行多次触发。 |
| + | |
| + | <code>v4l2-ctl --set-ctrl <small>soft_trgone=1</small></code> |
| + | |
| + | ====== 停止触发和采集 ====== |
| + | 由于内核驱动中,死循环等待新图片,因此需要先取消vi_time_out_disable,然后再退出采集操作。 |
| + | |
| + | <code>v4l2-ctl --set-ctrl vi_time_out_disable=0</code> |
| + | |
| + | 在取图命令的终端中,按Ctrl+C退出采集操作。 |
| + | |
| + | ===== 硬触发 ===== |
| + | 使用[https://github.com/NVIDIA/jetson-gpio jetson-gpio]进行触发操作,首先请安装并配置好jetson-gpio。 |
| + | |
| + | 下面以使用jetson GPIO40(Board num)为模拟触发源,上升沿触发为例。 |
| + | |
| + | 可以使用[[Mv mipi i2c.sh user guide|mv_mipi_i2c.sh]]脚本进行丰富的触发参数设置。 |
| + | |
| + | ====== 硬件连接 ====== |
| + | |
| + | * 使用ADP-MV1时 |
| + | |
| + | [[File:MV camera hardware trigger connection.jpg|center|thumb|800x800px|MV camera hardware trigger connection]] |
| + | |
| + | * 使用ADP-N4时 |
| + | |
| + | 如采用公共触发源连接,则首先将J7成对短接,然后将jetson GPIO40接到J19-1。 |
| + | [[File:ADP-N4 common trigger source.jpg|center|thumb|800x800px|ADP-N4 common trigger source]] |
| + | |
| + | 如采用独立触发源连接,则直接将 GPIO40接到J7-1---J7-11。 |
| + | ======设置模式====== |
| + | <code>v4l2-ctl --set-ctrl <small>trigger_mode=1</small></code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl <small>trigger_src=1</small></code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl vi_time_out_disable=1</code> |
| + | ======开始取图====== |
| + | |
| + | * MV-MIPI-IMX178M |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=3088,height=2064,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-3104x2064.raw</code> |
| + | |
| + | * MV-MIPI-SC130M |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=1280,height=1024,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=y8-1280x1024.raw</code> |
| + | ======进行硬触发操作====== |
| + | <code>python gpio_trigger_jetson.py</code> |
| + | |
| + | Note:触发脚本[https://github.com/veyeimaging/nvidia_jetson_veye_bsp/tree/master/mv_tools_jetson/examples/v4l2grab_mvcam 链接]。 |
| + | ====== 停止触发和采集 ====== |
| + | 由于内核驱动中,死循环等待新图片,因此需要先取消vi_time_out_disable,然后再退出采集操作。 |
| + | |
| + | <code>v4l2-ctl --set-ctrl vi_time_out_disable=0</code> |
| + | |
| + | 在取图命令的终端中,按Ctrl+C退出采集操作。 |
| + | |
| + | === Application demo === |
| + | |
| + | ==== v4l2grab_mvcam_jetson ==== |
| + | v4l2grab_mvcam是一个C语言开发的sample,支持流模式和触发模式。 |
| + | |
| + | 代码以及使用请参考:https://github.com/veyeimaging/nvidia_jetson_veye_bsp/tree/master/mv_tools_jetson/examples/v4l2grab_mvcam<nowiki/>。 |
| + | |
| + | ==== yavta(仅支持流模式) ==== |
| + | |
| + | =====yavta安装===== |
| + | <code>git clone <nowiki>https://github.com/veyeimaging/yavta.git</nowiki></code> |
| + | |
| + | <code>cd yavta;make</code> |
| + | |
| + | =====设置图像格式===== |
| + | <code>v4l2-ctl --set-ctrl roi_x=0</code> |
| + | |
| + | <code>v4l2-ctl --set-ctrl roi_y=0</code> |
| + | |
| + | <code>v4l2-ctl --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=GREY</code> |
| + | ===== 保存图片到文件 ===== |
| + | |
| + | ====== MV-MIPI-IMX178M ====== |
| + | |
| + | * raw8格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=3136</code> |
| + | |
| + | <code>./yavta -c1 -Fy8-3136x2064.raw --skip 0 -f Y8 -s 3088x2064 /dev/video0</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=6208</code> |
| + | |
| + | <code>./yavta -c1 -Fy10-3104x2064.raw --skip 0 -f XY10 -s 3088x2064 /dev/video0</code> |
| + | |
| + | * raw12格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=6208</code> |
| + | |
| + | <code>./yavta -c1 -Fy12-3104x2064.raw --skip 0 -f XY12 -s 3088x2064 /dev/video0</code> |
| + | |
| + | ====== MV-MIPI-SC130M ====== |
| + | |
| + | * raw8格式 |
| + | |
| + | <code>./yavta -c1 -Fy8-1280x1024.raw --skip 0 -f Y8 -s 1280x1024 /dev/video0</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>./yavta -c1 -Fy10-1280x1024.raw --skip 0 -f XY10 -s 1280x1024 /dev/video0</code> |
| + | |
| + | ====== MV-MIPI-IMX296M ====== |
| + | |
| + | *raw8格式 |
| + | |
| + | <code>v4l2-ctl -d /dev/video0 --set-ctrl preferred_stride=1472</code> |
| + | |
| + | <code>./yavta -c1 -Fy8-1472x1024.raw --skip 0 -f Y8 -s 1440x1088 /dev/video0</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>./yavta -c1 -Fy10-1440x1024.raw --skip 0 -f XY10 -s 1440x1088 /dev/video0</code> |
| + | |
| + | ====== MV-MIPI-IMX265M ====== |
| + | |
| + | * raw8格式 |
| + | |
| + | <code>./yavta -c1 -Fy8-2048x1544.raw --skip 0 -f Y8 -s 2048x1544 /dev/video0</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>./yavta -c1 -Fy10-2048x1544.raw --skip 0 -f XY10 -s 2048x1544 /dev/video0</code> |
| + | |
| + | * raw12格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>./yavta -c1 -Fy12-2048x1544.raw --skip 0 -f XY12 -s 2048x1544 /dev/video0</code> |
| + | |
| + | ====== MV-MIPI-IMX264M ====== |
| + | |
| + | * raw8格式 |
| + | |
| + | <code>./yavta -c1 -Fy8-2432x2048.raw --skip 0 -f Y8 -s 2432x2048 /dev/video0</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>./yavta -c1 -Fy10-2432x2048.raw --skip 0 -f XY10 -s 2432x2048 /dev/video0</code> |
| + | |
| + | * raw12格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>./yavta -c1 -Fy12-2432x2048.raw --skip 0 -f XY12 -s 2432x2048 /dev/video0</code> |
| + | ====== RAW-MIPI-SC132M ====== |
| + | |
| + | * raw8 |
| + | |
| + | <code>./yavta -c1 -Fy8-1080x1280.raw --skip 0 -f Y8 -s 1080x1280 /dev/video0</code> |
| + | |
| + | * raw10 |
| + | |
| + | 以XAVIER平台为例. |
| + | |
| + | <code>./yavta -c1 -Fy10-1080x1280.raw --skip 0 -f XY10 -s 1080x1280 /dev/video0</code> |
| + | ====== MV-MIPI-IMX287M ====== |
| + | |
| + | * raw8格式 |
| + | |
| + | <code>./yavta -c1 -Fy8-704x544.raw --skip 0 -f Y8 -s 704x544 /dev/video0</code> |
| + | |
| + | * raw10格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>./yavta -c1 -Fy10-704x544.raw --skip 0 -f XY10 -s 704x544 /dev/video0</code> |
| + | |
| + | * raw12格式 |
| + | |
| + | 以XAVIER平台为例 |
| + | |
| + | <code>./yavta -c1 -Fy12-704x544.raw --skip 0 -f XY12 -s 704x544 /dev/video0</code> |
| + | ====== RAW-MIPI-AR0234M ====== |
| + | |
| + | * raw8 |
| + | |
| + | <code>./yavta -c1 -Fy8-1920x1200.raw --skip 0 -f Y8 -s 1920x1200 /dev/video0</code> |
| + | |
| + | * raw10 |
| + | |
| + | 以XAVIER平台为例. |
| + | |
| + | <code>./yavta -c1 -Fy10-1920x1200.raw --skip 0 -f XY10 -s 1920x1200 /dev/video0</code> |
| + | ====== RAW-MIPI-IMX462M ====== |
| + | 以XAVIER平台为例. |
| + | |
| + | * raw12 |
| + | |
| + | <code>./yavta -c1 -Fy12-1920x1088.raw --skip 0 -f XY12 -s 1920x1088 /dev/video0</code> |
| + | |
| + | * raw10 |
| + | |
| + | <code>./yavta -c1 -Fy10-1920x1088.raw --skip 0 -f XY10 -s 1920x1088 /dev/video0</code> |
| + | |
| + | 图片格式请参考上面:raw data图片格式说明 章节。 |
| | | |
| === i2c脚本使用说明 === | | === i2c脚本使用说明 === |
| + | 我们提供了shell脚本来配置参数。 |
| | | |
| + | [[mv_mipi_i2c.sh user guide]] |
| === 参考资料 === | | === 参考资料 === |
| + | === 本文修改记录 === |
| | | |
− | === 本文修改记录 ===
| + | *2023-08-29 |
| + | |
| + | 增加对RAW-MIPI-IMX462M和RAW-MIPI-AR0234M的支持。 |
| + | |
| + | * 2023-07-31 |
| + | |
| + | 调通V-by-One连接的驱动。 |
| + | |
| + | * 2023-06-07 |
| + | |
| + | 增加使用qv4l2和VLC预览画面的方法。 |
| + | |
| + | *2023-04-27 |
| + | |
| + | 支持Jetpack5.1.1. |
| + | |
| + | * 2023-04-16 |
| + | |
| + | 去掉flip和mirror的ioctl功能。 |
| + | |
| + | * 2023-03-29 |
| + | |
| + | 增加opencv sample。 |
| + | |
| + | *2023-03-37 |
| + | |
| + | 增加MV-MIPI-IMX287M的相关描述。 |
| + | |
| + | *2023-02-22 |
| + | |
| + | 支持Jetpack5.1 |
| + | |
| + | *2022-12-11 |
| + | |
| + | 增加MV-MIPI-IMX264M的相关描述。 |
| + | |
| + | * 2022-10-14 |
| + | |
| + | 增加MV-MIPI-IMX296M和MV-MIPI-IMX265M的相关描述。 |
| + | |
| + | * 2022-08-31 |
| + | |
| + | 支持Jetpack5.0.2 |
| + | |
| + | *2022-06-23 |
| + | |
| + | 增加ADP-N4的相关描述 |
| + | |
| + | * 2022-05-20 |
| + | |
| + | 第一个发布版本 |