一种图像处理方法及装置与流程

文档序号:14837304发布日期:2018-06-30 12:58阅读:151来源:国知局
一种图像处理方法及装置与流程

本发明涉及图像处理领域,特别涉及一种图像处理方法及装置。



背景技术:

当前的图像抠图及合成方法针对的是复杂背景图像,因此大都比较复杂;当前深度学习模型(针对图像有关的分类、检测等任务)的训练数据(图像)通常需要人工拍摄,而同一个目标物体在不同场景下,通常会出现重复拍摄的问题(如某瓶可乐在冰箱内和在桌面上的不同场景下,其摆放形态可能一样,但其图像数据需分别进行拍摄);针对深度学习模型中的图像目标检测任务,训练数据除了图像本身外,还需要图像标签(包括图像的名称、图像中包含的目标物体的类别名称、目标物体的位置),这些标签通常需要人工标注,需耗费大量的精力和时间。



技术实现要素:

本发明主要解决的技术问题是提供一种图像处理方法及装置,以通过图像抠图及合成,获得深度学习所需的图像数据及对应标签的自动生成。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种图像处理方法,所述方法包括:读取一张待合成图像;读取一张待抠取图像,对所述图像进行RGB通道拆分以分别计算三个通道图像的边缘像素平均值,利用所述平均值对三个通道的图像进行二值化处理,并将三个通道的二值化图像合并得到叠加后的二值化图像,从而记录所述二值化图像的目标轮廓信息;以及读取所述目标轮廓信息以在所述待合成图像中生成合成图像位置,在所述合成图像位置上放置待抠取图像以生成合成图像,并将目标类别及生成的位置保存为标签文件;其中,预先设置待抠取图像中目标物体类别的编号及目标类别的名称,并且类别编号和类别名称一一对应。

其中,读取一张待抠取图像,对所述图像进行RGB通道拆分以分别计算三个通道图像的边缘像素平均值,利用所述平均值对三个通道的图像进行二值化处理,并将三个通道的二值化图像合并得到叠加后的二值化图像,从而记录所述二值化图像的目标轮廓信息,具体包括:读取所述待抠取图像,对所述图像拆分为R、G、B三个通道下的图像;分别计算三个通道图像的边缘像素的平均值,并判断所述平均值是否大于阈值;当所述平均值大于阈值时将像素值大于平均值的像素值设为0,小于平均值的像素值设为255;当所述平均值不大于所述阈值时将像素小于所述平均值的像素设为0,大于所述平均值的像素设为255;将三个通道下二值化后的图像进行合并,以得到叠加后的二值化图像;以及记录得到的所述二值化图像的目标轮廓信息。

其中,记录得到的所述二值化图像的目标轮廓信息之前,所述方法还包括:通过腐蚀、膨胀、提取所述二值化图像的轮廓并填充;判断经过处理后的所述二值化图像是否存在背景残留;在确定所述二值化图像存在背景残留时剔除残留背景。

其中,记录得到的所述二值化图像的目标轮廓信息,具体为:用矩形框框住所述目标轮廓,并记录所述矩形框的左上角坐标及所述矩形框的长和宽,得到所述二值化图像的目标轮廓信息。

其中,读取所述目标轮廓信息以在所述待合成图像中生成合成图像位置,在所述合成图像位置上放置待抠取图像以生成合成图像,并将目标类别及生成的位置保存为标签文件,具体包括:读取待合成图像以及所述目标轮廓信息;在所述待合成图像上确定目标图像的放置位置;根据记录所述目标轮廓信息的矩形的长和宽判断是否超出所述待合成图像的边界;当确定超出所述待合成图像的边界时重新在所述待合成图像上确定目标图像的放置位置;当确定没有超出所述待合成图像的边界时,判断所述目标图像放置位置的重叠率是否小于阈值;当确定所述重叠率不小于阈值时重新在所述待合成图像上确定目标图像的放置位置;当确定所述重叠率小于阈值时在生成的位置上放置抠取的目标,以生成合成图像,并将目标类别及生成的位置保存为标签文件。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种图像处理装置,所述装置包括:图像获取单元,用于读取待合成图像以及待抠取图像;图像抠取单元,用于对所述图像进行RGB通道拆分以分别计算三个通道图像的边缘像素平均值,利用所述平均值对三个通道的图像进行二值化处理,并将三个通道的二值化图像合并得到叠加后的二值化图像,从而记录所述二值化图像的目标轮廓信息;以及图像合成单元,用于读取所述目标轮廓信息以在所述待合成图像中生成合成图像位置,在所述合成图像位置上放置待抠取图像以生成合成图像,并将目标类别及生成的位置保存为标签文件;其中,预先设置待抠取图像中目标物体类别的编号及目标类别的名称,并且类别编号和类别名称一一对应。

