表示用于面部识别的二维数据

数据挖掘 机器学习 预处理 CSV
2022-03-12 13:18:02

我的目标是训练神经网络根据Google Firebase ML-Kit生成的地标点列表来识别人脸由于我刚刚开始熟悉 ML,我只希望我的模型能够识别一张脸是否属于一小部分人中的一个人,如果是,属于哪个人。因此,每个人脸由 (x, y) 坐标列表表示,表示谷歌库识别的每个标志点。点的绝对位置及其彼此之间的相对位置的变化是区分人们的线索。

因此,从这样的点列表中:

面部标志

我得到了一个坐标列表,其中包含最后编码的人:

1975.72,120.265564,2108.6755,141.79669,2344.71,214.35474,[...], 000010000

我想为每个人创建一个包含多行的 .csv 文件。

我的问题是,我不知道如何以我的模型可以理解的方式表示这些点实际上被两个分组为同一点的 (x, y) 坐标。

由于我是新手,我什至不确定我的模型是否真的需要理解这一点才能从点列表中识别出某人,如果这是一个愚蠢的问题,那么抱歉。另外,我不需要解决这个问题,我只请求我的训练/测试/验证数据中的符号系统的帮助。

澄清

我已经知道如何使用 Google ML-Kit 从图像中提取点列表。我不知道的是如何以网络将拾取 x 和 y 属于一起构造二维对象的方式表示点。

例如,我可以有一个像示例中那样的原始 csv 文件,我需要做的就是将内容与逗号拼接在一起,但是网络永远不会知道这种关系。然而,除了一维值列表,我还可以将网络暴露给二维点列表,例如 [[x, y]、[x, y]、[.....]],但我没有t 知道具有 n 维元素的数据是否需要特别注意,或者网络可以理解它,就好像它是具有连续元素的常规列表一样。

1个回答

您正在描述的是一个笛卡尔坐标系,其中每个点都是一对有序的有符号数字。

为了在人群之间进行比较,您需要定义相同的原点 (0,0) 并定义与之相关的所有点。通常,面部的起点是鼻尖。

模型的输入将是每个训练实例的这些笛卡尔坐标对的集合。

Google 的 Firebase ML-Kit 有一个非常具体的人脸检测API, 带有特定的面部标志,每个点都是一个VisionPoint. 鉴于预定义的、刚性的和分层的结构,将数据存储为 JSON 以保留标签和坐标对之间的关​​系会更有用。