用于计算机视觉分析的ICS帧变换方法和装置与流程

文档序号:26013202发布日期:2021-07-23 21:34阅读:165来源:国知局
用于计算机视觉分析的ICS帧变换方法和装置与流程

本发明涉及计算机视觉分析,尤其针对用于计算机视觉分析的压缩过程中的数据处理方式的一种方法。



背景技术:

相机的一般功能是将光学数据变换为压缩后的连续的电子格式,从而传送或存储信息。光学数据可以与一个或多个原始bayer帧相对应。原始bayer帧可能普遍具有高分辨率,但会减缓传送速度,所以有必要在传送前采取一种压缩方法。因而可能还需要进行一种解压缩的操作。

一部传统相机包括一个焦平面和一个片上系统的图像处理平台。芯片可以执行解马赛克、白平衡调整、混色调整、伽马校正、按照顺序的压缩和解压缩,并且一帧或者一个图像只能在重建(解压缩)后被查看或者被分析。

通常,神经网络(nns)会被用于计算机视觉(cv)分析。计算机视觉分析可以是目标检测/分类、人脸识别等,并且帧(一般主要以rgb格式)会被输入nns以用于nn应用(目标检测/分类、人脸识别等)或nns训练。

大部分现有的视觉分析nns具有较小的输入xy平面尺寸,比如[416,416],并且,高分辨率的解马赛克后的帧在被输入nns之前,必须经过下采样(且在大多数情况下随后进行零填充)。

执行功率和运算是相机像素容量的关键性限制,并且执行功率和运算的消耗包括解马赛克、白平衡调整、颜色混合调整、伽马校正、压缩、解压缩和下采样。在不需要使用大量新的标记后的训练数据对市场上现有的计算机视觉分析nns进行再训练的同时,可能需要采用一些方法来减少执行功率和运算量。



技术实现要素:

本发明的一方面公开了一种用于计算机视觉分析的ics帧变换方法。所述ics帧的变换方法包括以下一个或多个操作:一个或多个尺寸为[nx/kx,ny/ky,ncomp]ics帧可以被读出。通过使用尺寸为[ncomp,3]的2d阵列中的参数来对一个或多个ics帧进行线性变换,可以确定尺寸为[nx/kx,ny/ky,3]的一个或多个变换的ics帧。一个或多个变换后的ics帧可以输出至神经网络中以进行计算机视觉分析。在一些实施例中,可以通过使用压缩内核对一个或多个原始bayer帧执行帧内压缩来确定一个或多个ics帧,其中的一个或多个原始bayer帧可以被一个或多个相机头捕获。在一些实施例中,每个原始bayer帧的尺寸都可以是[nx,ny],并且压缩内核的尺寸可以是[kx,ky,ncomp],并且nx,ny,kx,ky,nx/kx,ny/ky和ncomp可以是正整数,并且ncomp代表着该压缩内核的ics通道的数目。

在一些实施例中,对于每个ics帧,可以通过将ncomp个ics通道中处于相同xy平面位置的像素值与2d阵列的三个1d向量[ncomp,j]中的加权因子相加求和来确定其所对应的变换后的ics帧,其中j为0、1和2。

在一些实施例中,可以基于样本训练来确定2d阵列中的参数,并且样本训练包括:读出一个或多个第一样本原始bayer帧,其中每个第一样本原始bayer帧的尺寸为[nx,ny];通过对每个第一样本原始bayer帧执行解马赛克来确定一个或多个解马赛克后的第一样本原始bayer帧,其中每个解马赛克的第一样本原始bayer帧的尺寸为[nx,ny,3];通过对每个解马赛克的第一样本原始bayer帧执行下采样来确定一个或多个变换训练标记帧。其中,每个变换训练标记帧的尺寸为[nx/kx,ny/ky,3];通过使用压缩内核对每个第一样本原始bayer帧执行帧内压缩来确定一个或多个第一样本ics帧;通过使用2d阵列中的初始参数对一个或多个第一样本ics帧进行线性变换,以确定尺寸为[nx/kx,ny/ky,3]的一个或多个第一样本变换的ics帧;通过调整2d阵列中的初始参数来将一个或多个第一样本变换的ics帧与其所对应的一个或多个变换训练标记帧之间的全部训练损失最小化,从而确定2d阵列中的参数,

在一些实施例中,每个第一样本变换的ics帧与一个变换训练标记帧相对应,并且一个第一样本变换的ics帧的训练损失是第一样本变换的ics帧与其所对应的变换训练标记帧之间的均方差,并且一个或多个第一样本变换的ics帧与其所对应的一个或多个变换训练标记帧之间的全部训练损失是个体训练损失值的总和。

在一些实施例中,帧内压缩包括:对于每个原始bayer帧,使用压缩内核将原始bayer帧中的每组像素值压缩为一个整数,其中每个原始bayer帧中的像素被划分为多个组,并且每组像素与该原始bayer帧的2d或1d原始像素阵列相对应。

在一些实施例中,可以基于样本训练来确定压缩内核,并且样本训练包括:读出一个或多个第二样本原始bayer帧,其中每个第二样本原始bayer帧的尺寸为[nx,ny];对于每个第二样本原始bayer帧,通过对第二样本原始bayer帧中的r、b、gb和gr像素执行线性变换和将它们组合在一起来确定一个与其相对应的ics训练标记帧,其中每个ics训练标记帧的尺寸为[nx',ny',nlabel];通过使用初始的压缩内核对每个第二样本原始bayer帧执行帧内压缩以确定一个或多个尺寸为[nx/kx,ny/ky]一个或多个第二样本ics帧,其中初始压缩内核的尺寸为[kx,ky,ncomp];通过使用尺寸为[kx',ky',ncomp,nlabel]的初始解压缩内核对每个第二样本ics帧执行解压缩来确定一个或多个尺寸为[nx',ny',nlabel]的第二样本解压缩的ics帧,其中kx'=nx'*kx/nx,ky'=ny'*ky/ny;基于一个或多个ics训练标记帧来训练初始压缩内核,从而确定压缩内核;其中nx',ny',kx',ky'和nlabel都是正整数。

