From c1ff40399e931568f597bdeeef318a3815ebbbc0 Mon Sep 17 00:00:00 2001 From: Tadas Baltrusaitis Date: Tue, 6 Sep 2016 12:32:33 -0400 Subject: [PATCH] Bug fixes --- lib/local/FaceAnalyser/src/GazeEstimation.cpp | 8 ++++---- .../LandmarkDetector/include/Patch_experts.h | 2 +- .../model/main_clnf_general.txt | 2 +- .../src/LandmarkDetectorParameters.cpp | 2 +- .../src/LandmarkDetectorUtils.cpp | 18 +++++++++--------- .../results/fps_yt.mat | Bin 5120225 -> 5120224 bytes .../results/in-the-wild-res-no-outline.pdf | Bin 10497 -> 10497 bytes .../results/landmark_detections.mat | Bin 63334 -> 63334 bytes matlab_runners/Full_test_suite.m | 2 -- .../Gaze Experiments/mpii_1500_errs.mat | Bin 11721 -> 11721 bytes .../Head Pose Experiments/results/Pose_OF.mat | Bin 2935684 -> 2935684 bytes 11 files changed, 16 insertions(+), 18 deletions(-) diff --git a/lib/local/FaceAnalyser/src/GazeEstimation.cpp b/lib/local/FaceAnalyser/src/GazeEstimation.cpp index 0278f1a..bd3451b 100644 --- a/lib/local/FaceAnalyser/src/GazeEstimation.cpp +++ b/lib/local/FaceAnalyser/src/GazeEstimation.cpp @@ -194,11 +194,11 @@ void FaceAnalysis::DrawGaze(cv::Mat img, const LandmarkDetector::CLNF& clnf_mode cv::Mat_ proj_points; cv::Mat_ mesh_0 = (cv::Mat_(2, 3) << points_left[0].x, points_left[0].y, points_left[0].z, points_left[1].x, points_left[1].y, points_left[1].z); LandmarkDetector::Project(proj_points, mesh_0, fx, fy, cx, cy); - cv::line(img, cv::Point(cvRound(proj_points.at(0,0) * gaze_draw_multiplier), cvRound(proj_points.at(0, 1) * gaze_draw_multiplier)), - cv::Point(cvRound(proj_points.at(1, 0) * gaze_draw_multiplier), cvRound(proj_points.at(1, 1) * gaze_draw_multiplier)), cv::Scalar(110, 220, 0), 2, CV_AA, gaze_draw_shiftbits); + cv::line(img, cv::Point(cvRound(proj_points.at(0,0) * (double)gaze_draw_multiplier), cvRound(proj_points.at(0, 1) * (double)gaze_draw_multiplier)), + cv::Point(cvRound(proj_points.at(1, 0) * (double)gaze_draw_multiplier), cvRound(proj_points.at(1, 1) * (double)gaze_draw_multiplier)), cv::Scalar(110, 220, 0), 2, CV_AA, gaze_draw_shiftbits); cv::Mat_ mesh_1 = (cv::Mat_(2, 3) << points_right[0].x, points_right[0].y, points_right[0].z, points_right[1].x, points_right[1].y, points_right[1].z); LandmarkDetector::Project(proj_points, mesh_1, fx, fy, cx, cy); - cv::line(img, cv::Point(cvRound(proj_points.at(0, 0) * gaze_draw_multiplier), cvRound(proj_points.at(0, 1) * gaze_draw_multiplier)), - cv::Point(cvRound(proj_points.at(1, 0) * gaze_draw_multiplier), cvRound(proj_points.at(1, 1) * gaze_draw_multiplier)), cv::Scalar(110, 220, 0), 2, CV_AA, gaze_draw_shiftbits); + cv::line(img, cv::Point(cvRound(proj_points.at(0, 0) * (double)gaze_draw_multiplier), cvRound(proj_points.at(0, 1) * (double)gaze_draw_multiplier)), + cv::Point(cvRound(proj_points.at(1, 0) * (double)gaze_draw_multiplier), cvRound(proj_points.at(1, 1) * (double)gaze_draw_multiplier)), cv::Scalar(110, 220, 0), 2, CV_AA, gaze_draw_shiftbits); } \ No newline at end of file diff --git a/lib/local/LandmarkDetector/include/Patch_experts.h b/lib/local/LandmarkDetector/include/Patch_experts.h index 94ef39d..f1ab738 100644 --- a/lib/local/LandmarkDetector/include/Patch_experts.h +++ b/lib/local/LandmarkDetector/include/Patch_experts.h @@ -116,7 +116,7 @@ public: int GetViewIdx(const cv::Vec6d& params_global, int scale) const; // The number of views at a particular scale - inline int nViews(int scale = 0) const { return centers[scale].size(); }; + inline int nViews(size_t scale = 0) const { return (int)centers[scale].size(); }; // Reading in all of the patch experts void Read(vector intensity_svr_expert_locations, vector depth_svr_expert_locations, vector intensity_ccnf_expert_locations); diff --git a/lib/local/LandmarkDetector/model/main_clnf_general.txt b/lib/local/LandmarkDetector/model/main_clnf_general.txt index 181a86a..ecb758d 100644 --- a/lib/local/LandmarkDetector/model/main_clnf_general.txt +++ b/lib/local/LandmarkDetector/model/main_clnf_general.txt @@ -1,5 +1,5 @@ LandmarkDetector clnf_general.txt -LandmarkDetector_part model_inner/main_clnf_inner.txt inner 17 0 18 1 19 2 20 3 21 4 22 5 23 6 24 7 25 8 26 9 27 10 28 11 29 12 30 13 31 14 32 15 33 16 34 17 35 18 36 19 37 20 38 21 39 22 40 23 41 24 42 25 43 26 44 27 45 28 46 29 47 30 48 31 49 32 50 33 51 34 52 35 53 36 54 37 55 38 56 39 57 40 58 41 59 42 60 43 61 44 62 45 63 46 64 47 65 48 66 49 67 50 17 0 18 1 19 2 20 3 21 4 22 5 23 6 24 7 25 8 26 9 27 10 28 11 29 12 30 13 31 14 32 15 33 16 34 17 35 18 36 19 37 20 38 21 39 22 40 23 41 24 42 25 43 26 44 27 45 28 46 29 47 30 48 31 49 32 50 33 51 34 52 35 53 36 54 37 55 38 56 39 57 40 58 41 59 42 60 43 61 44 62 45 63 46 64 47 65 48 66 49 67 50 +LandmarkDetector_part model_inner/main_clnf_inner.txt inner 17 0 18 1 19 2 20 3 21 4 22 5 23 6 24 7 25 8 26 9 27 10 28 11 29 12 30 13 31 14 32 15 33 16 34 17 35 18 36 19 37 20 38 21 39 22 40 23 41 24 42 25 43 26 44 27 45 28 46 29 47 30 48 31 49 32 50 33 51 34 52 35 53 36 54 37 55 38 56 39 57 40 58 41 59 42 60 43 61 44 62 45 63 46 64 47 65 48 66 49 67 50 LandmarkDetector_part model_eye/main_clnf_synth_left.txt left_eye_28 36 8 37 10 38 12 39 14 40 16 41 18 LandmarkDetector_part model_eye/main_clnf_synth_right.txt right_eye_28 42 8 43 10 44 12 45 14 46 16 47 18 FaceDetConversion haarAlign.txt diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectorParameters.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectorParameters.cpp index ba1153f..c0e74a3 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectorParameters.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectorParameters.cpp @@ -191,7 +191,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) } } - for (int i = arguments.size() - 1; i >= 0; --i) + for (int i = (int)arguments.size() - 1; i >= 0; --i) { if (!valid[i]) { diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp index fa19007..c952e51 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp @@ -904,8 +904,8 @@ void DrawBox(cv::Mat image, cv::Vec6d pose, cv::Scalar color, int thickness, flo rotBoxProj.row(edges[i].second).copyTo(end); - cv::Point p1(cvRound(begin.at(0) * draw_multiplier), cvRound(begin.at(1) * draw_multiplier)); - cv::Point p2(cvRound(end.at(0) * draw_multiplier), cvRound(end.at(1) * draw_multiplier)); + cv::Point p1(cvRound(begin.at(0) * (double)draw_multiplier), cvRound(begin.at(1) * (double)draw_multiplier)); + cv::Point p2(cvRound(end.at(0) * (double)draw_multiplier), cvRound(end.at(1) * (double)draw_multiplier)); // Only draw the line if one of the points is inside the image if(p1.inside(image_rect) || p2.inside(image_rect)) @@ -1076,7 +1076,7 @@ void Draw(cv::Mat img, const cv::Mat_& shape2D, const cv::Mat_& vis { if(visibilities.at(i)) { - cv::Point featurePoint(cvRound(shape2D.at(i) * draw_multiplier), cvRound(shape2D.at(i + n) * draw_multiplier)); + cv::Point featurePoint(cvRound(shape2D.at(i) * (double)draw_multiplier), cvRound(shape2D.at(i + n) * (double)draw_multiplier)); // A rough heuristic for drawn point size int thickness = (int)std::ceil(3.0* ((double)img.cols) / 640.0); @@ -1092,7 +1092,7 @@ void Draw(cv::Mat img, const cv::Mat_& shape2D, const cv::Mat_& vis { for( int i = 0; i < n; ++i) { - cv::Point featurePoint(cvRound(shape2D.at(i) * draw_multiplier), cvRound(shape2D.at(i + n) * draw_multiplier)); + cv::Point featurePoint(cvRound(shape2D.at(i) * (double)draw_multiplier), cvRound(shape2D.at(i + n) * (double)draw_multiplier)); // A rough heuristic for drawn point size int thickness = 1.0; @@ -1106,7 +1106,7 @@ void Draw(cv::Mat img, const cv::Mat_& shape2D, const cv::Mat_& vis if(i == 27) next_point = 20; - cv::Point nextFeaturePoint(cvRound(shape2D.at(next_point) * draw_multiplier), cvRound(shape2D.at(next_point + n) * draw_multiplier)); + cv::Point nextFeaturePoint(cvRound(shape2D.at(next_point) * (double)draw_multiplier), cvRound(shape2D.at(next_point + n) * (double)draw_multiplier)); if( i < 8 || i > 19) cv::line(img, featurePoint, nextFeaturePoint, cv::Scalar(255, 0, 0), thickness_2, CV_AA, draw_shiftbits); else @@ -1119,7 +1119,7 @@ void Draw(cv::Mat img, const cv::Mat_& shape2D, const cv::Mat_& vis { for( int i = 0; i < n; ++i) { - cv::Point featurePoint(cvRound(shape2D.at(i) * draw_multiplier), cvRound(shape2D.at(i + n) * draw_multiplier)); + cv::Point featurePoint(cvRound(shape2D.at(i) * (double)draw_multiplier), cvRound(shape2D.at(i + n) * (double)draw_multiplier)); // A rough heuristic for drawn point size int thickness = 1.0; @@ -1129,7 +1129,7 @@ void Draw(cv::Mat img, const cv::Mat_& shape2D, const cv::Mat_& vis if(i == 5) next_point = 0; - cv::Point nextFeaturePoint(cvRound(shape2D.at(next_point) * draw_multiplier), cvRound(shape2D.at(next_point + n) * draw_multiplier)); + cv::Point nextFeaturePoint(cvRound(shape2D.at(next_point) * (double)draw_multiplier), cvRound(shape2D.at(next_point + n) * (double)draw_multiplier)); cv::line(img, featurePoint, nextFeaturePoint, cv::Scalar(255, 0, 0), thickness_2, CV_AA, draw_shiftbits); } } @@ -1155,11 +1155,11 @@ void Draw(cv::Mat img, const cv::Mat_& shape2D) cv::Point featurePoint; if(shape2D.cols == 1) { - featurePoint = cv::Point(cvRound(shape2D.at(i) * draw_multiplier), cvRound(shape2D.at(i + n) * draw_multiplier)); + featurePoint = cv::Point(cvRound(shape2D.at(i) * (double)draw_multiplier), cvRound(shape2D.at(i + n) * (double)draw_multiplier)); } else { - featurePoint = cv::Point(cvRound(shape2D.at(i, 0) * draw_multiplier), cvRound(shape2D.at(i, 1) * draw_multiplier)); + featurePoint = cv::Point(cvRound(shape2D.at(i, 0) * (double)draw_multiplier), cvRound(shape2D.at(i, 1) * (double)draw_multiplier)); } // A rough heuristic for drawn point size int thickness = (int)std::ceil(5.0* ((double)img.cols) / 640.0); diff --git a/matlab_runners/Feature Point Experiments/results/fps_yt.mat b/matlab_runners/Feature Point Experiments/results/fps_yt.mat index 7da2870e35d4e49117f65eba683fd2d4cb7a786c..af63eceb5304b4f900bb0e2b6dbe8d52dac8b701 100644 GIT binary patch delta 716 zcmWN=TTD^`00v->g-RTs<%(rIiAbDf)g)Q#XjVf(S0&-DBnXztdT+?xWG0GfM9@A;5!YC+3|(4=fg(v? zG|3zxg(D4aC-+3_#t z%|_%>Jm;8VGRDjb&S~|MVAPifKlKuAed26L8@F}x!*tL5vW!1$9MAZ)W}jP@UA2d= z(rfh>yuW5k*G+-W*>eFtS<6!W?td+4r+m}Q+D5j{IBp7f)2waLHy=3`6>QEE$4ZHE zc*eQ%txqoRd;Tu7jmnr|R-68;mb(`|CJUI=ES0DKZO+Lua++QpTNm;71m(26_s7jA zDGi>q!8PtwwsdSP#B}$zrd@aDXyd7N&E<--8oIE~$#K2-dL^Cz*i}AcyyUalQpX3X zvX#L?^ZC=w^YW-G*vP+g|JHTC`eNRXK+U?_YqQxV{EU#v z;|t9uhlRjU+=QEvhG7_v5lF`^$UqXAxD_LD8*axaWMMSMU@WqcgF7$|<8deM!UW_Z z4-;`WCgC1T#uQ9NJ_;}m(@}^SxEC`~gkqH7K9r&ivoITTP>#8nhxu55`>_xY;6YU2 YAv}yqEW%<`VF{L^8jrXgma;tSf5bsgFaQ7m delta 717 zcmWN=X-rZ900;0MiI(!jM2%33M5Rnk@YXyqj|6OU9$=-hWkI6&@4bk@qFK9rk}8nc_6ZSR9g|Lyl%dFfzK*pT5&^lUO$m8Hf%JOCKp)&>L8+*C8x} zokc#7$D3p~h?v&jv_bj9wiq$PR&WG52aoqQ<3t%bLn>_7CN{<*O!+P=|0SE+m@9$zl8dQyeyEu{3TMf-Q;V+HSp)3bIlkZPzu zt&(f$3pJ%)kKy^M%;k+7PX?Sy!w~*xn(ETJ(k=!`Z%j6b#t51C!&^y+er-LE~ z{WY6@e@HSRVVpXr39(d}Z{Fsf?6LG5t7HTyZ<{f`!1!K%+TN3=*N%wylPTkB|^vG&d8vdr7uH{D&SqZwO*?$6(8 zw{{Z9z^&+mO!P%R+=koH9|MquBnBcIgK!51BL_n;6vJ>Qa&Z^(FdQQ=5_jVs)!5w3&BDOV(!|Z&$kEWy)Y8D&%+1Wg(bC-2 R!otwmPQiwdlF7F<)Br*J7W@DJ delta 92 zcmZn+Y7Cl?#c5$+XlP_;XkxIjSXIN>(Ad<>+|Ah1%-PJ*z}eKv)X3Dr$k^1>(#Y7= R$i&&ePQiwdlF7F<)Bq@>7FYlP diff --git a/matlab_runners/Feature Point Experiments/results/landmark_detections.mat b/matlab_runners/Feature Point Experiments/results/landmark_detections.mat index cd7fb6151d759e8c78aea0b38b57a0a88fa797cc..9548166ba3e0988551e35b1085fc66c9bf2396f6 100644 GIT binary patch delta 43 zcmaF%j``U;<_RVeA*HDb!Knob24)I|hE@g^R;K0(Mh1pv69bheCa`WS`Sc9{Rs0V^ delta 43 zcmaF%j``U;<_RVezWI3yj-}}e28IfTMplM~R>l?zMh1pv69bheCa`WS`Sc9{Q#KDM diff --git a/matlab_runners/Full_test_suite.m b/matlab_runners/Full_test_suite.m index 6283f3f..29cbbe6 100644 --- a/matlab_runners/Full_test_suite.m +++ b/matlab_runners/Full_test_suite.m @@ -1,8 +1,6 @@ % This is sort of the unit test for the whole module (needs datasets) % Will take over an hour to run all -% TODO need some unit testy things, some asserts - tic %% Head pose cd('Head Pose Experiments'); diff --git a/matlab_runners/Gaze Experiments/mpii_1500_errs.mat b/matlab_runners/Gaze Experiments/mpii_1500_errs.mat index 6c892cac14236e3ceeb37983086cce2d5982d6c8..bb9f304c825dab92444583d60d3221b657ab366a 100644 GIT binary patch delta 41 wcmX>ZeKLB2i9|?gszPvTfr5dVf}xR>k%g6kp@NZtq1nVh<%tQb8%siU0T(?CZU6uP delta 41 wcmX>ZeKLB2iG*){o`Pd(x`KhBf}ydMv5}Rrse+M#q1nVh<%tQb8%siU0TmAnT>t<8 diff --git a/matlab_runners/Head Pose Experiments/results/Pose_OF.mat b/matlab_runners/Head Pose Experiments/results/Pose_OF.mat index 247d83da9a14d16b5f2b488e56187bb309b5dfd3..68e460cf107c8f4e75c4f69dc336f885423ad061 100644 GIT binary patch delta 321 zcmWm7y-LGS0EXd{q{rm=ldAP6)~H9L)wB*tkV;cm#Fg^) GZs#A?@^*Is delta 344 zcmXBN%`d}n0LJnDTC>(D=B=it%*(V6>oyi$B5{=HqzNa9xN*XPI0z0~veRsh$S*=7 z+)P9klg8iRE^(GPF71hAh-Y#5ya+a`p!V+jK z2TkCEX7B^=5LWoE5sOw_Aw*X^VUGT|f+nt3*Ip0rst(88R{XVm(G#Er0?-O=AVNEI zKqmyD3%a2PdZ7;_=!cL~^ag?pWbwcDWyrJi+K^STe*Us~bbNKeF*gN1K~YokW?F_p e2*VIGzF`=F2#mrQjKc&(VG>l(95X$YD*XYSvV*4p