You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mindspore/tests/ut/cpp/dataset/common/bboxop_common.h

75 lines
2.7 KiB

/**
* Copyright 2020 Huawei Technologies Co., Ltd
*
* 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 TESTS_DATASET_UT_CORE_COMMON_DE_UT_BBOXOP_COMMON_H_
#define TESTS_DATASET_UT_CORE_COMMON_DE_UT_BBOXOP_COMMON_H_
#include "cvop_common.h"
#include "minddata/dataset/util/path.h"
namespace UT {
namespace CVOP {
namespace BBOXOP {
class BBoxOpCommon : public CVOpCommon {
public:
enum FileType {
kExpected,
kActual
};
BBoxOpCommon();
~BBoxOpCommon();
/// \brief Sets up the class's variable, images_and_annotations
void SetUp() override;
/// \brief Get all images and annotations in images_and_annotations TensorTable from dir
/// \param[in] dir directory containing images and annotation folders
/// \param[in] num_of_samples number of rows to fetch (default = 1)
void GetInputImagesAndAnnotations(const std::string &dir, std::size_t num_of_samples = 1);
/// \brief Save the given tensor table
/// \param[in] type type of images to be stored (e.g. Expected or Actual)
/// \param[in] op_name name of op being tested
/// \param[in] table rows of images and corresponding annotations
void SaveImagesWithAnnotations(FileType type, const std::string &op_name, const TensorTable &table);
/// \brief Compare actual and expected results. The images will have the bounding boxes on them
/// Log if images don't match
/// \param[in] op_name name of op being tested
void CompareActualAndExpected(const std::string &op_name);
/// \brief Load BBox data from an XML file into a Tensor
/// \param[in] path path to XML bbox data file
/// \param[inout] target_BBox pointer to a Tensor to load
/// \return True if file loaded successfully, false if error -> logged to STD out
bool LoadAnnotationFile(const std::string &path, std::shared_ptr<Tensor> *target_BBox);
TensorTable images_and_annotations_;
private:
// directory of image_folder when the dataset/data gets transferred to build
std::string image_folder_build_;
// directory of image_folder in the source project (used to store expected results)
std::string image_folder_src_;
};
} // namespace BBOXOP
} // namespace CVOP
} // namespace UT
#endif // TESTS_DATASET_UT_CORE_COMMON_DE_UT_BBOXOP_COMMON_H_