在一些实施例中,基于一个或多个ics训练标记帧来训练初始压缩内核,从而确定压缩内核的过程可以包括:基于机器学习来调整初始压缩内核中的参数,以将一个或多个第二样本解压缩ics帧和其所对应的一个或多个ics训练标记帧之间的全部质量损失最小化,从而确定浮点数压缩内核;通过将浮点数压缩内核中的参数整数化以确定压缩内核。

在一些实施例中,每个第二样本解压缩的ics帧与一个ics训练标记帧相对应,并且第二样本解压缩的ics帧的质量损失是第二样本解压缩的ics帧与其所对应的ics训练标记帧之间的均方差,并且一个或多个第二样本解压缩的ics帧和一个或多个ics训练标记帧之间的全部质量损失是各体质量损失值的总和。

在一些实施例中,该方法进一步包括:通过使用压缩内核对每个第二样本原始bayer帧执行帧内压缩来确定一个或多个第二样本中间ics帧;通过使用初始解压缩对每个第二样本中间ics帧执行解压缩来确定一个或多个第二样本中间解压缩的ics帧;基于机器学习来调整初始解压缩内核中的参数,以将一个或多个第二样本中间解压缩帧和其对应的一个或多个ics训练标记帧之间的全部质量损失最小化,从而确定解压缩内核。

在一些实施例中,每个第二样本中间解压缩的ics帧与一个ics训练标记帧相对应,并且第二样本中间解压缩的ics帧的质量损失是第二样本中间解压缩的ics帧与其所对应的ics训练标记帧之间的均方差,并且一个或多个第二样本中间解压缩的ics帧和一个或多个ics训练标记帧之间的全部质量损失是各体质量损失值的总和。

在一些实施例中,该方法进一步包括:通过使用压缩内核对每个第一样本原始bayer帧执行帧内压缩来确定一个或多个第二样本中间ics帧;通过使用初始解压缩内核对每个第二样本中间ics帧执行解压缩来确定一个或多个第二样本中间解压缩的ics帧;通过将每个第二样本中间解压缩的ics帧输入初始qinn来确定一个或多个第二样本重建帧;基于机器学习来调整初始解压缩内核和初始qinn中的参数,以将一个或多个第二样本重建的帧与一个或多个ics训练标记帧之间的全部质量损失最小化,从而确定解压缩内核和qinn。

在一些实施例中,每个第二样本重建的帧与一个ics训练标记帧相对应,并且一个第二样本重建ics帧的质量损失是第二样本重建ics帧与其所对应的ics训练标记帧之间的均方差,并且一个或多个第二样本重建ics帧与一个或多个ics训练标记帧之间的全部质量损失是个体质量损失值的总和。

本发明的另一方面公开了一种用于计算机视觉分析的ics帧变换装置,包括读出模块、处理器和输出端口。该读出模块可以被设定为读出一个或多个原始bayer帧,并且每个原始bayer帧的尺寸为[nx,ny]。该处理器可以被设定为通过使用尺寸为[ncomp,3]的2d阵列中的参数对一个或多个ics帧进行线性变换来确定一个或多个变换的ics帧。该输出端口可以被设定为将一个或多个变换的ics帧输出至神经网络以进行计算机视觉分析。在一些实施例中,可以使用压缩内核对一个或多个原始bayer帧执行帧内压缩,从而确定一个或多个ics帧,其中一个或多个原始bayer帧可以被一个或多个相机头捕获。在一些实施例中,每个原始bayer帧的尺寸可以是[nx,ny],并且压缩内核的尺寸可以是[kx,ky,ncomp],并且nx,ny,kx,ky,nx/kx,ny/ky和ncomp可以是正整数,ncomp代表着压缩内核的ics通道的数目。

在一些实施例中,对于每个ics帧,处理器通过将处于ncomp个ics通道中相同xy平面位置的像素值与2d阵列的三个1d向量[ncomp,j]中的加权因子相加求和,来确定与其所相应的变换的ics帧,其中j是0、1和2。

在一些实施例中,可以基于样本训练来确定2d阵列中的参数,并且样本训练包括:读出一个或多个第一样本原始bayer帧,其中每个第一样本原始bayer帧的尺寸为[nx,ny];通过对每个第一样本原始bayer帧执行解马赛克来确定一个或多个解马赛克的第一样本原始bayer帧,其中每个解马赛克的第一样本原始bayer帧的尺寸都是[nx,ny,3];通过对每个解马赛克的第一样本原始bayer帧执行下采样来确定一个或多个变换训练标记帧,其中,每个变换训练标记帧的尺寸都是[nx/kx,ny/ky,3];通过使用压缩内核对每个第一样本原始bayer帧执行帧内压缩来确定一个或多个第一样本ics帧;通过使用尺寸为[ncomp,3]的2d阵列中的初始参数来对一个或多个第一样本ics帧进行线性变换,从而确定尺寸为[nx/kx,ny/ky,3]的一个或多个第一样本变换的ics帧;调整2d阵列中的初始参数,以将一个或多个第一样本变换的ics帧和其所对应的一个或多个变换训练标记帧之间的全部训练损失最小化,从而确定2d阵列中的参数。

在一些实施例中,每个第一样本变换的ics帧与一个变换训练标记帧相对应,并且一个第一样本变换的ics帧的训练损失是第一样本变换的ics帧与其所对应的变换训练标记帧之间的均方差,并且一个或多个第一样本变换的ics帧与其所对应的一个或多个变换训练标记帧之间的全部训练损失是个体训练损失值的总和。

