diff options
Diffstat (limited to 'mv_machine_learning/object_detection/include/MobilenetV2Ssd.h')
-rw-r--r-- | mv_machine_learning/object_detection/include/MobilenetV2Ssd.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/mv_machine_learning/object_detection/include/MobilenetV2Ssd.h b/mv_machine_learning/object_detection/include/MobilenetV2Ssd.h new file mode 100644 index 00000000..1f6f7891 --- /dev/null +++ b/mv_machine_learning/object_detection/include/MobilenetV2Ssd.h @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2023 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __MOBILENET_V2_SSD_H__ +#define __MOBILENET_V2_SSD_H__ + +#include <string> +#include <memory> +#include <mv_common.h> +#include "mv_private.h" + +#include "ObjectDetection.h" +#include <mv_inference_type.h> + +namespace mediavision +{ +namespace machine_learning +{ +template<typename T> class MobilenetV2Ssd : public ObjectDetection<T> +{ + using ObjectDetection<T>::_config; + using ObjectDetection<T>::_preprocess; + using ObjectDetection<T>::_labels; + +private: + ObjectDetectionResult _result; + + void ApplyNms(std::vector<std::vector<Box> > &box_lists, BoxNmsMode mode, float threshold, + std::vector<Box> &box_vector); + Box decodeBox(const DecodingBox *decodingBox, std::vector<float> &bb_tensor, int idx, float score, int label, + int box_offset); + Box decodeBoxWithAnchor(const BoxAnchorParam *boxAnchorParam, Box &box, cv::Rect2f &anchor); + +public: + MobilenetV2Ssd(ObjectDetectionTaskType task_type, std::shared_ptr<Config> config); + ~MobilenetV2Ssd(); + + ObjectDetectionResult &result() override; +}; + +} // machine_learning +} // mediavision + +#endif
\ No newline at end of file |