废话不多说,首先nuget安装FaceRecognitionDotNet,其次下载models文件夹,链接https://github.com/ageitgey/face_recognition_models/
然后查找人脸数量和人脸比对程序如下:
public class facefind
{
private FaceRecognition FaceRecognition;
private Model model;
public facefind()
{
var path = Directory.GetCurrentDirectory();
FaceRecognition = FaceRecognition.Create(@"./models");
if (!Enum.TryParse<Model>("hog", true, out model))
{
Console.WriteLine($"\n\tmodel: cnn");
}
}
public int findface(string url)
{
Uri imgUrl = new Uri(url);
var webC = new System.Net.WebClient();
try
{
Bitmap map = new Bitmap(webC.OpenRead(imgUrl));
Console.WriteLine(map.Size);
;
using (var unknownImage = FaceRecognition.LoadImage(map))
{
var faceLocations = FaceRecognition.FaceLocations(unknownImage, 2, model).ToList();
return faceLocations.Count;
}
}
catch(Exception e)
{
Console.WriteLine(e.Message);
return 0;
}
}
public bool compareface(string url,string comparurl)
{
Uri imgUrl = new Uri(url);
Uri imgcmpareUrl = new Uri(comparurl);
var webC = new System.Net.WebClient();
Bitmap map = new Bitmap(webC.OpenRead(imgUrl));
Bitmap mapcompare = new Bitmap(webC.OpenRead(imgcmpareUrl));
var faceimage = FaceRecognition.LoadImage(map);
FaceEncoding knownface = FaceRecognition.FaceEncodings(faceimage).First();
var faceimage1 = FaceRecognition.LoadImage(mapcompare);
FaceEncoding checkface = FaceRecognition.FaceEncodings(faceimage1).First();
var result = FaceRecognition.CompareFace(knownface, checkface);
return result;
}
}
需要的同学拿去,在Ubuntu下dotnte restore 即可使用。
如果出现Gdip的错误,运行
1、apt-get install libgdiplus
2、cd /usr/lib
3、ln -s libgdiplus.so gdiplus.dll
即可解决。
如果在调试过程中出现问题的话可以私信我。