fix feature computing
This commit is contained in:
@@ -1,2 +1,4 @@
|
|||||||
add_subdirectory(haartraining)
|
add_subdirectory(haartraining)
|
||||||
add_subdirectory(traincascade)
|
add_subdirectory(traincascade)
|
||||||
|
add_subdirectory(sft)
|
||||||
|
|
||||||
|
|||||||
@@ -73,6 +73,22 @@ struct ICF
|
|||||||
return bb != b.bb || channel != b.channel;
|
return bb != b.bb || channel != b.channel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float operator() (const Mat& integrals, const cv::Size& model) const
|
||||||
|
{
|
||||||
|
const int* ptr = integrals.ptr<int>(0) + (model.height * channel + bb.y) * model.width + bb.x;
|
||||||
|
|
||||||
|
int a = ptr[0];
|
||||||
|
int b = ptr[bb.width];
|
||||||
|
|
||||||
|
ptr += bb.height * model.width;
|
||||||
|
|
||||||
|
int c = ptr[bb.width];
|
||||||
|
int d = ptr[0];
|
||||||
|
|
||||||
|
return (float)(a - b + c - d);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
cv::Rect bb;
|
cv::Rect bb;
|
||||||
int channel;
|
int channel;
|
||||||
|
|||||||
@@ -93,6 +93,10 @@ bool sft::Octave::train( const cv::Mat& trainData, const cv::Mat& _responses, co
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "WARNING: " << sampleIdx << std::endl;
|
std::cout << "WARNING: " << sampleIdx << std::endl;
|
||||||
|
std::cout << "WARNING: " << trainData << std::endl;
|
||||||
|
std::cout << "WARNING: " << _responses << std::endl;
|
||||||
|
std::cout << "WARNING: " << varIdx << std::endl;
|
||||||
|
std::cout << "WARNING: " << varType << std::endl;
|
||||||
|
|
||||||
bool update = false;
|
bool update = false;
|
||||||
return cv::Boost::train(trainData, CV_COL_SAMPLE, _responses, varIdx, sampleIdx, varType, missingDataMask, _params,
|
return cv::Boost::train(trainData, CV_COL_SAMPLE, _responses, varIdx, sampleIdx, varType, missingDataMask, _params,
|
||||||
@@ -313,7 +317,7 @@ sft::FeaturePool::~FeaturePool(){}
|
|||||||
|
|
||||||
float sft::FeaturePool::apply(int fi, int si, const Mat& integrals) const
|
float sft::FeaturePool::apply(int fi, int si, const Mat& integrals) const
|
||||||
{
|
{
|
||||||
return 0.f;
|
return pool[fi](integrals.row(si), model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ int main(int argc, char** argv)
|
|||||||
int shrinkage = cfg.shrinkage;
|
int shrinkage = cfg.shrinkage;
|
||||||
int octave = *it;
|
int octave = *it;
|
||||||
|
|
||||||
cv::Size model = cfg.modelWinSize;
|
cv::Size model = cv::Size(cfg.modelWinSize.width / cfg.shrinkage, cfg.modelWinSize.height / cfg.shrinkage );
|
||||||
std::string path = cfg.trainPath;
|
std::string path = cfg.trainPath;
|
||||||
|
|
||||||
cv::Rect boundingBox(cfg.offset.x / cfg.shrinkage, cfg.offset.y / cfg.shrinkage,
|
cv::Rect boundingBox(cfg.offset.x / cfg.shrinkage, cfg.offset.y / cfg.shrinkage,
|
||||||
|
|||||||
Reference in New Issue
Block a user