@@ -26,6 +26,19 @@ class FaceRecognizerSFImpl : public FaceRecognizerSF
26
26
net.setPreferableBackend (backend_id);
27
27
net.setPreferableTarget (target_id);
28
28
}
29
+
30
+ FaceRecognizerSFImpl (const String& framework,
31
+ const std::vector<uchar>& bufferModel,
32
+ const std::vector<uchar>& bufferConfig,
33
+ int backend_id, int target_id)
34
+ {
35
+ net = dnn::readNet (framework, bufferModel, bufferConfig);
36
+ CV_Assert (!net.empty ());
37
+
38
+ net.setPreferableBackend (backend_id);
39
+ net.setPreferableTarget (target_id);
40
+ }
41
+
29
42
void alignCrop (InputArray _src_img, InputArray _face_mat, OutputArray _aligned_img) const override
30
43
{
31
44
Mat face_mat = _face_mat.getMat ();
@@ -189,4 +202,17 @@ Ptr<FaceRecognizerSF> FaceRecognizerSF::create(const String& model, const String
189
202
#endif
190
203
}
191
204
205
+ Ptr<FaceRecognizerSF> FaceRecognizerSF::create (const String& framework,
206
+ const std::vector<uchar>& bufferModel,
207
+ const std::vector<uchar>& bufferConfig,
208
+ int backend_id, int target_id)
209
+ {
210
+ #ifdef HAVE_OPENCV_DNN
211
+ return makePtr<FaceRecognizerSFImpl>(framework, bufferModel, bufferConfig, backend_id, target_id);
212
+ #else
213
+ CV_UNUSED (bufferModel); CV_UNUSED (bufferConfig); CV_UNUSED (backend_id); CV_UNUSED (target_id);
214
+ CV_Error (cv::Error::StsNotImplemented, " cv::FaceRecognizerSF requires enabled 'dnn' module" );
215
+ #endif
216
+ }
217
+
192
218
} // namespace cv
0 commit comments