掌桥专利:专业的专利平台
掌桥专利
首页

图像分割方法以及图像分割装置

文献发布时间:2023-06-19 11:52:33


图像分割方法以及图像分割装置

技术领域

本申请涉及人工智能领域,更具体地,涉及计算机视觉领域中的图像分割方法和图像分割装置。

背景技术

计算机视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取我们所需的,被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机/摄像机)和大脑(算法)用来代替人眼对目标进行识别、跟踪和测量等,从而使计算机能够感知环境。精确分割任务在计算机视觉领域中具有广泛的应用。例如,图像的背景虚化、背景替换,电商的广告制作以及直播、电影(动画)制作等,其中,精确定分割可以是指对获取的图像或者视频上的目标对象与背景的分割线。

目前,通常采用多边形法,或者曲线拟合法进行图像的精确分割;其中,通过多边形法得到的图像分割线与图像实际的分割线的差异较大准确性较低;通过曲线拟合法需要人工手动选择多个分界点导致需要耗费大量的人力。

因此,在节省人力的情况下,如何提高图像的精确分割结果的准确性成为一个亟需解决的问题。

发明内容

本申请提供一种图像分割方法以及图像分割装置,能够在节省人力的情况下,得到与图像的自然边界相吻合的分割结果,从而提高图像分割结果的准确性。

第一方面,一种图像分割方法,应用于具有显示屏的终端设备,包括:检测到用户在第一图像中手动标记锚点的第一操作,其中,所述锚点包括起始锚点与目标锚点;检测到所述用户指示自动分割所述第一图像的第二操作;响应于所述第二操作,在所述显示屏上显示第二图像,其中,所述第二图像是所述第一图像经过所述第二操作后得到的图像,所述第二图像包括所述起始锚点与所述目标锚点之间的分割线,所述分割线是通过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置移动得到的。

其中,上述分割线可以是通过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置自动移动得到的;其中,自动移动可以是指用户在第一图像中只需要手动标记起始锚点与目标锚点,或者手动标记包括起始锚点与目标锚点的少量标记点,就可以自动得到第一图像中起始锚点与目标锚点之间的分割线。

其中,分界点可以是指图像中目标区域与背景区域之间分界线上的点,其中,目标区域可以是指包括目标对象的区域。

上述第一图像可以是指具有图像分割需求的图像;第二图像可以是指对第一图像经过自动分割处理后得到的图像。

应理解,起始锚点与目标锚点可以是待处理图像中位置不发生改变的位置,通过分界点从起始锚点至目标锚点的移动可以得到第一图像在起始锚点与目标锚点之间的分割线,该分割线与第一图像中不同对象的自然边界吻合。

在本申请的实施例中,通过在第一图像上手动标记包括起始锚点与目标锚点的少量锚点,通过分界点在第一图像的像素梯度图中以起始锚点为起始位置并且以目标锚点为目标位置自动移动得到第一图像的分割线,能够在节省人力的情况下,得到与图像的自然边界相吻合的分割结果,从而提高图像分割结果的准确性。

在一种可能的实现方式中,上述用户用于指示自动分割的第二操作可以包括用户点击图像处理工具中的自动分割图像的按钮,也可以包括用户通过语音指示自动分割的行为,或者,还可以包括用户其它的指示自动分割的行为。

结合第一方面,在第一方面的某些实现方式中,所述分割线与所述第一图像的像素梯度图中岭脊方向的分割线重合。

需要说明的是,第一图像的像素梯度图中岭脊方向可以是指由像素梯度图中梯度局部极大值构成的曲线。

在本申请的实施例中,得到的第一图像的分割线可以与第一图像的像素梯度图中岭脊方向的分割线重合,即第一图像的分割线可以是根据第一图像的像素梯度图得到的,从而避免人工手动在第一图像中标记大量的锚点引入的耗费大量人力的问题;通过人工标记少量的锚点,使得在节省人力的情况下,能够提高图像分割结果的准确性。

结合第一方面,在第一方面的某些实现方式中,所述响应于所述第二操作,在所述显示屏上显示所述第二图像,包括:根据所述第一图像查找所述第一图像对应的掩膜图像与割线图像,其中,所述掩膜图像用于表示所述第一图像中的不同对象,所述割线图像用于表示所述第一图像中不同对象的边界;在所述显示屏上显示所述第一图像、所述掩膜图像以及所述割线图像叠加后的图像。

在一种可能的实现方式中,可以根据第一图像在预设文件路径下查找该第一图像对应的掩膜图像和/或割线图像。

示例性地,每个图像文件可以保存为位图文件(bitmap,BMP)、无损压缩的位图图形格式(portable network graphics,PNG)或其他图像文件格式;图像文件、掩膜文件以及割线文件之间的对应关系,可以通过图标或文件名命名规则来描述,或者,通过将三个图像打包在一个文件里或一个文件夹里进行表示。

结合第一方面,在第一方面的某些实现方式中,还包括:检测到所述用户指示通过所述掩膜图像或者所述割线图像对所述第二图像进行处理的第三操作。

在一种可能的实现方式中,第二图像可以是指在显示屏上显示的第一图像、掩膜图像以及割线图像叠加后的图像,第三操作可以用于指示通过掩膜图像或者割线图像对叠加后的图像进行自动分割处理。

在本申请的实施例中,用户可以选择根据掩膜图像或者割线图像对第一图像进行自动分割处理,比如,用户可以根据掩膜图像或者割线图像手动调整锚点的位置。

结合第一方面,在第一方面的某些实现方式中,所述第二图像是根据所述第一图像的像素梯度图与锚点牵引模型得到的,所述锚点牵引模型用于指示所述分界点的移动方向。

在本申请的实施例中,第二图像可以是根据第一图像的像素梯度图以及锚点牵引模型得到的,锚点牵引模型可以指示分界点从起始锚点自动移动至目标锚点时每一步的移动方向,从而减少人工参与度。

结合第一方面,在第一方面的某些实现方式中,在所述分界点当前位于所述像素梯度图中无岭脊的区域时,所述分界点的移动方向是根据第一连线与第二连线之间的夹角确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线;或者

在所述分界点当前位于所述像素梯度图中有岭脊且有分叉的区域时,所述分界点的移动方向是根据第一连线与第二连线之间的夹角以及距离参数确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线,所述距离参数是指所述分界点的当前位置与所述目标锚点之间的距离;或者

在所述分界点当前位于所述像素梯度图中有岭脊且无分叉区域时,所述分界点的移动方向是根据所述像素梯度图的岭脊方向确定的。

结合第一方面,在第一方面的某些实现方式中,在上一时刻所述分界点的移动方向与当前时刻所述分界点的移动方向相同的情况下,所述分界点的移动方向是根据不同方位的梯度绝对值确定的。

在本申请的实施例中,在分界点的上一时刻的移动方向与当前时刻的移动方向相同的情况下,可以使得分界点向预设的方向移动,即分界点的移动方向可以是根据不同移动方位的梯度绝对值确定的,从而能够补偿分界点在沿着梯度图的岭脊方向移动时的误差。

结合第一方面,在第一方面的某些实现方式中,所述锚点是通过优化初始锚点得到的,其中,所述初始锚点是用户在所述第一图像中手动标记的锚点。

在本申请的实施例中,由于待处理图像中的锚点是用户手动在待处理图像中标记的,因此,锚点的位置可能存在一定的偏差;为了使得锚点的位置更加准确,从而提高待处理图像分割线的准确性,可以对用户手动标记的锚点进行位置优化。

