Commit Graph

135 Commits

Author SHA1 Message Date
Yuantao Feng
34d359fe03
Merge pull request #20422 from fengyuentau:dnn_face
Add DNN-based face detection and face recognition into modules/objdetect

* Add DNN-based face detector impl and interface

* Add a sample for DNN-based face detector

* add recog

* add notes

* move samples from samples/cpp to samples/dnn

* add documentation for dnn_face

* add set/get methods for input size, nms & score threshold and topk

* remove the DNN prefix from the face detector and face recognizer

* remove default values in the constructor of impl

* regenerate priors after setting input size

* two filenames for readnet

* Update face.hpp

* Update face_recognize.cpp

* Update face_match.cpp

* Update face.hpp

* Update face_recognize.cpp

* Update face_match.cpp

* Update face_recognize.cpp

* Update dnn_face.markdown

* Update dnn_face.markdown

* Update face.hpp

* Update dnn_face.markdown

* add regression test for face detection

* remove underscore prefix; fix warnings

* add reference & acknowledgement for face detection

* Update dnn_face.markdown

* Update dnn_face.markdown

* Update ts.hpp

* Update test_face.cpp

* Update face_match.cpp

* fix a compile error for python interface; add python examples for face detection and recognition

* Major changes for Vadim's comments:

* Replace class name FaceDetector with FaceDetectorYN in related failes

* Declare local mat before loop in modules/objdetect/src/face_detect.cpp

* Make input image and save flag optional in samples/dnn/face_detect(.cpp, .py)

* Add camera support in samples/dnn/face_detect(.cpp, .py)

* correct file paths for regression test

* fix convertion warnings; remove extra spaces

* update face_recog

* Update dnn_face.markdown

* Fix warnings and errors for the default CI reports:

* Remove trailing white spaces and extra new lines.

* Fix convertion warnings for windows and iOS.

* Add braces around initialization of subobjects.

* Fix warnings and errors for the default CI systems:

* Add prefix 'FR_' for each value name in enum DisType to solve the
redefinition error for iOS compilation; Modify other code accordingly

* Add bookmark '#tutorial_dnn_face' to solve warnings from doxygen

* Correct documentations to solve warnings from doxygen

* update FaceRecognizerSF

* Fix the error for CI to find ONNX models correctly

* add suffix f to float assignments

* add backend & target options for initializing face recognizer

* add checkeq for checking input size and preset size

* update test and threshold

* changes in response to alalek's comments:

* fix typos in samples/dnn/face_match.py

* import numpy before importing cv2

* add documentation to .setInputSize()

* remove extra include in face_recognize.cpp

* fix some bugs

* Update dnn_face.markdown

* update thresholds; remove useless code

* add time suffix to YuNet filename in test

