用于进行路径平滑的低复杂度优化求解器的装置及方法与流程

文档序号:17721284发布日期:2019-05-22 02:11阅读:309来源:国知局
用于进行路径平滑的低复杂度优化求解器的装置及方法与流程

本申请主张在2017年11月13日在美国专利与商标局提出申请且被授予序列号第62/585,187号的美国临时专利申请的优先权,所述美国临时专利申请的全部内容并入本申请供参考。

本公开大体来说涉及一种优化求解器,且更具体来说,涉及一种用于利用约束变化进行路径平滑的低复杂度优化求解器的装置及方法。



背景技术:

路径优化(也被称为趋势滤波(trendfiltering))旨在基于原始路径找到最优路径,此使作为所述原始路径与将要计算的最优路径二者的函数的成本最小化。路径优化具有广泛应用,包括机器人学、航空及金融。举例来说,可使用路径优化来对抖动的原始相机路径进行平滑以实现视频稳定。

线性规划(linearprogramming,lp)是用于将若干变量(例如,输出或成本)的线性函数最大化或最小化的数学技术。二次规划(quadraticprogramming,qp)是求解专门类型的数学优化问题(具体来说,是(受线性约束的)二次优化问题)的过程,即对服从若干变量的线性约束的这些变量的二次函数进行优化(最小化或最大化)的问题。



技术实现要素:

根据一个实施例,提供一种低复杂度优化求解器的装置。所述装置包括:l1控制器,被配置成接收要被进行平滑的原始数据级数z,接收权重w0、w1、w2及w3以控制输出路径的平滑度,以及将l1趋势滤波问题公式化,其中l1表示基于l1范数成本的公式;l1中央处理器(centralprocessingunit,cpu),连接到所述l1控制器且被配置成将所述l1趋势滤波问题变换成原始-对偶lp优化问题对;以及l1算术逻辑单元(arithmeticlogicunit,alu),连接到所述l1cpu且被配置成利用扩展全表单纯形法来求解所述原始-对偶lp优化问题对的原始问题。

根据一个实施例,提供一种低复杂度优化求解器的方法。所述方法包括:由l1控制器接收要被进行平滑的原始数据级数z,接收权重w0、w1、w2及w3以控制输出路径的平滑度,以及将l1趋势滤波问题公式化,其中l1表示基于l1范数成本的公式;由连接到所述l1控制器的l1cpu将所述l1趋势滤波问题变换成原始-对偶lp优化问题对;以及由连接到所述l1cpu的l1alu利用扩展全表单纯形法来求解所述原始-对偶lp优化问题对的原始问题。

根据一个实施例,提供一种低复杂度优化求解器的装置。所述装置包括:l2控制器,被配置成接收要被进行平滑的原始数据级数z,接收权重w0、w1、w2及w3以控制输出路径的平滑度,以及将l2趋势滤波问题公式化,其中l2表示基于l2范数成本的公式;l2cpu,连接到所述l2控制器且被配置成通过对偶变换导出qp问题;以及l2alu,连接到所述l2cpu且被配置成使用具有封闭形式更新的基于交替方向乘子法(alternatingdirectionmethodofmultipliers,admm)的解来求解所述qp问题。

根据一个实施例,提供一种低复杂度优化求解器的方法。所述方法包括:由l2控制器接收要被进行平滑的原始数据级数z,其中l2表示基于l2范数成本的公式;由所述l2控制器接收权重w0、w1、w2及w3以控制输出路径的平滑度;由所述l2控制器将l2趋势滤波问题公式化;由连接到所述l2控制器的l2cpu通过对偶变换导出qp问题;以及由连接到所述l2cpu的l2alu使用具有封闭形式更新的基于admm的解来求解所述qp问题。

附图说明

结合附图阅读以下详细说明,本公开的某些实施例的以上及其他方面、特征及优点将更显而易见,在附图中:

图1示出根据一个实施例的基于陀螺仪的三维(three-dimensional,3d)视频稳定系统的方块图。

图2示出根据一个实施例的用于l1路径优化器的装置。

图3示出根据一个实施例的基于扩展全表单纯形的lp求解器的方法的流程图。

图4示出根据实施例的l1alu的方法的流程图。

图5示出根据一个实施例的l2路径优化器。

图6示出根据一个实施例的基于admm的qp求解器的方法的流程图。

图7示出根据一个实施例的l2alu的方法的流程图。

图8示出根据一个实施例的网络环境中的电子器件的方块图。

图9示出根据一个实施例的相机模块的方块图。

[符号的说明]

100:三维视频稳定系统;

101:三维旋转估计器;

103:三维旋转平滑器;

105:畸变计算器;

107:畸变补偿器;

109:输入;

111、113、115、119、211、213、215、511、513、515:输出;

117、209、509:第二输入;

200:基于扩展全表单纯形的lp求解器;

201:l1控制器;

203:l1中央处理器(l1cpu);

205:l1算术处理单元(l1alu);

207、507:第一输入;

301、303、305、307、309、311、313、401、403、405、407、409、411、413、415、417、419、421、423、601、603、605、607、609、611、613、701、703、705、707、709、711、713、715、717:步骤;

500:admmqp求解器;

501:l2控制器;

503:l2中央处理器(l2cpu);

505:l2算术处理单元(l2alu);

800:网络环境;

801:电子器件;

802、804:电子器件/外部电子器件;

808:服务器/外部电子器件;

820:处理器;

821:主处理器;

823:辅助处理器;

830、1050:存储器;

832:易失性存储器;

834:非易失性存储器;

836:内部存储器;

838:外部存储器;

840:程序;

842:操作系统;

844:中间件;

846:应用;

850:输入器件;

855:声音输出器件;

860:显示器件;

870:音频模块;

876:传感器模块;

877:接口;

878:连接端子;

879:触感模块;

880、1000:相机模块;

888:电源管理模块;

889:电池;

890:通信模块;

892:无线通信模块;

894:有线通信模块;

896:用户识别模块;

897:天线模块;

898:第一网络;

899:第二网络;

1010:镜头总成;

1020:闪光灯;

1030:图像传感器;

