\brief CreateDetector \param detectorType \param gray \return
| 18 | /// \return |
| 19 | /// |
| 20 | std::unique_ptr<BaseDetector> BaseDetector::CreateDetector(tracking::Detectors detectorType, |
| 21 | const config_t& config, |
| 22 | const cv::UMat& frame) |
| 23 | { |
| 24 | std::unique_ptr<BaseDetector> detector; |
| 25 | |
| 26 | switch (detectorType) |
| 27 | { |
| 28 | case tracking::Motion_VIBE: |
| 29 | detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_VIBE, frame); |
| 30 | break; |
| 31 | |
| 32 | case tracking::Motion_MOG: |
| 33 | detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_MOG, frame); |
| 34 | break; |
| 35 | |
| 36 | case tracking::Motion_GMG: |
| 37 | detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_GMG, frame); |
| 38 | break; |
| 39 | |
| 40 | case tracking::Motion_CNT: |
| 41 | detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_CNT, frame); |
| 42 | break; |
| 43 | |
| 44 | case tracking::Motion_SuBSENSE: |
| 45 | detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_SuBSENSE, frame); |
| 46 | break; |
| 47 | |
| 48 | case tracking::Motion_LOBSTER: |
| 49 | detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_LOBSTER, frame); |
| 50 | break; |
| 51 | |
| 52 | case tracking::Motion_MOG2: |
| 53 | detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_MOG2, frame); |
| 54 | break; |
| 55 | |
| 56 | case tracking::Face_HAAR: |
| 57 | detector = std::make_unique<FaceDetector>(frame); |
| 58 | break; |
| 59 | |
| 60 | case tracking::Pedestrian_HOG: |
| 61 | case tracking::Pedestrian_C4: |
| 62 | detector = std::make_unique<PedestrianDetector>(frame); |
| 63 | break; |
| 64 | |
| 65 | #ifdef USE_OCV_DNN |
| 66 | case tracking::DNN_OCV: |
| 67 | detector = std::make_unique<OCVDNNDetector>(frame); |
| 68 | break; |
| 69 | #endif |
| 70 | |
| 71 | case tracking::Yolo_Darknet: |
| 72 | #ifdef BUILD_YOLO_LIB |
| 73 | detector = std::make_unique<YoloDarknetDetector>(frame); |
| 74 | #else |
| 75 | std::cerr << "Darknet inference engine was not configured in CMake" << std::endl; |
| 76 | #endif |
| 77 | break; |