/// /// \brief YoloDarknetDetector::Init /// \return /// bool YoloDarknetDetector::Init(const config_t& config) { auto modelConfiguration = config.find("modelConfiguration"); auto modelBinary = config.find("modelBinary"); if (modelConfiguration != config.end() && modelBinary != config.end()) { m_detector = std::make_unique<Detector>(modelConfiguration->second, modelBinary->second); m_detector->nms = 0.2f; } auto classNames = config.find("classNames"); if (classNames != config.end()) { std::ifstream classNamesFile(classNames->second); if (classNamesFile.is_open()) { m_classNames.clear(); std::string className; for (; std::getline(classNamesFile, className); ) { m_classNames.push_back(className); } } } auto confidenceThreshold = config.find("confidenceThreshold"); if (confidenceThreshold != config.end()) { m_confidenceThreshold = std::stof(confidenceThreshold->second); } auto maxCropRatio = config.find("maxCropRatio"); if (maxCropRatio != config.end()) { m_maxCropRatio = std::stof(maxCropRatio->second); if (m_maxCropRatio < 1.f) { m_maxCropRatio = 1.f; } } bool correct = m_detector.get() != nullptr; return correct; }
bool hasSection(string section) { return config.find(section) != config.end(); }