在一些实施例中,帧内压缩包括:对于每个原始bayer帧,使用压缩内核将原始bayer帧中的每组像素值压缩为一个整数,其中每个原始bayer帧中的像素被划分为多个组,并且每组像素与该原始bayer帧的2d或1d原始像素阵列相对应。

在一些实施例中,可以基于样本训练来确定压缩内核,样本训练包括:读出一个或多个第二样本原始bayer帧,其中每个第二样本原始bayer帧的尺寸为[nx,ny];对于每个第二样本原始bayer帧,通过对第二样本原始bayer帧中的r、b、gb和gr像素执行线性变换和将它们组合在一起来确定与其相对应的ics训练标记帧,其中每个ics训练标记帧的尺寸为[nx',ny',nlabel];通过使用初始压缩内核来对每个第二样本原始bayer帧执行帧内压缩以确定一个或多个尺寸为[nx/kx,ny/ky,ncomp]的第二样本ics帧,其中初始压缩内核的尺寸为[kx,ky,ncomp];通过使用尺寸为[nx',ny',nlabel]的初始压缩内核对每个第二样本ics帧执行解压缩来确定一个或多个尺寸为[nx',ny',nlabel]的第二样本解压缩的ics帧,其中kx'=nx'*kx/nx,ky'=ny'*ky/ny;基于一个或多个ics训练标记帧来训练初始压缩内核,从而确定压缩内核;其中nx',ny',kx',ky和nlabel都是正整数。

在一些实施例中,基于一个或多个ics训练标记帧来训练初始压缩内核,从而确定压缩内核的过程可以包括:基于机器学习来调整初始压缩内核中的参数,以将一个或多个第二样本解压缩的ics帧与其所对应的一个或多个ics训练标记帧之间的全部质量损失最小化,从而确定浮点数压缩内核;通过将浮点数压缩核中的参数整数花来确定该压缩内核。

在一些实施例中,每个第二样本解压缩的ics帧与一个ics训练标记帧相对应,并且一个第二样本解压缩的ics帧的质量损失是第二样本解压缩的ics帧与其所对应的ics训练标记帧之间的均方差,并且一个或多个第二样本解压缩的ics帧和一个或多个ics训练标记帧之间的全部质量损失是各体质量损失值的总和。

其他特征将有部分在下面的说明书中阐述,本领域的技术人员通过了解以下的技术检验以及配图,或者通过学习范例的生产和制作可以明晰这些特征。通过实践或者应用方法论中的多个方面,可以领会并掌握本发明所涉及的发明特征,下文的详细范例将讨论工艺和综合内容。

附图说明

本发明将在示例性实施例中做进一步描述。这些示例性实施例会参照附图详细描述。这些实施例是非限制的示例性实施例,其中,相同的附图标记表示贯穿于附图的多个视图中的类似结构。其中:

图1示出了根据本发明的一些实施例的原有的原始bayer帧的示例。

图2说明了根据本发明的一些实施例的帧内压缩和解压缩的方法。

图3示出了根据本发明的一些实施例的在204中所描述的卷积过程。

图4说明了根据本发明的一些实施例的采用204所描述的帧策略的帧内压缩过程的示例。

图5是根据本发明的一实施例的原始bayer数据的单层卷积2d压缩过程中的压缩内核的示例。

图6是用压缩内核将输入的像素值压缩后的形状[256,480,4]的一个整数阵列。

图7说明了根据本发明的一些实施例的用于计算机视觉分析的ics帧的变换方法。

图8示出了根据本发明的一些实施例的变换的ics帧的示例。

图9示出了根据本发明的一些实施例的图8中变换的ics帧的堆叠的rgb格式的计算机视觉分析结果。

图10示出了根据本发明的一些实施例的2d阵列中参数的训练方法的示例。

图11示出了根据本发明的一些实施例的信息组矩阵的两种广泛使用的格式。

图12说明了根据本发明的一些实施例的压缩内核的预先训练方法的示例。

图13说明了根据本发明的一些实施例的压缩内核的训练方法的示例。

图14是根据本发明的一些实施例的针对解压缩内核的训练方法的示例。

图15示出了根据本发明的一些实施例的解压缩内核的另一种训练方法。

图16说明了用于计算机视觉分析的ics帧变换装置。

具体实施方式

在下面的详细描述中,通过示例阐述了许多具体细节,以提供对相关公开的透彻理解。然而,对于本领域技术人员显而易见的是,本发明可以在没有这些细节的情况下实施。在其他实例中,为了避免不必要地模糊本发明的各个方面,已经相对较高的层次地描述了公知的方法、过程、系统、组件和/或电路,而没有详细说明。对所公开实施例的各种修改对于本领域的技术人员来说是显而易见的,并且在不脱离本发明的精神和范围的情况下,本文所定义的一般原理可以应用于其他实施例和应用。因此,本发明不限于所示的实施例,而是被赋予与权利要求一致的最广泛的范围。

应当理解,本文使用的术语“系统”、“引擎”、“单元”、“模块”和/或“块”是按升序区分不同级别的不同组件、元件、部件、零件或组装件的一种方法。然而,如果可以达到同样的目的,这些术语可被其他表达方式取代。

