\brief InitDetector \param frame \return
| 191 | /// \return |
| 192 | /// |
| 193 | bool InitDetector(cv::UMat frame) override |
| 194 | { |
| 195 | config_t config; |
| 196 | if (!m_trackerSettingsLoaded) |
| 197 | { |
| 198 | #ifdef _WIN32 |
| 199 | std::string pathToModel = "../../data/"; |
| 200 | #else |
| 201 | std::string pathToModel = "../data/"; |
| 202 | #endif |
| 203 | enum class NNModels |
| 204 | { |
| 205 | TinyYOLOv3 = 0, |
| 206 | YOLOv3, |
| 207 | YOLOv4, |
| 208 | TinyYOLOv4, |
| 209 | MobileNetSSD |
| 210 | }; |
| 211 | NNModels usedModel = NNModels::MobileNetSSD; |
| 212 | switch (usedModel) |
| 213 | { |
| 214 | case NNModels::TinyYOLOv3: |
| 215 | config.emplace("modelConfiguration", pathToModel + "yolov3-tiny.cfg"); |
| 216 | config.emplace("modelBinary", pathToModel + "yolov3-tiny.weights"); |
| 217 | config.emplace("classNames", pathToModel + "coco.names"); |
| 218 | config.emplace("confidenceThreshold", "0.5"); |
| 219 | break; |
| 220 | |
| 221 | case NNModels::YOLOv3: |
| 222 | config.emplace("modelConfiguration", pathToModel + "yolov3.cfg"); |
| 223 | config.emplace("modelBinary", pathToModel + "yolov3.weights"); |
| 224 | config.emplace("classNames", pathToModel + "coco.names"); |
| 225 | config.emplace("confidenceThreshold", "0.7"); |
| 226 | break; |
| 227 | |
| 228 | case NNModels::YOLOv4: |
| 229 | config.emplace("modelConfiguration", pathToModel + "yolov4.cfg"); |
| 230 | config.emplace("modelBinary", pathToModel + "yolov4.weights"); |
| 231 | config.emplace("classNames", pathToModel + "coco.names"); |
| 232 | config.emplace("confidenceThreshold", "0.5"); |
| 233 | break; |
| 234 | |
| 235 | case NNModels::TinyYOLOv4: |
| 236 | config.emplace("modelConfiguration", pathToModel + "yolov4-tiny.cfg"); |
| 237 | config.emplace("modelBinary", pathToModel + "yolov4-tiny.weights"); |
| 238 | config.emplace("classNames", pathToModel + "coco.names"); |
| 239 | config.emplace("confidenceThreshold", "0.5"); |
| 240 | break; |
| 241 | |
| 242 | case NNModels::MobileNetSSD: |
| 243 | config.emplace("modelConfiguration", pathToModel + "MobileNetSSD_deploy.prototxt"); |
| 244 | config.emplace("modelBinary", pathToModel + "MobileNetSSD_deploy.caffemodel"); |
| 245 | config.emplace("classNames", pathToModel + "voc.names"); |
| 246 | config.emplace("confidenceThreshold", "0.5"); |
| 247 | break; |
| 248 | } |
| 249 | config.emplace("maxCropRatio", "-1"); |
| 250 |