* objdetect: update test code
2021-10-08 19:13:49 +00:00
Vadim Pisarevsky
b8175f8976 removed the old C API for Haar-based object detection; use CascadeClassifier from now on 2018-11-06 15:39:37 +03:00
Alexander Alekhin
98c8584b88 next: drop CV_CXX11 conditions
define itself is still here for compatibility
2018-04-10 18:09:54 +03:00
Vladislav Sovrasov
f2105419fa objdetect: fix wrong cxx11 features check 2017-09-07 12:49:49 +03:00
Maksim Shabunin
e0393f8557 Fixed some issues found by static analysis (4th round) 2017-06-30 12:26:53 +03:00
Colin Finck
e8f591143c objdetect: Properly check for C++11 as it's done in the matching .cpp file. Fixes #7623 2016-11-28 10:15:16 +01:00
Eric Sommerlade
049a894986 fixed detection_based_tracker on visual studio 2013 and later
modules/objectdetect/src/detection_based_tracker.cpp: made unique_lock<mutex> local to each function
samples/cpp/dbt_face_detection.cpp: fixed warnings on loop in Visual Studio
2016-10-31 11:07:09 +00:00
sourin
a34fbf7bb1 Fixed identifiers warns 2016-09-30 15:16:29 +05:30
Alexander Alekhin
caaf60ba00 remove bindings generation for DetectionBasedTracker 2015-06-09 19:01:04 +03:00
Maksim Shabunin
8e9ea0e3d1 Doxygen doucmentation: ml module 2014-12-01 15:47:13 +03:00
Vadim Pisarevsky
1ad9827fc4 removed ERFilter (to be moved to opencv_contrib/modules/text) and lineMOD (to be moved to opencv_contrib/modules/rgbd) 2014-07-28 16:48:53 +04:00
Vadim Pisarevsky
66f2e527b6 removed extra whitespaces 2014-06-24 23:05:24 +04:00
Vadim Pisarevsky
07c0d50edf put the detection-based tracker back (to objdetect module), so that the Android face detection sample builds fine. The patch by Konstantin Matskevich that adds C++11 threads support has been merged in too. Also, fixed compile error in the doc builder. 2014-06-24 21:16:09 +04:00
Vadim Pisarevsky
3858f2291d removed contrib, legacy and softcsscade modules; removed latentsvm and datamatrix detector from objdetect. removed haartraining and sft apps.
some of the stuff will be moved to opencv_contrib module.
in order to make this PR pass buildbot, please, comment off opencv_legacy, opencv_contrib and opencv_softcascade test runs.
2014-06-24 19:18:51 +04:00
Ilya Lavrenov
37789f015a deleted excess semicolons, commas 2014-01-18 01:31:33 +04:00
lluis
047b568f6d erGrouping now uses a classifier for group validation instead of a set of heuristical ifos.
Updated documentation and sample to use the new function API
2013-09-27 19:19:45 +02:00
lluis
2837bfd9fa Added erGrouping function: Find groups of Extremal Regions that are organized as text blocks. Updated sample/cpp to use the complete text detection pipeline 2013-09-19 10:30:25 +02:00
lluis
d25309f82e first parameter of createERFilterNM1/createERFilterNM2 is now mandatory. changed the sample program to use the new prototypes 2013-09-13 16:29:21 +02:00
lluis
75fdfba281 renamed getDefaultClassifierNM{1,2}() to loadClassifierNM{1,2}() and added "const std::string& filename" parameter (mandatory). 2013-09-13 16:19:52 +02:00
lluis
95d92c099c functions getDefaultClassifierNM1() and getDefaultClassifierNM2() allow to implicitly load the default classifiers when creating a ERFilter object 2013-09-13 12:54:23 +02:00
lluis
e8d3732aaf added computeNMChannels helper function to compute the diferent channels to be processed independently in the N&M algorithm. 2013-09-09 11:37:58 +02:00
lluis
cd33ca0009 changed default parameters in CreateERFiltersNM{1,2} functions. They are not needed now in the sample example. 2013-09-06 19:10:53 +02:00
lluis
6ef1d456dd fixed rebase conflicts 2013-09-06 14:00:11 +02:00
lluis
765921cc25 fixed a typo error in the default min_Probability param of CreateERFilterNM2 2013-09-06 12:30:22 +02:00
Roman Donchenko
b12894d95a Boring changes - objdetect. 2013-09-05 19:02:58 +04:00
Roman Donchenko
9ed475cf52 War on Whitespace, master edition: file endings. 2013-08-27 14:23:26 +04:00
Roman Donchenko
9b92545ce6 War on Whitespace, master edition: trailing spaces. 2013-08-27 13:57:24 +04:00
lluis
c4f88b0687 removed some unnecessary ERStat members as they are easily computable from others 2013-07-23 15:04:01 +02:00
lluis
43e7e6e475 removed extra cv:: scope qualifiers for better readability 2013-07-23 14:37:45 +02:00
lluis
2087d4602b using Rect for storing the bounding box instead of an integer array 2013-07-23 13:58:52 +02:00
lluis
ca6b30a568 using explicit keyword in the ERStat constructor for safe contruction 2013-07-23 00:24:17 +02:00
lluis
5abe3b59f5 Class-specific Extremal Region Filter algorithm as proposed in :
Neumann L., Matas J.: Real-Time Scene Text Localization and Recognition, CVPR 2012.

High-level C++ interface and implementation of algorithm is in the objdetect module.
C++ example, a test image, and the default classifiers in xml files.
2013-07-20 01:10:05 +02:00
Andrey Kamaev
5e048d1fa5 Move C API of opencv_objdetect to separate file
Also move cv::linemod to own header
2013-04-12 14:37:01 +04:00
Andrey Kamaev
a42a0f5fca Added compatibility headers 2013-03-13 17:26:56 +04:00
Andrey Kamaev
ad5cddc007 Main module headers are moved 1 level up
e.g. <opencv2/core/core.hpp> become <opencv2/core.hpp>

Also renamed <opencv2/core/opengl_interop.hpp> to <opencv2/core/opengl.hpp>
2013-03-13 17:26:56 +04:00
Andrey Kamaev
2a6fb2867e Remove all using directives for STL namespace and members
Made all STL usages explicit to be able automatically find all usages of
particular class or function.
2013-02-25 15:04:17 +04:00
marina.kolpakova
1b43b0e2df move soft cascade functionality into dedicated module 2013-02-01 14:36:05 +04:00
marina.kolpakova
a28f5a89b3 move preprocessor to objdetect 2013-02-01 14:35:27 +04:00
marina.kolpakova
cb329400df fix tests 2013-01-30 15:55:04 +04:00
marina.kolpakova
8d9c9c2690 integrate new cascade format to GPU soft cascade implementation 2013-01-30 15:55:04 +04:00
marina.kolpakova
53433884ee fix python wrapping 2013-01-18 15:58:48 +04:00
marina.kolpakova
2d45af790e fix according to pull requests comments 2012-12-12 05:07:39 +04:00
marina.kolpakova
88c71d1b7d add NMS according to Dollar's paper. 2012-12-12 04:31:44 +04:00
marina.kolpakova
bd9ca48fab export to python/java 2012-11-13 02:49:35 +04:00
marina.kolpakova
8a3e897999 min and max params become double 2012-11-08 02:34:49 +04:00
marina.kolpakova
e379771c03 git warning 2012-11-08 02:34:49 +04:00
marina.kolpakova
4656872161 fixed typo 2012-11-08 02:34:49 +04:00
marina.kolpakova
157ab66ab9 add ROI support 2012-11-08 02:34:49 +04:00
marina.kolpakova
6a3a723938 refactor integral channels 2012-11-08 02:34:48 +04:00
marina.kolpakova
4a1c4a9862 soft cascade become Algorithm 2012-11-08 02:34:48 +04:00