第二方面,提供一种图像分割方法,包括:获取第一图像以及所述第一图像中锚点的位置信息,其中,所述锚点包括起始锚点与目标锚点;根据所述第一图像与所述锚点,得到第二图像,其中,所述第二图像是所述第一图像经过图像分割处理后得到的图像,所述第二图像包括所述起始锚点与所述目标锚点之间的分割线,所述分割线是通过分界点在所述第一图像的像素梯度图中以所述起始锚点为起始位置并且以所述目标锚点为目标位置移动得到的。

其中,分界点可以是指图像中目标区域与背景区域之间分界线上的点,其中,目标区域可以是指包括目标对象的区域。

在一种可能的实现方式中,可以获取第一图像、第一图像的像素梯度图以及所述第一图像中锚点的位置信息,所述锚点可以包括起始锚点与目标锚点。

其中,上述分割线可以是通过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置自动移动得到的;其中,自动移动可以是获取在第一图像中的起始锚点与目标锚点,或者包括起始锚点与目标锚点的少量标记点,就可以自动得到第一图像中起始锚点与目标锚点之间的分割线。

上述第一图像可以是指具有图像分割需求的图像;第二图像可以是指对第一图像经过自动分割处理后得到的图像。

应理解,起始锚点与目标锚点可以是待处理图像中位置不发生改变的位置,通过分界点从起始锚点至目标锚点的移动可以得到第一图像在起始锚点与目标锚点之间的分割线,该分割线与第一图像中不同对象的自然边界吻合。

在本申请的实施例中,通过在第一图像上手动标记包括起始锚点与目标锚点的少量锚点,通过分界点在第一图像的像素梯度图中以起始锚点为起始位置并且以目标锚点为目标位置自动移动得到第一图像的分割线,能够在节省人力的情况下,得到与图像的自然边界相吻合的分割结果,从而提高图像分割结果的准确性。

结合第二方面,在第二方面的某些实现方式中,所述分割线与所述像素梯度图中岭脊方向的分割线重合。

需要说明的是,像素梯度图中岭脊方向可以是指由像素梯度图中梯度局部极大值构成的曲线。

在本申请的实施例中,得到的第一图像的分割线可以与第一图像的像素梯度图中岭脊方向的分割线重合,即第一图像的分割线可以是根据第一图像的像素梯度图得到的,从而避免人工手动在第一图像中标记大量的锚点引入的耗费大量人力的问题;通过人工标记少量的锚点,使得在节省人力的情况下,能够提高图像分割结果的准确性。

结合第二方面,在第二方面的某些实现方式中,所述根据所述第一图像与所述锚点,得到第二图像,包括:根据所述像素梯度图、所述锚点以及锚点牵引模型,得到所述第二图像,其中,所述锚点牵引模型用于指示所述分界点的移动方向。

在本申请的实施例中,割线图像可以是根据第一图像的像素梯度图以及锚点牵引模型得到的,锚点牵引模型可以指示分界点从起始锚点自动移动至目标锚点时每一步的移动方向,从而减少人工参与度。

结合第二方面,在第二方面的某些实现方式中,若所述分界点当前位于所述像素梯度图中无岭脊的区域,则所述分界点的移动方向是根据第一连线与第二连线之间的夹角确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线;或者,

若所述分界点当前位于所述像素梯度图中有岭脊且有分叉的区域,所述分界点的移动方向是根据第一连线与第二连线之间的夹角以及距离参数确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线,所述距离参数是指所述分界点的当前位置与所述目标锚点之间的距离;或者,

若所述分界点当前位于所述像素梯度图中有岭脊且无分叉区域,所述分界点的移动方向是根据所述像素梯度图的岭脊方向确定的。

结合第二方面,在第二方面的某些实现方式中,还包括:若所述分界点上一时刻的移动方向与当前时刻的移动方向相同,则根据不同移动方位的梯度绝对值确定所述分界点的移动方向。

在本申请的实施例中,在分界点的上一时刻的移动方向与当前时刻的移动方向相同的情况下,可以使得分界点向预设的方向移动,即分界点的移动方向可以是根据不同移动方位的梯度绝对值确定的,从而能够补偿分界点在沿着梯度图的岭脊方向移动时的误差。

结合第二方面,在第二方面的某些实现方式中,所述锚点是通过优化初始锚点得到的,其中,所述初始锚点是用户在所述第一图像中手动标记的锚点。

在本申请的实施例中,由于待处理图像中的锚点是用户手动在待处理图像中标记的,因此,锚点的位置可能存在一定的偏差;为了使得锚点的位置更加准确,从而提高待处理图像分割线的准确性,可以对用户手动标记的锚点进行位置优化。

第三方面,提供了一种图像分割装置,所述图像分割装置具有显示屏的终端设备,包括:检测单元,用于检测到用户在第一图像中手动标记锚点的第一操作,其中,所述锚点包括起始锚点与目标锚点;检测到所述用户指示自动分割所述第一图像的第二操作;

处理单元,用于响应于所述第二操作,在所述显示屏上显示第二图像,所述第二图像是所述第一图像经过所述第二操作后得到的图像,所述第二图像包括所述起始锚点与所述目标锚点之间的分割线,其中,所述分割线是通过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置移动得到的。

其中,上述分割线可以是通过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置自动移动得到的;其中,自动移动可以是指用户在第一图像中只需要手动标记起始锚点与目标锚点或者包括起始锚点与目标锚点的少量标记点,就可以自动得到第一图像中起始锚点与目标锚点之间的分割线。

结合第三方面,在第三方面的某些实现方式中,所述分割线与所述第一图像的像素梯度图中岭脊方向的分割线重合。

结合第三方面,在第三方面的某些实现方式中,所述处理单元具体用于:根据所述第一图像查找所述第一图像对应的掩膜图像与割线图像,其中,所述掩膜图像用于表示所述第一图像中的不同对象,所述割线图像用于表示所述第一图像中不同对象的边界;在所述显示屏上显示所述第一图像、所述掩膜图像以及所述割线图像叠加后的图像。

结合第三方面,在第三方面的某些实现方式中,所述检测单元还用于检测到所述用户指示通过所述掩膜图像或者所述割线图像对所述第二图像进行处理的第三操作。

在一种可能的实现方式中,第二图像可以是指在显示屏上显示的第一图像、掩膜图像以及割线图像叠加后的图像,第三操作可以用于指示通过掩膜图像或者割线图像对叠加后的图像进行自动分割处理。

结合第三方面,在第三方面的某些实现方式中,所述第二图像是根据所述第一图像的像素梯度图与锚点牵引模型得到的,所述锚点牵引模型用于指示所述分界点的移动方向。

结合第三方面,在第三方面的某些实现方式中,在所述分界点当前位于所述像素梯度图中无岭脊的区域时,所述分界点的移动方向是根据第一连线与第二连线之间的夹角确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线;或者

在所述分界点当前位于所述像素梯度图中有岭脊且有分叉的区域时,所述分界点的移动方向是根据第一连线与第二连线之间的夹角以及距离参数确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线,所述距离参数是指所述分界点的当前位置与所述目标锚点之间的距离;或者

在所述分界点当前位于所述像素梯度图中有岭脊且无分叉区域时,所述分界点的移动方向是根据所述像素梯度图的岭脊方向确定的。

结合第三方面,在第三方面的某些实现方式中,在上一时刻所述分界点的移动方向与当前时刻所述分界点的移动方向相同的情况下,所述分界点的移动方向是根据不同方位的梯度绝对值确定的。

结合第三方面,在第三方面的某些实现方式中,所述锚点是通过优化初始锚点得到的,其中,所述初始锚点是用户在所述第一图像中手动标记的锚点。

