发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种图像矫正方法、装置、电子设备及存储介质。
第一方面,本申请实施例提供了一种图像矫正方法,包括:
对待矫正图像进行语义分割,得到所述待矫正图像对应的第一掩膜图像;
获取所述第一掩膜图像的前景像素点特征;
对所述前景像素点特征进行主成分分析,得到主成分向量;
根据所述主成分向量确定所述待矫正图像对应的旋转角度;
根据所述旋转角度对所述待矫正图像进行旋转,得到矫正后图像。
可选的,所述获取所述第一掩膜图像的前景像素点,包括:
对所述第一掩膜图像进行预设采样率的下采样,得到第二掩膜图像;
遍历所述第二掩膜图像的前景像素点,根据前景像素点坐标得到所述前景像素点特征。
可选的,所述对所述前景像素点特征进行主成分分析,得到主成分向量,包括:
根据所述前景像素点特征中的前景像素点坐标生成协方差矩阵;
计算所述协方差矩阵的特征向量及所述特征向量对应的特征值;
将所述特征值符合第一预设条件的特征向量作为所述主成分向量。
可选的,所述根据所述主成分向量确定所述待矫正图像对应的旋转角度,包括:
获取基准方向;
计算所述主成分向量与所述基准方向之间的夹角;
根据所述夹角确定所述旋转角度。
可选的,所述对待矫正图像进行语义分割,得到所述待矫正图像对应的第一掩膜图像,包括:
识别所述待矫正图像中的目标物;
当所述目标物的个数大于1时,对所述待矫正图像进行裁剪,得到每个所述目标物对应的子图像;
对所述子图像进行语义分割,得到每个所述目标物对应的第一掩膜图像。
可选的,所述获取所述第一掩膜图像的前景像素点特征,包括:
当所述第一掩膜图像中包括未连通的至少两个目标区域,或目标区域的连通部分符合第二预设条件时,对所述第一掩膜图像进行裁剪,得到包括每个所述目标区域的第三掩膜图像;
获取每张所述第三掩膜图像的前景像素点。
可选的,所述根据所述旋转角度对所述待矫正图像进行旋转,得到矫正后图像,包括:
获取旋转中心点坐标、缩放因子及所述旋转角度;
根据所述旋转中心点坐标、所述缩放因子及所述旋转角度生成所述待矫正图像对应的旋转矩阵;
根据所述旋转矩阵对所述待矫正图像进行旋转,得到矫正后图像。
第二方面,本申请实施例提供了一种图像矫正装置,包括:
语义分割模块,用于对待矫正图像进行语义分割,得到所述待矫正图像对应的第一掩膜图像;
获取模块,用于获取所述第一掩膜图像的前景像素点特征;
主成分分析模块,用于对所述前景像素点特征进行主成分分析,得到主成分向量;
计算模块,用于根据所述主成分向量确定所述待矫正图像对应的旋转角度;
旋转模块,用于根据所述旋转角度对所述待矫正图像进行旋转,得到矫正后图像。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
对待矫正图像的掩膜特征进行主成分分析,基于分析得到的主成分向量计算待矫正图像对应的旋转角度,从而实现对待矫正图像的旋转矫正。这样,降低模型训练数据量,无需人工标注数据,图像矫正任务的复杂度较低。另外,该图像矫正方法可以应用于多种目标物的图像矫正,算法的泛化性较广。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例基于图像的掩膜特征进行主成分分析,得到进行图像矫正的旋转角度,降低模型训练数据量,无需人工标注数据,降低图像矫正任务的复杂度,提高算法的泛化性。
下面首先对本发明实施例所提供的一种图像矫正方法进行介绍。
图1为本申请实施例提供的一种图像矫正方法的流程图。如图1所示,该方法包括以下步骤:
步骤S11,对待矫正图像进行语义分割,得到待矫正图像对应的第一掩膜图像。
图2为本申请实施例提供的待矫正图像示意图。如图2所示,待矫正图像的目标物为鱼,图像中的鱼相对于水平方向或垂直方向是歪斜的。通过语义分割(SemanticSegmentation)算法,如FCNN、SegNet、DeepLab v1/v2/v3、watershed,grabcut等,对图2进行语义分割,得到待矫正图像对应的第一掩膜图像(Mask)。
图3为本申请实施例提供对图2进行语义分割后得到的第一掩膜图像的示意图。如图3所示,第一掩膜图像中前景部分为目标物——鱼。
步骤S12,获取第一掩膜图像的前景像素点特征。
对于图3的第一掩膜图像,获取其前景像素点特征为前景像素点坐标,即鱼体部分的像素点坐标。
步骤S13,对前景像素点特征进行主成分分析,得到主成分向量。
主成分分析是一种统计方法,通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分向量。主成分分析可以基于待矫正图像中的任意像素点或所有像素点进行,但是,由于图像矫正主要是对图像中目标物进行旋转,因此,本实施例中对目标物对应的前景像素点进行主成分分析。
由于前景像素点特征包括前景像素点坐标,通过主成分分析,实际上得到两个正交的主成分向量。
图4为本申请实施例提供对图3的前景像素点进行主成分分析后得到的主成分向量示意图。如图4所示,其中一个主成分向量PC1为鱼体的长轴方向,另一个主成分向量PC2为鱼体短轴方向。
步骤S14,根据主成分向量确定待矫正图像对应的旋转角度。
具体地,步骤S14包括:
A1,获取基准方向。
该基准方向为预先设定的方向,如水平方向或垂直方向等。
A2,计算主成分向量与基准方向之间的夹角。
本实施例中,可以仅使用一个主成分向量来计算夹角,例如,如图4所示,基准方向为水平方向,计算主成分向量PC1或PC2与水平方向之间的夹角。
A3,根据夹角确定旋转角度。
这里可以设定旋转角度为锐角,即使得待矫正图像的角度旋转较小。如图4所示,若主成分向量PC1与水平方向的夹角为45°,需要将待矫正图像逆时针方向旋转45°,若以顺时针旋转为正,则旋转角度为-45°。
步骤S15,根据旋转角度对待矫正图像进行旋转,得到矫正后图像。
如图5所示,将图2逆时针旋转45°,使得鱼体与水平方向平行。另外,为保证旋转后的图像的形状,需要按照预设比例对其进行裁切。若需要对旋转后图像的尺寸进行统一,则需要根据预设缩放因此对其进行缩放。
本实施例中,对待矫正图像的掩膜特征进行主成分分析,基于分析得到的主成分向量计算待矫正图像对应的旋转角度,从而实现对待矫正图像的旋转矫正。这样,降低模型训练数据量,无需人工标注数据,图像矫正任务的复杂度较低。另外,该图像矫正方法可以应用于多种目标物的图像矫正,如鱼、禽蛋、人脸、车辆、船只、建筑物等等,提高算法的泛化性。
图6为本申请另一实施例提供的一种图像矫正方法的流程图。如图6所示,上述步骤S12包括:
步骤S21,对第一掩膜图像进行预设采样率的下采样,得到第二掩膜图像。
步骤S22,遍历第二掩膜图像的前景像素点,根据前景像素点坐标得到前景像素点特征。
虽然需要对待矫正图像的目标物进行旋转,但是,计算旋转角度时无需使用所有的前景像素点进行主成分分析,可以对第一掩膜图像进行下采样,在保证前景原始分布特征的前提下,使用部分前景像素点进行主成分分析,大大加速了主成分分析的计算过程。
如图7所示,可以对第一掩膜图像进行的下采样,这样,用于进行主成分分析的前景像素点的个数为第一掩膜图像的/>主成分分析时间也相应减少。
图8为本申请另一实施例提供的一种图像矫正方法的流程图。如图8所示,上述步骤S13包括:
步骤S31,根据前景像素点特征中的前景像素点坐标生成协方差矩阵。
如,获得n个前景像素点坐标,包括:(x1,y1),(x2,y2),……(xn,yn)。
用矩阵Z表示为:
用变量空间X表示前景像素点在x轴方向上的特征,用变量空间Y表示前景像素点在y轴方向上的特征,
则协方差矩阵Cov(Z)如下:
步骤S32,计算协方差矩阵的特征向量及特征向量对应的特征值。
若协方差矩阵的特征多项式/>则协方差矩阵的两个特征值为λ1=0,λ2=5。
对于λ1=0,求解方程组(0E-Cov(Z))X=0,得到基础解系则协方差矩阵属于λ1=0的全部特征向量为k1η1(k1≠0)。
对于λ2=5,求解方程组(5E-Cov(Z))X=0,得到基础解系则协方差矩阵属于λ2=5的全部特征向量为k2η2(k2≠0)。
其中,k1和k2可设为1,则特征值λ1=0对应的特征向量为特征值λ2=5对应的特征向量为/>
步骤S33,将特征值符合第一预设条件的特征向量作为主成分向量。
本实施例中,可以仅选择其中一个特征向量作为主成分向量,如选择特征值最大的特征向量,λ2=5对应的特征向量也可将两个特征向量均作为主成分向量。
在实际应用中,拍摄得到的待矫正图像中可能包括多个目标物,每个目标物均存在不同程度的歪斜,需要单独针对每个目标物进行图像矫正。因此,本实施例中,当待矫正图像中包括多个目标物时,需要将每个目标物裁切处理,分布进行主成分分析计算旋转角度并进行旋转。
可选的,可以在语义分割之前就对待矫正图像进行裁切,也可以在语义分割之后对第一掩膜图像进行裁切。以下分别对这两种方式进行详细说明。
方式一、在语义分割之前对待矫正图像进行裁切
图9为本申请另一实施例提供的一种图像矫正方法的流程图。如图9所示,上述步骤S11包括:
步骤S41,识别待矫正图像中的目标物。
步骤S42,当目标物的个数大于1时,对待矫正图像进行裁剪,得到每个目标物对应的子图像。
步骤S43,对子图像进行语义分割,得到每个目标物对应的第一掩膜图像。
在步骤S41中,可以通过目标检测算法检测待矫正图像中的目标物。如果待矫正图像中存在非目标物,可以在该步骤中进行过滤,在步骤S42中仅将目标物裁切出来。对于裁切的子图像,可以采用上述实施例中的方法进行矫正。
方式二、在语义分割之后对第一掩膜图像进行裁切
图10为本申请另一实施例提供的一种图像矫正方法的流程图。如图10所示,上述步骤S12包括:
步骤S51,当第一掩膜图像中包括未连通的至少两个目标区域,或目标区域的连通部分符合第二预设条件时,对第一掩膜图像进行裁剪,得到包括每个目标区域的第三掩膜图像。
步骤S52,获取每张第三掩膜图像的前景像素点。
其中,对于图像中距离较远的目标物,语义分割后相应的目标区域没有连通,则可直接进行裁切。但由于目标物之间可能距离很近或出现重叠,在语义分割后,前景部分存在连通的目标区域。如果连通部分面积较小,则可以将两个目标区域裁切开。但如果连通部分面积较大,则目标物之间重叠严重,难以分开,此时可以排除掉该部分图像或排除整张图像,不对其进行后续的矫正处理。
在方式二中,需要记录对第一掩膜图像进行裁切的裁切位置,基于该裁切位置,对待矫正图像进行裁切,得到每个目标物对应的子图像,这样后续可以根据计算得到的旋转角度对每个子图像进行旋转矫正。
本实施例中,通过上述两种方式,可以实现对于图像中多个目标物的旋转矫正。这样,图像矫正任务的复杂度较低,算法泛化性较好。
图11为本申请另一实施例提供的一种图像矫正方法的流程图。如图11所示,上述步骤S15包括:
步骤S61,获取旋转中心点坐标、缩放因子及旋转角度。
步骤S62,根据旋转中心点坐标、缩放因子及旋转角度生成待矫正图像对应的旋转矩阵。
步骤S63,根据旋转矩阵对待矫正图像进行旋转,得到矫正后图像。
其中,旋转中心点可以设为待矫正图像的中心点,或者也可以设为目标物的中心点。根据实际情况缩放因子可以设为1,即不进行缩放。
具体地,步骤S62中可以采用OpenCV(Intel基于BSD许可(开源)发行的跨平台计算机视觉库)中的getRotationMatrix2D函数来计算待矫正图像对应的旋转矩阵,该函数中的参数包括:Point2f center表示旋转中心点,double angle表示旋转角度,double scale表示缩放因子。
步骤S63中可以采用OpenCV的warpAffine函数根据旋转矩阵对待矫正图像进行旋转。
下面以一个具体实例对图像矫正方法进行详细说明。待处理图像中仅有一个目标物。
图12为本申请另一实施例提供的一种图像矫正方法的流程图。如图12所示,该方法包括以下步骤:
步骤S71,对待矫正图像pic1进行语义分割,得到pic1对应的Mask1;
步骤S72,对Mask1进行的下采样,得到Mask2;
步骤S73,遍历Mask2的前景像素点,得到所有前景像素点坐标;
步骤S74,对Mask2所有前景像素点坐标进行主成分分析,得到主成分向量PC1和PC2;
步骤S75,根据主成分向量PC1与水平方向的夹角计算得到旋转角度为-45°;
步骤S76,根据旋转中心点坐标、缩放因子及旋转角度生成旋转矩阵;
步骤S77,根据旋转矩阵对pic1进行旋转,得到矫正后图像pic2。
本实施例的图像矫正方法,对待矫正图像的掩膜特征进行主成分分析,基于分析得到的主成分向量计算待矫正图像对应的旋转角度,从而实现对待矫正图像的旋转矫正。这样,降低模型训练数据量,无需人工标注数据,图像矫正任务的复杂度较低。并且,该图像矫正方法可以应用于多种目标物的图像矫正,提高算法的泛化性。另外,通过对掩膜图像进行下采样,减少主成分分析的计算量,提高算法的计算速度,降低矫正所需花费时间。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图13为本申请实施例提供的一种图像矫正装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图13所示,该图像矫正装置包括:
语义分割模块81,用于对待矫正图像进行语义分割,得到待矫正图像对应的第一掩膜图像;
获取模块82,用于获取第一掩膜图像的前景像素点特征;
主成分分析模块83,用于对前景像素点特征进行主成分分析,得到主成分向量;
计算模块84,用于根据主成分向量确定待矫正图像对应的旋转角度;
旋转模块85,用于根据旋转角度对待矫正图像进行旋转,得到矫正后图像。
可选的,获取模块82包括:
下采样子模块,用于对第一掩膜图像进行预设采样率的下采样,得到第二掩膜图像;
遍历子模块,用于遍历第二掩膜图像的前景像素点,根据前景像素点坐标得到前景像素点特征。
可选的,主成分分析模块83包括:
第一生成子模块,用于根据前景像素点特征中的前景像素点坐标生成协方差矩阵;
第一计算子模块,用于计算协方差矩阵的特征向量及特征向量对应的特征值;
第一确定子模块,用于将特征值符合第一预设条件的特征向量作为主成分向量。
可选的,计算模块84包括:
第一获取子模块,用于获取基准方向;
第二计算子模块,用于计算主成分向量与基准方向之间的夹角;
第二确定子模块,用于根据夹角确定旋转角度。
可选的,语义分割模块81包括:
识别子模块,用于识别待矫正图像中的目标物;
第一裁剪子模块,用于当目标物的个数大于1时,对待矫正图像进行裁剪,得到每个目标物对应的子图像;
分割子模块,用于对子图像进行语义分割,得到每个目标物对应的第一掩膜图像。
可选的,获取模块82包括:
第二裁剪子模块,用于当第一掩膜图像中包括未连通的至少两个目标区域,或目标区域的连通部分符合第二预设条件时,对第一掩膜图像进行裁剪,得到包括每个目标区域的第三掩膜图像;
第二获取子模块,用于获取每张第三掩膜图像的前景像素点。
可选的,旋转模块85包括:
第三获取子模块,用于获取旋转中心点坐标、缩放因子及旋转角度;
第二生成子模块,用于根据旋转中心点坐标、缩放因子及旋转角度生成待矫正图像对应的旋转矩阵;
旋转子模块,用于根据旋转矩阵对待矫正图像进行旋转,得到矫正后图像。
本实施例的图像矫正装置,对待矫正图像的掩膜特征进行主成分分析,基于分析得到的主成分向量计算待矫正图像对应的旋转角度,从而实现对待矫正图像的旋转矫正。这样,降低模型训练数据量,无需人工标注数据,图像矫正任务的复杂度较低。并且,该图像矫正方法可以应用于多种目标物的图像矫正,提高装置的泛化性。另外,通过对掩膜图像进行下采样,减少主成分分析的计算量,提高计算速度,降低矫正所需花费时间。
本申请实施例还提供一种电子设备,如图14所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,P C I)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。