一般而言,如本文所使用的词“模块”、“单元”或“块”是指硬件或固件中包含的逻辑、或软件指令的集合。本文所述的模块、单元或块可以实现为软件和/或硬件,并且可以存储在任何类型的非暂时性计算机可读介质或其他存储设备中。在一些实施例中,软件模块/单元/块可以被编译并链接到可执行处理中。应当理解的是,软件模块可以从其他模块/单元/块或自身调用,和/或可以响应于检测到的事件或中断而被调用。配置用于在计算设备上执行的软件模块/单元/块可以设置在计算机可读介质上,例如光盘、数字视频光盘、闪存驱动器、磁盘或任何其他有形介质上,或者作为数字下载(并且可以最初以需要安装的压缩或可安装格式存储、解压、或在执行前解密)。这种软件代码可以部分或全部存储在执行计算设备的存储设备上,以供计算设备执行。诸如eprom这样的软件可以包含在固件中。还应当理解的是,硬件模块/单元/块可以包括在连接的逻辑组件中,例如门和触发器,和/或可以包括可编程单元,例如可编程门阵列或处理器。本文描述的模块/单元/块或计算设备功能可以实现为软件模块/单元/块,但是可以用硬件或固件表示。一般而言,本文所述的模块/单元/块是指可以与其他模块/单元/块组合或被划分为子模块/子单元/子块的逻辑模块/单元/块,尽管它们具有物理组织或存储。该描述可适用于系统、引擎或其一部分。

应当理解,当单元、引擎、模块或块被称为“在另一个单元、引擎、模块或块上”、“连接到”或“耦合到”另一个单元、引擎、模块或块时,它可以直接位于、连接或耦合到另一个单元、引擎、模块或块或中间单元、引擎、模块,或块可能存在,除非上下文中另有明确指示。如本文所使用的,术语“和/或”包括一个或多个相关的所列事务的任何和所有组合。

本发明的这些特征和其他特征,以及结构的相关元件的操作方法和功能,以及部件的组合和制造经济性,在参考附图考虑以下描述后可能更加明显,所有这些都是构成本公开的一部分。然而,应明确理解,附图仅用于说明和描述,并且无意限制本公开的范围。据悉,附图没有按比例绘制。

本文中使用的术语仅用于描述特定示例和实施例,目的不在于限制。如本文所使用的,单数形式的“一”、“该”也可以意欲包括复数形式,除非上下文清楚地另有指示。应进一步理解,术语“包括”在本公开中使用时,规定了整数、设备、行为、所述特征、步骤、元素、操作和/或组件的存在,但不排除存在或添加一个或多个其他整数、设备、行为、特征、步骤,元件、操作、组件和/或其组合。

本发明在此公开提供的涉及一种计算机视觉分析方法和装置。以下实施例将对此进行详细描述。正如图1-6将描述的,计算机视觉分析方法将与一种新的压缩/解压缩方法一同应用。新的压缩/解压缩方法有别于在背景资料中所描述的现有方法,其中,在新的压缩/解压缩方法中,解马赛克和其他运算会在压缩和解压缩之后执行。

在一个相机中,被相机接收的光可以由一个芯片读出为原始bayer数据。正如图1中所示,原始bayer数据必须通过使用并行流或串行流以便从相机中读取。根据本发明的一些实施例,根据本发明的一些实施例,图1显示了一个与原始bayer数据相对应的原始bayer帧的范例。正如图1所示,原始bayer帧的形状为[2048,3840],并且每个像素可以具有一个与其相对应的像素值(原始像素值)。在捕获帧之后,原始像素值可以按顺序被芯片读出。

对于相机的一个电子传感器阵列,从一个焦平面读出的数据可以是光栅格式,这意味着按顺序读出行。输入像素值(原始像素值)的形状为[2048,3840]。正如图6中将要描述的,在一些实施例中,[2048,3840]原始bayer帧可以被压缩为形状为[256,480,4]的一个整数阵列。像素还对应于不同的颜色,通常是红色、绿色和蓝色,但是颜色值在穿过传感器时通常会被马赛克化,所以一个指定的像素对应于一个指定的已知的颜色。

可以在原始bayer数据流上执行帧内压缩。根据本发明的一些实施例,图2说明了一种帧内压缩/解压缩的方法。

在202中,可以从相机头中按顺序读出多组原始像素值。在一些实施例中,原始像素值可以作为原始bayer数据按顺序被读出。例如,相机头可以捕捉到一个包括了多组原始像素值的原始bayer帧,其中每组原始像素值对应于原始bayer帧的一个2d或1d原始像素阵列。

在204中,可以通过使用压缩内核将每组原始像素值压缩为一个整数来执行帧内压缩,并且最终,原始bayer帧可以压缩为一个ics帧。在一些实施例中,压缩内核可以具有ncomp个ics通道,并且ncomp可以是一个不小于1的整数。帧的策略中会对该压缩过程进行描述。

在一些实施例中,压缩内核中的元件可以是整数,以方便应用于硬件,例如现场可编程逻辑门阵列(fpga)。例如,压缩内核中的元件可以是二进制的,并且元件的位宽可以是12位、10位、8位、6位、4位或者2位。此外,当元件是两位的二进制时,元件可以是-1或者+1,或者元件可以是0或者1。

帧的策略一

在原始bayer帧中,一组原始像素值可以与原始bayer帧的一个2d补丁中的像素相对应,并且压缩内核可以是一个2d内核,其中原始bayer帧可以被划分为多个2d补丁。一个2d补丁和2d内核具有一个相同的尺寸。例如,2d内核可以有一个尺寸[kx,ky],而形状为[nx,ny]的帧可以被划分为[nx,ny]2d补丁,其中nx=nx/kx,ny=ny/ky。形状为[kx,ky,1]的某一个补丁中的像素所对应的像素值可以与形状为[kx,ky,ncomp]的一个2d内核相乘,并且在2d补丁中的像素值可以压缩为ncomp数字(ncomp是一个手动定义的预设的整数)。最终,帧的输入原始像素值可以被压缩为comp,其中comp是一个尺寸为[kx,ky,ncomp]的ncomp数字(整数的一个阵列)的一个阵列,ncomp可以代表着comp的ics通道的数量。帧内压缩过程可以是一种2d卷积运算,如以下方程式(1)所示:

