Alexey
2018-06-27 b847f39f60eb6715325f3707e78667a0611811dd
src/yolo_v2_class.cpp
@@ -22,6 +22,46 @@
#define FRAMES 3
int max_objects() { return C_SHARP_MAX_OBJECTS; }
//static Detector* detector = NULL;
static std::unique_ptr<Detector> detector;
int init(const char *configurationFilename, const char *weightsFilename, int gpu)
{
    detector.reset(new Detector(configurationFilename, weightsFilename, gpu));
    return 1;
}
int detect_image(const char *filename, bbox_t_container &container)
{
    std::vector<bbox_t> detection = detector->detect(filename);
    for (size_t i = 0; i < detection.size() && i < C_SHARP_MAX_OBJECTS; ++i)
        container.candidates[i] = detection[i];
    return detection.size();
}
int detect_mat(const uint8_t* data, const size_t data_length, bbox_t_container &container) {
#ifdef OPENCV
    std::vector<char> vdata(data, data + data_length);
    cv::Mat image = imdecode(cv::Mat(vdata), 1);
    std::vector<bbox_t> detection = detector->detect(image);
    for (size_t i = 0; i < detection.size() && i < C_SHARP_MAX_OBJECTS; ++i)
        container.candidates[i] = detection[i];
    return detection.size();
#else
    return -1;
#endif   // OPENCV
}
int dispose() {
   //if (detector != NULL) delete detector;
   //detector = NULL;
    detector.reset();
    return 1;
}
#ifdef GPU
void check_cuda(cudaError_t status) {
   if (status != cudaSuccess) {