1040:图像稳定器;

1060:图像信号处理器。

具体实施方式

在下文中,参照附图详细阐述本公开的实施例。应注意,相同的元件将由相同的参考编号指示,尽管它们示出在不同的图式中。在以下说明中,提供例如详细配置及组件等具体细节仅是为了帮助全面理解本公开的实施例。因此,对所属领域中的技术人员应显而易见,在不背离本公开的范围的条件下可对本文所述的实施例作出各种改变及修改。另外,为清晰及简洁起见,省略对众所周知的功能及构造的说明。以下所述用语是考虑到本公开中的功能而定义的用语,且可根据用户、用户的意图或习惯而有所不同。因此,这些用语的定义应基于本说明书通篇的内容来确定。

本公开可具有各种修改及各种实施例,以下参照附图详细阐述其中的一些实施例。然而应理解,本公开并非仅限于所述实施例,而是包括处于本公开的范围内的所有修改、等效形式及替代形式。

尽管可能使用包括例如“第一(first)”、“第二(second)”等序数词的用语来阐述各种元件,但结构元件不受这些用语限制。这些用语仅用于区分各个元件。举例来说,在不背离本公开的范围的条件下,“第一结构元件”可被称为“第二结构元件”。相似地,“第二结构元件”也可被称为“第一结构元件”。本文中所用的用语“和/或(and/or)”包括一个或多个相关项的任意及所有组合。

本文中所用的用语仅用于阐述本公开的各种实施例,而并非旨在限制本公开。除非上下文清楚地另外指明,否则单数形式旨在包括复数形式。在本公开中,应理解,用语“包括(include)”或“具有(have)”指示特征、数目、步骤、操作、结构元件、部件或其组合的存在,而不排除一个或多个其他特征、数字、步骤、操作、结构元件、部件或其组合的存在或添加的可能。

除非进行不同地定义,否则本文中所用的所有用语均具有与本公开所属领域中的技术人员所理解的含意相同的含意。例如在常用字典中所定义的用语等用语应被解释为具有与相关技术领域中的上下文含意相同的含意,且除非在本公开中进行清楚定义,否则不应将其解释为具有理想化或过于正式的含意。

根据一个实施例的电子器件可为各种类型的电子器件中的一种。电子器件可包括例如便携式通信器件(例如,智能电话)、计算机、便携式多媒体器件、便携式医疗器件、相机、穿戴式器件或家用电器。根据本公开的一个实施例,电子器件并非仅限于上述电子器件。

本公开中所用的用语并非旨在限制本公开,而是旨在包括对对应实施例的各种改变、等效形式或替代形式。关于对附图的说明,可使用相似的参考编号指代相似的或相关的元件。除非相关上下文清楚地另外指明,否则与物项对应的名词的单数形式可包括一个或多个事物。本文所用的例如“a或b”、“a及b中的至少一者”、“a或b中的至少一者”、“a、b或c”、“a、b、及c中的至少一者”及“a、b、或c中的至少一者”等短语中的每一者可包括与短语中的对应一个短语一同枚举的物项的所有可能组合。本文所用的例如“第一(1st、first)”及第二(2nd、second)等用语可用于将对应的组件与另一个组件进行区分,而不旨在在其他方面(例如,重要性或次序)对组件进行限制。本文意图在于,如果在带有或不带有用语“可操作地”或“可通信地”的条件下将元件(例如,第一元件)称为与另一元件(例如,第二元件)“耦合”、“耦合到”另一元件、与另一元件“连接”或“连接到”另一元件,则其表示元件可直接地(例如,以有线方式)、无线地或通过第三元件与另一元件耦合。