其中指数i和j分别循环输出kx和ky,并且指数k是从0到ncomp-1的数。

在不考虑输入像素值的位宽(原始像素值同为8位或者10位)和压缩后的数字阵列的位宽(8位)之间的差异的情况下,压缩率可以被表示为ncomp/(kx*ky)。通过对[kx,ky,ncomp]的各种设置进行运用,可以实现不同的压缩率。例如,不同的压缩率,比如1/16,1/16,1/32和1/256可以通过分别使用2d内核[16,16,16],[8,8,4],[16,16,8]和[16,16,1]来实现。

帧的策略二

在原始bayer帧中,一组原始像素值可以与原始bayer帧的一个1d分段中的像素相对应,并且压缩内核可以是一个1d内核,其中原始bayer帧可以被划分为多个1d分段。1个1d分段和1d内核可以具有一个相同的尺寸。在一些实施例中,压缩内核中的每个元件可以是-1或者+1;或者压缩内核中的每个元件可以是0或者1。例如,可以使用长度为16的压缩内核[0,1,0,0,1,0,…1]将16个传入像素值(1d原始像素阵列)组合为一个数字。而在另一个示例中,可以使用长度为16的压缩内核[-1,1,-1,1,-1,1,-1,…1]将16个传入像素值组合为一个数字。

特别是,序列可以被逐行划分。各种1d压缩内核已经被开发出来,包括[128,1,4],[32,1,4]。并且,对于原始bayer数据中的不同行的不同的卷积1d内核的组合可以用于控制一张图片/一帧的总压缩率。

像素序列的这种分割方式所使用的缓冲区面积比2d补丁的分割方式所使用的缓冲区面积更小,因为来自不同行/分段的像素值不需要缓冲,而传入的像素值可以作为分段来处理。

正如上文所述,每组原始像素值可以被压缩为一个整数,并且原始bayer帧可以被压缩为大量的整数。在压缩/解压缩的过程中,大量的整数可以被存储或者缓冲。

在206中,可以使用解压缩内核来执行解压缩,从而确定一个解压缩的ics帧。在一些实施例中,解压缩可以对ics帧的大量整数执行反卷积。在一些实施例中,可以在解压缩后执行量化和熵编码,从而意味着可以在解压缩之前执行熵解码、重缩放和整数化(重缩放和整数化与量化运算相对应)。

值得注意的是,呈现帧内压缩过程仅仅是为了说明,并不旨在限制本发明的范围。对于本领域的普通技术人员来说,可以在本发明的的指导下做出多种变动和修改。然而,这些变动和修改不能脱离本发明的范围。例如,还可以使用具有其他位宽的压缩内核来压缩原始像素值。

根据本发明的一些实施例,如204中所述,图3显示了一个卷积过程。正如图3中所示,可以使用压缩内核将尺寸为4*4的一个像素值阵列压缩为一个整数。该压缩内核的尺寸也可以是4*4。

如204中所说明的,尽管帧内压缩的过程已经变得很简单了,但是它可以提供一种方式来减少必要的缓冲区的面积。对于将尺寸为[4,4,1]的一个卷积2d内核应用于一个形状为[4,4]的像素的补丁,不需要将所有像素(总共16个)放入缓冲区并且执行一次元素相乘和求和。相反,当像素被读入时,可以使用适当的内核逐行地加权元素,来处理像素,并且将输出值(数字阵列)放入缓冲区,直到单个卷积运算被完成。在每次卷积运算之后,可以将缓冲的数字输出到存储器中,并且可以清除缓冲区。

对于一个尺寸为[kx,ky,ncomp]的卷积2d内核所处理的一个尺寸为[nx,ny]的传入的原始bayer帧,当实施以上方法时,必须的缓冲区面积为原始bayer像素的kx排。

根据本发明的一些实施例,图4说明了一个采用204中所描述的帧策略而进行的帧内压缩过程范例。正如图4中所示,可以逐个补丁地进行一个帧的压缩。在一些实施例中,可以通过硬件比如现场可编程逻辑门阵列(fpga)来处理帧,卷积内核被应用于像素的每个补丁,并且在移动至下一个补丁时不存在重叠或者间隙,直到移动至最后一个补丁位置。图4中所显示的补丁1代表着已经处理的补丁,而补丁2代表着正在处理的补丁。

根据本发明的一些实施例,图5是一个原始bayer帧的一个单层卷积2d压缩过程中的一个也说内核的范例。可以执行一个单层卷积2d运算以压缩一个[nx,ny]像素原始bayer帧(例如图1)压缩内核的形状为[kx,ky,ncomp]=[8,8,3]。该压缩内核如图5中所示,并且3个平面分别代表着[8,8]矩阵。每个平面代表着压缩内核的[8,8,i]部分之一,(i=0,1,2),并且每个平面代表着压缩内核的一个通道。

图6是一个使用图5所示的压缩内核来对图1所示的原始像素值进行压缩之后的形状为[256,480,3]的整数阵列。ith平面显示了矩阵[256,480,i],其中指数i=0,1,2。

在一些实施例中,可以使用解压缩内核(或者进一步使用qinn)来重建压缩后的整数阵列。此外,可以在重建之后执行解马赛克和其他运算,比如白平衡调整、混色调整和伽马校正。由于大部分现有的计算机视觉分析需要格式为rgb的帧,并且需要通过解马赛克运算(在解压缩之后)来确定以rgb为格式的帧,所以运算功率和计算涉及在计算机视觉分析之前的压缩、解压缩、解马赛克和下采样(由于背景资料中所描述的原因,计算机视觉分析nns一般具有较小的输入xy平面尺寸)。用于计算机视觉分析的一般方法为在解压缩、解马赛克和其他运算后使用现有的计算机视觉分析nns和输入帧。另一种方法是设计自己的计算机视觉分析nns,它需要使用大量新标记的训练数据来训练计算机视觉分析nns,以达到市场上现有的nns所能达到的目的,这会花费很大的成本。在某种意义上,可以将解压缩视为一种上采样运算,而在将帧输入nns以进行计算机视觉分析之前,可以对解马赛克的帧执行向下采样运算。因此,为了减少功耗和计算量,也许可以跳过解压缩和下采样的环节。

