我正在寻找一种特定形式的面部识别。我想在班级图片中的学生图像上检测所有面孔的位置(仅此而已)。
所以换句话说,我不是想比较两张脸,看看它们是否匹配。
我怎样才能在 C# 中做到这一点?我似乎在 NuGet 上找不到任何与此相关的开源项目,而且我也看过 CodePlex。
我正在寻找一种特定形式的面部识别。我想在班级图片中的学生图像上检测所有面孔的位置(仅此而已)。
所以换句话说,我不是想比较两张脸,看看它们是否匹配。
我怎样才能在 C# 中做到这一点?我似乎在 NuGet 上找不到任何与此相关的开源项目,而且我也看过 CodePlex。
对于任何与计算机视觉相关的需求,我个人的偏好是使用http://opencv.willowgarage.com/wiki/,但是,它并不是为 C# 原生制作的。
然而,在谷歌快速搜索后,我发现http://www.emgu.com/wiki/index.php/Main_Page上面写着“Emgu CV 是英特尔 OpenCV 图像处理库的跨平台 .Net 包装器。Allowing OpenCV functions to be called from .NET compatible languages such as C#
, VB, VC++、IronPython 等。包装器可以在 Mono 中编译并在 Linux / Mac OS X 上运行。”
现在Face被 Facebook 收购后已经退役,我使用Sky Biometry,它有一个 C# .NET API 并且是免费的。
它是基于云的,显然需要互联网连接,但谁在乎呢。
我建议检查基于在 Python 中实现的人脸识别( https://github.com/ageitgey/face_recognition ) 的FaceRecognition.Net ( https://github.com/takuya-takeuchi/FaceRecognitionDotNet )。两者都是具有 MIT 许可证的开源代码。
另一种选择是认知服务——来自 Microsoft 的 Face,您可以直接从 Azure 或本地 Docker 使用它。在这里您可以找到更多相关信息:https ://docs.microsoft.com/en-us/azure/cognitive-services/face/