計畫介紹
ViewFaceCore是一個基於 SeetaFace6 的 .NET 人臉辨識解決方案。
計畫特點
開源(MIT license)、免費、簡單的離線人臉辨識庫。
跨平台(適用於 Windows、MacOS 和 Linux )。
.NET 框架 和 作業系統
封裝完善的NuGet包
獲取人臉資訊範例程式碼
更多案例可以下載源碼檢視Demo。
using SkiaSharp;
using System;
using ViewFaceCore.Core;
using ViewFaceCore.Model;
namespaceViewFaceCore.Demo.ConsoleApp
{
internal classProgram
{
privatereadonlystaticstring imagePath = @"images/Jay_3.jpg";
staticvoidMain(string[] args)
{
usingvar bitmap = SKBitmap.Decode(imagePath);
using FaceDetector faceDetector = new FaceDetector();
FaceInfo[] infos = faceDetector.Detect(bitmap);
Console.WriteLine($"辨識到的人臉數量:{infos.Length} 個人臉資訊:\n");
Console.WriteLine($"No.\t人臉置信度\t位置資訊");
for (int i = 0; i < infos.Length; i++)
{
Console.WriteLine($"{i}\t{infos[i].Score:f8}\t{infos[i].Location}");
}
Console.ReadKey();
}
}
}
辨識人臉並標記出來範例程式碼
using System;
using System.Drawing;
using System.Linq;
using ViewFaceCore;
using ViewFaceCore.Core;
using ViewFaceCore.Model;
namespaceDemo
{
internal classProgram
{
privatereadonlystaticstring imagePath = @"images/Jay_3.jpg";
privatereadonlystaticstring outputPath = @"images/Jay_out.jpg";
staticvoidMain(string[] args)
{
usingvar bitmap = (Bitmap)Image.FromFile(imagePath);
using FaceDetector faceDetector = new FaceDetector();
FaceInfo[] infos = faceDetector.Detect(bitmap);
//輸出人臉資訊
Console.WriteLine($"辨識到的人臉數量:{infos.Length} 個人臉資訊:\n");
Console.WriteLine($"No.\t人臉置信度\t位置資訊");
for (int i = 0; i < infos.Length; i++)
{
Console.WriteLine($"{i}\t{infos[i].Score:f8}\t{infos[i].Location}");
}
//畫方框,標記人臉
using (Graphics g = Graphics.FromImage(bitmap))
{
g.DrawRectangles(new Pen(Color.Red, 4), infos.Select(p => new RectangleF(p.Location.X, p.Location.Y, p.Location.Width, p.Location.Height)).ToArray());
}
bitmap.Save(outputPath);
Console.WriteLine($"輸出圖片已保存至:{outputPath}");
Console.WriteLine();
}
}
}
功能截圖
開源地址
https://github.com/ViewFaceCore/ViewFaceCore
- EOF -
推薦閱讀 點選標題可跳轉
看完本文有收獲?請轉發分享給更多人
推薦關註「DotNet」,提升.Net技能
點贊和在看就是最大的支持❤️