根据本发明的一些实施例,图7说明了一种用于计算机视觉分析的ics帧变换方法。

在702中,可以读出一个或多个ics帧,其中每个ics帧的尺寸为[nx/kx,ny/ky,ncomp]。在一些实施例中,可以如图2的204中所描述的那样确定一个或多个ics帧,其中可以使用尺寸为[nx/kx,ny/ky,ncomp]的压缩内核将每个尺寸为[nx,ny]的原始bayer帧压缩为一个尺寸为[nx/kx,ny/ky,ncomp]的ics帧。

在704中,可以使用尺寸为[ncomp,3]的2d阵列中的参数来线性变换一个或多个ics帧,从而确定一个或多个尺寸为[nx/kx,ny/ky,3]的变换的ics帧。

在一些实施例中,对于每个ics帧,线性变换可以是使用2d阵列的3个1d向量[ncomp,j]中的加权因子将ncomp个ics通道中处于相同xy平面位置的像素值相加,其中j是0、1和2。对于一个变换的ics帧中的一个像素的确定可以如以下的方程式(2)所示:

其中,j是rgb_trans的rgb通道指数,并且j是从0到2的数字;其中i是ics通道指数,并且i是从0到ncomp-1的数字;并且comp是ics帧,而trans_w是2d阵列中的参数,其中i_x是一个像素的x轴指数,并且i_x是从0到的数字;而i_y是一个像素的y轴指数,i_y是从0到的数字。

图8中显示了一个范例性的变换的ics帧。正如图8中所示,代表着rgb通道的变换的ics帧的3个通道可以被用于进行计算机视觉分析,此外,可以通过堆叠图8中的3个通道来确定变换的ics帧的rgb格式。并且在图9中,可以通过将变换的ics帧的rgb格式放入yolo_v3(一个现有的计算机视觉分析nn)来确定一个计算机视觉分析结果。

在706中,将一个或多个变换的ics帧输出至一个神经网络以进行计算机视觉分析。在一些实施例中,一个或多个变换的ics帧可以在没有下采样的情况下直接被用于计算机视觉分析。

值得注意的是nx,ny,kx,ky,nx/kx,ny/ky和ncomp都是正整数,并且ncomp代表着压缩内核的ics通道数量。

为了使每个变换的ics帧能够足够好地与代表其所对应的rgb格式,以便进行计算机视觉分析,可以基于样本训练来确定2d阵列中的参数,图10中将对此进行描述。根据本发明的一些实施例,图10显示了2d阵列中参数的一个范例性的训练方法。

在1002中,可以读出一个或多个原始bayer帧样本,其中每个第一原始bayer帧样本的尺寸为[nx,ny]。

在104中,可以通过对每个第一原始bayer帧样本执行解马赛克来确定一个或多个解马赛克的第一原始bayer帧样本,其中每个解马赛克的第一原始bayer帧样本的尺寸为[nx,ny,3]。

一个原始bayer帧可被视为放置了若干个面积为[2,2]的信息组矩阵,矩阵之间没有间隙或重叠,其中每个信息组矩阵包含1r、1b和2g像素:根据常规,g像素的数量是双倍的(该常规源于人眼在看到所有颜色时,对绿色最为敏感)。根据本发明的一些实施例,图11显示了信息组矩阵的两种广泛使用的格式。

有很多种解马赛克的方法,并且基础性的一种是以空间插值为基础。首先,对于r(或者b)像素,可以提取子帧,并且子帧纯粹由这种类型的像素构成,同时不会改变这种类型的像素之间的空间关系。该图像的x(y)尺寸的面积是原始bayer帧的一半。然后采用常用的插值方法对这个小型的单色图像(子帧)进行上采样,从而获得一个与原始bayer帧具有相同xy尺寸的r(或b)单色图像。其次,对于gb和gr像素,使用它们来替换距离它们最近的r&b像素,在一个固定面积的插值后,得到一个与原始bayer帧具有相同xy尺寸的单色绿色图像。再次,将三幅单色图像(红、绿、蓝)叠加在一起,作为与原始bayer帧具有相同xy尺寸的可见的rgb图像。

在1006中,可以对每个解马赛克的第一原始bayer帧样本执行下采样,从而确定一个或多个变换训练标记帧,其中每个变换训练标记帧的尺寸为[nx/kx,ny/ky,3]。在一些实施例中,可以采用已经确立的下采样方法来进行下采样,或者可以设计自己的下采样方法。

在1008中,可以使用压缩内核对每个第一原始bayer帧样本执行帧内压缩,从而确定一个或多个第一ics帧样本。在一些实施例中,帧内压缩可以像图2中的方法一样。

在1010中,可以使用尺寸为[ncomp,3]的一个2d阵列中的初始参数对一个或多个第一ics帧样本进行线性变换,从而确定一个或多个尺寸为[nx/kx,ny/ky,3]的第一变换的ics帧样本。该线性变换可以像704中的一样。

在1012中,可以微调2d阵列中的初始参数,以将一个或多个第一变换的ics帧样本和其所对应的一个或多个变换训练标记帧之间的全部训练损失最小化,从而确定2d阵列中的参数。

每个第一变换的ics帧样本与一个变换训练标记帧相对应,并且第一变换的ics帧样本的训练损失是第一变换的ics帧样本和其所对应的变换训练标记帧之间的均方差,并且一个或多个第一变换的ics帧样本和其所对应的一个或多个变换训练标记帧之间的全部训练损失是个体训练损失值的总和。

