#pragma once

#include <maps/wikimap/mapspro/services/mrc/libs/common/include/keypoints.h>

#include <maps/wikimap/mapspro/libs/tf_inferencer/tf_inferencer.h>

#include <maps/libs/common/include/exception.h>

#include <opencv2/opencv.hpp>

namespace maps::mrc::superpoint {

class SuperpointDetector {
public:
    SuperpointDetector();

    common::Keypoints detect(const cv::Mat &image) const;

    std::vector<common::Keypoints> detect(const wiki::tf_inferencer::ImagesBatch &imagesBatch) const;
private:
    wiki::tf_inferencer::TensorFlowInferencer inferencer_;
};

} // maps::mrc::superpoint