其中,所述图像抠取单元包括:通道拆分模块,用于对读取的所述图像拆分为R、G、B三个通道下的图像;计算模块,用于分别计算三个通道图像的边缘像素的平均值;二值化模块,用于在所述平均值大于阈值时将像素值大于平均值的像素值设为0,小于平均值的像素值设为255;以及在所述平均值不大于所述阈值时将像素小于所述平均值的像素设为0,大于所述平均值的像素设为255;合并模块,用于将三个通道下二值化后的图像进行合并,以得到叠加后的二值化图像;以及轮廓记录模块,用于记录得到的所述二值化图像的目标轮廓信息。

其中,所述图像抠取单元还包括:轮廓处理模块,用于通过腐蚀、膨胀、提取所述二值化图像的轮廓并填充,并对经过处理后的所述二值化图像残留的背景进行剔除。

其中,所述轮廓记录模块具体用于用矩形框框住所述目标轮廓,并记录所述矩形框的左上角坐标及所述矩形框的长和宽,得到所述二值化图像的目标轮廓信息。

其中,所述图像合成单元包括:位置生成模块,用于在所述待合成图像上确定目标图像的放置位置;判断模块,用于:根据记录所述目标轮廓信息的矩形的长和宽判断是否超出所述待合成图像的边界;当确定超出所述待合成图像的边界时触发所述位置生成模块重新在所述待合成图像上确定目标图像的放置位置;当确定没有超出所述待合成图像的边界时,判断所述目标图像放置位置的重叠率是否小于阈值;当确定所述重叠率不小于阈值时触发所述位置生成模块重新在所述待合成图像上确定目标图像的放置位置;当确定所述重叠率小于阈值时产生触发信号;目标图像合成模块,用于响应所述触发信号在生成的位置上放置抠取的目标,以生成合成图像,并将目标类别及生成的位置保存为标签文件。

以上方案中,本发明通过在拍摄待合成目标时,先使用简单的、单一化的背景(只采用黑色或者白色背景)拍摄目标,便于后续的目标抠取与合成;针对图像采集时,在多个场景下的重复拍摄问题,通过自动抠取图像,并与其他背景图像进行自动合成来解决,一次拍摄即可快速用于不同的应用场景;针对目标检测任务中,深度学习训练图像的样本标签需人工标注的问题,通过合成图像时,记录合成图像信息(合成图像名称、目标类别、目标位置),实现自动生成训练图像标签的方法来解决,能够极大降低人工标注工作量,提高深度学习训练效率。采用合成的图像及自动生成的样本标签,针对深度学习模型进行有效训练,通过将合成图像数据与真实场景下的标注数据按一定的比例混合使用,可以进一步提高模型训练的准确率。

附图说明

图1是本发明实施方式中的一种图像处理方法的流程示意图;

图2是图1所示的图像合成方法的流程示意图;

图3是图1所示的图像抠取方法的流程示意图;

图4是利用本发明进行图像轮廓提取过程的示意图;

图5是利用本发明进行合成图像的示意图;

图6是利用本发明合成图像的坐标示意图;

图7是本发明实施方式中的一种图像处理装置的结构示意图;

图8是本发明实施方式中的图像抠取单元的结构示意图;

图9是本发明实施方式中的图像合成单元的结构示意图。

具体实施方式

为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合附图和实施例对本发明进行详细说明。

请参阅图1,为本发明实施方式中的一种图像处理方法的流程示意图。该方法包括如下步骤:

步骤S11,读取一张待合成图像,并根据需要设置图像大小;

其中,预先设置待抠取图像中目标物体类别的编号及目标类别的名称,并且类别编号和类别名称一一对应。例如,类别名称设置为A,类别编号设置为0。

具体地,在采集待合成的图像时,将待合成的目标物体置于背景中间位置,通过摄像头采集其图像。对于深度学习模型,不同光照、不同形态的训练图像可丰富目标的特征。因此,在拍摄图像时,通过随机改变光源摆放位置、光照强度大小来改变光照,通过随机改变目标物体摆放姿势、角度等来改变目标物体形态,可获取目标物体在多种光照、多种形态下的图像数据。