图10中的说明被展示以使任何一个本领域的技术人员能够实现和使用本发明。对于本领域的技术人员来说,对于公开的实施例所做出的各种修改将是显而易见的,并且本文中定义的一般原理可以在没有背离本发明的精神内涵和没有超出本发明的专业范围的情况下应用于其他实施例和应用案例。例如,图10中的过程可以改变顺序。特别是,步骤1004和1006可以在步骤1008或者步骤1010之后执行。

在一些实施例中,可以基于样本训练来确定压缩内核。根据本发明的一些实施例,图12说明了压缩内核的一个范例性的预先训练方法。

在1202中,可以读出一个或多个第二原始bayer帧样本,其中每个第二原始bayer帧的尺寸为[nx,ny]。在一些实施例中,图12中的训练样本和图10中的训练样本可以相互重叠。例如,在一个或多个第二原始bayer帧样本中至少可以找到一个或多个第一原始bayer帧样本中的一个第一原始bayer帧样本。在一些实施例中,图12中的训练样本和图10中训练样本不会相互重叠。例如,一个或多个第一原始bayer帧样本与一个或多个第二原始bayer帧样本相同。正如另一个范例,在一个或多个第二原始bayer帧样本中可能找不到任何一个或多个第一原始bayer帧样本。

在1204中,对于每个第二原始bayer帧样本,可以通过对第二原始bayer帧样本中的r,b,gb和gr像素执行线性变换和将它们组合在一起来确定一个与其相对应的ics训练标记帧,其中每个ics训练标记帧的尺寸为[nx′,ny′,nlabel],并且nx,ny,nx′,ny′和nlabel都是正整数。

值得注意的是,对于第二原始bayer帧样本(对r,b,gb和gr像素执行线性变换和将它们组合在一起)的运算是解马赛克的一个上位概念。在一些案例中,可以使用解马赛克来确定一个或多个ics训练标记帧。例如,对于一个原始bayer帧,可以使用以下步骤来确定一个与其相对应的ics训练标记帧:首先,可以从原始bayer帧中提取r,b,gr和gb像素以作为2d阵列,每个阵列的尺寸都是[nx/2,ny/2];其次,gr和gb可以组合为尺寸为[nx/2,ny/2]的g=(gr+gb)/2;再次,通常rgb至yuv的线性变换可以应用于变换尺寸为[nx/2,ny/2,3]的堆叠的rgb2d阵列,并且尺寸为[nx/2,ny/2,3]的变换堆叠的rgb2d阵列是与其相对应的ics训练标记帧。最终,解压缩内核的尺寸可以是[kx/2,ky/2,ncomp,3]。

在1206中,可以使用初始压缩内核对每个第二原始bayer帧样本执行帧内压缩,来确定一个或多个尺寸为[nx/kx,ny/ky,ncomp]的第二ics帧样本,其中初始压缩内核的尺寸为[kx,ky,ncomp]。

在1208中,可以使用尺寸为[kx′,ky′,ncomp,nlabel]的初始解压缩内核对每个第二ics帧样本执行解压缩,从而确定一个或多个尺寸为[nx′,ny′,nlabel]的第二解压缩的ics帧样本,其中kx′=nx′*kx/nx,ky′=ny′*ky/ny。在一些实施例中,解压缩可以是使用解压缩内核的一个反卷积运算。使用尺寸为[kx′,ky′,ncomp,nlabel]的解压缩内核可以确定一个或多个与一个或多个ics训练标记帧具有相同尺寸([nx′,ny′,nlabel])的一个或多个第二解压缩的ics帧样本。

在1210中,可以基于一个或多个ics训练标记帧来训练初始压缩内核,从而确定压缩内核。该训练过程可以如图13中所述。

图12中的说明被展示以使任何一个本领域的技术人员能够实现和使用本发明。对于本领域的技术人员来说,对于公开的实施例所做出的各种修改将是显而易见的,并且本文中定义的一般原理可以在没有背离本发明的精神内涵和没有超出本发明的专业范围的情况下应用于其他实施例和应用案例。例如,图12中的过程可以改变顺序。特别是,可以在步骤1206或者步骤1208之后执行步骤1204。

根据本发明的一些实施例,图13说明了压缩内核的一个范例性训练方法。

在1302中,可以基于机器学习来对初始压缩内核中的参数进行微调,以将一个或多个第二解压缩的ics帧样本和一个或多个ics训练标记帧之间的全部质量损失最小化,从而确定一个浮点数压缩内核。每个第二解压缩的ics帧样本与一个ics训练标记帧相对应,并且一个第二解压缩的ics帧样本的质量损失是第二解压缩的ics帧样本和其所对应的ics训练标记帧之间的均方差,并且一个或多个第二解压缩的ics帧样本与其所对应的一个或多个ics训练标记帧之间的全部质量损失是个体质量损失值的总和。

在1304中,可以通过将浮点数压缩内核中的参数整数化来确定压缩内核。

正如图14中所示,可以基于进一步的训练来确定解压缩内核。根据本发明的一些实施例,图14是针对解压缩内核的一种范例性训练方法。

在1402中,可以使用压缩内核对每个第二原始bayer帧样本执行帧内压缩,从而确定一个或多个第二中间ics帧样本。该压缩内核源自于步骤1304。

在1404中,可以使用初始解压缩内核对每个第二中间ics帧样本执行解压缩,从而确定一个或多个第二中间解压缩的ics帧样本。并且在1406中,可以基于机器学习来对初始压缩内核中的参数进行微调,以将一个或多个第二中间解压缩帧样本与其所对应的一个或多个ics训练标记帧之间的全部质量损失最小化,从而确定解压缩内核。

