发明名称 一种采用遗传算法的计算机辅助乱针绣制作方法
摘要 本发明公开了一种采用遗传算法的计算机辅助乱针绣制作方法,包括以下步骤:步骤1,以输入的彩色图像作为参考图片,采用图像分割、区域矢量场提取和图像一致性线条提取方法提取输入彩色图不同的对象区域、区域矢量场以及图像显著性等图像特征;步骤2,根据乱针绣的特点定义了描述包括单根绣线、每个交叉针和交叉针排布在内三层参数化针法模型,并描述了根据这些参数构建出针法模型得到绣线集合的方法;步骤3,采用遗传算法依据图像特征确定针法模型参数得到乱针绣绣品针迹序列;步骤4,将针迹坐标转换为电脑刺绣机所需坐标,并将其输入电脑刺绣机,得到相应乱针绣绣品。本发明对乱针绣的机械化标准化生产具有重要意义。
申请公布号 CN103294864B 申请公布日期 2016.01.20
申请号 CN201310211288.2 申请日期 2013.05.29
申请人 南京大学 发明人 孙正兴;杨克微;周杰;周俊昊
分类号 G06F17/50(2006.01)I;G06K9/46(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 江苏圣典律师事务所 32237 代理人 胡建华
主权项 一种采用遗传算法的计算机辅助乱针绣制作方法,其特征在于,包括以下步骤:步骤一,图像特征提取:以输入的彩色图像作为参数图像,提取包括对象区域,区域矢量场和图像显著性在内的图像特征;步骤二,乱针绣针法模型的定义与构建:定义包括乱针绣单根绣线、交叉针集合中的每个交叉针和交叉针排布在内的低、中、高三层参数化针法模型,并根据参数构建出针法模型;步骤三,乱针绣绣品针迹序列生成:依据步骤一中提取的图像特征采用遗传算法确定步骤二中所定义的针法模型参数,得到乱针绣绣品针迹序列;步骤四,将步骤三中得到的乱针绣绣品针迹序列转换为电脑刺绣机使用的以毫米为单位的坐标格式,将其输入电脑刺绣机,从而得到相应的乱针绣绣品;步骤一中,所述图像特征提取包括以下步骤:步骤11:对于输入的彩色图像,采用图像分割方法将图像分割成不同的对象区域;步骤12:对于分割后的对象区域,采用区域矢量场提取方法提取区域矢量场;步骤13:对于输入的彩色图像,采用一致性线条提取方法提取图像显著性特征值;步骤12中,所述采用区域矢量场提取方法提取区域矢量场具体包括以下步骤:步骤12a:采用Sobel算子计算对象区域中每个像素点在水平轴x和垂直轴y方向上的图像梯度;步骤12b:根据对象区域水平轴x和垂直轴y方向上的图像梯度计算对象区域的矢量场Θ<sub>z</sub>;步骤二中,所述乱针绣针法模型的定义与构建包括以下步骤:乱针绣针法模型定义:所述乱针绣针法模型由三个部分组成,分别为低层单根绣线参数表示、中层交叉针参数表示、高层交叉针排布参数表示;其中低层参数集合为η={η<sub>k</sub>:k=1~4N},η<sub>k</sub>=(m<sub>k</sub>,ξ<sub>k</sub>,φ<sub>k</sub>,C<sub>k</sub>)表示单根绣线所对应的参数集,m<sub>k</sub>为绣线中心点坐标,ξ<sub>k</sub>为绣线长度,φ<sub>k</sub>为绣线朝向,C<sub>k</sub>为绣线颜色,k表示绣线序号,N表示交叉针总数的一半;中层参数集合为χ={χ<sub>i</sub>:i=1~2N},χ<sub>i</sub>=(p<sub>i</sub>,θ<sub>i</sub>,β<sub>i</sub>)表示单个交叉针所对应的参数集,p<sub>i</sub>为交叉针中心点,θ<sub>i</sub>为单个交叉针的交叉朝向,β<sub>i</sub>为交叉夹角,i表示交叉针序号;高层参数集合表示为Ω={ρ,ξ,θ,β,γ},其中ρ为交叉针排布密度,ξ为交叉针平均线条长度,θ为整体交叉朝向,β为整体交叉夹角,γ为交叉混乱度;乱针绣针法模型构建:首先,由高层参数集合Ω生成初始的交叉针集合Λ={Λ<sub>i</sub>:i=1~2N},其中交叉针集合Λ包括铺底层交叉针集合{Λ<sub>i</sub>:i=1~N}和精绣层交叉针集合{Λ<sub>i</sub>:i=N+1~2N};然后,根据中层参数集合χ分别对生成的交叉针集合Λ进行调整;最后,根据低层参数集合η分别对组成交叉针的绣线进行调整得到最终的绣线集合Γ={Γ<sub>k</sub>:k=1~4N};步骤二中,所述乱针绣针法模型构建具体包括以下步骤:步骤21:在所述对象区域内,按照与整体交叉朝向θ方向垂直的方向θ'以交叉针平均线条长度ξ的三分之一为间隔生成辅助线条集合Assist={Assist<sub>j</sub>:j=1~M},M为辅助线条数目,j为辅助线条序号;步骤22:根据整体交叉朝向θ和交叉夹角β计算方向角<img file="FDA0000776157670000021.GIF" wi="129" he="125" />和方向角<img file="FDA0000776157670000022.GIF" wi="160" he="125" />从j=0开始到j=M‑3结束,按照每隔2条辅助线条的方式,即在辅助线条Assist<sub>j</sub>和辅助线条Assist<sub>j+3</sub>与对象区域边界所围成的区域之中,按照间隔距离d,生成整体交叉朝向为θ、交叉夹角为β的共2N个交叉针的初始交叉针集合Λ,其中<img file="FDA0000776157670000023.GIF" wi="415" he="140" />ρ为交叉针排布密度;步骤23:将初始交叉针集合Λ中编号为奇数的N个交叉针作为铺底层交叉针集合,将编号为偶数的N个交叉针作为精绣层交叉针集合;步骤24:根据中层参数集合χ,对生成的交叉针集合Λ中的每一个交叉针进行调整,将交叉针Λ<sub>i</sub>的交叉朝向和交叉夹角变化为对应交叉针参数χ<sub>i</sub>中单个交叉针的交叉朝向θ<sub>i</sub>和交叉夹角β<sub>i</sub>,得到调整后的交叉针集合Λ;步骤25:根据低层参数集合η,对组成交叉针集合Λ的所有单根绣线Γ<sub>k</sub>进行调整,根据低层参数η<sub>k</sub>将每根的绣线的长度、朝向、颜色分别设定为ξ<sub>k</sub>、φ<sub>k</sub>、C<sub>k</sub>,得到最终绣线集合Γ;步骤三具体包括以下步骤:步骤31:对于每一个对象区域,对高层交叉针排布参数表示进行基因编码,包括将针法模型中高层参数集合Ω中的ρ,ξ,β,γ分别定义一个基因位,记为G=(g<sub>1</sub>,g<sub>2</sub>,g<sub>3</sub>,g<sub>4</sub>),其中g<sub>1</sub>代表高层参数集合中的ρ,g<sub>2</sub>代表高层参数集合中的ξ,g<sub>3</sub>代表高层参数集合中的β,g<sub>4</sub>代表高层参数集合中的γ;步骤32:按照基因编码中每个基因位参数的取值范围随机生成包含20个基因的初始种群P并设置迭代次数为1;步骤33:根据种群P中每个基因得到针法模型的高层参数集合Ω中的ρ,ξ,β,γ,计算对象区域的最小外接矩形,并将其长边所在方向设为高层针法模型参数Ω中的θ;步骤34:依据对象区域的矢量场Θ<sub>z</sub>和高层参数集合Ω得到中层参数集合χ;步骤35:依据步骤33与步骤34得到高层参数集合Ω与中层参数集合χ得到针法模型的低层参数集合η;步骤36:根据得到的高层参数集合Ω、中层参数集合χ以及低层参数集合η共三层针法模型参数集合,根据步骤21~步骤25生成所述对象区域对应的绣线集合Γ;步骤37:采用基于空间色混原理的绣线颜色选择方法确定绣线集合Γ中每条绣线的颜色,并将其绘制在白色针迹方案图像上,得到针迹方案图像;步骤38:重复步骤33~步骤37直到计算得到种群P中所有个体基因所对应的绣线集合和针迹方案图像;步骤39:根据输入的彩色图像,以及每个基因所对应的针迹方案图像和绣线集合Γ,结合对象区域、区域矢量场和图像显著性特征,计算种群P中每个个体基因的适应度,并按适应度值的大小从小到大排列,保留适应度排在前20的基因P<sup>*</sup>,令P=P<sup>*</sup>,即令P<sup>*</sup>作为下一代种群,判断如果迭代次数大于20次或者最小的个体适应度值小于0.035则结束整个过程,输出最小适应度值对应的区域绣线集合转步骤313,否则转步骤310;步骤310:选择适应度排在前10的基因采用交叉算子对基因的基因位进行交叉操作,得到种群<img file="FDA0000776157670000041.GIF" wi="442" he="85" />其中<img file="FDA0000776157670000042.GIF" wi="279" he="86" />为经过交叉操作后的基因;步骤311:对种群P<sub>c</sub>的每个基因采用变异算子对基因的每个基因位进行变异操作,得到种群<img file="FDA0000776157670000043.GIF" wi="458" he="83" />其中<img file="FDA0000776157670000044.GIF" wi="291" he="85" />为经过变异操作后的基因;步骤312:将种群P<sub>m</sub>加入到P中,迭代次数加1,转步骤33;步骤313:根据绣线集合Γ得到每根绣线的起始点和终止点,创建未排序的针迹序列,将绣线集合中每根绣线的颜色C<sub>k</sub>赋给针迹序列中每根绣线的颜色color<sub>k</sub>,从而获取对象区域的未排序的针迹序列stitches;步骤314:对未排序针迹序列按照其绣线覆盖面积的图像显著性特征值的大小进行排序,得到重新排列的针迹序列;步骤315:重复步骤31~步骤39直到得到每个对象区域的针迹序列;步骤37中具体包括以下步骤:步骤37a:计算铺底层绣线集合中的每条绣线所覆盖区域在输入的彩色图像中的平均色,并选择绣线颜色库中与其颜色最接近的颜色作为铺底层绣线的颜色,并将其绘制在白色针迹方案图像之上;步骤37b:对于精绣层绣线集合中的每条绣线Γ<sub>k</sub>,构造其外接矩形W;步骤37c:找出白色针迹方案图像在外接矩形W中已经存在的铺底层绣线,并按照每根绣线所覆盖的像素数目计算每根绣线对应的绣线颜色所覆盖的面积<img file="FDA0000776157670000045.GIF" wi="313" he="79" />T为外接矩形W中已经存在的铺底层绣线数目;步骤37d:若覆盖像素的总数目小于外接矩形面积比例的10%,则直接选取绣线颜色库中与绣线Γ<sub>k</sub>所覆盖对象区域平均色最接近的颜色作为绣线Γ<sub>k</sub>的绣线颜色C<sub>k</sub>,转步骤37i,否则转步骤37e;步骤37e:计算外接矩形W所覆盖对象区域的平均色<img file="FDA0000776157670000046.GIF" wi="80" he="77" />步骤37f:计算面积<img file="FDA0000776157670000047.GIF" wi="287" he="84" />中每个区域被绣线Γ<sub>k</sub>所覆盖住的区域面积<img file="FDA0000776157670000048.GIF" wi="553" he="86" />若<img file="FDA0000776157670000049.GIF" wi="58" he="80" />未被覆盖,则令<img file="FDA00007761576700000410.GIF" wi="241" he="79" />i为外接矩形W中已经存在的铺底层绣线的序号;步骤37g:根据颜色的空间色混关系计算出绣线Γ<sub>k</sub>所对应绣线颜色<img file="FDA0000776157670000051.GIF" wi="92" he="84" />步骤37h:在绣线颜色库中找出与颜色<img file="FDA0000776157670000052.GIF" wi="68" he="82" />最相近的绣线颜色作为精绣层绣线颜色C<sub>k</sub>;步骤37i:重复步骤37b~步骤37d直到确定精绣层绣线集合中的所有绣线颜色;步骤39中,所述计算种群P中每个个体基因的适应度具体包括以下步骤:步骤39a:计算针迹方案图像<img file="FDA0000776157670000053.GIF" wi="63" he="78" />与输入的彩色图像I<sub>src</sub>之间的色差F<sub>app</sub>;步骤39b:计算绣线总长度F<sub>len</sub>;步骤39c:计算针迹方案图像<img file="FDA0000776157670000054.GIF" wi="65" he="83" />的覆盖率F<sub>cov</sub>;步骤39d:计算绣线集合Γ的角度差异F<sub>angdiff</sub>;步骤39e:在计算得出F<sub>app</sub>,F<sub>len</sub>,F<sub>cov</sub>,F<sub>angdiff</sub>后,根据下述公式计算最终的适应度函数值fitness:fitness=F<sub>app</sub>+0.5F<sub>len</sub>+κF<sub>cov</sub>+0.5F<sub>angdiff</sub>,其中κ为F<sub>len</sub>的权重,取值范围为0~1;步骤310中,所述选择适应度排在前10的基因采用交叉算子对基因中的基因位进行交叉操作具体为:随机从10个基因中选择两个基因;从三个交叉点中随机选择一个交叉点对两个基因进行交叉,生成两个新的基因;重复上述过程直到所有的基因都被选择过,即可得到经过交叉操作后的种群P<sub>c</sub>;步骤311中,所述对种群P<sub>c</sub>的每个基因采用变异算子对基因的每个基因位进行变异操作具体为:随机从种群P<sub>c</sub>中选择一个基因;对选择的基因的每一个基因位进行变异操作,得到新的基因;重复该步骤直到P<sub>c</sub>中所有的基因都进行过变异操作,即可得到经过变异操作后的种群P<sub>m</sub>。
地址 210093 江苏省南京市汉口路22号南京大学