From f92293ffe0ff5e106af8b12c0a11d4a2a975f466 Mon Sep 17 00:00:00 2001 From: Hans Gaiser Date: Wed, 22 Oct 2014 14:58:03 +0200 Subject: [PATCH] Add threshold for stopping criterion --- random/CMakeLists.txt | 2 +- random/src/.main.cpp.swo | Bin 20480 -> 0 bytes random/src/levels.cpp | 8 ++++---- random/src/random_stopping_criterion.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 random/src/.main.cpp.swo diff --git a/random/CMakeLists.txt b/random/CMakeLists.txt index b6ce5e5..95fe06a 100644 --- a/random/CMakeLists.txt +++ b/random/CMakeLists.txt @@ -14,7 +14,7 @@ find_package(PythonLibs REQUIRED) find_package(NumPy REQUIRED) find_package(Objectness REQUIRED) -set(CMAKE_CXX_FLAGS "-std=c++11 -g") +set(CMAKE_CXX_FLAGS "-std=c++11 -O3") include_directories( include diff --git a/random/src/.main.cpp.swo b/random/src/.main.cpp.swo deleted file mode 100644 index ef40996a1011691ff5fb3ac66e608376150f7006..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 zcmeI3dyHIF8Nf$*$nX#lA}EO-wo>kNr!)J2QuamK-KAaWcAI^)lv>8SGk16IcIMvU z-aFeCt$<<>6F_R@A(~*K35pO%hzSW=MP5dN`iFn;jF=!1kcdEnF@V4C+e&Id*>3^aIPAoU?q}&lla2l`mGSdCzo8 zZYA$~#eBuIog8Hc8!{~ZEP&7~rW>&8~A=Ta0*&)qWw4JF=`PkH<^i0|$8b~yd zXdux*qJcyMi3So4BpOIG@Bz_4P(31b1+p9w$ukpuUl)CUDEdA!`d%A-PcEweaP)gk z^c{~E_kZWz@Dul6Jbu(I`ARg9Xdux*qJcyMi3So4BpOIGkZ2&$K%#*}1BnLy0~#<( zsnq6UQmOT62Iu*I9KXMCVk-43xEF4Q3tOURO)x|Tet`AhP&We z*bPsdkV-uW2jFLL3tS2-;GN^S7CZ(w!#r$*t#B3`0nZ)B9O2XO{IT?hZ^C|@HMbu3dUdvM8=J@I|csA-;cu`@IANd|s1#rQEOW|{{0~UYwrP7`i)I3K`^TLPa_j0=}r)1Bh(tc3t=_$Ik zK=t)SwepuPrb(Hm>Ec39k6rQS+}%doNX4AB+On$TnY%N+VVzkjZL{pzxxgwJQl3>E zxpTA1&s9u+ms+K|&gGXb>d1ApcJ-`cU^=s9E9&TFm0WG2XqHXSpkpS!$T%&PXGrZ9 z*LDIU6eVW{ef%0QIx^X4{`I2H3}pxH(6zKfccy;1;zBU!mR&EJS16W@H8{3uY`n03 z!+6(*@pao}cDAS_S9Gg;CtcklDpc zmQa9L3>hVDm3>PZhr+6UEuvJ|Gb+}ARjCGhjZB78X;v4%J41W93403F++OL_Qr*>D zy=O^vXH;!F%l7VQuGYOpIU=!KgbPPMjn1q(C#wdx7P`A820Iaod1(3dKjELu%(Kj0 zG6z0By(g^Misb}7Jr&EFwG1C?3QPPQ#oY8xt(#B@eyySg`jzLDGU^L@04Zr_0y*EV z*qD(WXyMZ{uBQyM7PxAqD)uN;?_g85>-bSm>DZ5<≥|XUZ<(FffHB+c#z{rx0FP zua25yGh(H{%*zGp1J9nW$#8wTddSjSTyf+ zbGvHIpDRq8#a+f=ef}-#adu|aOxc|EwJE2Yq;`6+21gd^v|ID)LdyoQfFfM4uQB96 zvwHM>3ANFrqI7!qoL#n*;RkLtC;u3FC1jO{ZS<=d6WbNda#O?@q6LgWib;jr1D2^Z zI<8+dn_!Hp?aU5x%PbE~vJJUaxw@D{-2kdodAX`vE*qJh)av_MV-x7^Dg?@wTiDB2 zpK|zWZ`U_BvL_{5UwXnShc|wUj5KOil^&9g2vT$_)mmV+wuvQ+=OB|Fo1SMB$MStW z41F0ppI7fOeEHCamw`69>9enFk@DpS+*~?HnQ;C zS zsf6cC&U1JB^+kg~dc$gQ5!xp0ish@S>HAhm*(_0u?WyGVs5bE%tg>09qCly?$d5>; zOKxqN4Wp$ETdOWL*Z|r7rmb1q$*8;<+%z_L(L`a(@OWWjcu?;F+EXdJ#a*m&Y0Z{U zFOnM@-nRG%Vv_x8)(Q%tXoaRFoK;q7*5XjoNBP9a=*XsZ<0F&X)fd&|@Wqo;mMUwZ zZnEmkes%U`XUje&CMI=`S+PpnY~Idoa>=A(+sNjjv2BITW8Xox$NI-W&5rx z5%rjXYln@_(T!vxa)0IaQ5_1w`CAGbb#wGd*~sYl@VcSG)aJpB>o#u~9unJ#yJ{Ji z^z1r>o_b|3bJb3nTDUJqPBz<5e7_^dx^2qGM~v2pmbzo7EDzR<9(F+WMMsM^AbyI7 zd^Oaeo3tpiM@243R%)uyh!YS|yvHipF5c~kX5BuRp z*b4=?6#hh<|9iL#Zh~(?4K9K6;Bx=506S558r`(a4B2> z3XX-hh~r;_U&CYYDBJ}f8e zeFYwZyQ9B%^L-hVVGd@YA3g=|65Ia)egSvFt*{@;V8a~jfK6~790Rvv3oe`kr^9LR z2C@BL;1zfVo`NT#3fo}{CZYb(F;=t+aPAi@kL{J+FX&Be*&8~rtn0?|Fq%q3qs^+O zBC+t60=*WpD&D-Kl~nh|ImugAWq1^`TPE3uW&FD&`_RZ;{7cyf?X?DTIJ2RL=+&HH zxiUQ2g5`N6dD^C&U5>k3yxHgkh(f}O70kIMIk?*!b)hfAL8JpLOk58hJ2>uPM0x3^ zD6%!$W0ZJ&N%hp{75h>B%`RsBcyE&h*E*X+4>_AB(+Fup8Q*^nOD}y`dT5pY{e_Pm znx&Vm9gf8O-#1C(gyPmjVook4790p?^ zlCX`-1`Io^=G!GtDs5%_c`{l0EG9Ko_H~L-PF1On1pZ*i-A;mKzDaJ$;DvHaR-#4j z#vP9CUid^HY>hU>V76Mt?&$%eN|s-|lvv5cm|WOeAicveU zdWm|-+v(VX{vki zk{r6Mu$^MLRF4I!nwmAz6@~aj4?UcNHq&laYwdgWjGxjh)2*>v zw@it2X7pT0uF{xmpB6SB%9@+2RtFk&ZFC~I@=4aWOsy|e!+_|ruA0HE{QrEP$BR)s zCS$ef`2S+!+(}|%iT~sG^WP=5e;s}U@(#d_a2Zr#19Zc2@G`NzJm=pBdqAG`UjS#p zXW--TCb9i9@Ce)nH^8-UHCzc-z!a>3)8H-Q{3qd;a4-A_u7<1NO7NisW1!$(V*hJk z6Ldfxj)$Y*NO%L;{synXE)ZF(kbDviBpOIGkZ2&$K%#*}1BnLyJsL>=7gPW5ACeF= jCT}G!et9E#E+DCo=%vNvtwc#dC2u9h0r>~{t;Bx<_@xyy diff --git a/random/src/levels.cpp b/random/src/levels.cpp index f4adefd..d12a260 100644 --- a/random/src/levels.cpp +++ b/random/src/levels.cpp @@ -18,7 +18,7 @@ typedef std::vector> LevelSegments; std::random_device rd_; std::mt19937 gen_(rd_()); -cv::Mat get_bboxes_(const std::vector & levels, int n) { +cv::Mat get_bboxes_(const std::vector & levels, int n, float thresh) { #ifdef DEBUG cv::namedWindow("Image", cv::WINDOW_NORMAL); for (const auto & lev: levels) { @@ -96,6 +96,7 @@ cv::Mat get_bboxes_(const std::vector & levels, int n) { prior.push_back(lp.computeSelectionPrior(levels[i], level_segments[i])); } + RandomStoppingCriterion stop(thresh); for (int i = 0; i < n; i++) { int sid = rand() % segments_sum; @@ -108,7 +109,6 @@ cv::Mat get_bboxes_(const std::vector & levels, int n) { } std::shared_ptr s = lev[prior[j].poll()]; - RandomStoppingCriterion stop; while (s->neighbours.size() && stop.stop(seg, s->bbox()) == false) { #ifdef DEBUG @@ -173,7 +173,7 @@ cv::Mat get_bboxes_(const std::vector & levels, int n) { return bboxes; } -PyObject * get_bboxes(PyObject * levels_, int n) { +PyObject * get_bboxes(PyObject * levels_, int n, float thresh) { NDArrayConverter cvt; std::vector levels; @@ -182,7 +182,7 @@ PyObject * get_bboxes(PyObject * levels_, int n) { for (int i = 0; i < nrlevels; i++) levels.push_back(cvt.toMat(data[i])); - return cvt.toNDArray(get_bboxes_(levels, n)); + return cvt.toNDArray(get_bboxes_(levels, n, thresh)); } static void init_ar() { diff --git a/random/src/random_stopping_criterion.h b/random/src/random_stopping_criterion.h index 0f471e3..2f05c80 100644 --- a/random/src/random_stopping_criterion.h +++ b/random/src/random_stopping_criterion.h @@ -4,7 +4,7 @@ class RandomStoppingCriterion : public StoppingCriterion { public: - RandomStoppingCriterion() : threshold(0.95f) {//threshold(dis(gen)) { + RandomStoppingCriterion(float thresh = 0.85f) : threshold(thresh) {//threshold(dis(gen)) { } bool stop(const cv::Mat & image, cv::Rect roi) {