本文所用用语“模块”可包括以硬件、软件或固件形式实施的单元,且可与例如“逻辑”、“逻辑区块”、“部件”及“电路”等其他用语互换使用。模块可为适以执行一种或多种功能的单个整体组件或所述单个整体组件的最小单元或部件。举例来说,根据一个实施例,模块可被实施为应用专用集成电路(application-specificintegratedcircuit,asic)的形式。根据一个实施例,本公开的方法可包括在计算机程序产品中及在计算机程序产品中提供。计算机程序产品可在卖方与买方之间作为产品进行交易。计算机程序产品可以机器可读存储介质(例如,压缩盘只读存储器(compactdiscreadonlymemory,cd-rom))形式分发,或者通过应用商店(例如,播放商店tm(playstoretm)在线分发(例如,下载或上传),或者直接在两个用户器件(例如,智能电话)之间分发。如果在线分发,则计算机程序产品的至少一部分可在机器可读存储介质(例如,制造商服务器、应用商店的服务器或中继服务器的存储器)中临时产生或至少临时存储在所述机器可读存储介质中。

根据一个实施例,上述组件中的每一个组件(例如,模块或程序)可包括单个实体或多个实体。根据一个实施例,可省略上述组件中的一者或多者,或者可添加一个或多个其他组件。作为另外一种选择或另外地,可将多个组件(例如,模块或程序)集成成单个组件。在这种情形中,集成组件仍可以与在集成之前所述多个组件中的对应一者执行一种或多种功能的方式相同或相似的方式来执行所述多个组件中的每一者的所述一种或多种功能。由模块、程序或另一组件执行的操作可依序地、并行地、重复地或启发式地执行,或者所述操作中的一个或多个操作可以不同的次序执行或者被省略,或者可添加一个或多个其他操作。

在实施例中,以下阐述用于使用l1范数进行路径优化的低复杂度求解器。范数是对向量空间中除了被指派长度零的零向量之外的每一个向量指派严格正长度或大小的函数。l1表示基于l1范数成本的公式且l2表示基于l2范数成本的公式。l1范数成本衡量目标值与估计值之间的绝对差的和。使用l1范数成本的求解器(l1求解器)使用专门的路径优化结构且与使用标准lp求解器相比会实现复杂度的明显降低。

在实施例中,以下阐述用于使用l2范数进行路径优化的低复杂度求解器。l2范数成本衡量目标值与估计值之间的差的平方的和。使用l2范数成本的求解器(l2求解器)使用专门的路径优化结构且与使用标准qp求解器相比会实现复杂度的明显降低。

在实施例中,可使用求解器来对抖动的原始相机路径进行平滑以实现视频稳定。对于实时实施方式而言,期望一种计算成本低的高效求解器来用于在智能电话上实施的视频稳定系统。然而,本公开并非仅限于对抖动的原始相机路径进行平滑来实现视频稳定。

视频稳定会去除不期望的运动抖动(motionjitter)并将原来的抖动的视频重构成满足一般观看者的电影感知(cinematographicperception)的稳定视频。稳定技术有两种主要类别,即光学图像稳定(opticalimagestabilization,ois)及数字图像稳定(digitalimagestabilization,dis)。ois常常通过基于由陀螺仪测量的瞬时相机移动而机械地移动相机镜头或传感器来实现。因此,会在记录图像之前将不想要的运动去除。dis在记录图像之后去除不想要的运动。在dis中,可估计多个帧中的相机运动(例如,估计原始路径)。接着使用路径优化器基于估计原始路径来确定经平滑的路径。通过图像卷绕处理(imagewarpingprocess),可采用如同记录视频的相机正在沿经平滑的路径移动一样的方式来校正视频。本公开可应用于dis,但本公开并非仅限于此。

在实施例中,存在两部分,即用于使用l1范数成本函数来求解路径平滑问题的基于扩展全表单纯形的lp求解器以及用于使用l2范数成本函数来求解路径平滑问题的基于admm的qp求解器。基于l1范数的路径平滑问题可被转换成标准lp方程式。在实施例中,会考虑到标准lp方程式的对偶方程式,且提供单纯形法的扩展全表实现方式,此可与热启动方法一起无缝应用来实现复杂度的明显降低。基于l2范数的路径优化问题可通过对偶分析被变换成具有边界约束(boxconstraint)的qp问题。通过利用qp问题的专门结构,提供基于admm的方法,所述基于admm的方法在每一迭代中包括封闭形式更新。因此,基于admm的qp求解器比替代解决方案更高效。

基于扩展全表的单纯形法会降低计算复杂度并提高数值稳定性。低复杂度lp求解器与热启动一起使用扩展全表单纯形法来在对偶域中求解基于l1范数的路径平滑问题。基于admm的方法在迭代中仅使用封闭形式更新来求解具有边界约束的qp问题。低复杂度qp求解器与热启动一起使用基于admm的迭代法(iterativemethod)来求解基于l2范数的路径平滑问题。

用于基于l1范数的路径平滑的基于扩展单纯形的lp求解器提供优点。举例来说,从对偶域导出的lp公式更适合于与热启动方法一起工作以加速收敛。基于扩展全表的单纯形法还将每一迭代中的计算简化并提高数值稳定性。

用于基于l2范数的路径平滑的基于admm的qp求解器提供优点。举例来说,从对偶域导出的qp问题将要被进行优化的变量的数目最小化。基于admm的迭代方程式将每一迭代中的更新简化成封闭形式计算。通过利用用于收敛加速的热启动方法,基于admm的qp求解器比传统的qp求解器更高效。

以下阐述了在视频稳定中使用相机路径平滑方程式的求解器。然而,所述求解器可采用相似的形式应用于更一般的优化问题。

相机路径平滑问题可被公式化为在每一帧中将方程式(1)中的成本函数最小化:

其中z是原始相机路径输入,且y是要被进行优化的经平滑的相机路径。di矩阵是如在以下方程式(2)、方程式(3)及方程式(4)中所示的阶不同的差分矩阵(differentialmatrix):

所推导出的方程式的这三个阶足以捕获相机的动态量。对于其他应用而言,可利用修改来选择性地确定阶的不同数目。d(y,z)项表示原始相机路径与稳定的相机路径之间的距离。在实施例中,考虑到l1距离及l2距离二者。在每一视频帧中,原始相机路径的每一维度可存在一个输入向量z。举例来说,如果原始相机路径对相机的三维旋转进行建模,则针对三维旋转路径的每一维度来独立地求解三个路径优化方程式。以下说明涉及单个维度。输入向量包括前一a1帧、当前帧及未来a2-1帧中的路径值。

所述优化问题如在以下方程式(5)中所示:

其中添加阈值向量rth来将已优化路径约束在原始相机路径附近范围内。可添加另一个一致性约束以使前一已优化路径在当前更新中不会发生改变,如在以下方程式(6)中所示:

其中是从先前帧得到的估计结果。

对于基于l1范数的lp问题而言,如果则以上方程式(5)中的优化问题是lp问题。通过引入松弛变量(slackvariables)可将以上方程式(5)转换成以下方程式(7)及方程式(8)中的lp问题,其中|x|表示取向量x的逐个元素的绝对值:

其中

其中i及0是具有恰当大小的单位矩阵(identitymatrix)及零矩阵;且1是全为1的向量。将每一个l1范数项β=|α|最小化被变换成以两个不等式约束-β≤α≤β来将β最小化。通过移除at的一些列及一些行以及使用前面已优化的值来更新c,利用以上方程式(6)中的先前已优化值来强迫实现一致性。

以下阐述了通过扩展全表单纯形来求解的对偶问题。任何lp问题均可被变换成如以下方程式(9)中所示的标准形式:

s.t.ax=b

x≥0,…(9)

其对偶问题可被示出为以下方程式(10):

s.t.aty+s=c

s≥0,…(10)

其中a的维度是m×n,一般来说m≤n,即a是厚度(fat)矩阵。lp方程式可被变换成原始形式或对偶形式。然而,变换成以上方程式(9)中的原始形式需要比直接将以上方程式(7)拟合到对偶域中多的松弛变量。因此,以上方程式(7)可被视为对偶方程式且可对对应的原始问题进行求解。此可通过设定bt=-[w01t,w11t,w21t,w31t],以及使用与以上方程式(7)相同的at及c来实现。根据对偶性定理(dualitytheorem),以上问题(9)及(10)的最优解将满足ctx*=y*tb。

在本公开中,公开了对单纯形算法的改进,所述改进降低了计算复杂度并提高了数值稳定性。

以上原始问题(9)的解被称为基本可行解(basicfeasiblesolution)。如果满足以下两个条件则解x*便为基本可行解:(a)所有的等式约束均成立以及(b)在这些成立的约束中,有n个线性独立的成立的约束。基本可行解在这n个值中仅具有m个非零元素。基本可行解的非零部分是以下方程式(11):

xb=b-1b,…(11)

其中基矩阵b包括a的m个独立列,即b=[ab(1),…,ab(m)]。在这种情形中,b(1),…,b(m)是对应的列索引且ab(i)表示a的处于基本可行解的基中的一个列。对应的基本可行解是通过对不处于所述基中的其他坐标添加零来获得的。在每一单纯形迭代中,寻找a的不处于b中的列aj来取代列ab(l)中的当前处于b中的一个列。这样,新的基矩阵变成新的基本可行解的非零部分是由给出。单纯形法实质上在每一迭代中以降低的成本从一个极点遍历到另一个极点。单纯形法在不存在可使成本降低的进入列之后停止。y*是对偶方程式的解,此可使用包含通过单纯形法找到的最优基(optimalbasis)的矩阵b来通过y*=[b-1]tcb计算得到。

单纯形法的计算密集程度最高的部分是计算b-1。在实施例中,使用扩展全表单纯形法来更高效地实施单纯形法。也就是说,通过更新以下表1中的扩展全表来使用基于行运算的更新来实现每一迭代中的单纯形更新:

表1

以上表1中的扩展全表是对全表单纯形法的扩展且将在以下更详细地加以阐述。

迭代以与基矩阵b相关联的扩展全表以及对应的基本可行解x开始。

对扩展全表的第0行中的降低的成本进行检验。如果降低的成本全非负,则当前基本可行解最优,且所述方法终止。否则,选择使的j。

对于作为表中的第j+1个列的中下部分的向量u=b-1aj而言,如果u不存在为正的分量,则所述方法终止。

针对ui为正的每一个i计算比率xb(i)/ui。l是与最小比率对应的行的索引,其中xb=b-1b可从扩展全表的左下部分读出。列ab(l)存在于基中且列aj进入基。

将第l行的常数倍加到表的每一行以使得ul(例如,主元元素(pivotelement))变成1且主元列(pivotcolumn)的所有其他项变成零。

在终止扩展全表单纯形法之后,通过来获得最优对偶解,其中项是扩展全表的右上区块。在扩展全表方法的实施例中,b-1ab=b-1b=i,即,不需要对与新更新的基对应的b-1a的第m列执行行运算。而是,将区块的对应部分设定为单位矩阵。

可使用热启动方法来为连续帧求解最优y*以加速收敛。举例来说,可使用在前一帧中获得的最优扩展全表来将当前帧的扩展全表初始化。这种方法仅在以上方程式(7)拟合到对偶域中且原始域中的对应问题得到求解时有效。这是由于由ax=b,x≥0给出的原始可行设定在各个帧之间不会改变,由此保证前一帧中的最优解仍为当前帧的lp的基本可行解。由于c在相邻帧中只是稍微发生了改变,因此收敛会加速。

具有热启动的扩展全表单纯形还具有改善的数值稳定性,此在用于求解一般路径优化问题时至关重要。当使用热启动时,b-1在多个帧之间连续地更新。因此,舍入误差(round-off)将从一个帧传播到另一个帧。单纯形法的一个版本,即,经修订的单纯形法将因热启动而遭受这种误差传播。扩展全表对这种误差传播的敏感度低得多,这是因为尽管在全表中对b-1进行了更新,然而b-1不会直接用于任何矩阵乘法。

图1示出根据一个实施例的基于陀螺仪的三维视频稳定系统的方块图。基于陀螺仪的三维视频稳定系统100包括三维旋转估计器101、三维旋转平滑器103、畸变计算器105及畸变补偿器107。

三维旋转估计器101包括输入109及输出111。三维旋转估计器101可在输入109处接收由陀螺仪测量的角速度且使用所述角速度来估计相机的三维旋转以及在输出111处输出累积三维旋转原始相机路径。

三维旋转平滑器103包括与三维旋转估计器101的输出111连接的输入、以及输出113。三维旋转平滑器103对从三维旋转估计器101接收的三维原始相机路径进行平滑并在输出113处输出三维原始相机路径以及三维经平滑相机路径。

畸变计算器105包括与三维旋转平滑器103的输出113连接的输入以及用于提供畸变栅格(distortedgrid)的输出115。通过使用三维原始相机路径以及三维经平滑相机路径,畸变计算器105确定畸变栅格。

畸变补偿器107包括与畸变计算器105的输出115连接的第一输入、第二输入117及输出119。畸变补偿器107接收由畸变计算器105确定的畸变栅格,在第二输入117处接收图像序列且使用畸变栅格来补偿图像序列中的三维旋转。

图2示出根据一个实施例的用于l1路径优化器的装置。基于扩展全表单纯形的lp求解器200将l1趋势滤波问题变换成lp原始-对偶问题对,此使得能够高效地利用扩展全表单纯形法与热启动技术。

参照图2,基于扩展全表单纯形的lp求解器200包括l1控制器201、l1cpu203及l1alu205。

l1控制器201包括用于接收要被进行平滑的原始数据级数z的第一输入207、用于接收所选择权重w0、w1、w2及w3以控制输出路径的平滑度的第二输入209以及输出211。l1控制器201在方程式(12)中将l1趋势滤波问题公式化:

l1cpu203包括与l1控制器201的输出211连接的输入、以及输出213。l1cpu203将以上方程式(12)中的l1趋势滤波问题变换成原始-对偶问题对。

l1alu205包括与l1cpu203的输出213连接的第一输入、输出215及连接到输出215的第二输入。l1alu205与热启动一起利用扩展全表单纯形法来求解原始问题并输出经平滑的路径y,其中原始问题的前一解被用作热启动。以下将参照图4更详细地阐述l1alu205的操作。

图3示出根据一个实施例的基于扩展全表单纯形的lp求解器的方法的流程图。在301处,基于扩展全表单纯形的lp求解器通过l1控制器来接收要被进行平滑的原始数据级数z。在303处,基于扩展全表单纯形的lp求解器通过l1控制器来接收所选择权重w0、w1、w2及w3以控制输出路径的平滑度。在305处,基于扩展全表单纯形的lp求解器通过l1控制器来将l1趋势滤波问题公式化为如以上方程式(12)中所示。

在307处,基于扩展全表单纯形的lp求解器通过l1cpu将以上方程式(12)中的l1趋势滤波问题变换成原始-对偶问题。在309处,基于扩展全表单纯形的lp求解器通过l1alu利用扩展全表单纯形法以热启动来求解原始问题。在311处,基于扩展全表单纯形的lp求解器通过l1alu来使用原始问题的前一解(例如,309处的解)作为热启动。在313处,基于扩展全表单纯形的lp求解器通过l1alu来输出经平滑的路径y。

图4示出根据实施例的l1alu(例如,图2中的l1alu205、以及图3中的步骤309)的方法的流程图。在401处,l1alu使用第k帧输入zk来更新c。

在403处,l1alu判断k是否等于0。在405处,如果确定k等于0,则l1alu使用标准单纯形初始化来将全表初始化。在407处,如果确定k不等于0,则l1alu利用热启动(例如,使用最新更新的全表)来将全表初始化。

在409处,l1alu确定当前全表。在411处,l1alu判断成本是否全非负。在413处,如果确定成本全非负,则l1alu输出

在415处,如果确定成本并非全非负,则l1alu确定时的进入列j。在417处,l1alu判断u=b-1aj是否非正。在419处,如果u=b-1aj非正,则l1alu确定无界解。

在421处,如果u=b-1aj并非非正,则l1alu确定给出所有正ui中的最小xb(i)/ui的现有列j。在423处,l1alu执行基本行运算并更新全表。

以下阐述基于l2范数的qp问题。如果在以下方程式(13)中则以上方程式(5)中的优化问题变成qp问题:

以上方程式(13)可被变换成标准qp形式。在这种情形中,由于对偶域需要的松弛变量更少,因此执行对偶域变换。首先xi=diy。因此,以上方程式(13)可被改写为以下方程式(14):

s.t.-rth≤y-z≤rth

xi=diy,i=1,2,3…(14)

以上方程式(14)的拉格朗日函数(lagrangianfunction)由以下方程式(15)给出:

其中v=[v1,v2,v3]t是在xi=diy,i=1,2,3时的拉格朗日乘子;且是在-rth≤y-z≤rth时的拉格朗日乘子。将x视为唯一变量,以上方程式(15)的解是以下方程式(16):

因此,添加额外的约束-wi1≤νi≤wi1。在约束-wi1≤νi≤wi1的条件下来求解以上方程式(16)中的最优y,从而得出l(y*,x*,v,μ)=infyl(y,x*,ν,μ)。根据对偶性定理,对偶方程式接着变成maxν,μl(y*,x*,ν,μ),此可导出为以下方程式(17):

s.t.γlb≤η≤γub

其中

一旦获得了最优对偶解η*,便可通过以下方程式(18)来恢复原始解:

以上方程式(18)是具有边界约束的正半定qp问题(positivesemidefiniteqpproblem)。用于求解qp问题的一些方法包括例如qp内点法(qpinteriorpointmethod)及坐标下降法(coordinatedescentmethod)。在实施例中,使用admm来求解以上方程式(17)中的qp问题。

以下阐述基于admm的对偶解。以上方程式(17)可被改写为以下方程式(19):

s.t.γlb≤x≤γub…(19)

其中h=aat,f=2(az+b),且x=η。等价公式是以下方程式(20):

minxxthx+ftx

s.t.x=y

γlb≤y≤γub…(20)

通过在约束x=y下考虑对偶,以上方程式(20)的增广拉格朗日量(augmentedlagrangian)是方程式(21):

其中ρ是二次惩罚的权重。用于求解方程式(21)的基于admm的更新由以下方程式(22)、方程式(23)及方程式(24)给出:

xk+1=argminxl(x,yk+1,αk)…(23)

αk+1=αk+ρ(xk+1-yk+1)…(24)

如果原始间隙rp=|xk-yk|2及对偶间隙rd=|ρ(xk-xk-1)|2二者均低于预定阈值γ,则所述方法终止。

x更新(xk+1=argminxl(x,yk+1,αk))是不受约束的qp问题,其可由以下方程式(25)进行计算:

xk+1=[2h+ρi]-1(ρyk+1-αk-f)…(25)

由于使用固定的ρ,因此可仅计算一次矩阵求逆(matrixinversion)[2h+ρi]-1且可对所有帧中的所有迭代重复使用。y更新实质上是在边界约束γlb≤y≤γub下找到与点的最小距离,所述y更新还具有以下方程式(26)中的封闭形式解:

基于admm的qp求解器还可通过将x0设定成前一帧中的最优解来配合热启动使用。由于封闭形式更新复杂度低,因此所述方法比传统方法运行地快得多。

图5示出根据一个实施例的l2路径优化器。admmqp求解器500包括l2控制器501、l2cpu503及l2alu505。

l2控制器501包括用于接收要被进行平滑的原始数据级数z的第一输入507、用于接收所选择权重w0、w1、w2及w3以控制输出路径的平滑度的第二输入509、以及输出511。l2控制器501在以下方程式(27)中将l2趋势滤波问题公式化:

l2cpu503包括与l2控制器501的输出511连接的输入、以及输出513。l2cpu503通过对偶变换导出qp问题。

l2alu505包括与l2cpu503的输出513连接的第一输入、输出515及连接到输出515的第二输入。l2alu505使用具有封闭形式更新的基于admm的解以热启动来求解qp问题,并输出经平滑的路径y,其中具有封闭形式更新的基于admm的解的前一解被用作热启动。以下将参照图7更详细地阐述l2alu505的操作。

图6示出根据一个实施例的基于admm的qp求解器的方法的流程图。在601处,基于admm的qp求解器通过l2控制器接收要被进行平滑的原始数据级数z。在603处,基于admm的qp求解器通过l2控制器接收所选择权重w0、w1、w2及w3以控制输出路径的平滑度。在605处,基于admm的qp求解器通过l2控制器将l2趋势滤波问题公式化为如以上方程式(27)中所示。

在607处,基于admm的qp求解器通过l2cpu来经由对偶变换导出qp问题。在609处,基于admm的qp求解器通过l2alu使用具有封闭形式更新的基于admm的解来求解qp问题。在611处,基于admm的qp求解器通过l2alu使用qp问题的前一解作为热启动。在613处,基于admm的qp求解器通过l2alu来输出经平滑的路径y。

l1趋势滤波不同于l2趋势滤波。由于对距离惩罚项的不同的选择将改变所输出的经平滑的路径的性质,因此选择使用l1趋势滤波以及l2趋势滤波中的哪一者需视应用要求而定。

lp求解器与qp求解器在以上方程式(1)中可采用不同数目的导出项。基于admm的qp求解器还可对具有l2范数的导出项进行处理。可将lp求解器及qp求解器推广到求解考虑更高阶项的滤波问题。

图7示出根据实施例的l2alu(例如,图5中的l2alu505以及图6中的步骤609)的方法的流程图。在701处,l2alu使用第n帧输入zn来更新f。

在703处,l2alu判断n是否等于0。在705处,如果n等于0,则l2alu随机地将变量x0及拉格朗日乘子α0初始化,并设定迭代次数k等于0。在707处,如果n不等于0,则l2alu使用来自前一帧n-1的最新更新来将x0及α0初始化并设定迭代次数k等于0。

在709处,l2alu根据以下方程式(28)、方程式(29)及方程式(30)来确定基于admm的更新:

xk+1=[2h+ρi]-1(ρyk+1-αk-f)…(28)

αk+1=αk+ρ(xk+1-yk+1)…(30)

在711处,l2alu根据以下方程式(31)及方程式(32)来计算残留间隙:

rp=|xk-yk|2…(31)

rd=|ρ(xk-xk-1)|2…(32)

在713处,l2alu判断rp<y及rd<y是否成立。在715处,如果rp<y及rd<y不成立,则l2alu将迭代次数k设定成k+1。在717处,如果rp<y且rd<y,则l2alu输出

图8示出根据一个实施例的网络环境中的电子器件的方块图。网络环境800中的电子器件801可通过第一网络898(例如,短距离无线通信网络)来与电子器件802进行通信,或者通过第二网络899(例如,长距离无线通信网络)来与电子器件804或服务器808进行通信。根据一个实施例,电子器件801可通过服务器808来与电子器件804进行通信。电子器件801可包括处理器820、存储器830、输入器件850、声音输出器件855、显示器件860、音频模块870、传感器模块876、接口877、触感模块(hapticmodule)879、相机模块880、电源管理模块888、电池889、通信模块890、用户识别模块(subscriberidentificationmodule,sim)896或天线模块897。在一个实施例中,可从电子器件801省略这些组件中的至少一者(例如,显示器件860或相机模块880),或者可向电子器件801添加一个或多个其他组件。在一个实施例中,所述组件中的一些组件可被实施为单个集成电路(integratedcircuit,ic)。举例来说,传感器模块876(例如,指纹传感器(fingerprintsensor)、虹膜传感器(irissensor)或亮度传感器(illuminancesensor))可嵌入在显示器件860(例如,显示器)中。

处理器820可执行例如软件(例如,程序840)以控制与处理器820耦合的电子器件801的至少一个其他组件(例如,硬件组件或软件组件),且可执行各种数据处理或计算。根据一个实施例,作为数据处理或计算的至少一部分,处理器820可在易失性存储器832中加载从另一个组件(例如,传感器模块876或通信模块890)接收的命令或数据,处理存储在易失性存储器832中的命令或数据,以及将所得数据存储在非易失性存储器834中。根据一个实施例,处理器820可包括主处理器821(例如,cpu或应用处理器(applicationprocessor,ap))以及能够独立于主处理器821运行或与主处理器821结合运行的辅助处理器823(例如,图形处理单元(graphicsprocessingunit,gpu)、图像信号处理器(imagesignalprocessor,isp)、传感器集线器处理器(sensorhubprocessor)或通信处理器(communicationprocessor,cp))。另外地或作为另外一种选择,辅助处理器823可适以消耗比主处理器821少的功率,或者执行特定功能。辅助处理器823可与主处理器821分开实施或者作为主处理器821的一部分实施。

当主处理器821处于非现用(inactive)(例如,睡眠)状态时,辅助处理器823可替代主处理器821来控制与电子器件801的组件中的至少一个组件(例如,显示器件860、传感器模块876或通信模块890)相关的功能或状态中的至少一些功能或状态;或者当主处理器821处于现用状态(例如,正在执行应用时),辅助处理器823可与主处理器821一起控制上述功能或状态中的至少一些功能或状态。根据一个实施例,辅助处理器823(例如,图像信号处理器或通信处理器)可被实施为在功能上与辅助处理器823相关的另一个组件(例如,相机模块880或通信模块890)的一部分。

存储器830可存储由电子器件801的至少一个组件(例如,处理器820或传感器模块876)使用的各种数据。所述各种数据可包括例如软件(例如,程序840)以及用于与软件相关的命令的输入数据或输出数据。存储器830可包括易失性存储器832或非易失性存储器834。

程序840可作为软件存储在存储器830中且可包括例如操作系统(operatingsystem,os)842、中间件(middleware)844或应用846。

输入器件850可从电子器件801的外部(例如,用户)接收将由电子器件801的其他组件(例如,处理器820)使用的命令或数据。输入器件850可包括例如麦克风、鼠标或键盘。

声音输出器件855可将声音信号输出到电子器件801的外部。声音输出器件855可包括例如扬声器或接收器。扬声器可用于一般用途(例如,播放多媒体或录音),且接收器可用于接收传入呼叫。根据一个实施例,接收器可与扬声器分开实施或作为扬声器的一部分实施。

显示器件860可向电子器件801的外部(例如,用户)以视觉方式提供信息。显示器件860可包括例如显示器、全息图器件(hologramdevice)或投影仪以及用于控制显示器、全息图器件及投影仪中的对应一者的控制电路。根据一个实施例,显示器件860可包括适以检测触摸的触摸电路、或适以测量由触摸引发的力的强度的传感器电路(例如,压力传感器)。

音频模块870可将声音转换成电信号以及将电信号转换成声音。根据一个实施例,音频模块870可通过输入器件850获得声音,或者通过声音输出器件855或通过与电子器件801直接地(例如,以有线方式)耦合或无线耦合的外部电子器件(例如,电子器件802)的头戴耳机来输出声音。

传感器模块876可检测电子器件801的运行状态(例如,功率或温度)或者电子器件801外部的环境状态(例如,用户状态),且接着产生与所检测的状态对应的电信号或数据值。根据一个实施例,传感器模块876可包括例如手势传感器(gesturesensor)、陀螺仪传感器(gyrosensor)、大气压传感器(atmosphericpressuresensor)、磁性传感器(magneticsensor)、加速度传感器(accelerationsensor)、握持传感器(gripsensor)、接近传感器(proximitysensor)、颜色传感器(colorsensor)、红外(infrared,ir)传感器、生物特征传感器(biometricsensor)、温度传感器(temperaturesensor)、湿度传感器(humiditysensor)或亮度传感器。

接口877可支持为将电子器件801直接地(例如,以有线方式)或无线地与外部电子器件(例如,电子器件802)耦合而使用的一种或多种规定协议。根据一个实施例,接口877可包括例如高清晰度多媒体接口(highdefinitionmultimediainterface,hdmi)、通用串行总线(universalserialbus,usb)接口、安全数字(securedigital,sd)卡接口或音频接口。

连接端子878可包括连接件,电子器件801可通过连接件与外部电子器件(例如,电子器件802)实体连接。根据一个实施例,连接端子878可包括例如hdmi连接件、usb连接件、sd卡连接件或音频连接件(例如,头戴耳机连接件)。

触感模块879可将电信号转换成机械刺激(例如,震动或移动)或者可由用户通过触觉(tactilesensation)或运动觉(kinestheticsensation)识别的电刺激。根据一个实施例,触感模块879可包括例如电动机、压电式元件(piezoelectricelement)或电刺激器(electricalstimulator)。

相机模块880可拍摄静止图像或移动图像。根据一个实施例,相机模块880可包括一个或多个镜头、图像传感器、图像信号处理器或闪光灯。

电源管理模块888可管理向电子器件801供应的电力。根据一个实施例,电源管理模块888可被实施为例如电源管理集成电路(powermanagementintegratedcircuit,pmic)的至少一部分。

电池889可向电子器件801的至少一个组件供电。根据一个实施例,电池889可包括例如不可再充电的一次电池(primarycell)、可再充电的二次电池(secondarycell)或燃料电池(fuelcell)。

通信模块890可支持在电子器件801与外部电子器件(例如,电子器件802、电子器件804或服务器808)之间建立直接的(例如,有线的)通信信道或无线的通信信道以及通过所建立的通信信道执行通信。通信模块890可包括可独立于处理器820(例如,ap)运行的一个或多个通信处理器并支持直接的(例如,有线的)通信或无线的通信。根据一个实施例,通信模块890可包括无线通信模块892(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(globalnavigationsatellitesystem,gnss)通信模块)或有线通信模块894(例如,局域网(localareanetwork,lan)通信模块或电力线通信(powerlinecommunication,plc)模块)。这些通信模块中对应的一个通信模块可通过第一网络898(例如,短距离通信网络,例如蓝牙tm、无线保真(wireless-fidelity,wi-fi)直接或红外数据协会(infrareddataassociation,irda)标准)或第二网络899(例如,长距离通信网络,例如蜂窝网络、互联网或计算机网络(例如,lan或广域网(wideareanetwork,wan)))与外部电子器件进行通信。这些各种类型的通信模块可被实施为单个组件(例如,单个集成电路)或者可被实施为彼此分开的多个组件(例如,多个集成电路)。无线通信模块892可使用存储在用户识别模块896中的用户信息(例如,国际移动用户识别码(internationalmobilesubscriberidentity,imsi))来识别及认证通信网络(例如,第一网络898或第二网络899)中的电子器件801。

天线模块897可将信号或电力传送到电子器件801外部(例如,外部电子器件)或者从电子器件801外部接收信号或电力。根据一个实施例,天线模块897可包括一个或多个天线,且由此举例来说通信模块890(例如,无线通信模块892)可从所述一个或多个天线中选择适用于在通信网络(例如,第一网络898或第二网络899)中使用的通信方案的至少一个天线。然后可通过所选择的至少一个天线在通信模块890与外部电子器件之间传送或接收信号或电力。

上述组件中的至少一些组件可相互耦合且所述至少一些组件之间可通过外围间通信方案(inter-peripheralcommunicationscheme)(例如,总线、通用输入及输出(generalpurposeinputandoutput,gpio)、串行外围接口(serialperipheralinterface,spi)或移动产业处理器接口(mobileindustryprocessorinterface,mipi))传送信号(例如,命令或数据)。

根据一个实施例,可通过与第二网络899进行耦合的服务器808在电子器件801与外部电子器件804之间传送或接收命令或数据。电子器件802及电子器件804中的每一者可为与电子器件801为相同类型或不同类型的器件。根据一个实施例,将在电子器件801处执行的所有操作或一些操作可在外部电子器件802、外部电子器件804或外部电子器件808中的一者或多者处执行。举例来说,如果电子器件801原本应自动地或响应于来自用户或另一个器件的请求而执行功能或服务,则替代执行所述功能或服务或者除了执行所述功能或服务之外,电子器件801还可请求所述一个或多个外部电子器件执行所述功能或服务的至少一部分。接收到所述请求的所述一个或多个外部电子器件可执行所请求的功能或服务的所述至少一部分,或者执行与所述请求相关的其他功能或其他服务,并将所述执行的结果传输到电子器件801。电子器件801在对结果进行进一步处理或不进行进一步处理的情况下提供所述结果作为对请求的回复的至少一部分。为此,举例来说,可使用云计算、分布式计算或客户机-服务器计算技术。

一个实施例可被实施为包括存储在可由机器(例如,电子器件801)读取的存储介质(例如,内部存储器836或外部存储器838)中的一个或多个指令的软件(例如,程序840)。举例来说,机器(例如,电子器件801)的处理器(例如,处理器820)可在使用或不使用受处理器控制的一个或多个其他组件的条件下调用存储在存储介质中的所述一个或多个指令中的至少一个指令,并执行所述至少一个指令。因此,可操作机器根据所调用的至少一个指令来执行至少一种功能。所述一个或多个指令可包括由编译器产生的代码或者可由解释器执行的代码。机器可读存储介质可设置成非暂时性存储介质形式。用语“非暂时性”表示存储介质是有形器件,且不包括信号(例如,电磁波),但此用语并不区分数据以半永久方式存储在存储介质中的情形与数据临时存储在存储介质中的情形。

图9示出根据一个实施例的相机模块的方块图。相机模块1000可包括镜头总成1010、闪光灯1020、图像传感器1030、图像稳定器(imagestabilizer)1040、存储器1050(例如,缓冲存储器)或图像信号处理器1060。镜头总成1010可收集从要被拍摄图像的物体发出或反射的光。镜头总成1010可包括一个或多个镜头。根据一个实施例,相机模块1000可包括多个镜头总成1010。在这种情形中,相机模块1000可形成例如双摄相机(dualcamera)、360度相机(360-degreecamera)或球形相机(sphericalcamera)。所述多个镜头总成1010中的一些镜头总成1010可具有相同的镜头属性(例如,视角、焦距、自动聚焦(auto-focusing)、f数(fnumber)或光学变焦(opticalzoom)),或者至少一个镜头总成可具有与另一镜头总成的属性不同的一个或多个镜头属性。镜头总成1010可包括例如广角镜头(wide-anglelens)或摄远镜头(telephotolens)。

闪光灯1020可发出光来加强从物体反射的光。根据一个实施例,闪光灯1020可包括一个或多个发光二极管(lightemittingdiode,led)(例如,红绿蓝(red-green-blue,rgb)led、白色led、红外(ir)led或紫外(ultraviolet,uv)led)或氙气灯(xenonlamp)。图像传感器1030可通过将从物体发出或反射并通过镜头总成1010透射的光转换成电信号来获得与物体对应的图像。根据一个实施例,图像传感器1030可选自具有不同属性的图像传感器,例如rgb传感器、黑白(black-and-white,bw)传感器、ir传感器或uv传感器、具有相同属性的多个图像传感器或具有不同属性的多个图像传感器。包括在图像传感器1030中的每一个图像传感器可使用例如电荷耦合器件(chargedcoupleddevice,ccd)传感器或互补金属氧化物半导体(complementarymetaloxidesemiconductor,cmos)传感器来实施。

图像稳定器1040可在特定方向上移动图像传感器1030或移动镜头总成1010中包括的至少一个镜头,或者响应于相机模块1000的移动或包括相机模块1000的电子器件801的移动来控制图像传感器1030的操作属性(例如,调整读出时序)。这使得能够补偿因所述移动而对正被拍摄的图像造成的至少部分负面影响(例如,图像模糊)。根据一个实施例,图像稳定器1040可使用设置在相机模块1000内部或外部的陀螺仪传感器或加速度传感器来感测相机模块1000或电子器件801的这种移动。根据一个实施例,图像稳定器1040可被实施为例如光学图像稳定器。

存储器1050可至少临时地存储通过图像传感器1030获得的图像的至少一部分以用于后续图像处理任务。举例来说,如果由于快门滞后(shutterlag)而导致图像拍摄延迟或如果快速拍摄多个图像,则可将获得的原始图像(例如,拜耳图案图像(bayer-patternedimage)、高分辨率图像)存储在存储器1050中,且可通过显示器件860来预览原始图像的对应的副本图像(例如,低分辨率图像)。之后,如果满足规定条件(例如,用户的输入或系统命令满足所述规定条件),则图像信号处理器1060可例如获得及处理存储在存储器1050中的原始图像的至少一部分。根据一个实施例,存储器1050可被配置成存储器830的至少一部分或者被配置成独立于存储器830运行的单独存储器。

图像信号处理器1060可对通过图像传感器1030获得的图像或存储在存储器1050中的图像执行一种或多种图像处理。所述一种或多种图像处理可包括例如深度图生成(depthmapgeneration)、三维建模、全景生成(panoramageneration)、特征点提取、图像合成或图像补偿(例如,降噪、分辨率调整、明度调整、模糊、锐化或软化)。另外地或作为另外一种选择,图像信号处理器1060可对相机模块880中所包括的组件中的至少一个组件(例如,图像传感器1030)执行控制(例如,曝光时间控制或读出时序控制)。由图像信号处理器1060处理的图像可存储在存储器1050中以用于进一步处理,或者可被提供到位于相机模块1000外部的外部组件(例如,存储器830、显示器件860、电子器件802、电子器件804或服务器808)。根据一个实施例,图像信号处理器1060可被配置成处理器820的至少一部分,或者被配置成独立于处理器820运行的单独处理器。如果图像信号处理器1060被配置成与处理器820分开的单独处理器,则处理器820可通过显示器件860来原样显示由图像信号处理器1060处理的至少一个图像或者在对所述至少一个图像进行进一步处理之后加以显示。

根据一个实施例,电子器件801可包括具有不同的属性或功能的多个相机模块880。在这种情形中,所述多个相机模块880中的至少一个相机模块880可形成例如广角相机且所述多个相机模块880中的至少另一个相机模块880可形成摄远相机。相似地,所述多个相机模块880中的至少一个相机模块880可形成例如前置相机且所述多个相机模块880中的至少另一个相机模块880可形成后置相机。

尽管已在本公开的详细说明中阐述了本公开的某些实施例,然而在不背离本公开的范围的条件下可以各种形式来对本公开进行修改。因此,本公开的范围不应仅基于所阐述的实施例来确定,而是应基于随附权利要求书及其等效形式来确定。

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