第四方面,提供了一种图像分割装置,包括:获取单元,用于获取第一图像以及所述第一图像中锚点的位置信息,其中,所述锚点包括起始锚点与目标锚点;处理单元,用于根据所述第一图像与所述锚点,得到第二图像,其中,所述第二图像是所述第一图像经过图像分割处理后得到的图像,所述第二图像包括所述起始锚点与所述目标锚点之间的分割线,所述分割线是通过分界点在所述第一图像的像素梯度图中以所述起始锚点为起始位置并且以所述目标锚点为目标位置移动得到的。

在一种可能的实现方式中,可以获取第一图像、第一图像的像素梯度图以及所述第一图像中锚点的位置信息,所述锚点可以包括起始锚点与目标锚点。

其中,上述分割线可以是过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置自动移动得到的;其中,自动移动可以是获取在第一图像中的起始锚点与目标锚点,或者包括起始锚点与目标锚点的少量标记点,就可以自动得到第一图像中起始锚点与目标锚点之间的分割线。

结合第四方面,在第四方面的某些实现方式中,所述分割线与所述像素梯度图中岭脊方向的分割线重合。

结合第四方面,在第四方面的某些实现方式中,所述处理单元具体用于:根据所述像素梯度图、所述锚点以及锚点牵引模型,得到所述第二图像,其中,所述锚点牵引模型用于指示所述分界点的移动方向。

结合第四方面,在第四方面的某些实现方式中,若所述分界点当前位于所述像素梯度图中无岭脊的区域,则所述分界点的移动方向是根据第一连线与第二连线之间的夹角确定的,其中,所述第一直线是指八个方位中每个方位的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线;或者,

若所述分界点当前位于所述像素梯度图中有岭脊且有分叉的区域,所述分界点的移动方向是根据第一连线与第二连线之间的夹角以及距离参数确定的,其中,所述第一直线是指八个方位中每个方位的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线,所述距离参数是指所述分界点的当前位置与所述目标锚点之间的距离;或者,

若所述分界点当前位于所述像素梯度图中有岭脊且无分叉区域,所述分界点的移动方向是根据所述像素梯度图的岭脊方向确定的。

结合第四方面,在第四方面的某些实现方式中,所述处理单元还用于:若所述分界点上一时刻的移动方向与当前时刻的移动方向相同,则根据不同移动方位的梯度绝对值确定所述分界点的移动方向。

结合第四方面,在第四方面的某些实现方式中,所述锚点是通过优化初始锚点得到的,其中,所述初始锚点是用户在所述第一图像中手动标记的锚点。

第五方面,提供了一种图像分割装置,该图像分割装置具有显示屏,包括:存储器,用于存储程序;处理器,用于执行该存储器存储的程序,当该存储器存储的程序被执行时,该处理器用于执行:检测到用户在第一图像中手动标记锚点的第一操作,其中,所述锚点包括起始锚点与目标锚点;检测到所述用户指示自动分割所述第一图像的第二操作;响应于所述第二操作,在所述显示屏上显示第二图像,所述第二图像是所述第一图像经过所述第二操作后得到的图像,所述第二图像包括所述起始锚点与所述目标锚点之间的分割线,其中,所述分割线是通过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置移动得到的。

在一种可能的实现方式中,上述图像分割装置中包括的处理器还用于执行第一方面以及第一方面的任意一种实现方式中的图像分割方法。

应理解,在上述第一方面中对相关内容的扩展、限定、解释和说明也适用于第五方面中相同的内容。

第六方面,提供了一种图像分割装置,该图像分割装置包括:存储器,用于存储程序;处理器,用于执行该存储器存储的程序,当该存储器存储的程序被执行时,该处理器用于执行:获取第一图像以及所述第一图像中锚点的位置信息,其中,所述锚点包括起始锚点与目标锚点;根据所述像素梯度图与所述锚点,得到第二图像,其中,所述第二图像是所述第一图像经过图像分割处理后得到的图像,所述第二图像包括所述起始锚点与所述目标锚点之间的分割线,所述分割线是通过分界点在所述第一图像的像素梯度图中以所述起始锚点为起始位置并且以所述目标锚点为目标位置移动得到的。

在一种可能的实现方式中,上述图像分割装置中包括的处理器还用于执行第一方面以及第一方面的任意一种实现方式中的图像分割方法。

应理解,在上述第一方面中对相关内容的扩展、限定、解释和说明也适用于第六方面中相同的内容。

第七方面,提供了一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行上述第一方面以及第一方面的任意一种实现方式中的图像分割方法。

第八方面,提供了一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行上述第二方面以及第二方面的任意一种实现方式中的图像分割方法。

第九方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面以及第一方面的任意一种实现方式中的图像分割方法。

第十方面,供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第二方面以及第二方面的任意一种实现方式中的图像分割方法。

第十一方面,提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面以及第一方面的任意一种实现方式中的图像分割方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行上述第一方面以及第一方面中的任意一种实现方式中的图像分割方法。

第十二方面,提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第二方面以及第二方面的任意一种实现方式中的图像分割方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行上述第二方面以及第二方面的任意一种实现方式中的图像分割方法。

附图说明

图1是本申请实施例提供的系统架构的示意图;

图2是本申请实施例提供的图像分割方法的示意性流程图;

图3是本申请实施例提供的图像分割方法的示意性流程图;

图4是本申请实施例提供的N-map调整掩膜图像的示意图;

图5是本申请实施例提供的待处理图像与像素梯度图的示意图;

图6是本申请实施例提供的优化锚点位置方法的示意性流程图;

图7是本申请实施例提供的四向卷积核的示意图;

图8是本申请实施例提供的图像分割方法的示意性流程图;

图9是本申请实施例提供的图像分割方法的示意性流程图;

图10是本申请实施例提供的基于锚点牵引梯度岭跑算法的示意性流程图;

图11是本申请实施例提供的不同方位梯度计算的卷积核的示意图;

图12是本申请实施例提供的执行横向漂移的示意图;

图13是本申请实施例提供的锚点牵引模型的示意图;

图14是本申请实施例提供的图像分割装置的示意性框图;

图15是本申请实施例提供的图像分割装置的示意性框图;

图16是本申请实施例提供的图像分割装置的硬件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,通常采用多边形法,或者曲线拟合法进行图像的精确分割;其中,通过多边形法得到的图像分割线与图像实际的分割线的差异较大准确性较低;通过曲线拟合法需要人工手动选择多个分界点导致需要耗费大量的人力。

有鉴于此,本申请实施例提供了一种图像分割方法与装置,通过用户在待处理图像上手动标记起始锚点与目标锚点,使得分界点以起始锚点为起始位置并以目标锚点为目标位置根据待处理图像的像素梯度图自动移动,得到待处理图像的分割线;即在像素梯度图上沿着梯度岭脊方向分界点可以自动跑出一条分割线,使该分割线与图像的自然边界相吻合,从而实现在节约人力的情况下,提高了图像分割结果的准确性。

图1是本申请实施例提供的系统架构的示意图。

如图1所示,系统100中可以包括应用服务器110、数据服务器120以及多个客户端(例如,客户端131、客户端132以及客户端133);其中,客户端可以通过通信网络与应用服务器110与数据服务器120连接;数据服务器110可以用于存储海量的图像文件以及标注文件;应用服务器120可以用于提供图像标注,或者修图服务;客户端可以用于提供人机交互的界面。

