【数据集】以人脸关键点为例讲解:如何通过开源项目快速制作关键点数据集

简介: 【数据集】以人脸关键点为例讲解:如何通过开源项目快速制作关键点数据集

前言

  人脸关键点检测是计算机视觉中的重要任务,它在人脸识别、表情识别、人脸美化等应用中发挥着关键作用。然而,为了训练高效准确的人脸关键点检测模型,我们需要大量的标注数据集。在本篇博客中,我们将介绍如何快速制作高质量的人脸关键点数据集,以支持后续模型的训练与优化。

关键点标注信息展示

  在这里向大家介绍一款简单常见的关键点标注程序:labelme,大家可以通过这款软件进行关键点标注。在这里我以帅气的郭富城为例子进行标注五官关键点以及相应的json文件:


shell

复制代码

{
  "version": "5.2.1",
  "flags": {},
  "shapes": [
    {
      "label": "0",
      "points": [
        [
          74.02476780185759,
          130.80495356037153
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    },
    {
      "label": "1",
      "points": [
        [
          126.656346749226,
          136.687306501548
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    },
    {
      "label": "2",
      "points": [
        [
          101.26934984520125,
          169.1950464396285
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    },
    {
      "label": "3",
      "points": [
        [
          101.57894736842104,
          194.89164086687308
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    },
    {
      "label": "4",
      "points": [
        [
          45.8513931888545,
          134.82972136222912
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    },
    {
      "label": "5",
      "points": [
        [
          162.26006191950466,
          143.49845201238392
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    }
  ],
  "imagePath": "300.jpg",
  "imageData": "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",
  "imageHeight": 300,
  "imageWidth": 240

标注信息获取

  分析【关键点标注信息展示】的信息,我们可以得到其组成为version 、 flags 、 shapes 、 imagePath 、 imageData 、 imageHeight 、 imageWidth 。 其中的【version 、 flags】 为固定信息,【shapes】中的信息为标注的关键点信息 , 【imagePath 、 imageData 、 imageHeight 、imageWidth】分别为图像名称 、 图像Base64编码字符串 、 图像的高 、 图像的宽。而在【shapes】中的信息仅label和points是变动的,分布代表类别和坐标点。

关键点检测

  既然需要制作人脸关键点数据集,所以人脸关键点的检测是必不可少的,我们仍然是通过开源项目进行人脸关键点检测。在这里我们选择的是人脸关键点较少的开源项目检测:【mediapipe】在这里大家可以翻阅我往期关于【mediapipe】介绍。例如:

  1. 【特效】对实时动态人脸进行马赛克及贴图马赛克处理及一些拓展
  2. 【姿态估计】从理论到实践逐步分析讲解传统姿态估计算法
  3. 【实操:人脸矫正】两次定位操作解决人脸矫正问题
  4. 一起来学MediaPipe(二)人脸面网格
  5. 一起来学MediaPipe(二)人脸面网格

在这一步骤中我们核心目的是为了使用mediapipe包对人脸关键点检测后输出:

shell

复制代码

import cv2
import mediapipe as mp
mp_face_detection = mp.solutions.face_detection
mp_drawing = mp.solutions.drawing_utils
def get_face_info(image):
    image.flags.writeable = False
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    results = face_detection.process(image)
    facial_axis = None
    if results.detections:
        for detection in results.detections:
            facial_axis = detection.location_data.relative_keypoints
    return facial_axis
def AxisTransformation(w, h, img_fa):
    # 左眼
    left_eye = [img_fa[0].x * h, img_fa[0].y * w]
    # 右眼
    right_eye = [img_fa[1].x * h, img_fa[1].y * w]
    # 鼻子
    nose = [img_fa[2].x * h, img_fa[2].y * w]
    # 嘴巴
    mouth = [img_fa[3].x * h, img_fa[3].y * w]
    # 左耳
    left_ear = [img_fa[4].x * h, img_fa[4].y * w]
    # 右耳
    right_ear = [img_fa[5].x * h, img_fa[5].y * w]
    points = [[left_eye], [right_eye], [nose], [mouth], [left_ear], [right_ear]]
    labels = ["left_eye", "right_eye", "nose", "mouth", "left_ear", "right_ear"]
    return points, labels

image信息获取

  通过关键点标注分析我们可以获得在image信息中需要填入的信息,其中图像的尺寸和名称较为轻易获取,我们在批量读取图像的时候通过for循环可以解决,在这里我们着重解决BASE64编码字符串的获取问题:

shell

复制代码

def get_imageData(img):
    # 将图像数据转换为Base64编码字符串
    image_data_binary = cv2.imencode(".jpg", img)[1].tobytes()
    image_data_base64 = base64.b64encode(image_data_binary).decode()
    return image_data_base64

shapes信息获取

  由于一张图内的关键点往往不是一个,是需要多个关键点组合而成的,我们从上述的分析中也可以得到shapes信息中改变的也仅仅为lebel和points信息,而group_id、description、shape_type和flags参数爆出不变。同时每个关键点的信息也都是有如下关键信息所示,我们可以这样定义一个函数进行获取shapes信息:

shell

复制代码

def get_shapes_data(points, label):
    info = {
      "label": label,
      "points": points,
      "group_id": None,
      "description": "",
      "shape_type": "point",
      "flags": {}
    }
    return info

生成标注文件

在批量生成标注数据时,我们假定是通过文件夹中的图像进行处理,基础逻辑流程为:


image.png image.png image.png

image.png

可以通过下面这段代码实现上述逻辑,我们使用四大天王的照片进行测试实验:

shell

复制代码

if __name__ == "__main__":
    img_path = "./img/"
    with mp_face_detection.FaceDetection(model_selection=0,
                                         min_detection_confidence=0.5) as face_detection:
        for name in os.listdir(img_path):
            src_img = cv2.imread(img_path + name)  # 读取原始图像
            facial_axis = get_face_info(src_img)  # 五官坐标集
            if facial_axis is not None:  # 判定关键点坐标是否存在
                Height, Width, _ = src_img.shape
                imageData = get_imageData(src_img)  # 获取图像的imageData信息
                # 标签的基础信息
                json_base = {
                    "version": "5.2.1",
                    "flags": {},
                    "shapes": None,
                    "imagePath": name,
                    "imageData": imageData,
                    "imageHeight": Height,
                    "imageWidth": Width
                }
                points, labels = AxisTransformation(Height, Width, facial_axis)  # 获取关键点坐标, 类别名称
                # 获取关键点信息
                shape_infos = []
                for epoch in range(len(points)):
                    shape_info = get_shapes_data(points[epoch], labels[epoch])
                    shape_infos.append(shape_info)
                # 对基础款进行修改
                json_base["shapes"] = shape_infos
                json.dump(json_base, open('./img/%s.json' % name[:-4], 'w'), indent=2)

生成后观察文件夹下图像及标注文件:


使用labelme检验标注结果:


结语

  周五了,匆忙中实现了一个人脸关键点数据集的快速制作脚本,仅以此篇以飨读者!这样大家可以快速制作自己的关键点数据集了,大家也可以使用Dlib包制作自己的人脸关键点或者其他开源项目制作自己的关键点数据集。


相关文章
|
2月前
|
人工智能 vr&ar 图形学
开源单图生成3D模型TripoSR的局限性分析
【2月更文挑战第25天】开源单图生成3D模型TripoSR的局限性分析
205 6
开源单图生成3D模型TripoSR的局限性分析
|
5月前
|
机器学习/深度学习 人工智能 算法
AI Earth有没有相关文档或论文介绍平台地物分类、目标提取、变化检测等算法的原理呢?
AI Earth有没有相关文档或论文介绍平台地物分类、目标提取、变化检测等算法的原理呢?
303 1
|
7月前
视觉智能平台中,如果你想批量清空人脸样本库里的样本数据
视觉智能平台中,如果你想批量清空人脸样本库里的样本数据
48 5
|
11月前
|
XML JSON 算法
计算机视觉,算法应用自定义数据集制作
计算机视觉,算法应用自定义数据集制作
|
12月前
|
算法 计算机视觉 网络架构
【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)(一)
【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)(一)
143 0
|
12月前
|
计算机视觉
【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)(二)
【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)(二)
53 0
|
机器学习/深度学习 监控 算法
基于关键点的人脸检测(概述+代码)
基于关键点的人脸检测(概述+代码)
112 0
|
机器学习/深度学习 监控 算法
智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
748 0
|
PyTorch 算法框架/工具 计算机视觉
|
机器学习/深度学习 算法 计算机视觉
机器学习中不平衡数据集分类模型示例:乳腺钼靶微钙化摄影数据集(一)
机器学习中不平衡数据集分类模型示例:乳腺钼靶微钙化摄影数据集(一)
202 0
机器学习中不平衡数据集分类模型示例:乳腺钼靶微钙化摄影数据集(一)