EMB-7540
来自ARM Wiki
目录
- 1 介绍
- 2 资源特性
- 3 接口布局和尺寸
- 4 下载
- 5 烧录方法
- 6 例程环境搭建
- 7 Demo使用
- 7.1 sample_venc(视频数据编码)
- 7.2 sample_vdec(视频数据解码)
- 7.3 sample_audio(音频相关)
- 7.4 sample_snap(拍照)
- 7.5 sample_dpu_main(Depth Process Unit,深度图)
- 7.6 sample_avs(Any View Stitching,全景拼接)
- 7.7 sample_fisheye(鱼眼模式)
- 7.8 sample_vio(视频输入输出)
- 7.9 sample_vgs(Video Graphics Sub-System,视频图形子系统)
- 7.10 sample_tde(Two Dimensional Engine,利用硬件为OSD和GUI提供快速的图形绘制功能)
- 7.11 sample_hifb(Hisilicon Framebuffer,基于Linux FB 基本功能扩展了一些图形层控制功能)
- 7.12 sample_awb_calibration(自动白光平衡测量)
- 7.13 sample_modeswitch(模式切换)
- 7.14 sample_ive_main(智能加速引擎)
- 7.15 sample_dis(Digital Image Stabilization,数字稳像)
- 7.16 sample_dsp_main(DSP测试)
- 7.17 sample_nnie_main(神经网络硬件加速单元测试)
- 7.18 vi_bayerdump(用来获取sensor原始图像的工具)
- 7.19 vi_chn_dump(输入通道视频帧转储)
- 7.20 vo_chn_dump(输出通道视频帧转储)
- 7.21 vo_screen_dump(转储输出屏幕图像数据)
- 7.22 vo_wbc_dump(回写设备的输出图像数据转储)
- 7.23 vpss_chn_dump(用户从通道获取Cnt个帧处理完成的图像转储)
- 7.24 vpss_src_dump(转储视频缓存池帧数据)
- 8 其他功能说明
介绍
- EMB-7540(简称7540)是华北工控为网络IP视频监控系统量身打造,大小仅为120x80mm大小,可运行Linux操作系统。
- EMB-7540采用HiSilicon Hi3559A 2xA73 + 2xA53四核处理器,产品基于智能海思芯片组视觉平台,具有高品质超高清视频编解码能力、接口丰富、扩展性强等特点。
- EMB-7540拥有稳定可靠的工业级性能,可广泛应用网络视频监控系统、IP摄像头、网络监控摄像机、视频服务器等行业领域。
资源特性
- CPU:HiSilicon Hi3559A 2xA73 + 2xA53四核处理器
- GPU:Mali 2*G71@900MHz GPU
- Memory:板载4GB DDR4
- Storage:板载16GB iNAND Flash,1x TF卡槽
- Ethernet: 1 x LAN,10/100/1000Mbps
- Input:CMOS Sensor:(根据镜头规格设计转接板)
- 1x8K30fps 输入;
- 2x4K60fps 输入;
- 或4x4K30fps 输入/6x1080P30fps输入
- Display:1xHDMI,1xMIPI/LVDS
- Touch:电容或电阻屏
- USB Host: 1x USB3.0,1x Mini USB2.0
- COM: 1x COM232;1x COM485;1x debug
- Audio:1xMic;1xLine out;1xMic(3.5mm四节耳机孔)
- Other I/O: 2xDI,1xDO;2xGyroscope;支持GPIO,I2C,SPI扩展
- System Control:1xRST BUTTON,1xPWR LED
- RTC:支持
- Watchdog:支持
- Power Supply:单电源+ 12V DC
- Temperature:Work :-20℃ ~ +65℃, Storage :-40℃ ~ +85℃
- Humidity:5% ~ 95%相对湿度,无冷凝
- Size: 120mm x 80 mm
- OS: Linux
接口布局和尺寸
接口概览
接口引脚定义
传感器接口转接板定义
机械尺寸
下载
烧录方法
HiTool 烧录方法
适用场景
- 适用于一键烧写所有程序镜像到单板flash 上的场景、单板已有 boot 可按地址烧写其他程序镜像到单板 flash 上的场景,以及在空板上只烧写 boot 到单板 flash 上的场景。
- 本文只介绍 <eMMC烧录>方法。
环境部署
- HiBurn 工具烧写的环境准备如下:
- 步骤 1. PC 与单板之间连接好串口、网线,且因工具烧写需要涉及到与 bootrom 交互,故单板硬件上 bootrom_sel 需要设置为 1,从 bootrom 启动。
- 步骤 2. 把 HiTool-BVT-X.X.X.zip 拷贝到 PC 上(PC 要求安装 Win7、XP 操作系统)的某个本地硬盘。在 HiTool-XXX-4.0.15 及以后的版本已经集成了 jre,无需单独安装 JRE。如果是老版本工具,请预先安装的 32 位的 jre1.6(如 jre-6u1-windows-i586-p),否则HiTool 可能无法运行。
- 链接如下:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
- 查看当前 PC 安装的 JRE 版本号,可以通过在开始->运行->键入 cmd 中输入 java –version 查看当前已安装的 JRE 版本号,若当前版本为 1.6.0_xx 即可,若当前版本号高于 1.6,则请打开 HiTool 目录下的 HiTool.ini,将其中-XX:MaxTenuringThreshold=31 参数值改为-XX:MaxTenuringThreshold=15,即可支持 1.7 及更高版本的 JRE。。
eMMC烧录
适用场景
- 适用场景如下:只适用于 eMMC 烧写,不管单板上有没有 boot 都适用,可实现一键烧写所有镜像。
烧写步骤
- 具体烧写步骤如下:
- 步骤 1. 切换到“烧写 eMMC”页签,如图 5-1 所示。
- 步骤 3. 准备单板环境。连接单板的串口和网口,如果单板处于通电状态,给单板下电 。
- 步骤 4. 烧写单板,点击烧写按钮【Burn】。
- 步骤 5. 给单板上电,进入烧写过程,等待烧写完成。
- 烧写过程的信息会在控制台中显示。
- 串口选择是否正确。
- IP 地址设置是否正确,地址是否被占用。
- 是否有短接单板上的自举跳线。
- 步骤 6. 烧写完成,连接终端工具,重启单板。
例程环境搭建
工具链安装
- 1) 将安装包aarch64-himix100-linux.tgz和gcc-arm-none-eabi-4_9-2015q3.tgz拷贝到安装了ubuntu环境的PC机上,在PC机的shell中执行下面步骤进行安装:
1 $ tar -zxf aarch64-himix100-linux.tgz 2 $ chmod +x aarch64-himix100-linux.install 3 $ sudo ./aarch64-himix100-linux.install 4 $ 5 $ tar -zxf gcc-arm-none-eabi-4_9-2015q3.tgz 6 $ cd gcc-arm-none-eabi-4_9-2015q3 7 $ sudo ./gcc-arm-none-eabi-4_9-2015q3.install
- 2) 执行 source /etc/profile 或者重启电脑让环境变量生效。注意,如果不重启电脑,仅仅source一下,环境变量只在当前shell里生效。
sample环境搭建
- 如果用户是imx477的摄像头,下载sample_imx477.tar.bz2文件。
- 如果用户是imx377的摄像头,下载sample_imx377.tar.bz2文件。
- 将该文件通过U盘拷贝或者nfs网络拷贝到设备中,在设备串口终端执行下列命令进行安装,然后按照 Demo使用例程。这里仅以索尼imx477的例程举例,如果是imx377的摄像头,将下面的名字换成sample_imx377.tar.bz2即可。
- 1) U盘拷贝安装。
- 先将下载的sample_imx477.tar.bz2文件放在U盘根目录,U盘插上设备的USB口,在设备终端执行下面命令:
1 ~# mount -t vfat /dev/sda1 /mnt/usb 2 ~# cd /root/ 3 ~# tar -jxf /mnt/usb/sample_imx477.tar.bz2
- 2) nfs网络拷贝安装。
- nfs搭建方式见 nfs配置和网络,下载sample_imx477.tar.bz2文件放在PC机的/home/nfs目录,在设备终端执行下面命令(PC的IP是192.168.8.xx):
1 ~# ifconfig eth0 192.168.8.xxx #设备IP和下面电脑IP,192.168.8.xx在同一网段 2 ~# mount -t nfs -o nolock -o tcp 192.168.8.xx:/home/nfs /mnt/nfs 3 ~# cd /root/ 4 ~# tar -jxf /mnt/nfs/sample_imx477.tar.bz2
Demo使用
- imx477目标文件imx377目标文件源码文件
- 注意用户需要根据自己不同摄像头下载不同的例程。
sample_venc(视频数据编码)
1 ~ # ./sample_venc 2 Usage : ./sample_venc [index] 3 index: 4 0) H.265e@4K@120fps + H264e@1080p@30fps. 5 1) H.265e@4K@60fps + H264e@4K@60fp. 6 2) Lowdelay:H.265e@4K@30fps. 7 3) IntraRefresh:H.265e@4K@60fps + H264e@4K@60fps. 8 4) Qpmap:H.265e@4K + H264e@4K@60fps. 9 5) Mjpeg@4K@60fps +Jpeg@4K.
- shell 说明:
- 1. 运行sample_venc (录制) 视频编码样例
- 2. 使用方法: ./sample_venc [index]
- 3. 参数<索引>
- 4. 0) h265编码,4096×2160分辨率,每秒120帧 + h264编码,1920x1080分辨率,每秒30帧
- 5. 1) h265编码,4096×2160分辨率,每秒60帧 + h264编码,4096×2160分辨率,每秒60帧
- 6. 2) Lowdelay(低延时属性):h265编码,4096×2160分辨率,每秒30帧
- 7. 3) IntraRefresh(P 帧帧内刷新):h265编码,4096×2160分辨率,每秒60帧 + h264编码,4096×2160分辨率,每秒60帧
- 8. 4) Qpmap(是一种码率控制模式):h265编码,4096×2160分辨率 + h264编码,4096×2160分辨率,每秒60帧
- 9. 5) Mjpeg(Mjpeg协议编码方式)的4096×2160分辨率,每秒60帧 + Jpeg(Jpeg的编码)的4096×2160分辨率
sample_vdec(视频数据解码)
1 ~ # ./sample_vdec 2 Usage : ./sample_vdec <index> <IntfSync> 3 index: 4 0) VDEC(H265)-VPSS-VO 5 1) VDEC(H264)-VPSS-VO 6 2) VDEC(JPEG->YUV)-VPSS-VO 7 3) VDEC(JPEG->RGB) 8 IntfSync : 9 0) VO HDMI 4K@30fps. 10 1) VO HDMI 1080P@30fps.
- shell 说明:
- 1. 运行sample_vdec (播放) 视频解码样例
- 2. 使用提示: ./sample_vdec <索引> <Vo接口时序类型>
- 3. 参数<索引>:
- 4. 0) VDEC解码器输入(H265的编码格式图片/视频)--->VPSS(视频输入缓存块)--->VO(图片/视频输出)
- 5. 1) VDEC解码器输入(H264的编码格式图片/视频)--->VPSS(视频输入缓存块)--->VO(图片/视频输出)
- 6. 2) VDEC解码器输入(JPEG数据)--->VPSS(视频输入缓存块)--->VO(YUV图片/视频输出)
- 7. 3) VDEC解码器输入JPEG解码成RGB数据
- 8. 参数<IntfSync>:
- 9. 0) 输出到HDMI 4096×2160分辨率,每秒30帧
- 10. 1) 输出到HDMI 1920x1080分辨率,每秒30帧
sample_audio(音频相关)
1 ~ # ./sample_audio 2 Usage : ./sample_audio <index> <channel> 3 index: 4 0) start AI to AO loop 5 1) send audio frame to AENC channel from AI, save them 6 2) read audio stream from file, decode and send AO 7 3) start AI(VQE process), then send to AO 8 4) start AI to AO(Hdmi) loop 9 5) start AI to AO(Syschn) loop 10 channel: 11 0) mic0 input. 12 1) mic1 input.
- shell 说明:
- 1. 运行sample_audio 音频 (编码/解码)样例
- 2. 使用提示:./sample_audio <索引> <通道>
- 3. 以下内容是索引对应的功能
- 4. 0) 循环音频从输入到输出 (话筒功能)
- 5. 1) 通过音频输入发送音频帧到音频编码通道,保存起来 (录音功能)
- 6. 2) 从文件读取音频流,解码然后发送到输出 (播放功能)
- 7. 3) 通过音频输入声音质量增强处理,然后输出音频 (话筒功能)
- 8. 4) 循环音频输入到HDMI通道音频输出 (话筒功能)
- 9. 5) 循环音频输入到系统音通道音频输出 (话筒功能)
- 10.音频输入通道
- 11. 0) mic0输入(HeadPhone)
- 12. 1) mic1输入(插针)
sample_snap(拍照)
1 ~ # ./sample_snap 2 Usage : ./sample_snap <index> 3 index: 4 0)double pipe offline, normal snap.
- shell 说明:
- 1. 运行sample_snap 拍照
- 2. 使用说明:./sample_snap <索引>
- 3. 参数<索引>
- 4. 0)双 pipe 离线模式普通拍照
sample_dpu_main(Depth Process Unit,深度图)
1 ~ # ./sample_dpu_main 2 Usage : ./sample_dpu_main <index> 3 index: 4 0) VI->VPSS->RECT->MATCH. 5 1) FILE->RECT->MATCH.
- shell 说明:
- 1. 运行 sample_dpu_main
- 2. 使用方法:./sample_dpu_main <索引>
- 3. <索引>
- 4. 0) DPU(Depth Process Unit)对输入的左图像和右图像经过校正和匹配计算得出深度图
- 5. 1) DPU(Depth Process Unit)对读取的文件的左图像和右图像经过校正和匹配计算得出深度图
sample_avs(Any View Stitching,全景拼接)
1 ~ # ./sample_avs 2 Usage : ./sample_avs <index> 3 index: 4 0) 2 fisheye stitching, Normal projection. 5 1) 4 fisheye stitching, Cube map. 6 2) 4 pic no blend stitching. 7 3) 8 nonfisheye Equirectangular. 8 4) 2 fisheye stitching, Image stabilizing. 9 5) Generate lut.
- shell 说明:
- 1. 运行 sample_avs
- 2. 使用说明: ./sample_avs <index>
- 3. <index>
- 4. 0) 2个CAM 鱼眼拼接正常显示模式
- 5. 1) 4个CAM 鱼眼拼接呈现立体显示效果
- 6. 2) 4个CAM 图片无混合拼接
- 7. 3) 目前暂不支持
- 8. 4) 目前暂不支持
- 9. 5)生成LUT表
sample_fisheye(鱼眼模式)
1 ~ # ./sample_fisheye 2 3 Usage : ./sample_fisheye <index> <vo intf> <venc type> 4 index: 5 0) fisheye 360 panorama 2 half with ceiling mount. 6 1) fisheye 360 panorama and 2 normal PTZ with desktop mount. 7 2) fisheye 180 panorama and 2 normal dynamic PTZ with wall mount. 8 3) fisheye source picture and 3 normal PTZ with wall mount. 9 4) nine_lattice preview(Only images larger than or equal to 8M are supported). 10 vo intf: 11 0) vo HDMI output, default. 12 1) vo BT1120 output. 13 venc type: 14 0) H265, default. 15 1) H264.
- shell 说明:
- 1. 运行 ./sample_fisheye
- 2. 使用说明 ./sample_fisheye <index> <vo intf> <venc type>
- 3. index:
- 4. 0) 2个“半顶装模式”的鱼眼360°全景视频
- 5. 1) 2个普通“地装的PTZ”鱼眼360°全景视频
- 6. 2) 2个普通“壁装的PTZ”鱼眼180°全景视频
- 7. 3) 三个鱼眼原画的普通PTZ 壁装视频
- 8. 4) 九格预览视频(仅支持大于或等于8m的图像)
- 9. vo intf:
- 10. 0) 默认HDMI输出
- 11. 1) BT1120输出
- 12. venc type:
- 13. 0) 默认H265编码
- 14. 1) H264编码
sample_vio(视频输入输出)
1 ~ # ./sample_vio 2 Usage : ./sample_vio <index> <intf> 3 index: 4 0)parallel SDR8 VI - VPSS - VO - HDMI. Embeded isp, phychn channel preview. 5 1)online SDR8 VI - VPSS - VO - HDMI. 2 pipe, Embeded isp, phychn channel pr. 6 2)offline SDR8 VI - VPSS - VO - HDMI. 4 pipe, Embeded isp, phychn channel pr. 7 3)online WDR+HDR10 VI - VPSS - VO - HDMI. Embeded isp, phychn channel preview. 8 4)online SDR8 VI - VO - HDMI. Embeded isp, LDC+ROTATE. 9 5)online SDR8 VI - VO - HDMI. Embeded isp, FreeRotation. 10 6)online SDR8 VI - VO - HDMI. Embeded isp, LDC+SPREAD. 11 7)online SDR8 VI - VPSS - VO - HDMI. Embeded isp, dump raw, phychn channel . 12 intf: 13 0) vo HDMI output, default. 14 1) vo BT1120 output.
- shell 说明:
- 1. 运行 sample_vio
- 2. 使用方法:./sample_vio <index> <intf>
- 3. index:
- 4. 0) 并行八位标清输入--> 视频处理 -->输出到HDMI 嵌入式图像信号处理,物理通道预览
- 5. 1) 在线八位标清输入--> 视频处理 -->输出到HDMI 2管道的嵌入式图像信号处理,物理通道预览
- 6. 2) 离线八位标清输入-->视频处理 -->输出到HDMI 4管道的嵌入式图像信号处理,物理通道预览
- 7. 3) 在线十位高清+宽动态视频输入-->视频处理 -->输出到HDMI. 嵌入式图像信号处理,物理通道预览
- 8. 4) 在线八位标清输入 -->输出到HDMI 嵌入式图像信号处理,镜头畸变校正和旋转
- 9. 5) 在线八位标清输入 -->输出到HDMI 嵌入式图像信号处理,自由角度旋转
- 10. 6) 在线八位标清输入 -->输出到HDMI 嵌入式图像信号处理,镜头畸变校正和展宽
- 11. 7) 在线八位标清输入 --> 视频处理 -->输出到HDMI
- 12. intf:
- 13. 0) 默认HDMI输出
- 14. 1) BT1120输出
sample_vgs(Video Graphics Sub-System,视频图形子系统)
1 ~ # ./sample_vgs 2 Usage : ./sample_vgs <index> <intf> 3 index: 4 0) SDR10 COMPRESS, VI - VGS - VO - HDMI. 5 intf: 6 0) vo HDMI output, default. 7 1) vo BT1120 output.
- shell 说明:
- 1. 运行 sample_vgs
- 2. 使用说明:./sample_vgs <index> <intf>
- 3. index:
- 4. 0) 10比特位压缩,输入-->视频图像子系统-->HDMI输出
- 5. intf:
- 6. 0) 默认HDMI输出
- 7. 1) BT1120输出
sample_tde(Two Dimensional Engine,利用硬件为OSD和GUI提供快速的图形绘制功能)
1 ~ # ./sample_tde 2 Usage : ./sample_tde <intf> 3 intf: 4 0) vo VGA output, default. 5 1) vo HDMI output.
- shell 说明:
- 1. 运行 sample_tde
- 2. 使用说明:./sample_tde <intf>
- 3. intf:
- 4. 0) 默认VGA输出演示
- 5. 1) HDMI输出演示
sample_hifb(Hisilicon Framebuffer,基于Linux FB 基本功能扩展了一些图形层控制功能)
1 ~ # ./sample_hifb 2 Usage : ./sample_hifb <index> <device> <intf> 3 4 5 /****************index******************/ 6 please choose the case which you want to run: 7 0: ARGB8888 standard mode 8 1: ARGB1555 BUF_DOUBLE mode 9 2: ARGB1555 BUF_ONE mode 10 3: ARGB1555 BUF_NONE mode 11 4: ARGB1555 BUF_ONE mode with compress 12 5: ARGB8888 BUF_ONE mode with compress 13 14 /****************device******************/ 15 0) VO device 0#, default. 16 1) VO device 1#. 17 18 /****************intf******************/ 19 0) VO HDMI output, default. 20 1) VO BT1120 output.
- shell 说明:
- 1. 运行 sample_hifb
- 2. 使用说明:./sample_hifb <index> <device> <intf>
- 5. <index>
- 6. 请选择一下您想运行的情况之一
- 7. 0: ARGB8888像素格式(标准模式)
- 8. 1: ARGB1555像素格式双缓存模式
- 9. 2: ARGB1555像素格式单缓存模式
- 10. 3: ARGB1555像素格式无缓存模式
- 11. 4: ARGB1555像素格式带压缩的单缓存模式
- 12. 5: ARGB8888像素格式带压缩的单缓存模式
- 14. <device>
- 15. 0) 默认输出到超清显示设备DHD0 (能够支持到4K)
- 16. 1) 输出到高清显示设备DHD1
- 18. <intf>
- 19. 0) 默认HDMI输出
- 20. 1) BT1120输出
sample_awb_calibration(自动白光平衡测量)
1 ~ # ./sample_awb_calibration 2 Usage : ./sample_awb_calibration <mode> <intf1> <intf2> <intf3> 3 mode: 4 0) Calculate Sample gain. 5 1) Adjust Sample gain according to Golden Sample. 6 intf1: 7 The value of Rgain of Golden Sample. 深红色区域的锐化增益控制。 8 intf2: 9 The value of Bgain of Golden Sample. 10 intf3: 11 The value of Alpha ranging from 0 to 1024 (The strength of adusting Sampe Gain will increase with the value of Alpha) .
- shell 说明:
- 1. 运行 sample_awb_calibration
- 2. 使用方法:./sample_awb_calibration <mode> <intf1> <intf2> <intf3>
- 3. <mode>
- 4. 0) 计算例子中的增益
- 5. 1) 根据标准例子来校正例子中的增益
- 6. intf1:
- 7. 标准例子中的深红色区域的锐化增益控制值
- 8. intf2:
- 9. 标准例子中的深蓝色区域的锐化增益控制值
- 10. intf3:
- 11. 0~1024范围的初始值(采样数据的增益强度会随着初始值的值增加而增加)
sample_modeswitch(模式切换)
1 ~ # ./sample_modeswitch 2 Usage : ./sample_modeswitch <index> <intf> 3 index: 4 0)mode switch wdr to linear for imx290 VI - VO - HDMI. Embeded isp, phychn channel preview. 5 1)mode switch linear to wdr for imx290 VI - VO - HDMI+BT1120. Embeded isp, phychn channel preview. 6 2)resolution 9M50FPS to 8M30FPS for imx477 VI - VO - HDMI. Embeded isp, phychn channel preview. 7 3)resolution 8M30FPS to 9M50FPS for imx477 VI - VO - HDMI. Embeded isp, phychn channel preview. 8 intf: 9 0) vo HDMI output, default. 10 1) vo BT1120 output.
- shell 说明:
- 1. 运行 sample_modeswitch
- 2. 使用说明: ./sample_modeswitch <index> <intf>
- 3. index:
- 4. 0) imx290的wdr模式到linear模式切换
- 5. 1) imx290的linear模式到wdr模式切换
- 6. 2) imx477的分辨率9M50FPS切换至8M30FPS
- 7. 3) imx477的分辨率8M30FPS切换至9M50FPS
- 8. intf:
- 9. 0) 默认HDMI输出
- 10. 1) BT1120输出
sample_ive_main(智能加速引擎)
1 ~ # ./sample_ive_main 2 Usage : ./sample_ive_main <index> [complete] [encode] [vo] 3 index: 4 0)BgModel,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]). 5 1)Gmm,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]). 6 2)Occlusion detected.(VI->VPSS->IVE->VO_HDMI). 7 3)Motion detected.(VI->VPSS->IVE->VGS->VO_HDMI). 8 4)Canny,<complete>:0, part canny;1,complete canny.(FILE->IVE->FILE). 9 5)Gmm2.(FILE->IVE->FILE). 10 6)MemoryTest.(FILE->IVE->FILE). 11 7)Sobel.(FILE->IVE->FILE). 12 8)Ann.(FILE->IVE->STDIO). 13 9)St Lk.(FILE->IVE->FILE). 14 a)Svm.(FILE->IVE->STDIO). 15 b)Cnn.(FILE->IVE->STDIO).
- shell 说明:
- 1. 运行 sample_ive_main
- 2. 使用说明: ./sample_ive_main <index> [complete] [encode] [vo]
- 3. index:
- 4. 0) 背景模型
- 5. 1) 高斯模型Gmm
- 6. 2) 遮挡检测
- 7. 3) 运动检测
- 8. 4) 边缘检测
- 9. 5) 高斯模型Gmm2
- 10 6) 内存测试
- 11 7) Sobel算子分割
- 12 8) 图像检索Ann
- 13 9) St和LK光流法
- 14 a) 分类器SVM
- 15 b) 神经网络Cnn
sample_dis(Digital Image Stabilization,数字稳像)
1 ~ # ./sample_dis 2 Usage : ./sample_dis <index> <intf> 3 index: 4 0)DIS-4DOF_GME.VI-VO VENC. 5 1)DIS-6DOF_GME.VI-VO VENC. 6 intf: 7 0) vo HDMI output, default. 8 1) vo BT1120 output.
- shell 说明:
- 1. 运行 sample_dis
- 2. 使用说明: ./sample_dis <index> <intf>
- 3. index:
- 4. 0) DIS-4DOF_GME(四自由度 GME 算法,不使用陀螺仪),输入-输出 同时H256格式录像(存储在当前)
- 5. 1) DIS-6DOF_GME(六自由度 GME 算法,不使用陀螺仪),输入-输出 同时H256格式录像(存储在当前)
- 6. intf:
- 7. 0) HDMI 输出
- 8. 1) BT1120 输出
sample_dsp_main(DSP测试)
1 ~ # ./sample_dsp_main
- shell 说明:
- 1. 四个DSP之DSP0的出图测试。
sample_nnie_main(神经网络硬件加速单元测试)
- 1. 神经网络,特别是深度学习卷积神经网络进行加速处理的硬件单元测试。
1 ~ # ./sample_nnie_main 2 Usage : ./sample_nnie_main <index> 3 index: 4 0) RFCN(VI->VPSS->NNIE->VGS->VO). 5 1) Segnet(Read File). 6 2) FasterRcnnAlexnet(Read File). 7 3) FasterRcnnDoubleRoiPooling(Read File). 8 4) Cnn(Read File). 9 5) SSD(Read File). 10 6) Yolov1(Read File). 11 7) Yolov2(Read File). 12 8) LSTM(Read File).
- shell 说明:
- 1. 运行 sample_nnie_main
- 2. 使用说明: ./sample_nnie_main <index>
- 3. index:
- 4. 0) RFCN模型
- 5. 1) 可训练的图像分割Segnet
- 6. 2) 深度学习的目标检测Alexnet
- 7. 3) 深度学习的目标检测DoubleRoiPooling
- 8. 4) 神经网络Cnn
- 9. 5) 可训练的SSD模型处理
- 10. 6) 神经网格模型Yolov1
- 11. 7) 神经网格模型Yolov2
- 12. 8) LSTM模型
vi_bayerdump(用来获取sensor原始图像的工具)
1 ~ # ./vi_bayerdump -h 2 3 NOTICE: This tool only can be used for TESTING !!! 4 To see more usage, please enter: ./vi_bayerdump -h 5 6 7 ************************************************* 8 Usage: ./vi_bayerdump [ViPipe] [nbit] [Compress] [FrmCnt] [ByteAlign] [RatioShow] 9 ViPipe: 10 0:ViPipe0 ~ 7:ViPipe 7 11 nbit: 12 The bit num to be dump 13 Compress: 14 Whether to dump compressed raw, default is 0 15 FrmCnt: 16 the count of frame to be dump 17 ByteAlign: 18 Whether convert to Byte align, default is 1 19 RatioShow: 20 Whether the file name of raw show ratio info, default is 1 21 e.g : ./vi_bayerdump 0 16 0 2 1 1 22 *************************************************
- shell 说明:
- 1. 运行 vi_bayerdump -h
- 2.
- 3. 注意:此工具仅用于测试使用!
- 4. 获取跟多信息请输入: ./vi_bayerdump -h
- 5.
- 6.
- 7. *************************************************
- 8. 使用说明:./vi_bayerdump [ViPipe] [nbit] [Compress] [FrmCnt] [ByteAlign] [RatioShow]
- 9. ViPipe:
- 10. ViPipe号 0~7范围内
- 11. nbit:
- 12. 原始数据的字节宽度 支持8/10/12/14/16bit
- 13. Compress:
- 14. 解码图像压缩模式: 是否转存原始图像压缩数据,默认是0 0代表不压缩
- 15. FrmCnt:
- 16. 获取VI 框架个数
- 17. ByteAlign:
- 18. 是否转换为字节对齐, 默认值为1
- 19. RatioShow:
- 20. 文件名上是否对比率信息原始展现,默认为1
- 21.
- 22. *************************************************
vi_chn_dump(输入通道视频帧转储)
1 ~ # ./vi_chn_dump -h 2 3 NOTICE: This tool only can be used for TESTING !!! 4 To see more usage, please enter: ./vi_chn_dump -h 5 6 7 ********************************************************** 8 Usage: ./vi_chn_dump [ViPipe] [ViChn] [FrmCnt] [ByteAlign] 9 1)ViPipe: 10 Vi pipe id 11 2)ViChn: 12 vi chn id 13 3)FrmCnt: 14 the count of frame to be dump 15 4)ByteAlign: 16 Whether convert to Byte align , default is 1 17 *)Example: 18 e.g : ./vi_chn_dump 0 0 2 1 19 **********************************************************
- shell 说明:
- 1. 运行 ./vi_chn_dump -h
- 2.
- 3. 注意:此工具仅用于测试!!!
- 4. 获取更多信息请输入 ./vi_chn_dump -h
- 5.
- 6.
- 7. **********************************************************
- 8. 使用说明: ./vi_chn_dump [ViPipe] [ViChn] [FrmCnt] [ByteAlign]
- 9. 1)ViPipe:
- 10. PIPE 号,范围0~7
- 11. 2)ViChn:
- 12. vi 通道号
- 13. 3)FrmCnt:
- 14. 视频帧数
- 15. 4)ByteAlign:
- 16. 是否转换为字节对齐, 默认值为1
- 17.
- 18. **********************************************************
vo_chn_dump(输出通道视频帧转储)
1 ~ # ./vo_chn_dump -h 2 3 NOTICE: This tool only can be used for TESTING !!! 4 To see more usage, please enter: ./vo_chn_dump -h 5 6 7 ************************************************* 8 Usage: ./vo_chn_dump [VoLayer] [VoChn] [Frmcnt]. 9 1)VoLayer: 10 which layer to be dump 视频输出视频层号。 11 Default: 0 12 2)VoChn: 13 which channel to be dump 14 Default: 0 15 3)FrmCnt: 16 the count of frame to be dump 17 Default: 1 18 *)Example: 19 e.g : ./vo_chn_dump 0 0 1 (dump one YUV) 20 *************************************************
- shell 说明:
- 1. 运行 vo_chn_dump -h
- 2.
- 3. 注意:此工具仅用于测试使用!!!
- 4. 获取更多信息,请输入 ./vo_chn_dump -h
- 5.
- 6.
- 7. *************************************************
- 8. 使用说明:./vo_chn_dump [VoLayer] [VoChn] [Frmcnt].
- 9. 1)VoLayer:
- 10. 选择要转储的视频输出视频层号
- 11. 默认是0
- 12.2)VoChn:
- 13. 选择要转储的视频输出通道
- 14. 默认是0
- 15. 3)FrmCnt:
- 16. 需要转储的视频帧个数
- 17. 默认1
- 18.*************************************************
vo_screen_dump(转储输出屏幕图像数据)
1 ~ # ./vo_screen_dump -h 2 3 NOTICE: This tool only can be used for TESTING !!! 4 To see more usage, please enter: ./vo_screen_dump -h 5 6 7 ************************************************* 8 Usage: ./vo_screen_dump [VoLayer] [Frmcnt]. 9 1)VoLayer: 10 Which layer to be dumped 11 Default: 0 12 2)FrmCnt: 13 The count of frame to be dumped 14 Default: 1 15 *)Example: 16 e.g : ./vo_screen_dump 0 1 (dump one YUV) 17 *************************************************
- shell 说明:
- 1. 运行 vo_screen_dump -h
- 2.
- 3. 注意:此工具仅用于测试使用!!!
- 4. 获取更多信息,请输入:./vo_screen_dump -h
- 5.
- 6.
- 7. *************************************************
- 8. 使用说明:./vo_screen_dump [VoLayer] [Frmcnt].
- 9. 1)VoLayer:
- 10. 选择要转储的视频输出视频层号
- 11. 默认0
- 12. 2)FrmCnt:
- 13. 需要转储的视频帧个数
- 14. 默认1
- 15. *************************************************
vo_wbc_dump(回写设备的输出图像数据转储)
1 ~ # ./vo_wbc_dump 2 3 NOTICE: This tool only can be used for TESTING !!! 4 usage: ./vo_wbc_dump 0 [frmcnt]. sample: ./vo_wbc_dump 0 5 5 6 Dev(0) HI_MPI_VO_SetWbcDepth errno 0xa00f8010
- shell 说明:
- 1. 运行 vpss_chn_dump
- 2.
- 3. 注意:此工具仅用于测试使用!!!
- 4. 使用说明:./vo_wbc_dump 0 [frmcnt]. sample: ./vo_wbc_dump 0 5
- 5. 第一个参数:回写设备号
- 6. [frmcnt] 输出视频的帧数
vpss_chn_dump(用户从通道获取Cnt个帧处理完成的图像转储)
1 ~ # ./vpss_chn_dump -h 2 3 NOTICE: This tool only can be used for TESTING !!! 4 To see more usage, please enter: ./vpss_chn_dump -h 5 6 7 ************************************************* 8 Usage: ./vpss_chn_dump [VpssGrp] [VpssChn] [FrmCnt] 9 1)VpssGrp: 10 Vpss group id 11 2)VpssChn: 12 vpss chn id 13 3)FrmCnt: 14 the count of frame to be dump 15 *)Example: 16 e.g : ./vpss_chn_dump 0 0 1 17 e.g : ./vpss_chn_dump 1 4 2 18 *************************************************
- shell 说明:
- 1. 运行 vpss_chn_dump -h
- 2.
- 3. 注意:此工具仅用于测试使用!!!
- 4. 获取更多信息,请输入:./vpss_chn_dump -h
- 5.
- 6.
- 7. *************************************************
- 8. 使用说明: ./vpss_chn_dump [VpssGrp] [VpssChn] [FrmCnt]
- 9. 1)VpssGrp:
- 10. VPSS GROUP 号
- 11. 2)VpssChn:
- 12. VPSS 通道号
- 13. 3)FrmCnt:
- 14. 转储的视频帧个数
- 15.*************************************************
vpss_src_dump(转储视频缓存池帧数据)
1 ~ # ./vpss_src_dump -h 2 3 NOTICE: This tool only can be used for TESTING !!! 4 To see more usage, please enter: ./vpss_src_dump -h 5 6 7 ************************************************* 8 Usage: ./vpss_src_dump [Grp] [Pipe] 9 1)VpssGrp: 10 Vpss group id 11 2)Pipe: 12 Vpss Grp pipe 13 *)Example: 14 e.g : ./vpss_src_dump 0 0 15 *************************************************
- shell 说明:
- 1. 运行 vpss_src_dump -h
- 2.
- 3. 注意:此工具仅用于测试使用!!!
- 4. 获取更多信息请输入:./vpss_src_dump -h
- 5.
- 6.
- 7. *************************************************
- 8. 使用说明:./vpss_src_dump [Grp] [Pipe]
- 9. 1)VpssGrp:
- 10. VPSS GROUP 号
- 11. 2)Pipe:
- 12. VPSS 组的管道号
- 13. *************************************************
其他功能说明
nfs配置和网络
- 1,pc机安装nfs服务,安装前可以先学习下这个网站内容:https://blog.csdn.net/iamplane/article/details/53912176
- pc机操作示例如下:
1 $ sudo apt-get install nfs-kernel-server 2 $ sudo apt-get install nfs-common 3 $ sudo gedit /etc/exports #添加下面内容/home/nfs *(rw,sync,no_root_squash,no_subtree_check) 4 $ sudo /etc/init.d/rpcbind restart #重启rpcbind 5 $ sudo /etc/init.d/nfs-kernel-server restart #重启nfs服务 6 $ showmount -e #使用此命令后有”/home/nfs“则安装成功
- 2,设备debug串口链接到PC机上,串口参数是115200 8N1(详细见 串口接口定义)
- 在设备串口终端上,通过下面命令配置IP eth0:
1 ~ # ifconfig eth0 192.168.8.189
- 在设备串口终端,通过下面命令挂载PC机的/home/nfs目录到设备的/mnt/nfs目录(192.168.8.xx是PC机的IP,和设备eth0的IP处在同一网段即可):
1 ~ # mount -t nfs -o nolock -o tcp 192.168.8.xx:/home/nfs /mnt/nfs 2 ~ # cd /mnt/nfs 3 ~ # ls #查看PC机共享的内容
- 这样PC机共享出/home/nfs目录后,在设备的/mnt/nfs目录就可以访问PC机/home/nfs目录的内容。
人脸识别演示
- 这个是第三方的应用,仅仅用于演示(demo程序下载):
- 1,安装
- 先搭建好nfs环境,设备的/mnt/nfs目录就是PC的共享目录,解压face_det.tar.bz2文件到PC机的/home/nfs共享目录,然后在设备串口终端执行下列命令安装人脸识别demo:
1 ~ # mount -t nfs -o nolock -o tcp 192.168.8.xx:/home/nfs /mnt/nfs 2 ~ # tar -jxf /mnt/nfs/face_det.tar.bz2 -C /mnt/nfs/ 3 ~ # cd /mnt/nfs 4 ~ # ./install_demo.sh 5 ~ # sync 6 ~ # reboot
- 2,添加人脸,在设备串口运行人脸采集(默认imx477的摄像头):
1 ~# ifconfig eth0 192.168.8.xxx #设备IP和电脑IP,192.168.8.xx在同一网段 2 ~# cd fdr59_demo 3 ~/fdr59_demo # ./addface477
- 4,设备链接局域网内,并且配置好IP(例如:192.168.8.189),在PC机的浏览器上输入:
- http://192.168.8.189/admin.html
- 5,点击查看照片,找到刚刚采集的最清晰的一张记住上标,点击返回主页:
- 6,在标签栏输入照片的数字编号(前缀和后缀不变)和照片对应的姓名,然后提交:
视频网络直播
- 1,这个demo不是sdk里面自带的,是后期移植的,解码后分辨率只有1920x1080,30帧每秒,如果需要高清直播,需要客户自行移植。
1 ~# ifconfig eth0 192.168.8.189 2 ~# cd /root/ 3 ~# ./sample_rtsp
- 2,然后在vlc视频播放器的URL的流媒体栏输入:rtsp://192.168.8.189/stream_chn0.h264既可进行实时视频播放,注意安装vlc的电脑IP和设备IP在同一网段。
- 3,在ubuntu系统里面,打开video播放器,添加rtsp://192.168.8.189/stream_chn0.h264 即可实时视频播放,ubuntu电脑IP和设备IP在同一网段。
继电器使用
- 通过操作GPIO12_6可以控制继电器的常开和闭合,GPIO12_0负责给继电器5V供电。
1 ~# himm 0x1f001064 0x200 #引脚复用为GPIO12_0模式,5V供电用 2 ~# himm 0x1f00107c 0x15f0 #引脚复用为GPIO12_6模式,继电器开关用 3 ~# echo 96 > /sys/class/gpio/export #导出GPIO12_0 4 ~# echo out > /sys/class/gpio/gpio96/direction #设置GPIO12_0方向为输出 5 ~# echo 1 > /sys/class/gpio/gpio96/value #给继电器5V供电开 6 ~# 7 ~# echo 102 > /sys/class/gpio/export #导出GPIO12_6 8 ~# echo out > /sys/class/gpio/gpio102/direction #设置GPIO12_6方向为输出 9 ~# echo 1 > /sys/class/gpio/gpio102/value #控制继电器常开 10 ~# echo 0 > /sys/class/gpio/gpio102/value #控制继电器常闭 11 ~# echo 102 > /sys/class/gpio/unexport #取消GPIO12_6的导出 12 ~# echo 96 > /sys/class/gpio/unexport #取消GPIO12_0的导出
USB口U盘挂载
- 将U盘插入USB口,会有很多提示信息,其中比较有用的标识是sda: sda1信息(第一个U盘,后面以此是sdb1,sdc1...),然后通过下面命令进行U盘挂载,进入/mnt/usb目录可以看到U盘内容。
1 ~ # mount -t vfat /dev/sda1 /mnt/usb #假设看到的提示信息是sda1 2 ~ # cd /mnt/usb 3 ~ # ls #查看U盘内容
TF口使用
- 将TF卡插入到设备TF卡槽内,重启系统,在终端会有mmc1: new high speed SD card at address 0001提示。使用下面命令进行挂载(mmcblk0是系统emmc使用,TF卡为mmcblk1),在 /mnt/mmc目录下可以看到TF卡里面的内容。
1 ~ # mount -t vfat /dev/mmcblk1p1 /mnt/mmc 2 ~ # cd /mnt/mmc 3 ~ # ls #查看TF卡内容
COM口使用
- 一个COM232,一个COM485,一个debug调试串口,引脚定义详见串口接口定义。
- 软件上COM232口对应的设备是/dev/ttyAMA3,COM485对应的设备是/dev/ttyAMA4,debug串口对应的设备是/dev/ttyS000。
- 调试串口默认参数是115200 8 N 1。