例如,客户端可以为移动的或固定的终端;例如,客户端可以是具有图像处理功能的移动电话、平板个人电脑(tablet personal computer,TPC)、媒体播放器、智能电视、笔记本电脑(laptop computer,LC)、个人数字助理(personal digital assistant,PDA)、个人计算机(personal computer,PC)、照相机、摄像机、智能手表、可穿戴式设备(wearabledevice,WD)或者自动驾驶的车辆等,本申请实施例对此不作限定。

其中,每个客户端可以通过任何通信机制/通信标准的通信网络与数据服务器110或者应用服务器120进行交互,其中,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。

应理解,上述图1所示的系统100为多用户系统,本申请提供的图像分割方法也适用于单用户系统;对于单用户系统即包括一个客户端的系统,本申请实施例提供的图像分割方法可以部署于客户端;对于多用户系统即图1所示的包括多个客户端的系统,本申请实施例提供的图像分割方法可以部署于服务器上,比如,应用服务器或者数据服务器。

示例性地,本申请实施例提供的图像分割方法可以应用于图像分割标注工具或者,修图工具中,通过图像分割方法可以实现图像的背景替换或者图像的背景虚化。

例如,用户在智能终端中开启视频通话功能,在拍摄的过程中,可以实时进行图像分割后,仅保留目标对象区域,实现视频通话背景区域的替换。

例如,用户在智能终端开启拍摄功能,在拍摄的过程中,可以实时进行图像分割后,让被拍摄目标对象的前景区域清晰背景区域虚化,实现单反相机的大光圈的图像效果。

应理解,上文介绍的图像的背景虚化和图像的背景替换只是本申请实施例的图像处理方法所应用的两个具体场景,本申请实施例的图像处理方法在应用时并不限于上述两个场景,本申请实施例的图像处理方法能够应用到任何需要进行图像分割场景中。

下面结合图2至图13对本申请实施例的图像分割方法进行详细的介绍。

图2是本申请实施例提供的图像分割方法的示意性流程图。该方法可以由图1所示服务器或者客户端执行,图2所示的方法包括步骤210至步骤230,下面分别对这些步骤进行详细的描述。

步骤210、检测到用户在第一图像中手动标记锚点的第一操作。

其中,第一图像可以是指具有图像分割需求的待处理图像,上述锚点可以包括起始锚点与目标锚点。

示例性地,在步骤210之前用户可以通过操作打开图像处理工具,并且将第一图像导入图像处理工具,在图像处理工具的界面可以显示需要进行图像分割的第一图像。

步骤220、检测到所述用户指示自动分割所述第一图像的第二操作。

示例性地,用户用于指示自动分割第一图像的第二操作可以包括用户点击图像处理工具中的自动分割图像的按钮,也可以包括用户通过语音指示自动分割的行为,或者,还可以包括用户其它的指示自动分割的行为;上述为举例说明,并不对本申请作任何限定。

步骤230、响应于所述第二操作,在所述显示屏上显示第二图像;

其中,所述第二图像是所述第一图像经过所述第二操作后得到的图像,所述第二图像包括所述起始锚点与所述目标锚点之间的分割线,所述分割线是通过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置移动得到的。

例如,上述分割线可以是过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置自动移动得到的;其中,自动移动可以是指用户在第一图像中只需要手动标记起始锚点与目标锚点或者包括起始锚点与目标锚点的少量标记点,就可以自动得到第一图像中起始锚点与目标锚点之间的分割线。

应理解,起始锚点与目标锚点可以是待处理图像中位置不发生改变的位置,通过分界点从起始锚点至目标锚点的移动可以得到第一图像中起始锚点与目标锚点之间的分割线,该分割线与第一图像中不同对象的自然边界吻合。

示例性地,上述分界点可以是以起始锚点为起始位置,目标锚点为目标位置沿着第一图像的像素梯度图的岭脊跑出一条分割线,即分割线与第一图像的像素梯度图中岭脊方向的分割线重合;其中,第一图像的像素梯度图可以是指第一图像中不同行或者不同列中的像素亮度的变化量组成的图像。

在一个示例中,在用户用于指示自动分割的第二操作后,终端设备可以根据第一图像查找该第一图像对应的掩膜图像与割线图像,其中,掩膜图像可以用于表示待第一图像中的对象区域,割线图像可以用于表示所述第一图像中不同对象的边界;将待处理图像、掩膜图像以及割线图像三者叠加后在图像处理工具的界面中显示。

例如,通过查找后查找到该第一图像对应的掩膜图像以及第一图像对应的割线图像。

在一个示例中,通过搜索后未查找到该第一图像对应的割线图像与掩膜图像,则需要生成该第一图像对应的割线图像与掩膜图像。

例如,通过第一图像采用Mask-RCNN、DeepLabV3或者其他算法进行自动图像分割,从而生成第一图像对应的掩膜图像;进一步地,可以根据第一图像与掩膜图像,采用预设的边界门限,使用基于N-map的方法自动调整掩膜范围,然后根据掩膜边界自动生成割线图像,使割线图像与掩膜图像自动对齐。

其中,N-map方法也可以称为基于N-map的边界漂移;假设,在掩膜层文件中有N个图像分割区域,每个像素的值为该像素所属的区域编号K,K∈[0,N-1];在割线两侧设置未知分类的像素,将其掩膜层的值改为N;然后,使用预先训练过的深度神经网络处理对应的图像层文件,把未知分类的像素和背景像素分配到N个分割区域里。

在一个示例中,通过搜索后查找到第一图像对应的割线图像,未查找到该第一图像对应掩膜图像,则需要生成该第一图像对应的掩膜图像。

在一个示例中,通过搜索后查找到第一图像对应的掩膜图像,未查找到该第一图像对应割线图像,则需要生成该第一图像对应的割线图像;生成割线图像的具体流程参见后面图9与图10所示的示意性流程图。

进一步地,用户可以手动选择通过上述掩膜图像或者割线图像对第一图像进行分割处理。

需要说明的是,在用户调整掩膜图像后需要对割线图像进行同步地更新,即使得更新后的掩膜图像与割线图像同步对齐;同理,在用户调整割线图像后需要对掩膜图像进行同步地更新,即使得更新后的割线图像与掩膜图像同步对齐。

可选地,在本申请的实施例中,图像分割方法还包括:检测到所述用户指示通过所述掩膜图像或者所述割线图像对所述第二图像进行处理的第三操作。

在一种可能的实现方式中,上述第二图像可以是指在显示屏上显示的第一图像、掩膜图像以及割线图像叠加后的图像,第三操作可以用于指示通过掩膜图像或者割线图像对叠加后的图像进行自动分割处理处理。

可选地,在本申请的实施例中,第二图像可以是根据第一图像的像素梯度图与锚点牵引模型得到的,锚点牵引模型可以用于指示所述分界点的移动方向,即可以通过预设的锚点牵引模型使得锚点在沿着像素梯度图的岭脊方向得到第一图像的分割线,使得第一图像的分割线与图像的自然边界吻合。

示例性地,锚点牵引模型可以为分割线中的分界点提供移动方向,比如,在所述分界点当前位于所述像素梯度图中无岭脊的区域时,所述分界点的移动方向是根据第一连线与第二连线之间的夹角确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二连线是指所述分界点的当前位置与所述目标锚点之间的连线;

或者,在所述分界点当前位于所述像素梯度图中有岭脊且有分叉的区域时,所述分界点的移动方向是根据第一连线与第二连线之间的夹角以及距离参数确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二连线是指所述分界点的当前位置与所述目标锚点之间的连线,所述距离参数是指所述分界点的当前位置与所述目标锚点之间的距离;

或者,在所述分界点当前位于所述像素梯度图中有岭脊且无分叉区域时,所述分界点的移动方向是根据所述像素梯度图的岭脊方向确定的。

