Skip to content

Commit 9a3f39a

Browse files
Add new interface for Create (#148)
* feat: implement new overload for Create
1 parent 68e9c36 commit 9a3f39a

14 files changed

+336
-17
lines changed

nuget/nuspec/FaceRecognitionDotNet.CPU.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ This library is ported from https://github.com/ageitgey/face_recognition by C#.<
2020

2121
<dependencies>
2222
<group targetFramework="net461">
23-
<dependency id="DlibDotNet" version="19.21.0.20210129" />
23+
<dependency id="DlibDotNet" version="19.21.0.20210227" />
2424
</group>
2525
<group targetFramework="netstandard2.0">
2626
<dependency id="System.Drawing.Common" version="4.7.0" />
27-
<dependency id="DlibDotNet" version="19.21.0.20210129" />
27+
<dependency id="DlibDotNet" version="19.21.0.20210227" />
2828
</group>
2929
</dependencies>
3030
<frameworkAssemblies>

nuget/nuspec/FaceRecognitionDotNet.CUDA100.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ This library is ported from https://github.com/ageitgey/face_recognition by C#.<
2020

2121
<dependencies>
2222
<group targetFramework="net461">
23-
<dependency id="DlibDotNet.CUDA100" version="19.21.0.20210129" />
23+
<dependency id="DlibDotNet.CUDA100" version="19.21.0.20210227" />
2424
</group>
2525
<group targetFramework="netstandard2.0">
2626
<dependency id="System.Drawing.Common" version="4.7.0" />
27-
<dependency id="DlibDotNet.CUDA100" version="19.21.0.20210129" />
27+
<dependency id="DlibDotNet.CUDA100" version="19.21.0.20210227" />
2828
</group>
2929
</dependencies>
3030
<frameworkAssemblies>

nuget/nuspec/FaceRecognitionDotNet.CUDA101.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ This library is ported from https://github.com/ageitgey/face_recognition by C#.<
2020

2121
<dependencies>
2222
<group targetFramework="net461">
23-
<dependency id="DlibDotNet.CUDA101" version="19.21.0.20210129" />
23+
<dependency id="DlibDotNet.CUDA101" version="19.21.0.20210227" />
2424
</group>
2525
<group targetFramework="netstandard2.0">
2626
<dependency id="System.Drawing.Common" version="4.7.0" />
27-
<dependency id="DlibDotNet.CUDA101" version="19.21.0.20210129" />
27+
<dependency id="DlibDotNet.CUDA101" version="19.21.0.20210227" />
2828
</group>
2929
</dependencies>
3030
<frameworkAssemblies>

nuget/nuspec/FaceRecognitionDotNet.CUDA102.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ This library is ported from https://github.com/ageitgey/face_recognition by C#.<
2020

2121
<dependencies>
2222
<group targetFramework="net461">
23-
<dependency id="DlibDotNet.CUDA102" version="19.21.0.20210129" />
23+
<dependency id="DlibDotNet.CUDA102" version="19.21.0.20210227" />
2424
</group>
2525
<group targetFramework="netstandard2.0">
2626
<dependency id="System.Drawing.Common" version="4.7.0" />
27-
<dependency id="DlibDotNet.CUDA102" version="19.21.0.20210129" />
27+
<dependency id="DlibDotNet.CUDA102" version="19.21.0.20210227" />
2828
</group>
2929
</dependencies>
3030
<frameworkAssemblies>

nuget/nuspec/FaceRecognitionDotNet.CUDA110.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ This library is ported from https://github.com/ageitgey/face_recognition by C#.<
2020

2121
<dependencies>
2222
<group targetFramework="net461">
23-
<dependency id="DlibDotNet.CUDA110" version="19.21.0.20210129" />
23+
<dependency id="DlibDotNet.CUDA110" version="19.21.0.20210227" />
2424
</group>
2525
<group targetFramework="netstandard2.0">
2626
<dependency id="System.Drawing.Common" version="4.7.0" />
27-
<dependency id="DlibDotNet.CUDA110" version="19.21.0.20210129" />
27+
<dependency id="DlibDotNet.CUDA110" version="19.21.0.20210227" />
2828
</group>
2929
</dependencies>
3030
<frameworkAssemblies>

nuget/nuspec/FaceRecognitionDotNet.CUDA111.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ This library is ported from https://github.com/ageitgey/face_recognition by C#.<
2020

2121
<dependencies>
2222
<group targetFramework="net461">
23-
<dependency id="DlibDotNet.CUDA111" version="19.21.0.20210129" />
23+
<dependency id="DlibDotNet.CUDA111" version="19.21.0.20210227" />
2424
</group>
2525
<group targetFramework="netstandard2.0">
2626
<dependency id="System.Drawing.Common" version="4.7.0" />
27-
<dependency id="DlibDotNet.CUDA111" version="19.21.0.20210129" />
27+
<dependency id="DlibDotNet.CUDA111" version="19.21.0.20210227" />
2828
</group>
2929
</dependencies>
3030
<frameworkAssemblies>

nuget/nuspec/FaceRecognitionDotNet.CUDA92.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ This library is ported from https://github.com/ageitgey/face_recognition by C#.<
2020

2121
<dependencies>
2222
<group targetFramework="net461">
23-
<dependency id="DlibDotNet.CUDA92" version="19.21.0.20210129" />
23+
<dependency id="DlibDotNet.CUDA92" version="19.21.0.20210227" />
2424
</group>
2525
<group targetFramework="netstandard2.0">
2626
<dependency id="System.Drawing.Common" version="4.7.0" />
27-
<dependency id="DlibDotNet.CUDA92" version="19.21.0.20210129" />
27+
<dependency id="DlibDotNet.CUDA92" version="19.21.0.20210227" />
2828
</group>
2929
</dependencies>
3030
<frameworkAssemblies>

nuget/nuspec/FaceRecognitionDotNet.MKL.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ This library is ported from https://github.com/ageitgey/face_recognition by C#.<
2020

2121
<dependencies>
2222
<group targetFramework="net461">
23-
<dependency id="DlibDotNet.MKL" version="19.21.0.20210129" />
23+
<dependency id="DlibDotNet.MKL" version="19.21.0.20210227" />
2424
</group>
2525
<group targetFramework="netstandard2.0">
2626
<dependency id="System.Drawing.Common" version="4.7.0" />
27-
<dependency id="DlibDotNet.MKL" version="19.21.0.20210129" />
27+
<dependency id="DlibDotNet.MKL" version="19.21.0.20210227" />
2828
</group>
2929
</dependencies>
3030
<frameworkAssemblies>

src/DlibDotNet

Submodule DlibDotNet updated 48 files

src/FaceRecognitionDotNet/FaceRecognition.cs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,45 @@ private FaceRecognition(string directory)
9292
this._FaceEncoder = LossMetric.Deserialize(faceRecognitionModel);
9393
}
9494