每个第二中间解压缩的ics帧样本与一个ics训练标记帧相对应,一个第二中间解压缩的ics帧样本的质量损失是第二中间解压缩的ics帧样本与其所对应的ics训练标记帧之间的均方差,并且一个或多个第二中间解压缩的ics帧样本与一个或多个ics训练标记帧之间的全部质量损失是个体质量损失值的总和。

在一些实施例中,可以将一个用于质量改进的神经网络(qinn)应用于在压缩和解压缩的过程中减少质量损失,并且根据本发明的一些实施例,图15显示了解压缩内核的另一种训练方法。

在1502中,可以使用压缩内核对每个第一原始bayer帧样本执行帧内压缩,从而确定一个或多个第二中间ics帧样本。该压缩内核源自于步骤1304.

在1504中,可以使用初始解压缩内核对每个第二中间ics帧样本执行解压缩,从而确定一个或多个第二中间解压缩的ics帧样本。并且在1506中,可以将每个第二中间解压缩的ics帧样本放入一个初始qinn中,从而确定一个或多个第二重建帧样本。并且在1508中,可以基于机器学习来对初始解压缩内核和初始qinn中的参数进行微调,以将一个或多个第二重建帧样本和其所对应的一个或多个ics训练标记帧之间的全部质量损失最小化,从而确定解压缩内核和一个qinn。

每个第二重建帧样本与一个ics训练标记帧相对应,并且一个第二重建的ics帧样本的质量损失是第二重建的ics帧样本和其所对应的ics训练标记帧之间的均方差,并且一个或多个第二重建的ics帧样本与一个或多个ics训练标记帧之间的全部质量损失是个体质量损失值的总和。

图16说明了用于计算机视觉分析的一个ics帧变换装置。正如图16中所示,该装置可以包括读出模块1610,处理器1620和输出端口1630。

读出模块1610可以被配置为读出一个或多个原始bayer帧,并且每个原始bayer帧的尺寸为[nx,ny]。处理器1620可以被配置为通过使用尺寸为[ncomp,3]的一个2d阵列中的参数来线性变换一个或多个ics帧,从而确定一个或多个变换的ics帧。输出端口1630可以被配置为将一个或多个变换的ics帧输出至神经网络以用于计算机视觉分析。

在一些实施例中,可以使用压缩内核对一个或多个原始bayer帧执行帧内压缩,从而确定一个或多个ics帧,其中一个或多个原始bayer帧由一个或多个相机头捕捉。在一些实施例中,每个原始bayer帧的尺寸为[nx,ny],并且压缩内核的尺寸为[kx,ky,ncomp]。nx,ny,kx,ky,nx/kx,ny/ky和ncomp都是正整数,并且ncomp代表着压缩内核的ics通道的数量。

在一些实施例中,对于每个ics帧,处理器通过使用3个1d向量[ncomp,j]中的加权因子将ncomp个ics通道中处于相同的xy平面位置的像素值相加,来确定一个与其相对应的变换的ics帧,其中j是0,1和2。

在一些实施例中,可以基于样本训练来确定2d阵列中的参数,并且该样本训练的过程可以与图10中所描述的一样。在一些实施例中,帧内压缩过程可以与图1-6中所描述的一样,并且同样地,压缩内核是基于样本训练而确定的,并且样本训练的过程可以与图12-15中所描述的一样。

在这样描述了基本概念之后,对于本领域的技术人员来说,在阅读本详细公开之后,可能相当明显的是,上述详细公开旨在仅以示例的方式呈现,而不是限制性的。对于本领域的技术人员来说,可进行各种变更、改进和修改,尽管本文没有明确说明。这些改变、改进和修改旨在由本发明提出,并且在本公开的示例性实施例的精神和范围内。

此外,某些术语已用于描述本发明的实施例。例如,术语“一个实施例”、“一种实施例”和/或“一些实施例”表示结合该实施例描述的特定特征、结构或特征包括在本发明的至少一个实施例中。因此,应强调并应理解,本说明书的各个部分中对“实施例”或“一个实施例”或“替代实施例”的两个或多个引用不一定都指同一实施例。此外,在本发明的一个或多个实施例中,可以将特定特征、结构或特征组合在一起。

此外,本领域的技术人员将理解,本发明的各个方面可以在许多可申请专利的类别或上下文中的任何一个中说明和描述,包括任何新的和有用的工艺、机器、制造或物质的组成,或其任何新的和有用的改进。因此,本发明的各个方面可以完全硬件实现、完全软件(包括固件、驻留软件、微代码等)实现或结合软件和硬件实现,这些实现在本文中通常被称为“块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本发明的各个方面可以采取计算机处理产品的形式,该计算机处理产品体现在一个或多个计算机可读介质中,其中包含计算机可读处理代码。

此外,所述的处理元件或序列的顺序,或因此而使用的数字、字母或其他名称,并不意在将所要求保护的处理和方法限制为除权利要求中可能指定的以外的任何顺序。尽管上述公开通过各种示例讨论了当前被认为是本发明的各种有用实施例的内容,但是应当理解,这样的细节仅用于此目的,并且所附权利要求不限于所公开的实施例,相反,所附权利要求旨在涵盖落在所公开的实施例的精神和范围内的修改和等同。例如,尽管上述各种组件的实现可以包含于硬件设备中,但也可以作为仅软件的解决方案来实现,例如,在现有处理设备或移动设备上的安装。

同样,应当理解,在本发明的实施例的上述描述中,有时在单个实施例、附图、或为了有助于理解各种创造性实施例中的一个或多个而简化公开的目的所做的描述中,将各种特征组合在一起。然而,本发明方法不应被解释为反映出所要求保护的主题需要比每个权利要求中明确叙述的更多的特征的意图。相反,创造性实施例存在于少于上述单个公开实施例的所有特征。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1