在本实施方式中,为了更好的抠取目标图像,预先采集单一化图像背景的待合成的图像。具体地,在RGB颜色空间中,用(0,0,0)表示黑色,(255,255,255)表示白色,其余颜色均在这个范围内,因此,本发明将背景颜色选为黑色或者白色。在后续抠取目标过程中,根据待抠取目标和背景的R、G、B分量分布范围不同来剔除背景,因此待抠取目标与其背景的R、G、B分量差距越大,抠取效果越好。在采集数据时,当待抠取目标的RGB分量均大于某个阈值时(参考值为145),此时宜将背景设为黑色,否则背景设为白色。

步骤S12,图像抠取:读取一张待抠取图像,对该图像进行RGB通道拆分以分别计算三个通道图像的边缘像素平均值,利用平均值对三个通道的图像进行二值化处理,并将三个通道的二值化图像合并得到叠加后的二值化图像,从而记录该二值化图像的目标轮廓信息。

步骤S13,图像合成:读取目标轮廓信息以在该待合成图像中生成合成图像位置,在该合成图像位置上放置待抠取图像以生成合成图像,并将目标类别及生成的位置保存为标签文件。

具体地,在待合成图像中,随机生成位置,同时结合抠取目标的轮廓信息对该位置的有效性进行判断:如果抠取目标放置时会发生越界,或者与其他目标轮廓重叠率超过阈值,则重新生成该位置,直到生成有效位置。如果一张待合成图像中要放置多个抠取目标,即待抠取图像有多张,则继续读取待抠取图像。

进一步地,将目标类别及生成的位置保存为标签文件(txt格式),其中,标签文件(txt)记录了图像的名称、对应的目标类别名称及目标的位置信息(矩形框表示),标签格式形如下:

A.jpg B x1y1x2y2

其中,A.jpg为合成图像的名称,B为目标类别,x1、y1、x2、y2为目标(矩形框表示)的左上、右下坐标。

步骤S14,判断待抠取图像是否读取完成;若是,则进入步骤S15;否则,返回步骤S12。

步骤S15,判读待合成图像是否读取完成;若是,则流程结束;否则,返回步骤S11。

请同时参阅图2,步骤S13,即,读取目标轮廓信息以在该待合成图像中生成合成图像位置,在该合成图像位置上放置待抠取图像以生成合成图像,并将目标类别及生成的位置保存为标签文件,具体包括如下步骤:

步骤S131,读取待合成图像以及目标轮廓信息;

步骤S132,在待合成图像上确定目标图像的放置位置。

步骤S133,根据记录目标轮廓信息的矩形的长和宽判断是否超出待合成图像的边界;若是,则返回步骤S132;否则,进入步骤S134。

步骤S134,判断目标图像放置位置的重叠率是否小于阈值。若是,则进入步骤S135;否则,返回步骤S132。

具体地,首先随机生成位置,同时根据记录目标轮廓信息的矩形的长和宽判断是否越界,如果超出待合成图像边界,则重新生成该位置。此外,因为待合成图像中可能会有多个目标的合成,为了防止合成时不同目标可能发生重叠,在合成前需要判断重叠率,如果任意两个目标的重叠率超过阈值(经验值,参考值0.1~0.3),则重新生成合成图像的目标放置位置,直到满足要求为止。

步骤S135,在生成的位置上放置抠取的目标,并将目标类别及生成的位置保存为标签文件。

由步骤S132生成有效放置位置,将待合成图像的像素值替换为抠取的轮廓图像(矩形框内)像素值,实现图像的合成。

进一步地,请参阅图3,步骤S12,即,读取一张待抠取图像,对该图像进行RGB通道拆分以分别计算三个通道图像的边缘像素平均值,利用平均值对三个通道的图像进行二值化处理,并将三个通道的二值化图像合并得到叠加后的二值化图像,从而记录该二值化图像的目标轮廓信息,具体包括如下步骤:

步骤S120,读取该待抠取图像,对该图像拆分为R、G、B三个通道下的图像;

步骤S121,分别计算三个通道图像的边缘像素的平均值,并判断该平均值是否大于阈值;若是,则确认该图像的背景为白色背景,然后进入步骤S122;否则,则确认该图像的背景为黑色背景,然后进入步骤S123。

具体地,分别选取三个通道图像左右边缘各N列像素,以分别计算三个通道图像的边缘像素平均值(记为pi,i=1,2,3)。在本实施方式中,N=10,该阈值为145。

步骤S122,将像素值大于均值pi的像素值(白色背景)设为0,小于均值的像素值(待抠取目标)设为255,以得到三张目标像素值为255、背景像素为0的二值化图像;然后,进入步骤S124。

步骤S123,将像素小于均值pi的像素(黑色背景)设为0,大于均值的像素(待抠取目标)设为255,以三张目标像素值为255、背景像素为0的二值化图像;然后,进入步骤S124。

