|
@@ -1825,9 +1825,9 @@ void SemSegContextTree::train ( const MultiDataset *md )
|
|
|
|
|
|
void SemSegContextTree::semanticseg ( CachedExample *ce, NICE::Image & segresult, NICE::MultiChannelImageT<double> & probabilities )
|
|
void SemSegContextTree::semanticseg ( CachedExample *ce, NICE::Image & segresult, NICE::MultiChannelImageT<double> & probabilities )
|
|
{
|
|
{
|
|
- int xpos = 8;
|
|
|
|
|
|
+ //int xpos = 8;
|
|
//int xpos = 15;
|
|
//int xpos = 15;
|
|
- int ypos = 78;
|
|
|
|
|
|
+ //int ypos = 78;
|
|
|
|
|
|
int xsize;
|
|
int xsize;
|
|
int ysize;
|
|
int ysize;
|
|
@@ -1862,7 +1862,6 @@ void SemSegContextTree::semanticseg ( CachedExample *ce, NICE::Image & segresult
|
|
|
|
|
|
#ifdef LOCALFEATS
|
|
#ifdef LOCALFEATS
|
|
lfcw->getFeats ( img, feats );
|
|
lfcw->getFeats ( img, feats );
|
|
-
|
|
|
|
#else
|
|
#else
|
|
feats.reInit ( xsize, ysize, 3, true );
|
|
feats.reInit ( xsize, ysize, 3, true );
|
|
|
|
|
|
@@ -1894,13 +1893,15 @@ void SemSegContextTree::semanticseg ( CachedExample *ce, NICE::Image & segresult
|
|
{
|
|
{
|
|
depth++;
|
|
depth++;
|
|
|
|
|
|
|
|
+#ifdef TEXTONMAP
|
|
double weight = computeWeight(depth,maxDepth) - computeWeight(depth-1,maxDepth);
|
|
double weight = computeWeight(depth,maxDepth) - computeWeight(depth-1,maxDepth);
|
|
|
|
|
|
if(depth == 1)
|
|
if(depth == 1)
|
|
{
|
|
{
|
|
weight = computeWeight(1,maxDepth);
|
|
weight = computeWeight(1,maxDepth);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+#endif
|
|
|
|
+
|
|
allleaf = true;
|
|
allleaf = true;
|
|
|
|
|
|
MultiChannelImageT<unsigned short int> lastfeats = currentfeats;
|
|
MultiChannelImageT<unsigned short int> lastfeats = currentfeats;
|
|
@@ -1931,18 +1932,19 @@ void SemSegContextTree::semanticseg ( CachedExample *ce, NICE::Image & segresult
|
|
if ( val < forest[tree][t].decision )
|
|
if ( val < forest[tree][t].decision )
|
|
{
|
|
{
|
|
currentfeats.set ( x, y, forest[tree][t].left, tree );
|
|
currentfeats.set ( x, y, forest[tree][t].left, tree );
|
|
|
|
+#ifdef TEXTONMAP
|
|
SparseVectorInt v;
|
|
SparseVectorInt v;
|
|
v.insert ( pair<int, double> ( forest[tree][forest[tree][t].left].nodeNumber, weight ) );
|
|
v.insert ( pair<int, double> ( forest[tree][forest[tree][t].left].nodeNumber, weight ) );
|
|
-#ifdef TEXTONMAP
|
|
|
|
textonMap ( subx, suby ).add ( v );
|
|
textonMap ( subx, suby ).add ( v );
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
currentfeats.set ( x, y, forest[tree][t].right, tree );
|
|
currentfeats.set ( x, y, forest[tree][t].right, tree );
|
|
|
|
+#ifdef TEXTONMAP
|
|
SparseVectorInt v;
|
|
SparseVectorInt v;
|
|
v.insert ( pair<int, double> ( forest[tree][forest[tree][t].right].nodeNumber, weight ) );
|
|
v.insert ( pair<int, double> ( forest[tree][forest[tree][t].right].nodeNumber, weight ) );
|
|
-#ifdef TEXTONMAP
|
|
|
|
|
|
+
|
|
textonMap ( subx, suby ).add ( v );
|
|
textonMap ( subx, suby ).add ( v );
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
@@ -1983,16 +1985,18 @@ void SemSegContextTree::semanticseg ( CachedExample *ce, NICE::Image & segresult
|
|
integralTexton(integralTexton.width()-1, integralTexton.height()-1).store(outstream);
|
|
integralTexton(integralTexton.width()-1, integralTexton.height()-1).store(outstream);
|
|
outstream.close();
|
|
outstream.close();
|
|
#endif
|
|
#endif
|
|
-
|
|
|
|
- string cndir = conf->gS ( "SSContextTree", "cndir", "" );
|
|
|
|
- int classes = ( int ) probabilities.numChannels;
|
|
|
|
|
|
+
|
|
vector<int> useclass ( classes, 1 );
|
|
vector<int> useclass ( classes, 1 );
|
|
|
|
|
|
|
|
+ string cndir = conf->gS ( "SSContextTree", "cndir", "" );
|
|
|
|
+#ifdef WRITEGLOB
|
|
|
|
+ int classes = ( int ) probabilities.numChannels;
|
|
|
|
+
|
|
std::vector< std::string > list;
|
|
std::vector< std::string > list;
|
|
StringTools::split ( currentFile, '/', list );
|
|
StringTools::split ( currentFile, '/', list );
|
|
|
|
|
|
string orgname = list.back();
|
|
string orgname = list.back();
|
|
-#ifdef WRITEGLOB
|
|
|
|
|
|
+
|
|
ofstream ostream("filelist.txt",ofstream::app);
|
|
ofstream ostream("filelist.txt",ofstream::app);
|
|
ostream << orgname << ".dat" << endl;
|
|
ostream << orgname << ".dat" << endl;
|
|
ostream.close();
|
|
ostream.close();
|