gpt4 book ai didi

c++ - 从文本文件 dlib C++ 中读取人脸 vector

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:13 27 4
gpt4 key购买 nike

我正在尝试从文本文件中读取 128D 人脸 vector 。

  1. 你是怎么做到的?

  2. 如果我有多个人脸 vector ,如何在一个变量中读取它们并将其与传入的人脸进行比较?

最佳答案

I'm trying to read 128D face vector from text file. How do you do it?

这取决于您的数字格式。它们是 CSV 之类的格式吗?或者可能是像 JSON 或 XML 这样的描述符格式?还是用空格分隔的普通值?

例如,假设您有一个包含以空格分隔的值的文本文件,如下所示:

39.5 23.2 23.8 23.9 12.3

您可以将其读入这样的 vector 中:

#include <fstream>
#include <vector>

int main(){
std::vector<double> faceVector; // we fill the numbers into this vector
std::fstream fs("path/to/nums.txt", std::fstream::in ); // make the file stream
double num;
while (fs >> num) { // read in the number. Stops when no numbers are left
faceVector.push_back(num); // add the number to the vector
}
for (double d : faceVector) {
printf("value is %f\n", d); // print each number in the vector to see if it went right
}
return 0;
}

std::vector faceVector 现在包含文件中的值。

If I have multiple face vectors how can I read them in one variable and use it compare with the incoming faces?

您可以通过编写一个将 vector 作为参数并返回有意义的值的函数来比较 vector 。例如,此函数计算两点之间的距离:

double distance(std::vector<double> &a, std::vector<double> &b) {
double result = 0.0;
for (int i = 0; i < a.size(); i++) result += (a[i] - b[i]) * (a[i] - b[i]);
return sqrt(result);
}

你可以这样使用它:

std::vector<double> a = { 1, 2, 3 };
std::vector<double> b = { 4, 5, 6 };
printf("distance: %f", distance(a, b));

关于c++ - 从文本文件 dlib C++ 中读取人脸 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52513399/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com