需要说明的是,第一直线即八个方位中每个方位所在的直接即如图11中的(a)所示,可以分别是指直线oa、直线ob、直线oc、直线od、直线oe、直线of、直线og、直线oh。

示例性地,目标锚点(例如,锚点B)对跑点(例如,分界点)的引力模型可以看作是由强引力模型和弱引力模型组成;假设跑点与目标锚点之间的距离为dis,锚点A与锚点B之间的距离为d0,8个方位与锚点AB连线的夹角为θ

进一步地,为了补偿分界点在沿着梯度图的岭脊方向移动时的误差,在分界点的上一时刻的移动方向与当前时刻的移动方向相同的情况下,可以使得分界点向预设的方向移动,即分界点的移动方向是根据不同移动方位的梯度绝对值确定的。

在本申请的实施例中,由于锚点的位置是用户通过鼠标在图像中点击产生的,因此,锚点的位置可能存在偏差并不位于该图像对应的梯度图上,为了使得锚点能够根据梯度图准确的得到图像的分割线,可以对锚点位置进行优化。

示例性地,在本申请的实施例中可以通过如图6所示的四向梯度卷积核对锚点的位置进行优化;例如,可以根据锚点在不同方向上的梯度绝对值对锚点的位置进行优化,得到优化后的锚点的位置信息。

图3示出了本申请实施例提供的图像分割方法的示意性流程图,该方法可以由图1所示服务器或者客户端中的图像处理工具(例如,图像分割标注工具,或者修图工具)执行。图3所示的方法包括步骤301至步骤311,下面分别对这些步骤进行详细的描述。

首先,对图像处理工具中包括图层进行说明;在图像处理工具中可以包括图像层(image layer)、掩膜层(mask layer)以及割线层(cutline layer)。

其中,图像层中的每个像素值可以代表图像的灰度,像素坐标(x,y)可以为正整数,该图像层在屏幕上显示为正常的图像,比如,彩色的图像。

示例性地,掩膜层中的每个像素值可以代表掩膜的序列号;例如,掩膜层在屏幕上显示时,每个掩膜序列号相同区域可以采用相同的染色,比如,背景的掩膜序列号为0,显示时染色可以为蓝色;TV的掩膜序列号为1,显示时染色为红色;其它掩膜序列号以此类推。用户可以通过操作图形用户界面(graphic user interface,GUI)上的菜单或按钮或调色板,从而为每个掩膜序列号分配不同的显示颜色。

示例性地,割线层可以是由分割线由锚点和分割点组成的;其中,锚点可以是分割线的端点;锚点的值可以代表锚点的序列号(例如,129至255)分割点的值可以代表分割线的序列号(例如,1至127),值为0的点可以不是锚点也不是分割点。

例如,锚点与分割点可以处于像素之间,不与像素位置重合,其二维坐标(u,v)与附近像素的坐标(x,y)偏移0.5个像素距离。

例如,分割层在屏幕上显示时可以为虚线,锚点在屏幕上显示可以为小圆圈;用户通过点击或者拖动等操作,可以移动任何锚点,分割线也随锚点一起移动。

需要说明的是,用户可以通过操作标注工具GUI上的菜单或按钮,使得每个图层可以独立关闭(不显示)或打开(显示)。

步骤301、读取图像层文件。

例如,可以是用户通过操作导入图像层文件。

步骤302、搜索图像层文件对应的掩膜层文件与割线层文件。

其中,上述图像层文件可以是指具体图像分割需求的图像文件,通过预设文件路径可以对图像层文件对应的文件进行搜索。

示例性地,每个图层文件可以保存为位图文件(bitmap,BMP)、无损压缩的位图图形格式(portable network graphics,PNG)或其他图像文件格式;不同图层文件之间的对应关系,可以用图标或文件名命名规则来描述,或者,通过将图像层文件、该图像层文件对应的掩膜层文件以及该图像层文件对应的割线文件三者打包在一个文件里或一个文件夹里,如表1所示。

表1

示例性地,可以通过分割线序号与锚点序号之间的对应的关系,可以通过表2所示。

表2

在一个示例中,通过搜索后确定保存该图像层文件对应的掩膜层文件以及割线层文件,则可以执行步骤306。

在一个示例中,通过搜索后确定没有该图像层文件对应的割线层文件与掩膜层文件,则执行步骤303自动生成该图像层文件对应的掩膜层文件与割线层文件。

例如,通过图像层文件采用Mask-RCNN或者DeepLabV3或者其他算法进行自动图像分割,从而生成掩膜层文件;进一步地,根据图像层文件与掩膜层文件,采用预设的边界门限,使用基于N-map的方法自动调整掩膜范围,然后根据掩膜边界自动生成割线层文件,使割线层与掩膜层自动对齐。

上述基于N-map调整掩膜层的方法,也可以称为基于N-map的边界漂移;假设,在掩膜层文件中有N个图像分割区域,每个像素的值为该像素所属的区域编号K,K∈[0,N-1];在割线两侧设置未知分类的像素,将其掩膜层的值改为N;然后,使用预先训练过的深度神经网络处理对应的图像层文件,把未知分类的像素和背景像素分配到N个分割区域里。

例如,如图4所示,可以在割线中点垂直割线两侧的连续T个像素,将其掩膜层的值改为N;距离割线中点越远,将其掩膜层的值改为N的像素数越少;在锚点处,将其掩膜层的值改为N的像素数为0;若割线是不包括锚点的闭合曲线,则可以在割线的任何位置将割线两侧掩膜层的值改为N的像素数为T;其中,T可以为预设阈值,可以在用户界面中手工调整。

在一个示例中,通过搜索后确定保存该图像层文件对应的掩膜层文件,但是没有该图像层文件对应的割线层文件,则执行步骤304自动生成割线层文件。

例如,根据图像层文件及其对应的掩膜层文件,可以根据预设的边界门限,使用基于N-map的方法自动调整掩膜范围,然后根据掩膜边界自动生成割线层文件,使割线层与掩膜层自动对齐。

在一个示例中,通过搜索后确定保存该图像层文件对应的割线层文件,但是没有该图像层文件对应的掩膜层文件,则执行步骤305自动生成掩膜层文件。

例如,根据图像层文件及其对应的分割层文件,可以通过用户观察图像边缘,用户手动调整割线层的锚点,使用锚点牵引梯度岭跑法自动调整割线层的割线位置;然后,自动生成掩膜层文件,使掩膜层与割线层自动对齐。

步骤306、可以将三个图层文件叠加显示允许用户编辑图像分割。

步骤307、用户可以选择进行图像分割编辑的图像;例如,若用户选择掩膜层文件进行图像分割的调整,则执行步骤308与步骤309;若用户选择割线层文件进行图像分割的调整,则执行步骤310与步骤311。

步骤308、调整掩膜层文件。

例如,可以通过上述图4所示的N-map方法进行掩膜层文件的调整。

步骤309、对更新后的掩膜层文件进行割线层文件更新,即使得更新后的掩膜层文件与割线层文件同步对齐。

步骤310、调整割线层文件。

例如,可以通过用户观察图像边缘,手动调整割线层文件的锚点;或者使用参见后面图9与图10所示的锚点牵引梯度岭跑算法自动调整割线层文件的割线位置。

步骤311、对更新后的割线层文件进行掩膜层文件更新,即使得更新后的割线层文件与掩膜层文件同步对齐。