步骤S124,将三个通道下二值化后的图像进行合并,以得到叠加后的二值化图像。

请同时参阅图4(a)、4(b),分别为白色背景下的待抠取图像及叠加后的二值化图像。相较于仅使用灰度图像二值化,采用三个分量二值化并叠加的方法可提高稳定性。

步骤S125,通过腐蚀、膨胀、提取该二值化图像的轮廓并填充。

由图4(b)可以看出,此时得到的二值化图像中还存在着很多的空洞及边缘背景干扰,通过腐蚀膨胀消除一些较小的干扰背景,再通过提取轮廓并填充轮廓,可消除这些空洞,如图4(c)所示。

步骤S126,判断经过处理后的二值化图像是否存在背景残留;若是,则进入步骤S127;否则,进入步骤S128。

步骤S127,剔除残留背景。

具体地,经处理后的二值化图像中仍可能会存在背景残留,再次提取轮廓,根据轮廓个数判断是否存在残留(理想条件下只有目标一个轮廓)。如果存在残留(如图4(c)),则根据轮廓面积剔除这些残留背景:只保留面积最大的轮廓(目标本身),剔除剩余轮廓。最后得到修正后的二值化图像,如图4(d)所示。如果没有背景残留,则直接得到二值化图像;

步骤S128,记录得到的二值化图像的目标轮廓信息。

具体地,用矩形框框住修正后的目标轮廓,并记录矩形框的左上角坐标及矩形框的长和宽,用于后续的图像合成。经过此流程后,自动得到二值化的待抠取图像及目标轮廓信息。

请参阅图5、6,以冰箱为待合成图像(背景图像)为例,待抠取图像(前景图像)为白色背景下的灌装可口可乐,生成的合成图像(只有一个目标物体)。当待合成图像与待抠取图像固定时,通过改变位置即可生成不同的合成图像(图5中生成了4张合成图像)。经此流程后,得到合成图像及目标在合成后图像中的类别、位置信息,即自动合成图像及相应的标签。

请参阅图7,为本发明实施方式中的一种图像处理装置的结构示意图。其中,该装置20可应用于图像识别和图像处理场景中,该装置20可设置在各种运算设备,例如,计算机、掌上电脑、单片机等,可以是运行于这些设备的软件单元、硬件单元或软硬件相结合的单元,也可以作为独立的挂件集成到这些设备中或运行于这些设备的应用系统中。

该装置20包括图像获取单元21、图像抠取单元22和图像合成单元23。

该图像获取单元21用于读取待合成图像以及待抠取图像。

其中,预先设置待抠取图像中目标物体类别的编号及目标类别的名称,并且类别编号和类别名称一一对应。例如,类别名称设置为A,类别编号设置为0。

在本实施方式中,通过图像采集装置进行待合成图像的采集。其中,该图像采集装置包括摄像头、光源、待拍摄的物体、计算机和背景。将待合成的目标物体置于背景中间位置,通过摄像头采集其图像。对于深度学习模型,不同光照、不同形态的训练图像可丰富目标的特征。因此,在拍摄图像时,通过随机改变光源摆放位置、光照强度大小来改变光照,通过随机改变目标物体摆放姿势、角度等来改变目标物体形态,可获取目标物体在多种光照、多种形态下的图像数据。

在本实施方式中,为了更好的抠取目标图像,预先采集单一化图像背景的待合成的图像。具体地,在RGB颜色空间中,用(0,0,0)表示黑色,(255,255,255)表示白色,其余颜色均在这个范围内,因此,本发明将背景颜色选为黑色或者白色。在后续抠取目标过程中,根据待抠取目标和背景的R、G、B分量分布范围不同来剔除背景,因此待抠取目标与其背景的R、G、B分量差距越大,抠取效果越好。在采集数据时,当待抠取目标的RGB分量均大于某个阈值时(参考值为145),此时宜将背景设为黑色,否则背景设为白色。

该图像抠取单元22用于对读取的待抠取图像进行RGB通道拆分以分别计算三个通道图像的边缘像素平均值,利用平均值对三个通道的图像进行二值化处理,并将三个通道的二值化图像合并得到叠加后的二值化图像,从而记录该二值化图像的目标轮廓信息。

该图像合成单元23用于读取目标轮廓信息以在该待合成图像中生成合成图像位置,在该合成图像位置上放置待抠取图像以生成合成图像,并将目标类别及生成的位置保存为标签文件。

具体地,在待合成图像中,随机生成位置,同时结合抠取目标的轮廓信息对该位置的有效性进行判断:如果抠取目标放置时会发生越界,或者与其他目标轮廓重叠率超过阈值,则重新生成该位置,直到生成有效位置。如果一张待合成图像中要放置多个抠取目标,即待抠取图像有多张,则继续读取待抠取图像。

