How gb28181/viewfacecore works
ViewFaceCore is a cross-platform .NET face-analysis library backed by SeetaFace6 through a native bridge. The main workflow accepts an image, converts it to the library’s FaceImage representation, and exposes face detection and downstream analysis such as landmarks, recognition, liveness, quality, tracking, mask detection, and attribute prediction. The graph also shows the native interop layer and optional image-framework and dependency-injection extensions. Feature coverage is based on the README and tree; several feature implementations were not sampled, so uncertain internal call wiring is omitted.
Main entry points: ViewFaceNative.PInvoke.cs Native PInvoke · ViewFaceCoreHostExtensions.cs Dependency injection · FaceDetector.cs Face detection · FaceRecognizer.cs Face recognition
Components 21
Image input
- Image source
- FaceImage
src/ViewFaceCore/Model/FaceImage.cs - SkiaSharp adapter
src/Extensions/ViewFaceCore.Extension.SkiaSharp/ViewFaceSkiaSharpExtension.cs - ImageSharp adapter
src/Extensions/ViewFaceCore.Extension.ImageSharp/ViewFaceImageSharpExtension.cs - System.Drawing adapter
src/Extensions/ViewFaceCore.Extension.SystemDrawing/ViewFaceSystemDrawingExtension.cs
Face analysis
- Face detection
src/ViewFaceCore/Core/FaceDetector.cs - Face landmarks
src/ViewFaceCore/Core/FaceLandmarker.cs - Face recognition
src/ViewFaceCore/Core/FaceRecognizer.cs - Liveness detection
src/ViewFaceCore/Core/FaceAntiSpoofing.cs - Face quality
src/ViewFaceCore/Core/FaceQuality.cs - Face tracking
src/ViewFaceCore/Core/FaceTracker.cs - Mask detection
src/ViewFaceCore/Core/MaskDetector.cs - Age gender eyes
src/ViewFaceCore/Core/Predictor - Feature configuration
src/ViewFaceCore/Configs
Native runtime
- Native PInvoke
src/ViewFaceCore/Native/ViewFaceNative.PInvoke.cs - C++ bridge
src/Bridges/Shared/bridge.cpp - SeetaFace6 engine
Integration extensions
- Dependency injection
src/Extensions/ViewFaceCore.Extension.DependencyInjection/ViewFaceCoreHostExtensions.cs - ViewFace factory
src/Extensions/ViewFaceCore.Extension.DependencyInjection/ViewFaceFactory.cs - Async extensions
src/ViewFaceCore/Extensions/Public/ViewFaceAsyncExtensions.cs
Other components
- Application developer
Connections 25
- Application developer → Image source: provides image
- Application developer → Face detection: requests detection
- Image source → SkiaSharp adapter: converts image
- Image source → ImageSharp adapter: converts image
- Image source → System.Drawing adapter: converts image
- SkiaSharp adapter → FaceImage: creates
- ImageSharp adapter → FaceImage: creates
- System.Drawing adapter → FaceImage: creates
- Face detection → Native PInvoke: invokes detection
- Face landmarks → Native PInvoke: invokes marking
- Face recognition → Native PInvoke: extracts features
- Liveness detection → Native PInvoke: invokes liveness
- Face quality → Native PInvoke: evaluates quality
- Face tracking → Native PInvoke: tracks faces
- Mask detection → Native PInvoke: detects masks
- Age gender eyes → Native PInvoke: predicts attributes
- Native PInvoke → C++ bridge: calls exports
- C++ bridge → SeetaFace6 engine: uses engine
- Dependency injection → Feature configuration: reads options
- Dependency injection → Face detection: registers services
- Dependency injection → Face landmarks: registers services
- Dependency injection → Face recognition: registers services
- Dependency injection → ViewFace factory: registers factory
- Async extensions → Face detection: wraps operations
- Async extensions → Face recognition: wraps operations