示例性地,如图5所示,其中,图5中的(a)所示为原始图像,图5中的(b)所示为与图5中的(a)所示的原始图像对应的像素梯度图;用户可以观察原始图像(例如,彩色图),通过鼠标在原始图像中点击6个锚点(例如,1-6),将6个锚点的位置可以映射到像素梯度图上;在像素梯度图上,可以通过牵引锚点沿像素梯度图的岭脊方向上相邻2个锚点之间跑出一条分割线,6条分割线可以形成1个闭合曲线,曲线内部可以为前景,曲线外部可以为背景。

应理解,在标注工具界面上通常可以只显示原始图像,不显示像素梯度图。

进一步,在本申请的实施例中,由于待处理图像中的锚点是用户手动在待处理图像中标记的,因此,锚点的位置可能存在一定的偏差;为了使得锚点的位置更加准确,从而提高待处理图像分割线的准确性,可以对用户手动标记的锚点进行位置优化。

例如,图6是本申请实施例提供的优化锚点位置方法的示意性流程图。图6所示的方法包括步骤401至步骤406,下面分别对这些步骤进行详细的描述。

步骤401、图形用户界面(graphic user interface,GUI)中显示图像层与割线层。

步骤402、用户编辑锚点位置。

例如,用户可以通过点击图像生成锚点,或者用户可以拖动已有锚点生成更新锚点。

步骤403、获取锚点的原始坐标。

例如,锚点A的原始坐标为(x1,y1)。

步骤404、根据四向梯度搜索岭脊得到优化的锚点位置。

示例性地,如图7所示的为本申请实施例提供的四向卷积核,其中,图7中的(a)所示的为V向梯度卷积核;图7中的(b)所示的为H向梯度卷积核;图7中的(c)所示的为L向梯度卷积核;图7中的(d)所示的为R向梯度卷积核。

例如,图7中的(e)所示的V向梯度岭脊搜索位置与图7中的(f)R向梯度岭脊搜索位置为例对优化锚点的方法进行举例说明,在四向梯度绝对值最大的方向上搜索梯度岭脊;比如,在A-1、A-2、A-3、A-4以及A+1、A+2、A+3、A+4的位置分别计算同向梯度,若出现与锚点A处的同向梯度符号相反的位置,则立即停止搜索;然后在与锚点A处梯度符号相同的位置,取梯度绝对值最大的位置,作为优化后的锚点位置A。

步骤405、调整割线中的锚点数据。

步骤406、在图形用户界面中显示优化后的锚点(x2,y2)。

图8是本申请实施例提供的图像分割方法的示意性流程图。该方法可以由图1所示服务器或者客户端执行,图8所示的方法包括步骤510与步骤520,下面分别对这些步骤进行详细的描述。

步骤510、获取第一图像以及第一图像中锚点的位置信息,其中,锚点可以包括起始锚点与目标锚点。

其中,第一图像可以是指具有图像分割需求的图像。

示例性地,在步骤510中还可以获取第一图像的像素梯度图。

步骤520、根据第一图像与所述锚点,得到第二图像。

其中,第二图像是第一图像经过图像分割处理后得到的图像,第二图像可以包括起始锚点与目标锚点之间的分割线,分割线可以是通过分界点在第一图像的像素梯度图中以起始锚点为起始位置并且以目标锚点为目标位置移动得到的。

应理解,起始锚点与目标锚点可以是第一图像中位置不发生改变的位置,通过分界点从起始锚点至目标锚点的移动可以得到第一图像中起始锚点与目标锚点之间的分割线,该分割线与第一图像中不同对象的自然边界吻合。

示例性地,上述分界点可以是以起始锚点为起始位置,目标锚点为目标位置沿着第一图像的像素梯度图的岭脊跑出一条分割线,即分割线与第一图像的像素梯度图中岭脊方向的分割线重合。

需要说明的是,第一图像的像素梯度图中岭脊方向可以是指由像素梯度图中梯度局部极大值构成的曲线。

可选地,在本申请的实施例中,根据第一图像与所述锚点,得到第二图像,可以包括:根据第一图像的像素梯度图、锚点以及锚点牵引模型,得到第二图像,其中,锚点牵引模型可以用于指示分界点的移动方向。

示例性地,若所述分界点当前位于所述像素梯度图中无岭脊的区域,则所述分界点的移动方向是根据第一连线与第二连线之间的夹角确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线;或者,

若所述分界点当前位于所述像素梯度图中有岭脊且有分叉的区域,所述分界点的移动方向是根据第一连线与第二连线之间的夹角以及距离参数确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二直线是指所述分界点的当前位置与所述目标锚点之间的连线,所述距离参数是指所述分界点的当前位置与所述目标锚点之间的距离;或者,

若所述分界点当前位于所述像素梯度图中有岭脊且无分叉区域,所述分界点的移动方向是根据所述像素梯度图的岭脊方向确定的。

例如,如图13所示,可以根据引力模型计算出每个方位的强引力权重w

进一步地,为了补偿分界点在沿着梯度图的岭脊方向移动时的误差,在分界点的上一时刻的移动方向与当前时刻的移动方向相同的情况下,可以使得分界点向预设的方向移动,即分界点的移动方向是根据不同移动方位的梯度绝对值确定的。

在本申请的实施例中,由于锚点的位置是用户通过鼠标在图像中点击产生的,因此,锚点的位置可能存在偏差并不位于该图像对应的梯度图上,为了使得锚点能够根据梯度图准确的得到图像的分割线,可以对锚点位置进行优化。

示例性地,在本申请的实施例中可以通过如图6所示的四向梯度卷积核对锚点的位置进行优化;例如,可以根据锚点在不同方向上的梯度绝对值对锚点的位置进行优化,得到优化后的锚点的位置信息。

图9示出了本申请实施例提供的图像分割方法的示意性流程图,该方法可以由图1所示服务器或者客户端执行。图9所示的方法包括步骤601至步骤609,下面分别对这些步骤进行详细的描述。

步骤601、获取锚点位置A。

其中,锚点位置A可以用户在图像中选择的锚点,或者用户拖动已有锚点生成的新锚点。

例如,可以是用户通过鼠标点击图像从而产生锚点,或者用户通过鼠标拖动已有锚点生成的新锚点。

进一步地,通过标注工具可以获得锚点A在图片上的位置信息。

步骤602、优化锚点位置A。

应理解,由于锚点位置A是用户通过鼠标在图像中点击产生的,因此,锚点位置A可能存在偏差并不位于该图像对应的梯度图上,为了使得锚点能够根据梯度图准确的得到图像的分割线,可以对锚点位置A进行优化。

示例性地,在本申请的实施例中可以通过如图6所示的四向梯度卷积核对锚点位置A进行优化。

例如,通过图7所示的卷积核分别与图像进行卷积,可以得到锚点A的四向梯度(例如,V向、H向、L向以及R向),在四向梯度绝对值最大的方向上搜索梯度岭脊,若出现与锚点A处的同向梯度符号相反的位置,则立即停止搜索;然后在与锚点A处梯度符号相同的位置,取梯度绝对值最大的位置,作为优化后的锚点位置A。

步骤603、获取锚点位置B。

其中,锚点位置A可以是指图像分割的起始点,锚点位置B可以是指图像分割的目标点,通过锚点位置A与锚点位置B之间的连接可以得到图像的分割线。

同理,锚点位置B可以是用户在图像中选择的锚点,或者用户可以拖动已有的锚点生成的新锚点。

例如,可以是用户通过鼠标点击图像从而产生锚点B,或者用户通过鼠标拖动已有锚点生成的新锚点。

步骤604、优化锚点位置B。

需要说明的是,优化锚点位置B的具体流程与上述步骤602类似,此处不再赘述。

