基于交互式遗传算法的三维服装款式研究
2022-07-18杨晓波
杨晓波
(浙江树人学院,浙江 杭州 310015)
以往设计服装大都依靠经验,稳定性不够,现如今,随着遗传算法技术[1-2]的不断成熟,已经有学者利用其全局优化搜索能力设计服装。Sun等[3]采用传统遗传算法对服装色彩新颖性与款式协调性进行优化;Yeung等[4]在服装排料引入遗传算法;Muni等[5]在设计织物纹理时借助遗传算法实现;Ogata等[6]将服装部件进行整合并通过客户评分和遗传操作确定最佳服装;Gong等[7]通过改进传统遗传算法提升服装设计的工作效率;Kim等[8]等利用3D Max软件设计三维服装模型,款式优化亦建立在该模型之上,实用性较差。上述研究虽在服装款式设计中应用遗传算法,但有些地方还需完善,如面对平面服装设计时,没有考虑服装的立体特性;遗传操作没有与真实三维服装设计很好结合,与实际情况存在差距。鉴于此,本文拟在真实服装设计中引入交互式遗传算法,将服装设计的约束机制引入到遗传操作之中,以保证设计款式的合理性,满足用户对三维服装款式的审美需求。
1 交互式遗传模板
1.1 交互式遗传算法原理
传统遗传算法利用编码方法解决实际问题,是一种模拟进化的遍历算法[9-10]。交互式遗传算法是将遗传算法融入到主观评价之中,这样可以克服传统方法的呆板评价模式,灵活处理不同个体的设计模式。
交互式遗传算法利用交互特性为每个个体分配不同的适应度。前期操作与传统遗传算法类似,但在进化阶段引入主观评价,这样做更符合实际评估过程,因为每位专家对相同服装款式的评价会有所不同,最终计算的优化解是一个区间,而非单一解,进化结果可能存在多个解。交互式遗传算法的实现流程如图1所示。
从图1可知,交互式遗传算法与传统遗传算法相比,增加了人机交互部分,通过人工评价确定种群中是否存在最优个体,最优个体即为优化后的三维服装款式。
1.2 交互式遗传模板构建
构建交互式遗传模板需要解决服装款式的三维操作、约束性和复杂性等难题。三维操作过程中种族初始化是以款式类库为基础,因而在编码操作时,部件之间很难做到平滑拼接,运用传统的二进制编码只能实现基础数据交换,对于结构较为复杂的三维款式,遗传过程中需解决三维操作的问题;另外,款式库中的部件类型多样且结构复杂,如果操作不当,必然造成部件之间的拼接不合理等情况,因此需要建立相应的约束机制;为了充分发挥遗传算法的全局搜索能力,降低算法的复杂度,需要为种群的遗传操作提供足够的搜素空间,以确保最终操作结果的有效性。
在服装款式设计中引入交互式遗传算法,需要创建相应的遗传模板,以解决目前存在的问题。遗传模板的构建过程如图2所示。
图2 遗传模板构建过程Fig.2 Genetic template construction process
从图2可知,遗传模板的构建过程是:先创建款式类库,接着将款式进行分解,各类款式进入部件库,部件库用于创建服装款式数据结构,通过遗传算法实现款式部件与遗传操作的对接,最后利用选择、交叉、变异等遗传操作,款式部件得以更新,经过人工评价,款式得到优化,最终获得最优创意的款式。
2 三维服装款式的遗传耦合
2.1 服装款式部件库建立
服装款式的基本单元是部件,在进行选择、交叉、变异等遗传操作中,服装部件保存在部件库中,可以作为遗传操作的基础数据。为了在三维服装部件库中融入遗传操作,本文款式部件库主要包括衣身、衣袖和衣领三部分,各部分建立相应的类库,可以很好的实现款式拼接等操作。
设计服装款式部件需根据部件库的分类进行设计。衣身类数据结构包括衣身主体类、款式线类以及与衣袖、衣领的关联;衣袖类数据结构除了包含衣袖主体类等基础特征,还包含与其他类库的拼接属性;衣领类数据结构包括衣领主体类、衣领基线类和领口线类等。各个部件所建立相应的类库如图3所示。
图3 服装部件设计类库Fig.3 Clothing component design class library.(a)Sleeve body class;(b) Collar body class;(c) Garment body class
从图3可知,衣袖主体类用于保存衣袖基础数据、调整袖孔线、检测衣袖轮廓与袖孔接口,为三维拼接做准备;衣领主体类用于获取人体特征值、重建衣领轮廓、调整衣领线等,为遗传操作奠定基础;衣身主体类用于融合衣袖和衣领,方便后期的约束检测。服装部件各子类之间相互联系,同时保留与外部的接口,以便后期的部件拼接和遗传操作。同时利用约束检测等方法保证衣身的完整性。
设计服装类库的数据结构,主要目的是在遗传操作时灵活使用各类部件,更好的实现款式编码和拼接等流程。
2.2 染色体类结构建立
以往大都采用二进制编码进行遗传运算[11],该方法具有简单、方便且编码高效等优点,但只适用于平面服装部件,在操作立体服装部件时,则暴露出编码方式单一等缺点。
为了满足复杂度较高的三维款式部件遗传操作,本文采用染色体指针对款式部件进行编码,每个染色体分配不同的指针,指向对应的款式部件或数据结构。这样在遗传操作中可通过染色体指针对三维部件进行操作。染色体指针的编码过程如图4所示。
图4 染色体指针的编码过程Fig.4 Encoding process of chromosome
由图4可知,染色体定义为{X1,X2,X3,X4,X5,X6},编码过程中,不同的部件分配不同的染色体指针,通过指针可以从类库中提取相应的部件,染色体指针指向所对应的部件类,这样就形成了完整的三维服装款式。
染色体指针存储在哈希表中,不同的id号代表不同的部件染色体指针,初始化种群时,随机选取染色体指针并进行组合,将获得的染色体与款式个体进行匹配,若满足相应的约束条件便接收,否则就放弃。
在程序中,染色体的类结构定义如下:
class Chrom
{
public:
Sleeve *m_pSleeve; //衣袖指针
Collar *m_pCollar; //衣领指针
Garment *m_pGarment; //衣身指针
STexture *m_pSTexture; //衣袖纹理指针
CTexture *m_pCTexture; //衣领纹理指针
GTexture *m_pGTexture; //衣身纹理指针
}
从染色体的类结构可以看出,部件指针指向相应的款式部件,并能从部件库中提取相应的部件数据。
2.3 款式部件的拼接
传统的服装部件拼接采用重心坐标方法来完成[12],但该方法的前提是保持衣身网格拓扑结构不变,当进行款式部件拼接时,不同的服装款式会形成不同的网格结构,利用重心坐标法很难得到同一的拼接模式。本文采用接口提取匹配的方法进行款式部件拼接,下面以衣袖接口生成方法为例,分析接口提取匹配方法的工作流程,衣袖接口生成图自主手工绘制完成,如图5所示。
图5 衣袖接口生成图Fig.5 Sleeve interface generation diagram
由图5分析,衣袖接口的生成过程分3个步骤完成。首先,确定衣袖切割曲面的法向量,计算衣袖切割曲面法向量可采用三边面插值法[14],切割面法向量的计算公式如下:
n=pi+1-pi,n=RotateX(n,π/2)
(1)
式中:n为切割面法向量;pi表示衣袖款式线Ls的点,pi+1表示pi的相邻点,切割法向量n的值可通过两点之间的差值获得,X轴和切割法向量n如图5所示,利用RotateX(n,π/2)将切割向量沿切割面的垂直方向绕X轴逆时针旋转90°得到法向量n。
款式部件初步拼接完毕后,还需增加相应的约束条件,目的是确保拼接的平滑过渡,本文参考徐文鹏等[15]提出的服装约束条件,并加以改进,定义约束如下:
Ci={Ti,(E1,E2)}
(2)
式中:Ti表示约束类型,如共点约束、对称约束等;(E1,E2)表示涉及约束的元素集合。
具体求解过程为:先将E1设为已知约束元素集,再根据E1,E2所需满足的条件选择合适的约束类型,依据约束条件选择对称约束较为适宜,该方法从已知约束点集E1出发,利用对称法则获得未知约束点集E2,实现全局约束。
当部件拼接的结果超过设定的约束条件时,可以调整部分约束元素,如适当改变碰撞相应值等,调整后再次进行部件拼接,当拼接结果达到设定的约束条件时,则认为此次拼接结果有效,否则,再次调整约束元素,直到满足条件为止。
3 款式优化与对比实验
款式部件完成拼接后,还需结合遗传算法,利用三维款式部件库对服装款式进行优化,生成的三维服装种群应侧重于用户的偏好,最终符合用户的需求。
3.1 交互式遗传算法的款式优化流程
利用交互式遗传算法进行款式优化,是在遗传操作过程中利用约束机制实现服装款式个体的合理性,通过不断改进以适应三维服装设计的要求。款式优化流程如图6所示。
图6 款式优化算法流程图Fig.6 Style optimization algorithm flow chart
从图6可知,款式优化的主要流程是:首先,设定初始参数,如种群数等,对种群进行初始化,然后,对初始种群进行交叉评价,如果评价结果满足种群适应度等条件,则获得最优解,反之,利用选择、交叉、变异等遗传操作对种群进行优化;最后,为了确保款式的有效性,还需利用约束条件对种群不断优化。
美观度是评价服装款式的重要指标,在遗传操作中决定个体的优胜劣汰,美观度可通过人机交互评分方式获得,这样可更加合理地体现用户对服装款式的喜好。本文采用对服装部件分别打分的方法来计算美观度,计算公式如下:
F=IgFg+IsFs+IcFc
(3)
式中:F代表美观度;Fg、Fs、Fc分别代表用户对款式个体的衣身、衣袖和衣领的评分;Ig、Is、Ic则表示衣身、衣袖和衣领的权重系数,权重系数可根据用户的喜好设定。
当用户完成款式美观度的评价后,需要在群体重选择优胜的个体,目的是将优良基因遗传到下一代,服装个体的优选采用式(4)完成。
(4)
式中:P代表获胜个体在群体中的概率;Fi表示单个个体的美观度;∑Fi表示个体美观度的总和。一般而言,个体美观度越高,获胜的概率就越大。
3.2 对比实验
实验选用的初始种群数量为8组,部件选用采取单点交叉方式,初始交叉概率Pc和初始变异概率Pm分别取值为0.7和0.9,利用本文的遗传算法进行迭代运算,迭代次数达到第10代时运算结果趋于收敛,输出运算结果,10名用户可根据自身喜好,结合部件重要程度对每种服装款式进行评分,遗传算法根据用户的评价指标不断优化种群。
系统的初始种群由各款式部件随机产生,种群序号代表用户的评价顺序,部件序号代表款式部件在款式库中的顺序,初始种群的构成如表1所示。
表1 初始种群构成Tab.1 Initial population composition
进化至第10代时种群趋于收敛,进化种群的构成如表2所示。
表2 进化种群构成Tab.2 Evolutionary population composition
对比表1和表2,种群初始阶段,系统根据已有的款式部件库形成多个款式部件组合,当用户根据个人喜好为每种款式进行评分后,交互式遗传算法根据评分美观度进行进化,到达第10代种群时,服装款式逐渐收敛于用户喜好。
为了验证交互式遗传算法服装款式优化效果,本文选用二维裁片法[13]、粒子群法[16]、模拟退火法[17]、传统遗传算法与交互式遗传算法进行实例对比,结果如图7所示。
图7 5种方法的实例对比Fig.7 Example comparision of five methods
从图7可知,随着交互代数的增加,美观度值也随之增加,当交互代数相同时,本文提出的交互式遗传算法可以比传统遗传算法与二维裁片法获得更高的美观度值,平均提高比率分别达到18%和35%,从而通过交互进化快速达到用户的满意结果。
4 结 论
本文提出基于交互式遗传算法对服装款式进行优化,通过算法分析和对比性实验得出以下结论:
1) 构建交互式遗传模板,可以不断改进款式部件库,通过遗传算法实现款式部件与遗传操作的对接,实现款式的最优创意。
2) 通过建立服装款式类库,采用染色体指针对款式部件进行编码,借助约束条件获得较优的款式部件,同时,利用接口提取匹配的方法进行款式部件拼接,完成三维服装款式的遗传耦合。
3) 通过对比实验,本文提出的交互式遗传算法可以获得比传统遗传算法和二维裁片法更高的美观度值,平均提高比率分别达到18%和35%,从而通过交互进化快速达到用户的满意结果。
FZXB