进一步地,将目标类别及生成的位置保存为标签文件(txt格式),其中,标签文件(txt)记录了图像的名称、对应的目标类别名称及目标的位置信息(矩形框表示),标签格式形如下:

A.jpg B x1y1x2y2

其中,A.jpg为合成图像的名称,B为目标类别,x1、y1、x2、y2为目标(矩形框表示)的左上、右下坐标。

进一步地,请同时参阅图8,为本发明实施方式中的图像抠取单元的结构示意图。该图像抠取单元22包括通道拆分模块220、计算模块221、二值化模块222、合并模块223、轮廓处理模块224以及轮廓记录模块225。

该通道拆分模块220用于读取该待抠取图像,对该图像拆分为R、G、B三个通道下的图像。

该计算模块221用于分别计算三个通道图像的边缘像素的平均值。

具体地,具体地,分别选取三个通道图像左右边缘各N列像素,以分别计算三个通道图像的边缘像素平均值(记为pi,i=1,2,3)。在本实施方式中,N=10。

该二值化模块222用于:

在该平均值大于阈值时确认该图像的背景为白色背景,将像素值大于均值pi的像素值(白色背景)设为0,小于均值的像素值(待抠取目标)设为255,以得到三张目标像素值为255、背景像素为0的二值化图像;以及

在该平均值不大于阈值时确认该图像的背景为黑色背景,将像素小于均值pi的像素(黑色背景)设为0,大于均值的像素(待抠取目标)设为255,以三张目标像素值为255、背景像素为0的二值化图像。

在本实施方式中,该阈值为145。

该合并模块223用于将三个通道下二值化后的图像进行合并,以得到叠加后的二值化图像。

该轮廓处理模块224用于通过腐蚀、膨胀、提取该二值化图像的轮廓并填充,并对经过处理后的二值化图像残留的背景进行剔除。

该轮廓记录模块225用于记录得到的二值化图像的目标轮廓信息。具体地,用矩形框框住修正后的目标轮廓,并记录矩形框的左上角坐标及矩形框的长和宽,用于后续的图像合成。经过此流程后,自动得到二值化的待抠取图像及目标轮廓信息。

进一步地,请同时参阅图9,为本发明实施方式中的图像合成单元的结构示意图。该图像合成单元23包括位置生成模块230、判断模块231以及目标图像合成模块232。

该位置生成模块230用于在待合成图像上确定目标图像的放置位置。

该判断模块231用于:

根据记录所述目标轮廓信息的矩形的长和宽判断是否超出所述待合成图像的边界;

当确定目标轮廓信息的矩形的长和宽判断超出所述待合成图像的边界,触发位置生成模块230重新在待合成图像上确定目标图像的放置位置;

当确定目标轮廓信息的矩形的长和宽判断未超出所述待合成图像的边界,判断目标图像放置位置的重叠率是否小于阈值;

当确定目标图像放置位置的重叠率小于阈值时,触发位置生成模块230重新在待合成图像上确定目标图像的放置位置;

当确定目标图像放置位置的重叠率不小于阈值时,产生触发信号。

具体地,首先随机生成位置,同时根据记录目标轮廓信息的矩形的长和宽判断是否越界,如果超出待合成图像边界,则重新生成该位置。此外,因为待合成图像中可能会有多个目标的合成,为了防止合成时不同目标可能发生重叠,在合成前需要判断重叠率,如果任意两个目标的重叠率超过阈值(经验值,参考值0.1~0.3),则重新生成合成图像的目标放置位置,直到满足要求为止。

该目标图像合成模块232响应该触发信号在生成的位置上放置抠取的目标,实现图像的合成。

如上所述,本发明通过在拍摄待合成目标时,先使用简单的、单一化的背景(只采用黑色或者白色背景)拍摄目标,便于后续的目标抠取与合成;针对图像采集时,在多个场景下的重复拍摄问题,通过自动抠取图像,并与其他背景图像进行自动合成来解决,一次拍摄即可快速用于不同的应用场景;针对目标检测任务中,深度学习训练图像的样本标签需人工标注的问题,通过合成图像时,记录合成图像信息(合成图像名称、目标类别、目标位置),实现自动生成训练图像标签的方法来解决,能够极大降低人工标注工作量,提高深度学习训练效率。采用合成的图像及自动生成的样本标签,针对深度学习模型进行有效训练,通过将合成图像数据与真实场景下的标注数据按一定的比例混合使用,可以进一步提高模型训练的准确率。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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