应理解,步骤601与步骤603可以是同时执行的,也可以是先执行步骤601再执行步骤603;同理,步骤602与步骤604可以是同时执行的,也可以是先执行步骤602再执行步骤604,本申请对此不作任何限定。

步骤605、根据优化锚点位置A与优化锚点位置B生成多个候选分割线。

根据优化后的锚点位置A与锚点位置B执行基于锚点牵引梯度岭跑的流程,具体流程参见图10所示的流程图。

在一个示例中,优化后的锚点位置A与锚点位置B执行双向对跑,即优化锚点位置A以位置A为起始点,以优化锚点位置B为目标点执行跑点;优化锚点位置B以位置B为起始点,以优化锚点位置A为目标点执行跑点;得到两条分割线L1与L2,其中,断点数量分别为N1与N2,断点可以是指某个跑点的梯度值低于预设阈值。

在一个示例中,从优化锚点位置B跑到优化锚点位置A,得到分割线L3,其中,断点数量为N3。

在一个示例中,从优化锚点位置A跑到优化锚点位置B,得到分割线L4,其中,断点数量为N4。

步骤606、优选断点最少的分割线。

例如,根据上述得到的分割线L1~L4以及断点数量N1~N4,从多个候选分割线中选取断点数量最少的分割线。

步骤607、判断分割线是否选择成功;若成功,则执行步骤608结束流程;若失败,则执行步骤609用户手工选择。

示例性地,统计每条分割线的断点数量,优选断点数量最少的分割线;若断点数量最少的分割线与其它分割线的断点数量差异不大,则可以呈现多条分割线给用户手工选择。

图10是本申请实施例提供的基于锚点牵引梯度岭跑的示意性流程图。该方法可以由图1所示服务器或者客户端执行。图10所示的方法包括步骤701至步骤710,下面分别对这些步骤进行详细的描述。

步骤701、从锚点位置A出发。

例如,锚点位置A可以用户在图像中选择的锚点,或者用户可以拖动已有锚点生成的新锚点。

示例性地,在从锚点位置A出发之前可以设置预设的步长,即可以是指从锚点位置A出发向目标锚点B进行移动,每移动一步所偏移的距离。

应理解,上述锚点位置A可以是用户在图像中手动标记的起始锚点,或者也可以是指从起始锚点向目标锚点移动过程中的锚点位置,本申请对此不作限定。

步骤702、更新起跑点坐标。

其中,更新起跑点坐标可以是指优化锚点位置A,从而提高分割线的准确性;优化锚点位置A的具体流程可以参见图7所示,此处不再赘述。

应理解,在本申请的实施例中,图像的分割线可以是通过分界点在图像对应的像素梯度图中以起始锚点作为起始位置并且以目标锚点作为目标位置移动得到的,其中,跑点可以是指上述分界点通过算法按照预设的步长进行移动得到的位于分割线上的点,跑点可以从起始锚点的位置开始按照预设步长与选择的跑出方向移动到目标锚点的位置,从而得到图像在起始锚点与目标锚点之间的分割线。

步骤703、选择跑出方向。

应理解,上述跑出方向可以是指跑点按照预设的步长每移动一步的移动方向。

在本申请的实施例中,可以根据以下几种方式按照预设的步长选择跑点的跑出方向:方式一:基于计算不同方位的梯度值大小,确定跑点的跑出方向。

例如,图11中的(a)所示的8向方位的示意图;图11中的(b)所示的为oa方位梯度卷积核;图11中的(c)所示的为ob方位梯度卷积核;图11中的(d)所示的为oab方位梯度卷积核;图11中的(e)所示的为ocd方位梯度卷积核;若跑点的跑入方向在fob方向的下方,则可以采用oab梯度卷积核;若跑点的跑入方向在fob方向的上方,则可以采用ocb梯度卷积核;若跑点的跑入方向为fo,则可以采用oab梯度和ocb梯度中绝对值较大者。

在本申请的实施例中,在锚点沿着梯度图的岭脊跑点的过程中不允许出现逆向跑出;比如,上一步是从ao方向跑入,则下一步不允许从oa方向跑出;所以为了确定下一步的跑出方向需要计算与跑入方向不同的其余7个方向的梯度,比如,上一步是从ao方向跑入,则计算ob、oc、od、oe、of、og、oh等7向梯度,从7向梯度绝对值最大的方向选择下一步跑出。

方式二:基于锚点牵引模型,确定跑点的跑出方向。

示例性地,首先,可以计算跑点与锚点位置B的距离为dis,比如,锚点位置A与锚点位置B之间的距离为d0;接着,可以计算锚点A的牵引权重wi与bi,得到锚点牵引模型。

上述锚点牵引模型可以看作是由强引力模型和弱引力模型组成;比如,假设跑点与目标锚点之间的距离为dis,锚点A与锚点B之间的距离为d0,8个方位与锚点AB连线的夹角为θ

在本申请的实施例中,可以通过以下等式进行梯度的加权计算:

D’

其中,D’

示例性地,当跑点位于无明显岭脊的区域时,弱引力模型可以为跑点提供明确的方向指引;当跑点位于岭脊分叉处时,强引力模型可以为跑点提供明确的方向指引;当跑点位于明显的岭脊并且没有分叉的位置时,跑点的路径可以主要由梯度图决定。

例如,如图13所示,可以计算出每个方位的强引力权重wi与弱引力偏移bi;其中,图13中的(a)所示为不同的锚点方向;图13中的(b)所示为强引力模型的示意图;图13中的(c)所示为弱引力模型的示意图。举例说明,在图13中的(b)所示的示意图像中包括直线1、直线2、直线3,其中,直线1可以表示dis=0或者dis=2d0时的强引力模型;直线2可以表示dis=0.4d0或者dis=1.6d0时的强引力模型;直线3可以表示dis=d0时的强引力模型;从图13中的(b)所示的3条直线可以看出,直线斜率越大则对跑点的牵引力越强;强引力模型与不同方位与锚点AB的连线夹角以及跑点与目标锚点之间的距离为dis相关;弱引力模型与不同方位与锚点AB的连线夹角相关。

在本申请的实施例中,可以根据上述方式一与方式二可以计算预设的步长下,跑点每一步的移动方向,从而得到跑点下一步的跑出方向。

步骤704、判断跑点的跑出方向与跑入方向是否相同;若相同,则执行步骤705;若不相同,则执行步骤709判断是否到达锚点B。

若选择的跑出方向与跑入方向不同,且跑点到达锚点位置B,则执行步骤710结束跑点流程,即结束分界点的移动流程;若选择的跑出方向与跑入方向不同,且跑点未到达锚点位置B,则返回执行步骤702。

进一步地,在本申请的实施例中,为了补偿跑点在沿着像素梯度图进行移动过程中的误差,可以执行步骤705。

步骤705、确定漂移方向。

例如,若跑点从eo方向跑入,并且从oa方向跑出,则a、a1、a2三个位置作为备选的横向漂移方向。例如,如图12中的(a)所示可以通过计算o1a1方向梯度与如图12中的(b)所示o2a2方向梯度,排除与oa方向梯度符号相反的位置,在剩下的位置中选择梯度绝对值最大的位置为漂移方向。

步骤706、判断是否为连续同向漂移;若为连续同向漂移,则执行步骤708取消漂移;若不是连续同向漂移,则执行步骤707执行漂移。

示例性地,上述连续同向漂移是指跑点在执行上述多个预设的步长时,每个步长的移动方向均按照上述漂移方向进行移动,此时为了确保跑点能够到达目标锚点位置(即锚点位置B),则可以取消漂移,通过上述方式一或者上述方式二重新确定跑点的跑出方向。

