From 1c1a9cde84c2e5e6dc1f8180565ae361d601b907 Mon Sep 17 00:00:00 2001 From: jaco Date: Mon, 16 Jun 2014 19:03:13 +0200 Subject: [PATCH] BING objectness porting finished --- .../saliency/saliencySpecializedClasses.hpp | 1 + modules/saliency/samples/computeSaliency.cpp | 3 ++ .../ObjectnessTrainedModel/ObjNessB2W8HSV.idx | Bin 0 -> 129 bytes .../ObjectnessTrainedModel/ObjNessB2W8HSV.wS1 | Bin 0 -> 273 bytes .../ObjectnessTrainedModel/ObjNessB2W8HSV.wS2 | Bin 0 -> 241 bytes .../ObjectnessTrainedModel/ObjNessB2W8I.idx | Bin 0 -> 129 bytes .../ObjectnessTrainedModel/ObjNessB2W8I.wS1 | Bin 0 -> 273 bytes .../ObjectnessTrainedModel/ObjNessB2W8I.wS2 | Bin 0 -> 241 bytes .../ObjNessB2W8MAXBGR.idx | Bin 0 -> 129 bytes .../ObjNessB2W8MAXBGR.wS1 | Bin 0 -> 273 bytes .../ObjNessB2W8MAXBGR.wS2 | Bin 0 -> 241 bytes modules/saliency/src/objectnessBING.cpp | 40 ++++++++++-------- 12 files changed, 27 insertions(+), 17 deletions(-) create mode 100644 modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.idx create mode 100644 modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS1 create mode 100644 modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS2 create mode 100644 modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.idx create mode 100644 modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS1 create mode 100644 modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS2 create mode 100644 modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.idx create mode 100644 modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS1 create mode 100644 modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS2 diff --git a/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp b/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp index f610fa64d..a7521d680 100644 --- a/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp +++ b/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp @@ -210,6 +210,7 @@ class CV_EXPORTS_W ObjectnessBING : public Objectness static inline int bgrMaxDist(const Vec3b &u, const Vec3b &v) {int b = abs(u[0]-v[0]), g = abs(u[1]-v[1]), r = abs(u[2]-v[2]); b = max(b,g); return max(b,r);} static inline int vecDist3b(const Vec3b &u, const Vec3b &v) {return abs(u[0]-v[0]) + abs(u[1]-v[1]) + abs(u[2]-v[2]);} + //inline string strVec4i(const Vec4i &vv) const {return std::format("%d, %d, %d, %d", vv[0], vv[1], vv[2], vv[3]);} //Non-maximal suppress static void nonMaxSup(CMat &matchCost1f, ValStructVec &matchCost, int NSS = 1, int maxPoint = 50, bool fast = true); diff --git a/modules/saliency/samples/computeSaliency.cpp b/modules/saliency/samples/computeSaliency.cpp index 06be1bc1b..c1d2fe876 100644 --- a/modules/saliency/samples/computeSaliency.cpp +++ b/modules/saliency/samples/computeSaliency.cpp @@ -94,6 +94,9 @@ int main( int argc, char** argv ) std::cout << "-----------------OBJECTNESS-----------" << std::endl; std::cout << "OBJ BB VECTOR SIZE" << saliencyMap.size() << std::endl; + std::cout << " " << saliencyMap[0] << std::endl; + std::cout << " " << saliencyMap[1] << std::endl; + std::cout << " " << saliencyMap[2] << std::endl; } } diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.idx b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.idx new file mode 100644 index 0000000000000000000000000000000000000000..1b8e98883e625772560919fdb3f5905c1a4e6fc1 GIT binary patch literal 129 zcmWm6NeY8N07TJNBvFVlP7x=_a1_@bA_vIM`{V0^x2VnE{`>DpLI?{Paq*{IxRO(F aqvTG-gPMkxj-Dq2BNH>Rzw+YEhc72bWCQd7 literal 0 HcmV?d00001 diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS1 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS1 new file mode 100644 index 0000000000000000000000000000000000000000..d67c5830ba3f06f611e2433b9ad4fed01ec8be81 GIT binary patch literal 273 zcmV+s0q*`oZB1cx2mk;82mk;81poj5gWe#zf6$LPTXXR_l`lIw5l}xm{=4HjZMu6o z(xei)O;F!Bgr|%XBd=7rtdylW>=6+;J)-M4MMs`Ftho_5)_`L+M3Ol;&F~vId*OgN0rws`7}+>E zz2;guU9)4j=W2U5dwLkS>Hyt0P>)wRk`pL7qgoL;AUtw8{xNSj^75j#F4@&LwU4(q zPc(Ho0iPQ=^WB&>qsd-5EvT+GW+fE3#=RA}6meNMfi7`5h+PRdKZt|5UdyyMjG%8g XZB`UG^UDD__-jWu=*X@(PxGa@Wq)?( literal 0 HcmV?d00001 diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS2 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS2 new file mode 100644 index 0000000000000000000000000000000000000000..5aaac81280c7842cc1ca0f4e773e0b78eccfe803 GIT binary patch literal 241 zcmVGkC)klc zS7?F1?I?*qq?~=fX>Z&=F93bNDxc3iol=0mR{T^yufT%8w8CLP=);M>lH2q^y(^5r rF1r0dltEv=n)duY$ZLVW?j>hH9Fd5>_m&Dl5$t}yUIQvY(NlE4IDpLI?{Paq*{IxRO(F aqvTG-gPMkxj-Dq2BNH>Rzw+YEhc72bWCQd7 literal 0 HcmV?d00001 diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS1 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS1 new file mode 100644 index 0000000000000000000000000000000000000000..6be672cc2f53aa896008dfdd98a4ce665bb307ae GIT binary patch literal 273 zcmV+s0q*`oZB1cx2mk;82mk;81poj5P`Agqe94+Q=WN2zE==0Hw5*}wTY_c@n2 ze_^`05FN}o1=Dvq?`7;bGTC7{a(qHL=KMf8UnY$?hGb7SLH9j5tz7^)vgb;;aI*tB z(OLmHsllE)B>1B~9FKs%3r~VSq}YJJv#_u~<=}w7 z(iJT~QC@(*mKt9^`W=A3z|*5X3ao&?ACX!;gA0JaVyHVmMxKDb2tlMj#h!q_S*f@` zYJ-5kO?%Qmpn`tCzh|{SR{e9oUP*>MasYt8ZS&ziv;=>@HS}0O-r#}1)QgWm@#R&& rVNonW%uiXrHDS6w49|bRGaE%f#kGCE&`l~qUW#eIa}eP`R=FU*$Y*W( literal 0 HcmV?d00001 diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.idx b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.idx new file mode 100644 index 0000000000000000000000000000000000000000..1b8e98883e625772560919fdb3f5905c1a4e6fc1 GIT binary patch literal 129 zcmWm6NeY8N07TJNBvFVlP7x=_a1_@bA_vIM`{V0^x2VnE{`>DpLI?{Paq*{IxRO(F aqvTG-gPMkxj-Dq2BNH>Rzw+YEhc72bWCQd7 literal 0 HcmV?d00001 diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS1 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS1 new file mode 100644 index 0000000000000000000000000000000000000000..fe83f6597df1b6c231c39fd90a2a4282d06cb170 GIT binary patch literal 273 zcmV+s0q*`oZB1cx2mk;82mk;81poj5*)#yU9EhJeRl)Z;DE>$~k@7@3x(x(6CIgl^ zNo(V|E$YR$*K3A3xlJ@Vo!NysmZ4)g6lhL4IRIcetRa#$WU~M{%g;)!+RM&>Vojadg{0DaL=lNgN(Pso;OVuJZ>$u>6X@ rZ5QT1GuTDHucf*^HeZ0hpb`N sortedBB = finalBoxes.getSortedStructVal(); + FILE *f = fopen( _S( fName + ".txt" ), "w" ); + fprintf( f, "%d\n", finalBoxes.size() ); + for ( size_t k = 0; k < finalBoxes.size(); k++ ){ + //fprintf(f, "%g, %s\n", finalBoxes(k), _S(strVec4i(finalBoxes[k]))); + //fprintf(f, "%g, %s\n", finalBoxes(k), finalBoxes(k)[0],finalBoxes(k)[1],finalBoxes(k)[2],finalBoxes(k)[3]); + } + + fclose( f ); */ } struct MatchPathSeparator @@ -411,15 +423,15 @@ std::string inline removeExtension( std::string const& filename ) // Read matrix from binary file bool ObjectnessBING::matRead( const string& filename, Mat& _M ) { - String filenamePlusExt(filename.c_str()); - filenamePlusExt+=".yml.gz"; + String filenamePlusExt( filename.c_str() ); + filenamePlusExt += ".yml.gz"; FileStorage fs2( filenamePlusExt, FileStorage::READ ); //String fileNameString( filename.c_str() ); Mat M; - fs2[String(removeExtension( basename( filename ) ).c_str())] >> M; + fs2[String( removeExtension( basename( filename ) ).c_str() )] >> M; - /*FILE* f = fopen(_S(filename), "rb"); + /* FILE* f = fopen(_S(filename), "rb"); if (f == NULL) return false; char buf[8]; @@ -460,21 +472,15 @@ bool ObjectnessBING::computeSaliencyImpl( const InputArray image, OutputArray ob // List of rectangles returned by objectess function in ascending order. // At the top there are the rectangles with lower values of ​​objectness, ie more // likely to have objects in them. - //vector > + //vector - //objBoundingBox = finalBoxes.getSortedStructVal(); - /* vector tmp=finalBoxes.getSortedStructVal(); - objBoundingBox.create(tmp.size(), 1, CV_8U); - Mat obj= objBoundingBox.getMat(); - obj=tmp;*/ + vector sortedBB = finalBoxes.getSortedStructVal(); + objBoundingBox.create( 1, sortedBB.size(), CV_MAKETYPE( CV_32S, CV_MAT_CN(objBoundingBox.type()) ) ); Mat obj = objBoundingBox.getMat(); - obj = Mat(finalBoxes.getSortedStructVal()); - -/* Mat obj2 = objBoundingBox.getMatRef(); - obj2 = Mat(finalBoxes.getSortedStructVal());*/ - + for ( uint i = 0; i < sortedBB.size(); i++ ) + obj.at( i ) = sortedBB[i]; // List of the rectangles' objectness value unsigned long int valIdxesSize = finalBoxes.getvalIdxes().size();