Multi-task Convolutional Neural Network 训练人脸识别和关键点检测 (python+tensoflow实现代码 算法步骤)---数据集处理

这篇博客主要介绍了如何处理PFLD数据集,将其转化为仅包含嘴巴包围盒和标注的数据。通过matplotlib库显示标记,然后筛选出与嘴巴相关的20个关键点。博主使用了IBUG人脸标记数据集,保留第84-104个点的坐标,并计算出嘴巴的包围盒信息,将其存储在单独的txt文件中。
摘要由CSDN通过智能技术生成

1.数据处理

将用于PFLD的数据集处理成只有嘴巴包围盒+标注的数据集

首先通过matplotlib库函数画出所有的标记,在通过删减点的个数来确定关键点标记在嘴巴的位置

例如使用IBUG人脸标记数据集做测试,每张图片有106个标记点位置,其中第84-104 有20个标记点是嘴巴

# 将数据集处理成嘴巴标记和嘴巴包围盒的数据

import cv2
import os
import  matplotlib

#将人脸图片画上标记输出展示效果
picture_set = []

#读取原图片目录
picture_path = "./traindata/IBUG/picture"  #原图片目录
for item in os.listdir(picture_path):
    if ('jpg' not in item):
        continue
    picture_set.append(os.path.join(picture_path, item))


save_path = "./output_landmark"    #输出图像目录
if not os.path.exists(save_path):
         os.makedirs(save_path)

image = cv2.imread(picture_set[0])
land_path = "./traindata/IBUG/landmark"
land_path = os.path.join(land_path, (picture_set[0] + ".txt").split("/")[-1])
print(land_path)
count = 0
# 33 个面部轮廓点 < 35
# 最后两个关键点是眼睛的中心 106 107 去掉
# 85 -105 行 是嘴巴关键点的标注
with open(land_path) as read_file:
     for line in read_file:
         count = count + 1
         if(count < 85) :continue
         pos = line.split()
         x=int(float(pos[0])*1000000)
         y=int(float(pos[1])*1000000)
         x1=int(float(pos[0]))
         x2=int(float(pos[1]))
         #画出标记
         print(count)
         cv2.circle(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值