95+
/// <summary>
96+
/// Initializes a new instance of the <see cref="FaceRecognition"/> class with the instance that contains model binary datum.
97+
/// </summary>
98+
/// <param name="parameter">The instance that contains model binary datum.</param>
99+
/// <exception cref="ArgumentNullException"><paramref name="parameter"/> is null.</exception>
100+
/// <exception cref="NullReferenceException">The model data is null.</exception>
101+
private FaceRecognition(ModelParameter parameter)
102+
{
103+
if (parameter == null)
104+
throw new ArgumentNullException(nameof(parameter));
105+
106+
if (parameter.PosePredictor5FaceLandmarksModel == null)
107+
throw new NullReferenceException(nameof(parameter.PosePredictor5FaceLandmarksModel));
108+
109+
if (parameter.PosePredictor68FaceLandmarksModel == null)
110+
throw new NullReferenceException(nameof(parameter.PosePredictor68FaceLandmarksModel));
111+
112+
if (parameter.CnnFaceDetectorModel == null)
113+
throw new NullReferenceException(nameof(parameter.CnnFaceDetectorModel));
114+
115+
if (parameter.FaceRecognitionModel == null)
116+
throw new NullReferenceException(nameof(parameter.FaceRecognitionModel));
117+
118+
this._FaceDetector?.Dispose();
119+
this._FaceDetector = DlibDotNet.Dlib.GetFrontalFaceDetector();
120+
121+
this._PosePredictor68Point?.Dispose();
122+
this._PosePredictor68Point = ShapePredictor.Deserialize(parameter.PosePredictor68FaceLandmarksModel);
123+
124+
this._PosePredictor5Point?.Dispose();
125+
this._PosePredictor5Point = ShapePredictor.Deserialize(parameter.PosePredictor5FaceLandmarksModel);
126+
127+
this._CnnFaceDetector?.Dispose();
128+
this._CnnFaceDetector = LossMmod.Deserialize(parameter.CnnFaceDetectorModel);
129+
130+
this._FaceEncoder?.Dispose();
131+
this._FaceEncoder = LossMetric.Deserialize(parameter.FaceRecognitionModel);
132+
}
133+
95134
#endregion
96135

97136
#region Properties
@@ -255,6 +294,17 @@ public static FaceRecognition Create(string directory)
255294
return new FaceRecognition(directory);
256295
}
257296

297+
/// <summary>
298+
/// Create a new instance of the <see cref="FaceRecognition"/> class.
299+
/// </summary>
300+
/// <param name="parameter">The instance that contains model binary datum.</param>
301+
/// <exception cref="ArgumentNullException"><paramref name="parameter"/> is null.</exception>
302+
/// <exception cref="NullReferenceException">The model data is null.</exception>
303+
public static FaceRecognition Create(ModelParameter parameter)
304+
{
305+
return new FaceRecognition(parameter);
306+
}
307+
258308
/// <summary>
259309
/// Crop a specified image with enumerable collection of face locations.
260310
/// </summary>

0 commit comments

Comments
 (0)