资源简介

【Tensorflow】人脸128个关键点识别基于卷积神经网络实现
【Tensorflow】人脸128个关键点识别基于卷积神经网络实现

资源截图

代码片段和文件信息

“““
数据处理相关功能
“““
import os
import cv2
import numpy as np
from sklearn.model_selection import train_test_split


def read_img(path):
    “““
    功能:读取图片
    # 参数:
        path: 数据集的路径
    # 返回:
        res: 不同人的图片。
    “““
    res = []

    for (root dirs files) in os.walk(path):
        if files:
            tmp = []
            files = np.random.choice(files 4)
            for f in files:
                img = os.path.join(root f)
                image = cv2.imread(img)
                image = cv2.resize(image (64 64)
                                   interpolation=cv2.INTER_CUBIC)
                image = np.array(image dtype=‘float32‘)
                image /= 255.
                tmp.append(image)

            res.append(tmp)

    return res


def get_paris(path):
    “““
    功能:构造用于训练的成对数据
    # 参数:
        path: 数据集的路径
    # 返回:
        sm1: 一对数据中的第一个对象
        sm2: 一对数据中的第二个对象
        y1: 成对数据的标签,相同为1,不同为0.
    “““
    sm1 sm2 df1 df2 = [] [] [] []
    res = read_img(path)

    persons = len(res)

    for i in range(persons):
        for j in range(i persons):
            p1 = res[i]
            p2 = res[j]

            if i == j:
                for pi in p1:
                    for pj in p2:
                        sm1.append(pi)
                        sm2.append(pj)
            else:
                df1.append(p1[0])
                df2.append(p2[0])

    df1 = df1[:len(sm1)]
    df2 = df2[:len(sm2)]
    y1 = list(np.zeros(len(sm1)))
    y2 = list(np.ones(len(df1)))

    sm1.extend(df1)
    sm2.extend(df2)
    y1.extend(y2)

    return sm1 sm2 y1


def create_generator(x y batch):
    “““
    功能:构造数据生成器
    # 参数:
        x: 数据
        y: 标签
        batch: 数据生成器每次生成数据的个数
    # 返回:
        [x1 x2]: 成对数据
        yb: 数据标签
    “““
    while True:
        index = np.random.choice(len(y) batch) # 每次选择batch个数据索引
        x1 x2 yb = [] [] []
        for i in index:
            x1.append(x[i][0])
            x2.append(x[i][1])
            yb.append(y[i])
        x1 = np.array(x1)
        x2 = np.array(x2)

        yield [x1 x2] yb


def get_train_test(path):
    “““
    功能:切分数据集
    # 参数:
        path: 数据集的路径
    # 返回:
        X_train: 用于训练的数据
        X_test: 用于测试的数据
        y_train: 用于训练的标签
        y_test: 用于测试的标签
    “““
    im1 im2 y = get_paris(path) # 构造成对数据
    im = list(zip(im1 im2))

    X_train X_test y_train y_test = train_test_split(
        im y test_size=0.33)  # 利用sklearn切分数据集
    return X_train X_test y_train y_test

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        135  2019-02-28 16:51  FaceRecognitionUncompleted\.idea\encodings.xml

     文件        528  2019-12-19 22:27  FaceRecognitionUncompleted\.idea\FaceRecognitionUncompleted.iml

     文件       2085  2019-12-19 09:33  FaceRecognitionUncompleted\.idea\inspectionProfiles\Project_Default.xml

     文件        214  2019-12-19 22:27  FaceRecognitionUncompleted\.idea\misc.xml

     文件        304  2019-02-28 16:51  FaceRecognitionUncompleted\.idea\modules.xml

     文件      34650  2019-12-21 14:46  FaceRecognitionUncompleted\.idea\workspace.xml

     文件       3587  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.1.jpg

     文件       3562  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.10.jpg

     文件       3573  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.11.jpg

     文件       3635  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.12.jpg

     文件       3591  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.13.jpg

     文件       3625  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.14.jpg

     文件       3653  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.15.jpg

     文件       3654  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.16.jpg

     文件       3673  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.17.jpg

     文件       3689  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.18.jpg

     文件       3667  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.19.jpg

     文件       3553  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.2.jpg

     文件       3665  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.20.jpg

     文件       3562  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.3.jpg

     文件       3621  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.4.jpg

     文件       3648  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.5.jpg

     文件       3628  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.6.jpg

     文件       3622  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.7.jpg

     文件       3617  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.8.jpg

     文件       3584  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\and\and_exp.9.jpg

     文件       3881  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\ant\ant_exp.1.jpg

     文件       3876  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\ant\ant_exp.10.jpg

     文件       3838  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\ant\ant_exp.11.jpg

     文件       3894  2019-02-28 16:51  FaceRecognitionUncompleted\data\dataset\ant\ant_exp.12.jpg

............此处省略396个文件信息

评论

共有 条评论