应理解,上述举例说明是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的上述举例说明,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。

上文结合图1至图13,详细描述了本申请实施例的图像分割方法,下面将结合图14至图16,详细描述本申请的装置实施例。应理解,本申请实施例中的图像分割装置可以执行前述本申请实施例的各种图像分割方法,即以下各种产品的具体工作过程,可以参考前述方法实施例中的对应过程。

图14是本申请实施例提供的图像分割装置的示意性框图。应理解,图像分割装置800可以执行图6以及图8至图13所示的图像分割方法。该图像分割装置800包括:检测单元810和处理单元820。

其中,检测单元810用于检测到用户在第一图像中手动标记锚点的第一操作,其中,所述锚点包括起始锚点与目标锚点;检测到所述用户指示自动分割所述第一图像的第二操作;处理单元820用于响应于所述第二操作,在所述显示屏上显示第二图像,所述第二图像是所述第一图像经过所述第二操作后得到的图像,所述第二图像包括所述起始锚点与所述目标锚点之间的分割线,其中,所述分割线是通过分界点在所述第一图像中以所述起始锚点为起始位置并且以所述目标锚点为目标位置移动得到的。

可选地,作为一个实施例,所述分割线与所述第一图像的像素梯度图中岭脊方向的分割线重合。

可选地,作为一个实施例,所述处理单元820具体用于:

根据所述第一图像查找所述第一图像对应的掩膜图像与割线图像,其中,所述掩膜图像用于表示所述第一图像中的不同对象,所述割线图像用于表示所述第一图像中不同对象的边界;在所述显示屏上显示所述第一图像、所述掩膜图像以及所述割线图像叠加后的图像。

可选地,作为一个实施例,所述检测单元810还用于:

检测到所述用户指示通过所述掩膜图像或者所述割线图像对所述第二图像进行分割处理的第三操作。

可选地,作为一个实施例,所述第二图像是根据所述第一图像的像素梯度图与锚点牵引模型得到的,所述锚点牵引模型用于指示所述分界点的移动方向。

可选地,作为一个实施例,在所述分界点当前位于所述像素梯度图中无岭脊的区域时,所述分界点的移动方向是根据第一连线与第二连线之间的夹角确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二连线是指所述分界点的当前位置与所述目标锚点之间的连线;或者

在所述分界点当前位于所述像素梯度图中有岭脊且有分叉的区域时,所述分界点的移动方向是根据第一连线与第二连线之间的夹角以及距离参数确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二连线是指所述分界点的当前位置与所述目标锚点之间的连线,所述距离参数是指所述分界点的当前位置与所述目标锚点之间的距离;或者

在所述分界点当前位于所述像素梯度图中有岭脊且无分叉区域时,所述分界点的移动方向是根据所述像素梯度图的岭脊方向确定的。

可选地,作为一个实施例,在上一时刻所述分界点的移动方向与当前时刻所述分界点的移动方向相同的情况下,所述分界点的移动方向是根据不同方位的梯度绝对值确定的。

可选地,作为一个实施例,所述锚点是通过优化初始锚点得到的,其中,所述初始锚点是用户在所述第一图像中手动标记的锚点。

图15是本申请实施例提供的图像分割装置的示意性框图。应理解,图像分割装置900可以执行图2至图13所示的图像分割方法。该图像分割装置900包括:获取单元910和处理单元920。

其中,获取单元910用于获取第一图像以及所述第一图像中锚点的位置信息,其中,所述锚点包括起始锚点与目标锚点;处理单元920用于根据所述第一图像与所述锚点,得到第二图像,其中,所述第二图像是所述第一图像经过图像分割后得到的图像,所述第二图像包括所述起始锚点与所述目标锚点之间的分割线,所述分割线是通过分界点在所述第一图像的像素梯度图中以所述起始锚点为起始位置并且以所述目标锚点为目标位置移动得到的。

可选地,作为一个实施例,所述分割线与所述像素梯度图中岭脊方向的分割线重合。

可选地,作为一个实施例,所述处理单元920具体用于:

根据所述像素梯度图、所述锚点以及锚点牵引模型,得到所述第二图像,其中,所述锚点牵引模型用于指示所述分界点的移动方向。

可选地,作为一个实施例,若所述分界点当前位于所述像素梯度图中无岭脊的区域,则所述分界点的移动方向是根据第一连线与第二连线之间的夹角确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二连线是指所述分界点的当前位置与所述目标锚点之间的连线;或者,

若所述分界点当前位于所述像素梯度图中有岭脊且有分叉的区域,所述分界点的移动方向是根据第一连线与第二连线之间的夹角以及距离参数确定的,其中,所述第一直线是指八个方位中每个方位所在的直线,所述第二连线是指所述分界点的当前位置与所述目标锚点之间的连线,所述距离参数是指所述分界点的当前位置与所述目标锚点之间的距离;或者,

若所述分界点当前位于所述像素梯度图中有岭脊且无分叉区域,所述分界点的移动方向是根据所述像素梯度图的岭脊方向确定的。

可选地,作为一个实施例,所述处理单元还用于:

若所述分界点上一时刻的移动方向与当前时刻的移动方向相同,则根据不同移动方位的梯度绝对值确定所述分界点的移动方向。

可选地,作为一个实施例,所述锚点是通过优化初始锚点得到的,其中,所述初始锚点是用户在所述第一图像中手动标记的锚点。

需要说明的是,上述图像分割装置800以及图像分割装置900以功能单元的形式体现。这里的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。

例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。

因此,在本申请的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

图16是本申请实施例提供的图像分割装置的硬件结构示意图。

如图16所示,图像分割装置1000(该图像分割装置1000具体可以是一种计算机设备)包括存储器1001、处理器1002、通信接口1003以及总线1004。其中,存储器1001、处理器1002、通信接口1003通过总线1004实现彼此之间的通信连接。

存储器1001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1001可以存储程序,当存储器1001中存储的程序被处理器1002执行时,处理器1002用于执行本申请实施例的图像分割方法的各个步骤,例如,执行图2至图13所示的各个步骤。

应理解,本申请实施例所示的图像分割装置可以是服务器,例如,可以是云端的服务器,或者,也可以是配置于云端的服务器中的芯片。

处理器1002可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC)或者一个或多个集成电路,用于执行相关程序以实现本申请方法实施例的图像分割方法。

处理器1002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的图像分割方法的各个步骤可以通过处理器1002中的硬件的集成逻辑电路或者软件形式的指令完成。

上述处理器1002还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1001,处理器1002读取存储器1001中的信息,结合其硬件完成本申请实施中图14或图15所示的图像分割装置中包括的单元所需执行的功能,或者,执行本申请方法实施例的图2至图13所示的图像分割方法。

通信接口1003使用例如但不限于收发器一类的收发装置,来实现图像分割装置1200与其他设备或通信网络之间的通信。

总线1004可包括在图像分割装置1000各个部件(例如,存储器1001、处理器1002、通信接口1003)之间传送信息的通路。

应注意,尽管上述图像分割装置1000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,图像分割装置1000还可以包括实现正常运行所必须的其他器件。同时,根据具体需要本领域的技术人员应当理解,上述图像分割装置1000还可包括实现其他附加功能的硬件器件。

此外,本领域的技术人员应当理解,上述图像分割装置1000也可仅仅包括实现本申请实施例所必须的器件,而不必包括图16中所示的全部器件。

应理解,上述举例说明是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的上述举例说明,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 图像分割方法、图像分割系统及图像分割装置
  • 图像分割方法和装置及图像分割模型的训练方法和装置
技术分类

06120113082194