# FaceKeyPointTrainDataProcessing **Repository Path**: bestpower_wyu/FaceKeyPointTrainDataProcessing ## Basic Information - **Project Name**: FaceKeyPointTrainDataProcessing - **Description**: 本工程代码用于批量实现公开人脸300w/lfpw/afw/helen人脸68个关键点检测训练数据的处理与增强操作,方便后续的训练工作 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-01 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FaceKeyPointTrainDataProcessing 本工程所有代码主要用于批量实现公开人脸300w/lfpw/afw/helen人脸68个关键点检测训练数据的处理与增强操作,方便后续的训练工作 ### 运行环境: IDE:Pycharm 依赖库:Python3.6.3 Pillow matplotlib numpy opencv-python ## 数据整理主要分为三个步骤: ### 1、训练数据下载 #### 地址: #### https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/ #### 其中原始数据里已包含了图片数据和对应的关键点位置标签数据 ### 2、原数据扩展 #### 2.1 旋转变换 ##### 详见img_transformations.py ##### 包括图片几何旋转与关键点坐标标签对应变换,其中旋转中心为图片中心,旋转角度以5为步长从-30到+30角度数 #### 2.2 遮挡变换 ##### 详见img_transformations.py ##### 遮挡部分必须在人脸区域以内,遮挡占比为20%,遮挡形状为三角形、正方形、圆形,遮挡颜色随机 #### 2.3 估计姿态角度 ##### 详见face_attitude.py ##### 这部分计算主要是根据opencv库中Camera标准姿态映射和选取68个关键点中的14个进行欧拉角的计算所得,该方法主要适用于计算正常表情的人脸姿态角,但对于夸张表情人脸的姿态估计偏差较大 #### 2.4 截取人脸框数据 ##### 详见getFaceBox.py ##### 主要根据关键点最值坐标,人脸框宽高为最值坐标差值的1.2倍,人脸框图片大小可根据训练模型输入来确定 #### 2.5 人脸属性标注 ##### 详见autoMarkTools.py ##### 该部分参数需要手动进行判断与标注,作为模型辅助训练的参考,针对一些异常人脸的判别和特征学习,相关属性需要根据实际需要来定义,一般为某种状态的真假1或0 ### 3、数据合并 ##### 详见annotations.py ##### 该部分主要对每张图片的所有标签进行整合处理,标准格式是一行文本为以空格为间隔的一系列标签: ###### 1列:图片路径;2-137列:关键点xy坐标;138-143列:属性标注;144-146:姿态标注