void drwnSegImagePixelFeatures::cacheInstanceData(const drwnSegImageInstance& instance) { DRWN_LOG_DEBUG("caching data for " << instance.name()); _instanceName = instance.name(); _instanceWidth = instance.width(); _instanceHeight = instance.height(); }
void drwnSegImageStdRegionFeatures::cacheInstanceData(const drwnSegImageInstance& instance) { // cache data needed by parent class drwnSegImageRegionFeatures::cacheInstanceData(instance); DRWN_FCN_TIC; // clear existing filterbank responses _filters.clear(); // filterbank response images drwnTextonFilterBank filterBank(FILTER_BANDWIDTH); vector<cv::Mat> responses; filterBank.filter(instance.image(), responses); _filters.addResponseImages(responses); DRWN_LOG_DEBUG("...allocated " << (_filters.memory() / (1024 * 1024)) << "MB for filter responses"); DRWN_FCN_TOC; }
void drwnSegImageStdPixelFeatures::cacheInstanceData(const drwnSegImageInstance& instance) { // cache data needed by parent class drwnSegImagePixelFeatures::cacheInstanceData(instance); DRWN_FCN_TIC; // clear existing filterbank responses and cached features _filters.clear(); _auxFeatures.clear(); // filterbank response images drwnTextonFilterBank filterBank(FILTER_BANDWIDTH); vector<cv::Mat> responses; filterBank.filter(instance.image(), responses); _filters.addResponseImages(responses); // add RGB features if (INCLUDE_RGB) { cv::Mat rgb(instance.height(), instance.width(), CV_32FC3); instance.image().convertTo(rgb, CV_32FC3, 1.0 / 255.0); vector<cv::Mat> channels(3); cv::split(rgb, &channels[0]); _filters.addResponseImages(channels); } // add HOG features if (INCLUDE_HOG) { responses.clear(); drwnHOGFeatures hogFeatureBank; hogFeatureBank.computeDenseFeatures(instance.image(), responses); _filters.addResponseImages(responses); } // add LBP features if (INCLUDE_LBP) { responses.clear(); drwnLBPFilterBank lbpFilterBank(false); lbpFilterBank.filter(instance.image(), responses); _filters.addResponseImages(responses); } // load auxiliary features if (!AUX_FEATURE_EXT.empty()) { _auxFeatures.resize(instance.size(), vector<double>(AUX_FEATURE_EXT.size())); for (unsigned i = 0; i < AUX_FEATURE_EXT.size(); i++) { string filename = AUX_FEATURE_DIR + string("/") + _instanceName + AUX_FEATURE_EXT[i]; DRWN_LOG_DEBUG("...loading features from " << filename); string ext(drwn::strExtension(AUX_FEATURE_EXT[i])); std::transform(ext.begin(), ext.end(), ext.begin(), ::tolower); if (ext.compare("txt") == 0) { // text file ifstream ifs(filename.c_str()); for (unsigned j = 0; j < _auxFeatures.size(); j++) { ifs >> _auxFeatures[j][i]; DRWN_ASSERT_MSG(!ifs.fail(), "expecting " << _auxFeatures.size() << " features from file text " << filename << " but only read " << j); } ifs.close(); } else if (ext.compare("bin") == 0) {
void drwnSegImageRegionFeatures::cacheInstanceData(const drwnSegImageInstance& instance) { DRWN_LOG_DEBUG("caching data for " << instance.name()); _instanceName = instance.name(); _instanceRegions = instance.superpixels.size(); }