项目概况
该项目的目标是预测面部图片上关键点的位置。这可以用作各种应用程序中的组件,包括:
图片和视频中的人脸识别。
面部表情的研究。
用于医学诊断,识别畸形面部症状。
识别面部关键点是一个很难解决的话题。人与人的面部特征差异很大,即使在一个人内,由于 3D 姿势、大小、位置、视角和照明环境,也会存在很多差异。尽管计算机视觉研究在解决这些问题方面取得了长足的进步,但仍有许多可以改进的领域。
目录
介绍
先决条件
程序和编程
面部关键点检测的有用应用
介绍
利用卷积神经网络和计算机视觉技术进行人脸关键点检测,对人脸的重要区域(如眼睛、嘴角和鼻子)进行标记,这些区域与各种任务(如人脸滤波、情感识别和姿势识别)相关。
它需要预测特定面部的面部关键点坐标,例如鼻尖、眼睛中心等。为了识别面部关键点,我们使用基于卷积神经网络的模型使用自动编码器。
卷积神经网络 (CNN) 具有深层结构,允许它们提取高级信息并在识别每个重要点时提供更好的精度。卷积网络旨在同时预测所有点。
先决条件
因为神经网络经常需要标准化的图片,所以它们应该有一个恒定的大小,颜色范围和坐标的标准化范围,并从 NumPy 列表和数组转换为 Tensor 和 Keras(用于 PyTorch)。因此,需要进行一些预处理。
程序和编程
我正在使用 Kaggle 数据集来训练模型,你可以通过运行 API 命令下载它
kaggle competitions download -c facial-keypoints-detection
导入 NumPy 和 pandas 库:
import numpy as np # linear algebra
import pandas as pd # data processing
import os
for directoryname, _, filenames in os.walk('/kaggle/input'):
for filename in filenames:
print(os.path.join(directoryname, filename))
你写入当前目录的任何输出都会被存储。
下一步是为训练和测试数据的每个文件设置路径,
train_zip_path = "../input/facial-keypoints-detection/training.zip"
test_zip_path = "../input/facial-keypoints-detection/test.zip"
id_lookup_table = "../input/facial-keypoints-detection/IdLookupTable.csv"
sample_Submission = "../input/facial-keypoints-detection/SampleSubmission.csv"
让我们使用 zip 文件解压 zip 文件,然后加载数据集。
import zipfile
with zipfile.ZipFile(train_zip_path,'r') as zip_ref:
zip_ref.extractall('')
with zipfile.ZipFile(test_zip_path,'r') as zip_ref:
zip_ref.extractall('')
train_df = pd.read_csv('training.csv')
test_df = pd.read_csv('test.csv')
idLookupTable