コード例 #1
0
bool loadCallback(LoadClassifier::Request &req,
                  LoadClassifier::Response &res )
{
    string id = req.identifier;
    
    Classifier *c;
    if(!createHelper(req.class_type, c)){
        res.success = false;
        return false;
    }
    
    if(!c->load(req.filename)){
        res.success = false;
        return false;
    }
    
    if(classifier_list.find(id) != classifier_list.end()){
        cout << "WARNING: ID already exists, overwriting: " << req.identifier << endl;
        delete classifier_list[id];
    }
    classifier_list[id] = c;
    
    res.success = true;
    return true;
}
コード例 #2
0
  void EmoDetector::init(std::vector<std::string>& classifier_paths) {
    map<string, pair<vector<Emotion>, Classifier*> > classifiers;

    for(size_t i = 0; i < classifier_paths.size(); i++) {

      string clpath = classifier_paths[i];
      Classifier* cvD = this->createClassifier();
      cvD->load(clpath);

      string fname = matrix_io_fileBaseName(clpath);
      // std::cout<<"the file locations starts at: "<<std::endl; 
      Emotion emo = UNKNOWN;

      vector<string> emotions_list = split_string(fname, "_");
      vector<Emotion> fin_emo_list;
      fin_emo_list.reserve(emotions_list.size());
      string label = "";

      for(vector<string>::iterator it = emotions_list.begin(); it !=
          emotions_list.end(); ++it) {
        emo = UNKNOWN;
        if (*it == "vs") {
          break;
        } else if (*it == emotionStrings(NEUTRAL)) {
          emo = NEUTRAL;
        } else if (*it == emotionStrings(ANGER)) {
          emo = ANGER;
        } else if (*it == emotionStrings(CONTEMPT)) {
          emo = CONTEMPT;
        } else if (*it == emotionStrings(DISGUST)) {
          emo = DISGUST;
        } else if (*it == emotionStrings(FEAR)) {
          emo = FEAR;
        } else if (*it == emotionStrings(HAPPY)) {
          emo = HAPPY;
        } else if (*it == emotionStrings(SADNESS)) {
          emo = SADNESS;
        } else if (*it == emotionStrings(SURPRISE)) {
          emo = SURPRISE;
        }
        if(emo != UNKNOWN) {
          if(label.size() > 0) {
            label.append("_");
          }
          label.append(emotionStrings(emo));
          fin_emo_list.push_back(emo);
        }
      }
      pair<vector<Emotion>, Classifier*> value(fin_emo_list, cvD);
      pair<string, pair<vector<Emotion>, Classifier*> > entry(label, value);
      classifiers.insert(entry);
    }

    init(classifiers);
  }