随着人工智能技术的不断发展,SOC芯片方案在安防领域中越来越受到关注。作为一种高度集成的芯片,SOC芯片方案不仅具有强大的编解码能力和算力,还具有低功耗、高可靠性等优点,其产品可以广泛应用于诸如智能安防、智能家居、自动驾驶等众多领域。在众多国产化方案中,海思方案以其卓越的性能和稳定性备受瞩目。本文将从编解码能力、算力、外部储存接口、视频输入/输出接口、算法准确率等五个构成智能安防设备的要素方面详细介绍海思主流方案,包括SD3403、HI3519AV200、3519AV100、3519DV500、3516DV500以及3516DV300。
一、海思方案的编解码能力
1.编解码的介绍
简单来说,编解码就是用于压缩或解压数字视频的软件或硬件。编码是将视频、音频的原始格式的文件通过压缩技术转换成另一种格式视频如h.264,h.265m-jpeg等),而解码是编码的反向过程,即将h.264,h.265格式数据解码成如YUV格式裸流交给显示器显示。例如:摄像头本身采集到的RAW数据会到达10G的大小,这种情况下是无法通过网络传输的,传输效率会很低且占用大量带宽,通过编码后,可以使其大小变为10M。编码后大大提高了数据传输的效率。
2.编解码的流程及原理
在视觉通信和图像处理领域,从摄像头采集的原始数据(Raw data)经过一系列的处理流程,最终通过网络传输并在其他设备上解码是一个关键过程。本文将详细介绍这一流程的各个环节,包括从摄像头Raw数据的获取、预处理(Vi和VPSS)、编码(VENC)、网络传输到解码的整个过程。
预处理:Vi和VPSS:在原始数据进入CPU之前,通常需要进行预处理。其中,Vi(Video Input)和VPSS(Video Processing Signal System)是两个关键的处理步骤。
首先,摄像头采集到的原始数据(Raw data)通常是未经过处理的二进制数据,包含了图像的各种原始信息,如颜色、亮度等。这些数据通过特定的接口(如MIPI、LVDS等)进行传输,也就是VI处理,以供后续处理流程使用。
VPSS是对Vi传输的数据进行一系列的预处理操作,如图形缩放等。
编码:VENC和ISP:预处理后的图像数据接下来需要进行编码,以实现数据的压缩和优化。VENC(Video Encoder)是一种编码器,它可以把VPSS处理后的图像或视频数据转换为一种可以进行压缩的格式,如H.264或H.265等。这种压缩可以大大减少数据的体积,方便进行存储和传输。
在此过程中,ISP(Image Signal Processing)也起到关键作用。这是对数字图像或视频信号进行处理的一系列操作,包括去噪、色彩校正、白平衡、锐化等,可以把原始的图像数据进行优化,提升其视觉效果。
网络传输:编码后的数据接下来需要通过网口进行网络传输。这需要使用网络通信协议(如TCP/IP、UDP等),并借助网络库(如socket、HTTP等)实现网络通信和数据传输。在此过程中,数据可能需要进行一些协议转换(如RTP、RTSP等),以适应不同的网络环境和播放设备。
解码过程:接收方设备接收到数据后需要进行解码,这是编码的反过程。通常,接收方设备需要使用解码库(如FFmpeg、GStreamer等)来实现数据的还原和解析。这个过程可能会遇到一些困难,如数据丢失、错误编码等,这时需要根据实际情况采取相应的解决方案。
解码完成后,原始的图像数据就可以在接收方设备上进行显示或进一步处理了。
二、海思CPU的算力
1.算力的概念
算力的字面意思就是计算能力(Computing Power)。更具体来说,算力是通过对信息数据进行处理,实现目标结果输出的计算能力。一方面,算力有望成为拉动数字经济向前发展的新动能、新引擎;另一方面,算力正在成为影响国家综合实力和国际话语权的关键要素,国与国的核心竞争力正在聚焦于以计算速度、方法、通信能力、存储能力为代表的算力,未来谁掌握先进的算力,谁就掌握了发展的主动权。同时,受益于人工智能发展带来的市场需求,在人机交互、智能客服、语音对话、AIGC、智能公文写作、机器人等领域都需要不断拓宽泛算力技术的应用。这意味着“算力时代”已经到来。
2.算力的衡量标准我们通常见到的算力单位为TOPS,1TOPS = 1024 GOPS = 1024*1024 MOPS
TOPS (Tera Operations Per Second)1TOPS代表处理器每秒钟可进行一万亿次 (10^12) 操作
GOPS (Giga Operations Per Second)1GOPS代表处理器每秒钟可进行十亿次 (10^9) 操作
MOPS(Million Operation Per Second)1MOPS代表处理器每秒钟可进行一百万次 (10^6) 操作
其实对于算力的量化,一直都是比较模糊的,这里给出一个实测的数据作为参考,4Tops INT8算力,可以在做人形检测时大概可以做到680*480每秒60帧的检测。
三、外部储存
1.DDR对于储存设备大家都不会陌生,当前领域内常用的就是DDR和EMMC,在这里,首先,我们重点介绍一下DDR的各种参数说明。
我们以sd3403的参数为例,DDR4/LPDDR4/LPDDR4x 接口; 支持4 x 16bit DDR4 ;支持2 x 32bit LPDDR4/LPDDR4x;DDR4最高速率3200Mbps;LPDDR4/LPDDR4x最高速率3733Mbps; 最大容量8GB;
在介绍之前,需要明确的是,在DDR的参数中,速率和bit等参数都是与数据传输和处理密切相关的。速率指的是单位时间内数据的传输量,而bit是计算机中最小的数据单位,表示二进制位。
首先,DDR4和LPDDR4/LPDDR4x接口是两种不同类型的内存接口。DDR4是双倍数据率第四代动态随机存储器的标准,而LPDDR4/LPDDR4x则是低功耗版本的DDR4标准。它们的主要区别在于功耗和数据传输速率。
DDR4接口支持4 x 16bit DDR4,这意味着它能够同时传输4个16位的数据。它的最高速率可以达到3200Mbps,即每秒传输3.2亿个数据位。这个速率是非常快的,可以满足大多数高带宽、低延迟的数据传输需求。
LPDDR4/LPDDR4x接口支持2 x 32bit LPDDR4/LPDDR4x,即可以同时传输2个32位的数据。它的最高速率可以达到3733Mbps,即每秒传输3.73亿个数据位。而且LPDDR4/LPDDR4x的功耗更低,适用于对功耗要求较高的设备。
2.EMMC
除了DDR4和LPDDR4/LPDDR4x接口外,SD3403还支持其他类型的外部存储器接口,例如eMMC、NAND FLASH、SD card等。这些接口可以与不同的存储设备和外设进行高速数据传输,从而扩展了芯片的应用范围。
EMMC (Embedded Multi Media Card)是由MMC协会订立,主要针对手机或平板电脑等产品的内嵌式存储器标准规格。我们当前常见的EMMC主要是4.5,5.0和5.1。
EMMC 5.1和4.5都是eMMC闪存规格的标准,EMMC 5.1的读取速度大约为400MB/s,而EMMC 4.5的读取速度则为200MB/s。
这些存储产品都由高密度NAND Flash和MMC Controller封装在一个BGA芯片中,eMMC 5.1和eMMC 4.5并无本质区别,因此在接口和命令集方面都保持一致。
3.Flash
除了EMMC之外,NAND Flash也是比较常见的,相比于EMMC,FLASH只包含闪存芯片,需要外部控制器进行管理。3403支持的SPI Nor/SPI Nand Flash 接口 ,就支持1、2、4线模式,SPI Nor Flash支持3Byte、4Byte 地址模式
“支持1、2、4线模式”是指SPI NOR/NAND Flash支持的通信模式。在SPI通信中,通常需要进行数据传输时需要至少两条线路,一条是时钟线(SCK),另一条是数据线(MOSI 或 MISO)。而1、2、4线模式则是指这些Flash支持的通信线路数量。例如,1线模式只有一条数据线,而2线模式有两条数据线,4线模式则有四条数据线。更多的线路可以提供更高的数据传输速度和更稳定的通信质量。
“支持3Byte、4Byte 地址模式”是指这些Flash支持的地址长度。在存储器中,每个存储单元都有一个唯一的地址,地址长度决定了可以寻址的存储单元数量。例如,如果地址长度为3字节,那么可以寻址的存储单元数量就相对较少,存储容量也较小;而如果地址长度为4字节,则可以寻址更多的存储单元,存储容量也更大。这些Flash支持不同的地址长度,可以根据实际需要选择适合的地址长度来进行数据存储。
总的来说,外部储存接口的速率和bit等参数都是决定数据传输速度和效率的关键因素。通过对不同接口的支持,海思主流方案的外部储存接口可以满足各种类型的数据传输需求,从而提高了芯片的灵活性和扩展性。这些参数的关联性在于它们共同决定了数据的传输速度和效率,进而影响了整个系统的性能和表现。
四、视频输入/输出接口
输入/输出(I/O)接口是开发板的重要组成部分,它们使得开发板可以与外部设备进行通信和控制。I/O接口可以是硬件接口,如GPIO(通用输入/输出)、UART(通用异步收发器)、SPI(串行外设接口)等,也可以是软件接口,如网络套接字、数据库连接等。
我们以sd3403支持的原生接口举例,介绍一些常用的接口:
HDMI 2.0接口输出:HDMI是一种高清多媒体接口,用于连接显示设备。HDMI 2.0提供了更高的数据传输速率,支持更高的分辨率和刷新率,例如4K和60Hz,以及1080P和120Hz等。
4-Lane Mipi DSI/CSI接口输出:Mipi DSI和CSI是两种常见的显示接口。DSI(Display Serial Interface)是一种串行接口,用于连接显示面板。CSI(Camera Serial Interface)则是一种用于连接摄像头的接口。这种接口可以提供非常高的数据传输速率。
模拟标清 CVBS 输出:CVBS是一种模拟视频信号接口,通常用于连接老式的电视机和监视器。
8/16/24 bit RGB、BT.656、BT.1120等数字接口:这些是不同的显示接口协议。RGB是一种基本的颜色编码方式,而BT.656和BT.1120则是更先进的数字视频编码标准。
两个独立高清视频输出:这个功能允许开发板同时输出两个高清视频流,可以支持多种不同的显示配置。例如,它可以同时显示两个不同的高清视频,或者一个高清视频和一个标清视频。其中一路还可以支持PIP(画中画)功能,允许在一个屏幕上同时显示两个不同的视频流。
总的来说,开发板的I/O接口是用于与外部设备进行通信和控制的桥梁,不同的接口可以用来连接各种不同类型的设备,从而实现不同的功能,当然此处例举的仅仅是CPU支持的原生资源,我们也可以通过转换芯片或者FPGA将一种接口协议或标准转换为另一种接口协议或标准,以便在不同的设备或系统之间实现通信和数据传输。
五、影响算法准确性的因素
在机器视觉算法中,算法的准确率是评估其性能和有效性的关键指标。它代表着算法在处理各种视觉任务时,如目标检测、分类和识别等,能够正确理解和处理输入数据的能力。算法准确率的高低直接影响到机器视觉系统的实用性和可靠性,因此提高算法准确率一直是机器视觉领域的重要研究方向。以下就从模型,样本,像素三个影响算法准确性的主要因素展开介绍。
1.模型
模型是指用于训练和实现算法的框架或平台,如Caffe等。不同的模型具有不同的结构和特点,对算法准确性的影响也不同。一般来说,较复杂、灵活性较强的模型结构可能更有助于提高算法的准确性。此外,不同的模型结构对于不同的任务和领域也可能具有更好的适应性和表现。
除了模型的结构和类型之外,模型训练的充分性也是影响算法准确性的一个重要因素。模型训练过程中,如果训练数据集不充足或者训练过程中的优化算法选择不当,都可能导致模型过拟合或欠拟合,从而影响算法的准确性。
2.样本
样本是指用于训练和测试算法的数据集。样本的质量和数量都会对算法的准确性产生影响。样本的质量包括数据集的多样性、标注的准确性、数据集的大小等。样本的数量是指数据集中样本的总数。一般来说,更多的样本数量可以增加算法的训练数据量,有助于提高算法的准确性。
在样本比例方面,如果数据集中某一类别的样本比例过小,那么算法可能会对这一类别产生偏见,导致分类准确性下降。比如对同一物品检测,白天的样本多,黑夜的样本少,那白天检测的准确率将远远高于黑夜。
3.像素
像素是指图像的基本单位,也是影响算法准确性的一个因素。目标物体在图像中所占据的像素数量会影响算法对目标的检测和识别能力。例如,在图像中,如果目标物体所占据的像素数量较少,那么算法可能会难以准确地检测和识别目标物体。因此,一般来说,目标物体在图像中占据的像素数量越多,算法的准确性也可能越高。
此外,像素的质量也会影响算法的准确性。例如,在图像中,如果存在噪声或其他干扰因素,那么这些因素可能会影响算法对目标的检测和识别能力。因此,在算法设计和应用中,需要选择合适的像素质量和数量,以提高算法的准确性。
总的来说,影响算法准确性的因素有很多种,这些因素之间相互作用和影响。在算法设计和应用中,需要综合考虑这些因素,并选择合适的模型、样本和像素数量和质量来提高算法的准确性和鲁棒性。同时,也需要不断地优化和改进算法结构和训练方法,以提高算法的效率和准确性。