华南理工大学__图形学作业四李桂清老师()
矩阵重心坐标
矩阵重心坐标黄力慰;李桂清;熊赟晖【期刊名称】《计算机辅助设计与图形学学报》【年(卷),期】2011(23)12【摘要】Based on recently studied 2D barycentric coordinates, this paper extends it to complex barycentric coordinates as 2D matrix barycentric coordinates, and then generalizes the latter to 3D space. The new coordinates are well defined for triangular, quadrilateral and even arbitrary polygonal control meshes. We find that they satisfy most properties that good barycentric coordinates should possess. Finally, we also show their effectiveness in 3D mesh editing and analyze their pros and cons in this application.%在二维重心坐标——复数重心坐标的基础上引入二维矩阵重心坐标的概念,并利用球面坐标将二维矩阵重心坐标推广到三维.三维矩阵重心坐标适用于三角控制网格、四边形控制网格甚至一般的混合控制网格.对所提出的重心坐标性质进行了研究,发现其满足大部分好的重心坐标所应具有的性质.最后对矩阵重心坐标在三维网格模型中的应用进行了细致的实验,分析了它的优缺点.【总页数】8页(P1959-1966)【作者】黄力慰;李桂清;熊赟晖【作者单位】华南理工大学计算机科学与工程学院广州510006;华南理工大学计算机科学与工程学院广州510006;华南理工大学理学院广州 510640【正文语种】中文【中图分类】TP391【相关文献】1.基于向量代数的广义重心坐标计算方法 [J], 王继娟;彭丰富2.广义重心坐标的递推关系 [J], 钱毅加;唐烁;王旭辉3.结合重心坐标的泊松网格编辑算法 [J], 武帅;黄庆学;李宏杰;王安红4.基于稀疏解组合优化的广义重心坐标 [J], 彭丰富;方明5.基于稀疏解组合优化的广义重心坐标 [J], 彭丰富;方明;因版权原因,仅展示原文概要,查看原文内容请购买。
华南理工大学2019-2020学年度第一学期课程表
华南理工大学2019-2020学年度第一学期课程表学院:电子与信息学院专业:信息工程年级:2019级(1)人数:46 执行时间:2019年10月7日校区:国际校区说明:新生第7周开始上课 10月1-3日国庆中秋制表时间:2019年6月20日华南理工大学2019-2020学年度第一学期课程表学院:电子与信息学院专业:信息工程年级:2019级(2)人数:46 执行时间:2019年10月7日校区:国际校区说明:新生第7周开始上课 10月1-3日国庆中秋制表时间:2019年6月20日华南理工大学2019-2020学年度第一学期课程表学院:电子与信息学院专业:信息工程年级:2019级(3)人数:46 执行时间:2019年10月7日校区:国际校区说明:新生第7周开始上课 10月1-3日国庆中秋制表时间:2019年6月20日华南理工大学2019-2020学年度第一学期课程表学院:电子与信息学院专业:信息工程年级:2019级(4)人数:46 执行时间:2019年10月7日校区:国际校区说明:新生第7周开始上课 10月1-3日国庆中秋制表时间:2019年6月20日华南理工大学2019-2020学年度第一学期课程表学院:电子与信息学院专业:信息工程年级:2019级(5)人数:46 执行时间:2019年10月7日校区:国际校区制表时间:2019年6月20日华南理工大学2019-2020学年度第一学期课程表学院:电子与信息学院专业:信息工程年级:2019级信息工程创新班人数:50执行时间:2019年10月7日校区:国际校区说明:新生第7周开始上课 10月1-3日国庆中秋制表时间:2019年6月20日华南理工大学2019-2020学年度第一学期课程表学院:电子与信息学院专业:微电子科学与工程年级:2019级(1)人数:50 执行时间:2019年10月7日校区:国际校区说明:新生第7周开始上课 10月1-3日国庆中秋制表时间:2019年6月20日华南理工大学2019-2020学年度第一学期课程表学院:电子与信息学院专业:微电子科学与工程年级:2019级(2)人数:50 执行时间:2019年10月7日校区:国际校区说明:新生第7周开始上课 10月1-3日国庆中秋制表时间:2019年6月20日华南理工大学2019-2020学年度第一学期课程表学院:电子与信息学院专业:微电子科学与工程年级:2019级(3)人数:50 执行时间:2019年10月7日校区:国际校区制表时间:2019年6月20日。
华南理工大学__图形学作业四李桂清老师()
第1题后向面检测(Back-face detection)在消隐算法中的作用:判断一个平面是否为后向面(back-face),如果是则不必显示。
通常,后向面消隐算法可消除场景中一半左右的隐藏面。
计算方法:对于面F(P A, P B, P C),V1 = P A– P B V2 = P C - P B法向量n F = V1×V2= (x1, x2, x3),若x3< 0,则平面F为后向面,应该消隐。
题中四个面的法向量分别为(-4, 2, 1)、(0, -4, 2)、(4, 2, 1)、(0, 0, -4),故第四个平面为后向面。
第2题算法:1.将深度缓存与帧缓存所有单元初始化,使得depthBuff(x, y) = 15 frameBuff(x, y) = 02.处理场景中的每一个多边形,每次一个。
计算多边形各点的深度值z。
若z < depthBuff(x, y),则depthBuff(x, y) = z frameBuff(x, y) = surfColor(x, y)四边形扫描转换后两个缓存的值int _tmain(int argc, _TCHAR* argv[]){//初始化//转换四边形for (int x = 10; x <= 25; x++)for (int y = 5; y <= 25; y++){depthBuff[x][y] = 10;frameBuff[x][y] = 1;}//输出//转换三角形for (int x = 15; x <= 30; x++)for (int y = 10; y <= 25; y++)if ((y <= x) && (y <= 50 - x) && (3*y >= 60 - x)){double z = (double)(3 * x + y - 120) / -4;if (z <depthBuff[x][y]){depthBuff[x][y] = (int)z;frameBuff[x][y] = 2;}}//输出}(左到右:x:10->25;上到下:y:5->25)10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1三角形扫描转换后两个缓存的值:(左到右:x:10->30;上到下:y:5->25)10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 5/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 7/2 6/2 5/2 4/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 6/2 6/2 5/2 4/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 8/2 7/2 6/2 5/2 5/2 4/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 7/2 6/2 5/2 4/2 4/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 9/2 8/2 7/2 6/2 6/2 5/2 4/2 3/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 8/2 7/2 6/2 5/2 5/2 4/2 3/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 7/2 6/2 5/2 4/2 4/2 3/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 9/2 8/2 7/2 6/2 6/2 5/2 4/2 3/2 3/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 8/2 7/2 6/2 5/2 5/2 4/2 3/2 2/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 7/2 6/2 5/2 4/2 4/2 3/2 2/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 6/2 6/2 5/2 4/2 3/2 3/2 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 8/2 7/2 6/2 5/2 5/2 4/2 3/2 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 7/2 6/2 5/2 4/2 4/2 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 6/2 5/2 4/2 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 5/2 15/0 15/0 15/0 15/0 15/0第3题根据题意选择Q2:p5( -1 ,-1 ,0), p6(2, -1, 0), p7(2, 0, 0), p8(-1, 0, 0),即Z=0作为分隔平面。
作业C:voronoi图在聚类分析中的应用调研
(2)Voronoi单元的大小不是固定的,用Voronoi图代替网格进行聚类不需要设定大小和位置参数,只需确定的母点位置就可以得出确定的Voronoi图,故而每个数据点所属的类也可唯一确定
以上分析我们可以得出:用Voronoi图代替网格进行聚类分析有诸多便利之处,对二维空间数据聚类是可行的。
(11)以本轮求得的非低密度Voronoi单元的质心为新一轮构造Voronoi图的母点构图;
(12)Until当前循环中的 Voronoi 图中低密度单元数为0;
(13)此时Voronoi图的单元格数不再发生变化,其数值等于最终的聚类类个数;
(14)Repeat
(15)计算每个Voronoi单元中的数据点的质心;
2.3基于Voronoi图聚类的基本思想
与要步骤如下:
(1)根据数据样本空间分布构造平面上的Voronoi图(初始时随机选取母点)
(2)将每一数据样本点划分到其所属的Voronoi单元
(3)计算Voronoi单元的密度(一个Voronoi单元可视为一个类簇)
图2:某数据集示例
图3中左侧网格选取过大,因而所有数据被视为同一类,而右侧中9个网格中只有3个网格中的样本点被视为高密度点,其余6个网格的数据均被视为低密度点,因而只分为3类。
图3:左侧所有数据属于同一网格,右侧数据分为3类
从上例可直观看出,网格虽然简化了样本点密度的估计,但它的定义却与类的直观概念相距甚远,调整网格的大小及位置会得出不同的聚类结果。连同密度阈值共有三个参数,在实际应用中难以找出一个通用的确定各个最优参数值的方法。事实上,同一网格内的数据距离该网格的中心要比它们到其它网格的中心更近,因而也可以将基于网格的聚类算法看作是基于原型的聚类算法的特例:基于网格的聚类算法是由相互平行或垂直的多个原型演化并且原型点位于特定位置的聚类算法。
2018级机械工程机械电子机械创新班
华南理工大学2018~2019学年度第二学期授课时间表(第2学期)院系:机械与汽车工程学院专业:机械工程1班年级:2018 人数:43 执行时间: 2019年2月25日制表人:刘清香注:1、上课时间:1-18周 考试时间:19-20周。
2、课内实验课由任课老师与相关实验室联系上实验课。
3、大学物理实验(一)地点:南校区实验中心:B5-B座2、3楼 。
4、大学化学实验地点:南校区B8栋3-4楼。
5、《C++程序设计基础》课16学时上机课由任课老师与相关实验室机房联系上机。
“A”字开头的是南校区大学城课室。
华南理工大学2018~2019学年度第二学期授课时间表(第2学期)院系:机械与汽车工程学院专业:机械工程2班年级:2018 人数:43 执行时间:2019年2月25日制表人:刘清香注:1、上课时间:1-18周 考试时间:19-20周。
2、课内实验课由任课老师与相关实验室联系上实验课。
3、大学物理实验(一)地点:南校区实验中心:B5-B座2、3楼 。
4、大学化学实验地点:南校区B8栋3-4楼。
5、《C++程序设计基础》课16学时上机课由任课老师与相关实验室机房联系上机。
“A”字开头的是南校区大学城课室。
华南理工大学2018~2019学年度第二学期授课时间表(第2学期)院系:机械与汽车工程学院专业:机械工程3班年级:2018 人数:44 执行时间:2019年2月25日制表人:刘清香注:1、上课时间:1-18周 考试时间:19-20周。
2、课内实验课由任课老师与相关实验室联系上实验课。
3、大学物理实验(一)地点:南校区实验中心:B5-B座2、3楼 。
4、大学化学实验地点:南校区B8栋3-4楼。
5、《C++程序设计基础》课16学时上机课由任课老师与相关实验室机房联系上机。
“A”字开头的是南校区大学城课室。
华南理工大学2018~2019学年度第二学期授课时间表(第2学期)注:1、上课时间:1-18周 考试时间:19-20周。
华南理工大学2010《计算机绘图》(A)
诚信应考,考试作弊将带来严重后果!华南理工大学期末考试《计算机绘图》试卷 (A 卷)注意事项:1. 考前请将密封线内填写清楚;2. 所有答案请直接答在答卷上,答在其它地方无效; 3.试卷与答卷同时提交,答卷才有效; 4.考试形式:闭卷;5. 本试卷共 六 大题,满分100分, 考试时间120分钟。
一、填空题。
(每空2分,共20分)1. 在VB2005中的控件坐标系中,X 坐标方向为水平向________,Y 坐标方向为水平向___________。
2. 对世界坐标系的平移、旋转、缩放(或翻转)可以通过调用Graphics 对象的相应方法来完成,它们分别为_______________、________________、________________。
3.二维图形变换中的三个基本变换分别为______变换、________变换、_______变换。
为了满足这三个基本变换都能通过矩阵乘法来实现,引入了_______坐标来表示几何元素。
4.下列代码欲完成窗体上绘制直线,试补全下划线上空缺的代码。
Dim g As Graphics g = _________________g.DrawLine(Pens.Black, 10, 10, 100, 100)三、已知一四边形⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡→→→→11040130301302011010D C B A ,按顺序执行下列图形变换: 1. 绕点P (60,40)顺时针旋转30°; 2. 向左平移20,向上平移10; 3. 将图形放大1.5倍。
(20分) 要求:1. 计算出总的变换矩阵,在下图画出变换后的图形。
_____________ ________姓名 学号学院 专业 座位号( 密 封 线 内 不 答 题 ) …………………………密………………………………………………封………………………………………线……………………………………2. 以矩阵形式写出变换步骤及总变换矩阵,并指出变换矩阵的含义。
华南理工大学材料学院课程表
材料科学与工程学院20~20学年度第一学期授课时间表(高分子、材料化学、光电和创新班)二零年月日华南理工大学20~20学年第Ⅰ学期授课时间表专业:高分子材料与工程、材料化学上课周次:1~18周;高物、工艺实验:13~14周;考试周:19~20周。
发表单位:材料科学与工程学院华南理工大学20~20学年第Ⅰ学期授课时间表专业:信息显示与光电技术显示器件驱动技术设计和照明光学系统设计:17-20周。
华南理工大学20~20学年第Ⅰ学期授课时间表专业:高分子材料与工程上课周次:1~14周;考试周:15~16周;机械设计基础课程设计:17~18周;认识实习:19~20周。
发表单位:材料科学与工程学院华南理工大学20~20学年第Ⅰ学期授课时间表专业:材料化学华南理工大学20~20学年第Ⅰ学期授课时间表模拟电子技术课程设计:第19周;数字电子技术课程设计:17~18周。
材料制备与加工综合实验:17-18周.(备注:选修课根据学生自选情况打印出个人课表进行上课)专业:高分子材料与工程备注:《中国近现代史纲要》原著导读、实践教学环节与课内教学并行,实践教学不多于8学时,由授课老师根据实际上课情况安排。
专业:材料化学备注:《中国近现代史纲要》原著导读、实践教学环节与课内教学并行,实践教学不多于8学时,由授课老师根据实际上课情况安排。
专业:信息显示与光电技术备注:《中国近现代史纲要》原著导读、实践教学环节与课内教学并行,实践教学不多于8学时,由授课老师根据实际上课情况安排。
专业:材料类创新班(本硕博连读)专业:高分子材料与工程专业:材料化学专业:信息显示与光电技术专业:材料类创新班(本硕博连读)。
灰度图像Legendre矩快速精确算法
灰度图像Legendre矩快速精确算法高月芳1),2),韩国强1),李桂清1),陈茂资2), 王栋2)1)(华南理工大学计算机科学与工程学院,广州 510640)2) (华南农业大学信息学院人机交互研究中心, 广州 510642)摘要:本文提出一种快速精确计算灰度图像Legendre矩算法。
该算法首先使用局部图像块表示(partial image block representation,简称PIBR )策略根据灰度值将图像分块表示,然后对每个图像块整体进行积分计算图像的Legendre矩。
该方法在保证计算精度的前提下,具有较快的计算速度。
实验结果验证了本算法的有效性。
关键字:Legendre矩;局部图像块表示;灰度图像中图法分类号:TP391.41 文献标识码:AExact and fast computation of Legendre Moments for gray imagesYuefang Gao1), 2), Guoqiang Han1), Guiqing Li1), Maozi Chen 2), Dong Wang2)1) (School of Computer Science and Engineering, South China University of Technology, Guangzhou 510640)2) (Research Center of Human Computer Interaction, College of Informatics, South China Agricultural University, Guangzhou, China,510642)Abstract: This paper presents a new algorithm for exact and fast computation of Legendre moments on gray-scale images. In this paper, a partial image block representation algorithm is used to extract blocks of all intensities values. After the blocks extraction, the image can be redefined and computed using integral formula in terms of blocks of different intensities, instead of individual pixels which can reduce significantly the computational complexity in the computation of Legendre moments. The obtained results explain the superiority of the proposed method.Keywords: Legendre moments, partial image block representation, gray images1 引言自Hu首次提出矩理论以来,矩技术广泛应用于图像处理领域[1]。
高精度连续人脸轮廓提取
第31卷第4期计算机辅助设计与图形学学报Vol.31No.4 2019年4月Journal of Computer-Aided Design & Computer Graphics Apr. 2019高精度连续人脸轮廓提取曹旭, 聂勇伟*, 李桂清(华南理工大学计算机科学与工程学院广州510006)(nieyongwei@)摘要: 提取连续且高精度的人脸轮廓线是很多图像应用重要的基础步骤. 然而很多现有的轮廓提取方法并不能很好地应用在人脸轮廓上. 为此提出一种快速可靠的人脸轮廓提取方法, 能够在关键点提供初始化后提取到高精度连续人脸轮廓线. 其主要步骤是先拟合关键点形成一条初始化曲线, 沿其密集采样重叠的矩形区域, 将整个人脸轮廓区域划分成很多小的区域; 然后在每个局部的矩形区域提取出一条抛物线引导基于梯度的局部人脸轮廓线; 最后从很多局部人脸轮廓线中, 通过全局融合找到最终的人脸轮廓线. 这种交叉验证的机制保证了最后结果的正确性. 最后在LFPW和HELEN人脸数据集上进行了实验, 结果表明文中方法能有效地提高人脸轮廓提取的精度.关键词:人脸对齐; 人脸分割; 人脸轮廓; 轮廓提取中图法分类号: TP391.41 DOI: 10.3724/SP.J.1089.2019.17360Refining Sparse Landmarks to Continuous and High-Quality Face ContourCao Xu, Nie Yongwei*, and Li Guiqing(South China University of Technology, School of Computer Science and Engineering, Guangzhou 510006)Abstract: Extracting continuous and high-quality face contour is an important preprocessing step of many high-level image applications. However, existing approaches are not dedicated algorithms for face contour extraction. In this paper, we find that it is feasible and economical to refine sparse landmarks to obtain a continuous and high-quality face contour, based on the fact that the landmarks can provide us with an initial face curve. The method proposed is composed of three steps: Firstly, e sample small and overlapped squares along the initial curve to cut the target face contour into small segments. We assume that any local segment of a face contour resembles a parabola, which is more reasonable than assuming the whole face contour as a parabola. Then locally in each square, we propose a parabola-constrained seam cutting algorithm to directly identify the face contour segment in the square. Finally, we propose a global seam integrating algorithm that extracts the target face contour from all the local segments. This cross-validation mechanism guarantees the success of the extraction of the final face contour. Experiments on two modern face datasets, i.e., LFPW and HELEN, demonstrate that our method significantly improves the results of the state-of-the-art face alignment approaches.Key words: face alignment; face segmentation; face contour; contour detection收稿日期: 2018-05-27; 修回日期: 2018-09-28. 基金项目: 国家自然科学基金(61572202, 61602183); 广东省自然科学基金重点项目(S2013020012795); 广州市科技计划一般项目(201707010140). 曹旭(1993—), 男, 硕士, 主要研究方向为图像处理; 聂勇伟(1987—), 男, 博士, 副研究员, 硕士生导师, 论文通讯作者, 主要研究方向为计算机视觉、图像处理、计算机图形学等; 李桂清(1966—), 男, 博士, 教授, 博士生导师, CCF高级会员, 主要研究方向为数字几何处理、三维动画、虚拟现实、图像与视频编辑等.第4期曹旭, 等: 高精度连续人脸轮廓提取523在人脸图像的相关应用中, 经常需要根据输入的人脸图像, 自动定位出脸部的关键特征点, 如眼睛、鼻尖、嘴角点以及人脸的轮廓. 现有方法可以精确地定位眼睛、鼻尖和嘴角等特征明显的位置, 而精确提取脸颊以及下巴的人脸轮廓则具有挑战性. 目前大部分基于特征点的人脸对齐方法只能在人脸轮廓定位稀疏的特征点, 难以提取出人脸轮廓线的弯曲的形状细节. 但是这些细节特征在很多计算机视觉应用中非常重要, 例如, 人脸识别[1-2]、表情识别及表示[3]和三维人脸重构[4]等. 提高人脸轮廓的精确度对于数字图像处理和计算机视觉研究领域具有重要的意义和价值, 但是目前提取出高精度连续人脸轮廓线仍是一个非常有挑战的问题.较早期的一些人脸轮廓检测方法[5-6]是直接使用一条抛物线拟合人脸的下巴区域. 但是这种方法过于简单, 只能用于下巴区域, 而且一条抛物线无法表现出人脸轮廓的弯曲特征. Kass等[7]提出的主动轮廓模型(active contour model, ACM), 可以用来描述目标轮廓曲线, 主要应用于基于形状的目标分割. 一些研究者[8-9]将这种方法应用在人脸领域提取人脸轮廓线. ACM对于其中的参数较为敏感, 并且会因为初始化位置不同收敛到不同的局部最优解而得到不理想的结果. 所以ACM通常需要不断地调整参数和初始化的位置, 但是这在自然环境下很难做到.人脸分割也是一种可以提取人脸轮廓的方法[10-13], 例如, Wang等[12]提出的皮肤检测和人脸分割方法, 这类方法通常是将图像分为人脸区域和非人脸区域, 如此2部分之间的边界就可以作为人脸轮廓. 但是这类方法对于人脸边界的处理比较粗糙, 使得边界曲线过于曲折无法贴合人脸的实际轮廓. 同时经常会将靠近人脸的一些脖子区域和头发区域囊括到人脸的区域中, 而无法得到良好的人脸轮廓线.人脸对齐则是在人脸照片上寻找预先定义好的人脸关键点, 如眼睛、鼻尖、嘴角点、眉毛以及人脸各部分轮廓点, 是一种基于有监督学习的策略; 如active shape model[14], active appearance model[15], part-based deformable models[16-18]和cascaded regres-sion-based models[19-26]. 人脸对齐的方法大大提升了人脸关键点定位的鲁棒性, 但是由于人脸轮廓上关键点数目稀少, 而且在真实情况下情景复杂, 人脸对齐难以做到足够精确. 因此这样稀疏的几个点, 难以表现出不同人的脸部轮廓线各不相同的弯曲细节特征.以上的几种方法或过于受参数和初始化的限制而无法鲁棒地在自然图片上正常运行, 或能找到人脸轮廓的大致位置但无法准确描述人脸轮廓的弯曲特征. 在目前的各种视觉应用中, 需要能够鲁棒、快速地获取高精度的人脸轮廓的方法, 为上层的如人脸识别、人脸表情识别和3D人脸重建等应用提供关键的人脸轮廓信息.本文提出一种人脸轮廓提取方法, 用于提取完整连续且高精度的人脸轮廓线, 如图1所示. 本文方法通过人脸对齐方法得到人脸轮廓区域的几个稀疏的关键点, 以指定人脸轮廓区域的位置, 并以此作为初始化提取连续完整并且高精度的人脸轮廓线.图1 人脸关键点和本文提取连续人脸轮廓线本文从稀疏人脸轮廓区域关键点开始, 是因为人脸轮廓区域的关键点可以鲁棒地指定出人脸轮廓在图像中所在的大致区域, 并通过这些人脸轮廓区域的关键点构建了一条初始化曲线. 不同于ACM方法不断地将曲线从初始化位置向目标位置移动, 本文直接在初始化曲线附近找到一条目标曲线. 本文方法步骤如下:Step1. 输入一幅图像之后, 使用人脸检测提取出其中人脸的区域, 并定位关键特征点, 拟合初始化曲线指定人脸轮廓的大致区域.Step2. 局部矩形区域采样. 沿着初始化曲线采样生成一系列稠密的矩形, 并将整个人脸轮廓区域包含其中.Step3. 局部轮廓线提取. 在每个局部矩形区域中, 提取一条抛物线引导基于梯度的局部轮廓曲线, 构成局部轮廓线集合.Step4. 全局轮廓线融合, 通过基于主成分分析(principal component analysis, PCA)的全局融合方法, 将稠密的局部轮廓线融合成为一条全局轮廓线, 得到完整的人脸轮廓线.本文方法流程如图2所示.524计算机辅助设计与图形学学报 第31卷图2 本文人脸轮廓提取流程图本文方法是很准确而且轻量级的, 其对于初始人脸轮廓关键点的位置具有鲁棒性. 实际应用中, 本文仅仅需要5个左右的关键点就能完成初始化的目的. 在后面的实验中, 本文将证明其只需要很少的代价, 就能显著提高人脸对齐方法的效果; 且在实验中展现出明显优于基于ACM 和人脸分割的方法.1 人脸轮廓线提取方法设计1.1 人脸局部抛物线假设早期的方法[5-6]假设整个人脸轮廓线是条抛物线, 但真实的人脸轮廓线是一条复杂得多的曲线, 粗糙地把整条人脸轮廓假设为抛物线, 就失去了很多弯曲细节特征. 本文采取了一个更加严格的假设: 人脸轮廓线的局部区段是符合抛物线的. 这样的假设基本符合人脸轮廓线的真实情况, 并通过统计分析验证了这一假设.首先从LFPW [17], HELEN [27]主流人脸数据集中随机选取400幅人脸图像, 然后在这些人脸图像上人工标注连续的人脸轮廓线. 沿着标注的人脸轮廓线随机生成矩形区域, 提取其中的局部人脸轮廓线, 一共获取了20 000个局部人脸轮廓线. 最后, 对每个局部人脸轮廓线用抛物线拟合, 并通过计算抛物线和标注的真实人脸轮廓线上对应点的均方距离, 得到局部人脸轮廓线的抛物线拟合误差.图3a 所示为拟合误差的统计直方图, 图3b 所示为拟合误差的累计概率分布情况. 可以看到, 大概90%的局部人脸轮廓线的抛物线的拟合误差在0.05×瞳间距离的范围之内, 这也说明了这些局部人脸轮廓线可以通过抛物线较好地拟合, 局部人脸轮廓区段符合抛物线特征.图3 20 000个局部人脸轮廓样本抛物线拟合误差分析1.2 矩形区域采样在提取人脸轮廓线之前, 需要先指定人脸轮廓在图片中所在的大致区域. 本文使用人脸对齐方法提供的脸部轮廓关键点, 沿着关键点构建一条在真实人脸轮廓线附近的初始化曲线. 在实际中任意一种基于回归的人脸对齐方法均能提供所需的脸部轮廓关键点[25-26], 本文中, 使用Kazemi 等[19]提出的集合回归树(ensembles of regression trees, ERT)方法. 由于本文的人脸轮廓提取方法并不要求初始化具有较高的准确性, 只需要指示出人脸轮廓所在的大致区域, 因此本文使用ERT 方法检测出5个人脸轮廓附近的关键点; 这5个关键点的位置分别在眼睛两边、嘴巴两边以及下巴尖的区域. 图4a 所示为使用5个关键特征点指定人脸轮廓区域的一个例子, 由图4可见, 本文人脸轮廓a. 输入关键点b. 初始化曲线c. 矩形区域采样图4 初始化和矩形区域采样过程第4期曹 旭, 等: 高精度连续人脸轮廓提取 525提取方法能够仅使用非常粗糙的初始化位置, 就能完成初始化步骤.通过曲线拟合方法将获得的5个人脸部轮廓关键点构成一条初始化曲线, 表示这个人脸轮廓区域, 并为下一步的局部矩形区域采样提供矩形中心位置和方向信息. 由于只有5个非常稀疏的脸部轮廓关键点, 为了保证这条拟合曲线通过所有的关键点而不会偏离人脸区域, 因此本文使用了Catmull-Rom 曲线拟合方法. 如图4b 所示, 使用Catmull-Rom 曲线将5个脸部轮廓关键点拟合成为一条初始化曲线.得到指定人脸轮廓区域的一条初始化曲线之后, 沿着这条曲线可以将整个人脸轮廓区域划分为很多小矩形区域. 这些矩形区域的中心点位于初始化曲线上, 大小设置为人脸检测提取的人脸包围框大小的一定倍率, 默认设置为0.2倍. 矩形区域的方向设置为当前中心点的初始化曲线的切线方向, 以便于得到的局部轮廓曲线结果总是从矩形区域的顶部开始到矩形底部结束. 采样矩形区域的数目默认为70个, 得到大量重叠的局部轮廓线结果. 图4c 显示了密集采样的矩形区域.1.3 局部人脸轮廓线提取将人脸轮廓区域划分成了大量重叠的矩形区域后, 每一块矩形的方向均与初始化曲线的方向一致, 如果局部以这个矩形区域的边作为直角坐标系单独看这块矩形区域, 局部的人脸轮廓线C 一定是从矩形区域的顶部开始, 到矩形区域的底部结束. 这条曲线不仅拥有很大的梯度, 同时还具有像抛物线一样的平滑性. 这个矩形区域是N ×N 的像素矩阵, 那么局部人脸轮廓线C 可以表示为N 个来自不同行的像素集合12,,,,,i N C p p p p =(1)其中, (,)i p i j =是这个局部人脸轮廓线C 上的第i 个点, 而且这个点的位置是在这个矩形区域的第i 行、第j 列, 范围都是[1,N ]. 对于局部人脸轮廓线上相邻的2个点i p 和1i p +, 其相邻2行的列数差不大于1, 以保证像素之间的平滑性.如果在只考虑梯度信息的情况下, 通过求解目标函数*arg max(())arg max ()i CCiC G C g p ==∑(2)可以得到梯度最大的局部人脸轮廓线. 其中,()i g p 是点i p 处的梯度值; G (C )是局部人脸轮廓线C 的总的梯度能量值. 式(2)可以通过动态规划的方法进行求解, 即(1,)1(,)max{(,)(1,)}1g j i i j g i j M i j i ∆=⎧⎪=⎨+-+∆>⎪⎩M (3) 其中, M 是一个和矩形区域大小一致的矩阵, 矩阵中每一项(),i j 都对应了矩形区域中的一个像素点(),i j ; {1,0,1}∆∈-满足了矩阵中相邻2行的列数差不大于1. 从矩阵的第1行开始, 假设很多局部人脸轮廓线以点(),i j 结尾. 如果*(,)C i j 是其中梯度能量值最大的一条局部人脸轮廓线, 使用动态规划方法, 矩阵M 在点(),i j 处就会保存以这个点结尾的所有局部人脸轮廓线中最大的梯度能量值; 通过从点(),i j 处开始回溯, 就可以获得这条局部人脸轮廓线*(,)C i j . 矩阵M 最后一行即第N 行中梯度能量值最大的一列是 arg max (,)jj N j =M ;从点 (,)i j 处回溯, 即可得到矩形区域中从顶部到底部梯度能量值最大的局部人脸轮廓线*(,)C i j .然而, 如图5a 所示, 仅仅考虑梯度信息的局部人脸轮廓线经常会出现弯弯曲曲的情况, 无法保持平滑性; 并且因为在人脸有些部分的梯度可能会不明显, 容易偏离真实的人脸轮廓线. 为了解决这个问题, 使用局部人脸轮廓可以很好地被抛物线拟合的特点, 并将梯度信息和平滑性结合起来. 本节中的抛物线引导基于梯度信息的局部轮廓曲线, 通过能量函数arg max(()(1)())CCG C S C αα=⋅+-⋅ (4)确定所在位置, 其中, C是优化得到最优的局部轮廓曲线; G (C )表示局部轮廓曲线C 的梯度值, 而S (C )表示局部轮廓曲线C 的曲率; α值是调节这条局部轮廓曲线C 的平滑程度. 同样, 使用动态规划的方法来求解这个问题. 本文没有直接求解整条局部轮廓曲线的平滑度S (C ), 而是利用贪心方法, 使得局部结果更像一条抛物线.*(,)C i j 是使用动态规划方法得到的第i 行的局部轮廓线, 那么一定来自于之前的3条轮廓线***{(1,1),(1,),(1,1)}C i j C i j C i j ----+中的一个, 使用1,(,)i j d i j -+∆表示点(),i j 到抛物线*(1,)C i j -+∆,{1,0,1}∆=-+的距离, 使用1,(,)i j e i j -+∆=221,(((,))/(0.2))i j d i j e -+∆表示偏离抛物线的误差. 动态规划方法的过程表示为526计算机辅助设计与图形学学报 第31卷1,(1,)1(,)(,)max 120(1,)(,)max (1)(,)20(1,)i j g j i g i j i j i M i j g i j e i j i i j αα∆-+∆∆⎧⎪=⎪⎪⎪⎪+⎧⎫⎪=<⎨⎨⎬-+∆⎩⎭⎪⎪⎪⋅+⎧⎫⎪⎪⎪-⋅>⎨⎬⎪⎪⎪⎪+-+∆⎩⎭⎩≤M M (5) 其中, M 表示动态规划的矩阵, (1,)i j -+∆M 是矩阵上一行对应点的能量, (,)g i j 表示这个点处的梯度值; 1,(,)i j e i j -+∆表示偏离抛物线的误差, 在第20行之后开始计算抛物线拟合误差; α值是控制平滑度的参数, 图4显示了不同α值对局部轮廓曲线C 结果的影响, 设α=0.7. 局部人脸轮廓线不仅拥有很大的梯度能量, 还具有很好的符合人脸局部抛物线特性的平滑性.a. α=1.0b. α=0.7c. α=0.1图5 不同α值对局部轮廓曲线的影响1.4 全局人脸轮廓线融合令k i p 表示第k 条局部轮廓曲线上的第i 个点. M 表示局部人脸轮廓线的数目, N 表示每条局部人脸轮廓线的长度; 所有的局部轮廓曲线可以通过一系列的点表示为{}, [1,], [1,]k i i N k M =∈∈P p . 由于对人脸轮廓区域进行了密集采样, 因此P 点的集合大量重叠, 其不仅包含真实人脸轮廓上的点, 而且还有失败的局部轮廓曲线上的点. 在全局轮廓曲线融合中, 要找出一条单像素宽度精确的全局轮廓曲线.人脸轮廓线通常包含大量的弯曲细节特征, 无法通过简单的参数化形式表示. 使用一系列的点[1,]{}l l L ∈=Q q 来表示最终的全局轮廓曲线结果, 其中L 为全局轮廓曲线的长度; 同时Q 中的点都来在于P , 以保持全局轮廓曲线的弯曲细节特征.Q 是一个点的数组. 在最开始Q 是空的, 显然0q 就是第1条局部轮廓曲线上的第一个点0p , 然后每次通过PCA 方法来寻找下一个点.为了计算点k i p 处的PCA 方向, 首先计算了点k i p 对于P 中所以其他点的协方差矩阵为T ,(||||)()()k k k k k k k i i i i i i i i k θ''''''''=---∑R p p p p p p (6)其中, k i R 就是点k i p 的协方差矩阵; k i p 表示第k 条局部轮廓曲线上的第i 个点, k i ''p 表示其他的点; 并且[1,]\{}, [1,]\{}i N i k M k ''∈∈; 函数()θ⋅表示22(/2)()e rh r θ-=, r 是2点之间的距离, h 是一个固定阈值. 当点之间的距离越远, 则它们之间的影响越小. 如此获得了协方差矩阵的特征值和对应最大特征值的特征向量就是所需要的点k i p 处的主方向k i v .当队列Q 中最后一个点为l q , 对应P 中的点为k i p . 为了获取下一个点1l +q , 先使用K 近邻方法找到离点l q 最近的K 个点{}l k i N ''=q p , 默认K =7. 如图6所示, 如果所有K 个点都是属于第k 条局部轮廓曲线, 则11k l i ++=q p 沿着这条局部轮廓曲线往下走, 如果有不属于第k 条局部轮廓曲线的点, 那么需要找到点k i p 处最符合PCA 方向k i v 的一个点, 其计算公式为()()k k k k k ki i i i i i s ''''''=⋅--v p p p p(7)其中, k i s ''是2个方向间的内积; 点k i p 处最符合PCA 方向k i v 的一个点为通过求极值 ,k i =,arg max k i k i s ''''得到的k i ''p . 这个过程不断迭代, 直到没有点再加入队列Q 中. 此时Q 就是得到的全局轮廓曲线.a. 无重叠b. 有重叠图6 全局轮廓线融合局部方向选择2 实验结果与分析2.1 数据集和误差度量本文在2个常用的人脸数据集LFPW 数据集[17]和HELEN 数据集[27]上进行实验, 招募了20名实验志愿者, 使用Photoshop 的专业标注工具, 人工精细地对总共407幅人脸图像的人脸轮廓线进行了标注.使用密集平均误差(dense mean error, DME)和第4期曹旭, 等: 高精度连续人脸轮廓提取527稀疏平均误差(sparse mean error, SME)2种方法评估提取的人脸轮廓线精确度.(1) DME. 计算提取的人脸轮廓线的每个像素点到标注的连续人脸轮廓线的最小距离, 求取平均值后除以瞳间距离.(2) SME. 计算提取的人脸轮廓关键点和标注的人脸轮廓关键点间的最小距离, 求取平均值后除以瞳间距离.2.2实验参数本文的人脸轮廓提取方法有3个主要的参数, 分别为采样矩形区域的大小和数量, 以及调整提取的轮廓线平滑程度的α值. 为了表明这些参数如何影响本文人脸轮廓提取方法的结果, 并如何选取最合适的参数, 进行了3个实验.实验1. 考察采样矩形区域的大小对方法结果的影响. 先将其他2个参数固定, 将采样矩形区域的大小设置为5个从小到大不同的值, 分别是0.15x, 0.20x, 0.25x, 0.30x和0.35x(其中x表示对应人脸包围盒大小的倍数). 从表1中可以看到, 当矩形区域大小为0.20x时DME和SME均达到了最小, 随着矩形区域大小的增大, 在0.20x之后这2个误差值均会随着变大. 这是因为当矩形区域变大, 更多类似头发和衣领类似的干扰会进入矩形区域的范围, 这将降低本文方法的精度. 恰当适中的矩形区域大小有益于获取高精确度的人脸轮廓线, 本文采用0.20x的参数作为默认值进行了其他实验.表1不同矩形区域大小得到的结果比较LFPW HELEN 矩形大小DME SME DME SME0.15x 0.033 0.037 0.019 0.0190.20x 0.033 0.037 0.018 0.0190.25x 0.033 0.038 0.020 0.0210.30x 0.034 0.039 0.020 0.0220.35x 0.035 0.040 0.021 0.023实验2. 考察采样矩形区域的数量对方法结果的影响. 同样将其他2个参数固定, 将采样矩形区域的数目设置为5个从小到大不同的值, 分别是30, 50, 70, 90和110个采样矩形. 表2所示为不同参数下的实验结果. 可以看出, 50, 70, 90个采样矩形均达到了类似精确度的结果, 与110个采样矩形的精确度也很接近. 但是, 同样可以发现随着采样矩形数目的增加, 方法的效率会降低. 同时考虑精确度和效率2个因素, 本文采用70个采样矩形的数量作为默认的参数.表2 不同矩形采样数量得到的结果比较LFPW HELENDME SME DME SME30 0.033 0.038 0.019 0.02050 0.033 0.037 0.018 0.01970 0.033 0.037 0.018 0.01990 0.032 0.036 0.018 0.019110 0.031 0.045 0.017 0.018实验3. 考察影响轮廓线平滑程度α值对方法结果的影响. 同样将其他2个参数固定, 将采样矩形区域的数目设置为5个从小到大不同的值, 分别是0.5, 0.6, 0.7, 0.8和0.9. 根据表3中的结果, 本文将α的默认值设置为0.7.表3不同的α值得到的结果比较LFPW HELEN αDME SME DME SME0.5 0.034 0.040 0.019 0.0220.6 0.033 0.037 0.018 0.0220.7 0.033 0.037 0.018 0.0190.8 0.033 0.037 0.019 0.0210.9 0.034 0.039 0.019 0.022本文方法使用C++进行实现, 所有实验在Intel(R) Core(TM) i7-4790 3.6GHz 8GB RAM的电脑上运行. 平均运行时间为 1.1s, 运行效率较高. 本文方法最耗时的部分在于并行计算局部人脸轮廓线的部分, 可以通过CUDA并行运算对其进一步进行加速处理.2.3与现有方法对比2.3.1 与人脸对齐方法的比较本文人脸轮廓提取方法主要与4种现有的人脸对齐方法进行比较, 分别是显性形状回归(explicit shape regression, ESR)[25], 局部二值特征(local binary features, LBF)[26], ERT[5]和二维人脸对齐网络(2D face alignment network, 2DFAN)[28]. 前3种是流行的基于回归的方法, 最后一种是最新的基于深度学习的方法.同时使用DME和SME 2种方法表示误差. 在表4中展示了本文的人脸轮廓提取方法和4种人脸对齐方法的比较. 从表4可以得出以下结论: (1) 无论使用DME还是SME的误差比较标准, 本文方法矩形数目528计算机辅助设计与图形学学报 第31卷表4 不同方法在不同数据集上结果比较LFPW HELEN 方法 DME SME DME SME ESR 0.052 0.140 0.045 0.119 LBF 0.052 0.161 0.053 0.125 ERT 0.044 0.124 0.034 0.097 2DFAN 0.036 0.081 0.023 0.078 本文0.0330.0370.0180.019的精确度都超过了与之对比的人脸对齐方法. (2) 在LFPW 数据集上, 本文方法的精确度使用DME 和SME 比2DFAN 方法分别要提升8.3%和54.3%; 在HELEN 数据集上, 对应的数据有21.7%和77.8%. (3) 使用SME 度量比DME 度量的误差值要大, 这是因为SME 使用的稀疏关键点, 计算对应的稀疏关键点间的误差, 而对应的稀疏关键点有可能会有一定的偏移; 但是DME 度量的方式则是计算2条曲线间的最近点, 则避免了这样的偏移误差. (4) 本文方法在HELEN 数据集上取得了比LFPW 数据集上更高的精确度, 这是因为HELEN 数据集的照片有更高的分辨率, 这对于本文的方法更有利.图7累积误差分布图更好地显示了本文方法的优势, 其显示的是在一定允许的DME 或者SME 误差值的范围内提取的人脸轮廓线或者关键点的比例. 可以看出, 本文方法要超过其他4种方法, 显示了本文人脸提取方法的良好的性能.图7 不同数据集上不同方法的累计误差分布图8所示为本文人脸轮廓提取方法和现有方法得到的部分结果. 可以看到, 本文人脸轮廓提取方法可以得到人脸下巴和脸颊区域一些弯曲的细节特征, 而其他现有的方法并没有这样的细节信息. 这也说明了本文方法能在DME 和SME 2种误差度量方式中均取得优于其他方法效果的原因. 本文方法可有效、快捷地提取精确的人脸轮廓线.图8 本文方法与ESR, LBF 和ERT 方法的比较2.3.2 与ACM 方法比较ACM 的方法[8,10,29]最初是用于医疗图像的边缘轮廓检测. 本节使用来自Rother 等[30]的一份很优秀的代码, 并使用了其默认参数与本文人脸轮廓提取方法进行比较. ACM 方法通常用于提取闭合的轮廓曲线, 例如, 一个物体的轮廓. 本文方法既可以提取闭合的轮廓, 也可以提取开放的轮廓, 可以根据初始化的不同而实现不同的轮廓提取. 例如, 在之前与人脸对齐的方法比较时, 输出了开放的人脸轮廓线. 为了与ACM 比较的公平性, 本节使用了如图9所示闭合人脸轮廓线.众所周知, ACM 非常受初始化位置的影响, 而本文人脸轮廓提取的方法对初始化位置具有鲁棒性. 在图9中验证了这一性质, 图9a 是3种不同的初始化, 位于真实人脸轮廓线内部、之上、外部3种情况; 图9b 展示了ACM 方法的结果, 初始化在人脸轮廓上得到了不错的结果, 否则ACM 的轮廓线会扩张到外侧或收缩到内侧. 这清晰地展示了蛇形方法受初始化位置的影响. 图9c 是本文人脸轮廓提取方法的结果, 本文方法在3种不同的初始化位置均得到了很好的人脸轮廓线. 真实人脸。
使用全卷积神经网络分割定格动画中人手部区域的方法[发明专利]
专利名称:使用全卷积神经网络分割定格动画中人手部区域的方法
专利类型:发明专利
发明人:许家荣,李桂清
申请号:CN201711098799.2
申请日:20171109
公开号:CN108010049A
公开日:
20180508
专利内容由知识产权出版社提供
摘要:本发明公开了一种使用全卷积神经网络分割定格动画中人手部区域的方法,包括步骤:1)数据输入;2)使用全卷积网络进行特征提取和初步分割;3)使用条件随机场CRF算法对分割效果进行优化;4)对网络模型进行训练;5)使用完成训练的模型对输入图片进行分割。
本发明主要解决的问题是通过自己建立包含人手部区域的图片数据集,构建网络模型,并使用数据集对这个网络模型进行训练。
训练完成后,网络模型将能够对人手部区域进行具有较高精确度的分割。
本发明具有精确度高、抗噪性好、使用简单、效率高、速度快等优点。
申请人:华南理工大学
地址:510006 广东省广州市番禺区广州大学城华南理工大学
国籍:CN
代理机构:广州市华学知识产权代理有限公司
代理人:冯炳辉
更多信息请下载全文后查看。
华南理工大学计算机图形学2015年作业及解答
2015年作业及解答作业1(第一章)1.2题答案:GL_TRIANGLE_FAN GL_TRIANGLE_STRIP glDrawArrays(GL_TRIANGLE_FAN, 0, NumV); glDrawArrays(GL_TRIANGLE_STRIP, 0, NumV); Another method:2(第一章)1.8题答案:1280*1024*72=94,371,840pixels/sec must transmit to the frame buffer.1/94,371,840=1.0596e-8sec/pixel=10nanosec/pixel must transmit to frame buffer480*640*30=921,600pixels/sec (interlaced, so refreshed 30 times per second) 1/921,600=1.085e-6sec/pixelNanosecond 是纳秒,是10亿分之一,即等于10的负9次方秒。
3.test to write the 2D Sierpinski gasket program with 5000 random points.See also the textbook in page 640 by Appendix A A.24.write down the matrices for rotation about y and z axes.rotation about y : rotation about z:5.write down the mtrices for rotation about any line.M=T(p 0)R x (-θx )R y (-θy )R z (θ)R y (θy )R x (θx )T(-p 0)6.(第三章) 3.10题答案:1085⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-10000cos 0sin 00100sin 0cos θθθθ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡θθθ-θ1000010000cos sin 00sin cos答案It means:(A,B,C)=(P2-P1)×(P1-P0)=V×WA=v2w3 – v3w2, B=v3w1 – v1w3, C=v1w2 – v2w1If (A,B,C)·(x-x0, y-y0, z-z0)=0, then p is in the plane (A,B,C) ·(x-x0, y-y0, z-z0)=A(x-x0)+B(y-y0)+C(z-z0)答案9.(第四章)4.17题答案10.附加练习:11.Textbook in page 668, Appendix A.8: Rotating Cube with Texture12.Stereo images are produced by creating two images with the viewer in two slightly different positions. Consider a viewer who is at the origin but whose eyes are separated by dx units. Please write down the LookAt parameters for two eyes.解:13. How to compute the interpolation illumination Ip2 by previous illumination Ip1 and increment.I Q = (1-u ) × I A + u ×I B 0≤ u ≤1, u = AQ/AB I R = (1-w ) ×I B + w ×I C 0≤w ≤1, w = BR/BC I P = (1-t ) ×I Q + t ×I R 0≤t ≤1, t = QP/QRIncrement Computing: I P2 = (1-t 2 ) × I Q + t 2 ×I R I P1 = (1-t 1 ) × I Q + t 1 × I RI P2 = I P1 + (I R -I Q ) (t 2- t 1 ) = I P1 + △I RQ × △t14. 将三角形A(0,0),B(1,1),C(5,2)放大两倍,保持C(5,2)不变。
三维网格模型特征向量水印嵌入
三维网格模型特征向量水印嵌入
李世群;李桂清;冼楚华
【期刊名称】《图学学报》
【年(卷),期】2017(038)002
【摘要】为了保证在一定鲁棒性的基础上提高三维网格模型水印算法的水印容量,提出一种基于网格拉普拉斯矩阵特征向量的三维网格模型半盲水印算法。
在水印嵌入阶段,计算Tutte拉普拉斯矩阵,然后对其进行特征值分解进而得到特征向量,扰动拉普拉斯矩阵的特征向量以实现水印的嵌入。
为了使水印引起的模型失真尽可能的小,在水印算法优化阶段,设计了对应特征向量矩阵的选中矩阵,并启发式地计算出水印嵌入的具体特征向量分量。
在水印提取阶段,用扰动后的特征向量与水印模型的特征向量相减以实现水印信息的提取。
对于规模较大的模型,先用谱聚类算法分割成较小的子网格,然后在每个子网格中逐一嵌入水印。
该算法在水印提取阶段不需要原始网格模型,但需要记录更改后的特征向量,实现了水印算法的半盲检测。
实验结果表明,该算法能抵抗仿射变换、随机噪声、平滑、均匀量化、裁剪等常见攻击,具有较强的鲁棒性,同时极大提升了水印负载容量。
【总页数】7页(P155-161)
【作者】李世群;李桂清;冼楚华
【作者单位】[1]华南理工大学计算机科学与工程学院,广东广州510006
【正文语种】中文
【中图分类】TP391
【相关文献】
1.三维网格模型特征向量水印嵌入
2.基于三维DCT变换的体数据鲁棒数字水印嵌入算法
3.基于三维小波变换的视频水印嵌入与盲提取算法
4.一种新的三维模型水印嵌入空域算法
5.基于三维DCT变换的NURBS模型鲁棒数字水印嵌入算法
因版权原因,仅展示原文概要,查看原文内容请购买。
细分曲面造型及应用-李桂清2001
图6.7 新顶点计算
图6.8 流程
求曲率
49
6.5 3D离散布状样条曲线(3)
图例
图6.9 3D DCS
图6.10 开3D DCS
图6.11 PDCS
50
6.5 3D离散布状样条曲线(3)
迭代算法的数值收敛性
误差:相应顶点距离之和
迭代次数与平均误差关系(图6.12),一次细分
PDCS
3D DCS
和
连续
填充
基曲面与填充曲面二阶连续拼接
新顶点计算:启发式+交互
40
6
离 散 布 状 样 条
6.1
6.2 6.3
6.4
6.5 6.6 6.7
背景介绍 离散曲率 离散布状样条 离散Frenet标架 3D离散布状样条曲线 开网格上的离散布状样条曲面 小结
41
6.1 背景介绍
图3.1 顶点标记
16
3.3.2
分裂(1)
折痕(Crease)
被标记为网格顶点链(图3.2) 内部折痕点分裂为2 折痕的每条边分裂为2 折痕端点 内部:分裂为1,边界角点
图3.2
边界:分裂为2,边界角点
尖刺(Darts):折痕端点
17
3.3.2
锥点
分裂(2)
分裂为n个顶点(n为顶点的邻边数,图3.3) 多边形处理(图3.4)
在两片或多片曲面之间进行平滑过渡
基曲面,混合曲面
高,往往只能得到近似解 参数曲面方法:不适于三片以上曲面片间的 混合 隐式曲面方法: 构造与计算都比较复杂 PDE方法: 混合曲面形状难控制
滚动球方法(Rolling Balls):混合曲面次数偏
基于混合子分方法的曲面网格顶点与法向插值
基于混合子分方法的曲面网格顶点与法向插值李桂清;李华【期刊名称】《计算机辅助设计与图形学学报》【年(卷),期】2001(013)006【摘要】顶点位置和法向插值是参数曲面造型的重要内容.文中基于混合子分方法生成三次B样条控制网格,使得相应的三次B样条曲面插值初始网格中指定的顶点,并通过引入插值模板的概念,把法向的插值转化为对模板的旋转变换,使得曲面在不改变插值顶点的情况下插值法向,最后得到一张C2连续的插值指定顶点和法向的曲面.与传统的逐片Bézier或Coons曲面片构造方法相比,此方法更为简洁且具有更高的连续阶,而且易于推广到高阶B样条和任意拓扑情形,具有较强的实用性.%Interpolation to vertex positions and normals is one of important contents in parametric surface modeling. This paper presents an approach based on Catmull-Clark and Doo-Sabin subdivision schemes to generate the control net of bi-cubic B-spline surface interpolating the given vertices of initial net. The notion of stencils is introduced such that the normal interpolation is converted into the rotation transformation of stencils without influencing the effects of vertex interpolation, thus a C2-continuous surface interpolating given vertices and normals is obtained. Compared to traditional methods through stitching patches piece by piece, our method is more compact and has smoothness of higher degree. In addition, the method can be easily extended to high degree B-splinesurfaces with arbitrary topology nets and it is also fairly useful for practical applications.【总页数】8页(P537-544)【作者】李桂清;李华【作者单位】中国科学院计算技术研究所智能信息处理开放实验室北京100080;中国科学院计算技术研究所智能信息处理开放实验室北京100080【正文语种】中文【中图分类】TP391.72【相关文献】1.基于顶点变形梯度的点云曲面形状插值 [J], 谭光华;张引;陈志杨;吴双卿;张三元2.基于顶点分类的曲面三角网格模型自适应光顺研究 [J], 神会存;周来水;贺美芳3.二次B样条曲面顶点及法向插值 [J], 李桂清;李现民;李华4.计算空间曲面顶点法向量的方法 [J], 李胡送;王家华5.基于顶点法向量约束的Catmull-Clark细分插值方法 [J], 林传銮因版权原因,仅展示原文概要,查看原文内容请购买。
基于子分规则的边折叠简化方法
基于子分规则的边折叠简化方法
李现民;李桂清;张小玲;李华
【期刊名称】《计算机辅助设计与图形学学报》
【年(卷),期】2002(014)001
【摘要】边折叠简化方法是一种主要的三角网格简化方法,已成为多分辨率自适应曲面参数化、基于法向细节的几何压缩、渐进网格算法的重要组成部分.文中采用子分的思想生成三角网格模型的新顶点,从而减小了简化模型和原始模型之间的误差;此外,还给出保持模型流形的方法;最后给出一种新的计算简化网格与原始网格之间的Metro距离的采样方法,并分析这个距离误差.
【总页数】6页(P8-13)
【作者】李现民;李桂清;张小玲;李华
【作者单位】中国科学院计算技术研究所智能信息处理开放实验室,北京,100080;中国科学院计算技术研究所智能信息处理开放实验室,北京,100080;北京工业大学电子信息与控制工程学院,北京,100022;中国科学院计算技术研究所智能信息处理开放实验室,北京,100080
【正文语种】中文
【中图分类】TP391
【相关文献】
1.基于规则灵敏度的模糊逻辑系统结构简化方法 [J], 孙多青;霍伟
2.基于粗集的规则简化方法 [J], 凌方;范军
3.基于布尔剪枝的多值广义量词Tableau推理规则简化方法 [J], 刘全;孙吉贵;崔志明
4.基于规则与模糊判定的模型快速简化方法 [J], 戴野;赖一楠;张元;任胜乐;王健
5.基于相似度量的规则库简化方法 [J], 李凡;饶勇;徐章艳
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1题后向面检测(Back-face detection)在消隐算法中的作用:判断一个平面是否为后向面(back-face),如果是则不必显示。
通常,后向面消隐算法可消除场景中一半左右的隐藏面。
计算方法:对于面F(P A, P B, P C),V1 = P A– P B V2 = P C - P B法向量n F = V1×V2= (x1, x2, x3),若x3< 0,则平面F为后向面,应该消隐。
题中四个面的法向量分别为(-4, 2, 1)、(0, -4, 2)、(4, 2, 1)、(0, 0, -4),故第四个平面为后向面。
第2题算法:1.将深度缓存与帧缓存所有单元初始化,使得depthBuff(x, y) = 15 frameBuff(x, y) = 02.处理场景中的每一个多边形,每次一个。
计算多边形各点的深度值z。
若z < depthBuff(x, y),则depthBuff(x, y) = z frameBuff(x, y) = surfColor(x, y)四边形扫描转换后两个缓存的值int _tmain(int argc, _TCHAR* argv[]){//初始化//转换四边形for (int x = 10; x <= 25; x++)for (int y = 5; y <= 25; y++){depthBuff[x][y] = 10;frameBuff[x][y] = 1;}//输出//转换三角形for (int x = 15; x <= 30; x++)for (int y = 10; y <= 25; y++)if ((y <= x) && (y <= 50 - x) && (3*y >= 60 - x)){double z = (double)(3 * x + y - 120) / -4;if (z <depthBuff[x][y]){depthBuff[x][y] = (int)z;frameBuff[x][y] = 2;}}//输出}(左到右:x:10->25;上到下:y:5->25)10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/110/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1三角形扫描转换后两个缓存的值:(左到右:x:10->30;上到下:y:5->25)10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 15/0 15/0 15/0 5/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 15/0 7/2 6/2 5/2 4/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 6/2 6/2 5/2 4/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 8/2 7/2 6/2 5/2 5/2 4/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 7/2 6/2 5/2 4/2 4/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 9/2 8/2 7/2 6/2 6/2 5/2 4/2 3/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 8/2 7/2 6/2 5/2 5/2 4/2 3/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 7/2 6/2 5/2 4/2 4/2 3/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 9/2 8/2 7/2 6/2 6/2 5/2 4/2 3/2 3/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 8/2 7/2 6/2 5/2 5/2 4/2 3/2 2/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 7/2 6/2 5/2 4/2 4/2 3/2 2/2 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 9/2 8/2 7/2 6/2 6/2 5/2 4/2 3/2 3/2 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 8/2 7/2 6/2 5/2 5/2 4/2 3/2 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 7/2 6/2 5/2 4/2 4/2 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 6/2 5/2 4/2 15/0 15/0 15/0 15/0 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 10/1 5/2 15/0 15/0 15/0 15/0 15/0第3题根据题意选择Q2:p5( -1 ,-1 ,0), p6(2, -1, 0), p7(2, 0, 0), p8(-1, 0, 0),即Z=0作为分隔平面。