1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
diff --git a/launch/face_detection.launch b/launch/face_detection.launch
index aa75ca8..d42a244 100644
--- a/launch/face_detection.launch
+++ b/launch/face_detection.launch
@@ -2,7 +2,8 @@
<arg name="node_name" default="face_detection" />
<arg name="use_opencv3" default="false" />
<arg name="use_opencv3_1" default="false" />
- <arg name="use_opencv3_2" default="$(arg use_opencv3)" />
+ <arg name="use_opencv3_2" default="false" />
+ <arg name="use_opencv3_3" default="$(arg use_opencv3)" />
<arg name="image" default="image" doc="The image topic. Should be remapped to the name of the real image topic." />
@@ -17,6 +18,10 @@
name="face_cascade_name" default="$(find opencv3)/../OpenCV-3.2.0-dev/haarcascades/haarcascade_frontalface_alt.xml" doc="Face dtection cascade Filename" />
<arg if="$(arg use_opencv3_2)"
name="eyes_cascade_name" default="$(find opencv3)/../OpenCV-3.2.0-dev/haarcascades/haarcascade_eye_tree_eyeglasses.xml" doc="Eye dtection cascade Filename" />
+ <arg if="$(arg use_opencv3_3)"
+ name="face_cascade_name" default="$(find opencv3)/../OpenCV-3.3.1/haarcascades/haarcascade_frontalface_alt.xml" doc="Face dtection cascade Filename" />
+ <arg if="$(arg use_opencv3_3)"
+ name="eyes_cascade_name" default="$(find opencv3)/../OpenCV-3.3.1/haarcascades/haarcascade_eye_tree_eyeglasses.xml" doc="Eye dtection cascade Filename" />
<arg unless="$(arg use_opencv3)"
name="face_cascade_name" default="/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml" doc="Face dtection cascade Filename" />
<arg unless="$(arg use_opencv3)"
diff --git a/launch/face_recognition.launch b/launch/face_recognition.launch
index b7dbca8..9667d63 100644
--- a/launch/face_recognition.launch
+++ b/launch/face_recognition.launch
@@ -5,6 +5,7 @@
<arg name="use_opencv3" default="false" />
<arg name="use_opencv3_1" default="false" />
<arg name="use_opencv3_2" default="false" />
+ <arg name="use_opencv3_3" default="false" />
<arg name="debug_view" default="true" />
<arg name="image" default="image" />
@@ -18,6 +19,7 @@
<arg name="use_opencv3" value="$(arg use_opencv3)" />
<arg name="use_opencv3_1" value="$(arg use_opencv3_1)" />
<arg name="use_opencv3_2" value="$(arg use_opencv3_2)" />
+ <arg name="use_opencv3_3" value="$(arg use_opencv3_3)" />
</include>
<node name="face_recognition" pkg="opencv_apps" type="face_recognition"
diff --git a/src/nodelet/face_recognition_nodelet.cpp b/src/nodelet/face_recognition_nodelet.cpp
index 24b8051..487d6d7 100644
--- a/src/nodelet/face_recognition_nodelet.cpp
+++ b/src/nodelet/face_recognition_nodelet.cpp
@@ -463,16 +463,34 @@ namespace face_recognition {
if (need_recreate_model) {
try {
if (config.model_method == "eigen") {
+// https://docs.opencv.org/3.3.1/da/d60/tutorial_face_main.html
+#if CV_MAJOR_VERSION >= 3 && CV_MINOR_VERSION >= 3
+ model_ = face::EigenFaceRecognizer::create(config.model_num_components,
+ config.model_threshold);
+#else
model_ = face::createEigenFaceRecognizer(config.model_num_components,
config.model_threshold);
+#endif
} else if (config.model_method == "fisher") {
+#if CV_MAJOR_VERSION >= 3 && CV_MINOR_VERSION >= 3
+ model_ = face::FisherFaceRecognizer::create(config.model_num_components,
+ config.model_threshold);
+#else
model_ = face::createFisherFaceRecognizer(config.model_num_components,
config.model_threshold);
+#endif
} else if (config.model_method == "LBPH") {
+#if CV_MAJOR_VERSION >= 3 && CV_MINOR_VERSION >= 3
+ model_ = face::LBPHFaceRecognizer::create(config.lbph_radius,
+ config.lbph_neighbors,
+ config.lbph_grid_x,
+ config.lbph_grid_y);
+#else
model_ = face::createLBPHFaceRecognizer(config.lbph_radius,
config.lbph_neighbors,
config.lbph_grid_x,
config.lbph_grid_y);
+#endif
}
need_retrain = true;
} catch (cv::Exception &e) {
diff --git a/src/nodelet/lk_flow_nodelet.cpp b/src/nodelet/lk_flow_nodelet.cpp
index 24825ad..533e5ab 100644
--- a/src/nodelet/lk_flow_nodelet.cpp
+++ b/src/nodelet/lk_flow_nodelet.cpp
@@ -159,7 +159,7 @@ class LKFlowNodelet : public opencv_apps::Nodelet
if( needToInit )
{
// automatic initialization
- cv::goodFeaturesToTrack(gray, points[1], MAX_COUNT, 0.01, 10, cv::Mat(), 3, 0, 0.04);
+ cv::goodFeaturesToTrack(gray, points[1], MAX_COUNT, 0.01, 10, cv::Mat(), 3, false, 0.04);
cv::cornerSubPix(gray, points[1], subPixWinSize, cv::Size(-1,-1), termcrit);
addRemovePt = false;
}
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 8d0e7b2..5f713e7 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -43,14 +43,15 @@ if(cv_bridge_VERSION VERSION_LESS "1.11.9") # hydro skip face_detection.test
elseif(OpenCV_VERSION VERSION_LESS "3.0")
add_rostest(test-face_detection.test ARGS gui:=false)
add_rostest(test-face_recognition.test ARGS gui:=false)
+elseif(OpenCV_VERSION VERSION_LESS "3.2")
+ add_rostest(test-face_detection.test ARGS gui:=false use_opencv3:=true use_opencv3_1:=true)
+ add_rostest(test-face_recognition.test ARGS gui:=false use_opencv3:=true use_opencv3_1:=true)
+elseif(OpenCV_VERSION VERSION_LESS "3.3")
+ add_rostest(test-face_detection.test ARGS gui:=false use_opencv3:=true use_opencv3_2:=true)
+ add_rostest(test-face_recognition.test ARGS gui:=false use_opencv3:=true use_opencv3_2:=true)
else()
- if(OpenCV_VERSION VERSION_LESS "3.2")
- add_rostest(test-face_detection.test ARGS gui:=false use_opencv3:=true use_opencv3_1:=true)
- add_rostest(test-face_recognition.test ARGS gui:=false use_opencv3:=true use_opencv3_1:=true)
- else()
- add_rostest(test-face_detection.test ARGS gui:=false use_opencv3:=true use_opencv3_2:=true)
- add_rostest(test-face_recognition.test ARGS gui:=false use_opencv3:=true use_opencv3_2:=true)
- endif()
+ add_rostest(test-face_detection.test ARGS gui:=false use_opencv3:=true use_opencv3_3:=true)
+ add_rostest(test-face_recognition.test ARGS gui:=false use_opencv3:=true use_opencv3_3:=true)
endif()
add_rostest(test-goodfeature_track.test ARGS gui:=false)
add_rostest(test-corner_harris.test ARGS gui:=false)
diff --git a/test/test-face_detection.test b/test/test-face_detection.test
index decd9b9..fb60405 100644
--- a/test/test-face_detection.test
+++ b/test/test-face_detection.test
@@ -3,6 +3,7 @@
<arg name="use_opencv3" default="false" />
<arg name="use_opencv3_1" default="false" />
<arg name="use_opencv3_2" default="false" />
+ <arg name="use_opencv3_3" default="false" />
<node name="play_face_bag" pkg="rosbag" type="play" args="-l $(find opencv_apps)/test/face_detector_withface_test_diamondback.bag" />
<group ns="wide_stereo/left" >
@@ -16,6 +17,7 @@
<arg name="use_opencv3" value="$(arg use_opencv3)" />
<arg name="use_opencv3_1" value="$(arg use_opencv3_1)" />
<arg name="use_opencv3_2" value="$(arg use_opencv3_2)" />
+ <arg name="use_opencv3_3" value="$(arg use_opencv3_3)" />
</include>
<node name="face_image_viewer" pkg="image_view" type="image_view">
diff --git a/test/test-face_recognition.test b/test/test-face_recognition.test
index fd8a1b2..a4606b4 100644
--- a/test/test-face_recognition.test
+++ b/test/test-face_recognition.test
@@ -3,6 +3,7 @@
<arg name="use_opencv3" default="false" />
<arg name="use_opencv3_1" default="false" />
<arg name="use_opencv3_2" default="false" />
+ <arg name="use_opencv3_3" default="false" />
<node name="play_face_bag" pkg="rosbag" type="play" args="-l $(find opencv_apps)/test/face_detector_withface_test_diamondback.bag" />
<group ns="wide_stereo/left" >
@@ -18,6 +19,7 @@
<arg name="use_opencv3" value="$(arg use_opencv3)" />
<arg name="use_opencv3_1" value="$(arg use_opencv3_1)" />
<arg name="use_opencv3_2" value="$(arg use_opencv3_2)" />
+ <arg name="use_opencv3_3" value="$(arg use_opencv3_3)" />
<arg name="data_dir" value="$(find opencv_apps)/test/face_data" />
</include>
|