Tino Hager
2018-07-10 c021841a52a7b71224b755bfbf779b05012b59d5
src/yolo_v2_class.cpp
@@ -22,24 +22,18 @@
#define FRAMES 3
static Detector* detector;
//static std::unique_ptr<Detector> detector;
//static Detector* detector = NULL;
static std::unique_ptr<Detector> detector;
int init(const char *configurationFilename, const char *weightsFilename, int gpu) {
    std::string configurationFilenameString;
    configurationFilenameString = configurationFilename;
    std::string weightsFilenameString;
    weightsFilenameString = weightsFilename;
    detector = new Detector(configurationFilenameString, weightsFilenameString, gpu);
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::string filenameString;
    filenameString = filename;
    std::vector<bbox_t> detection = detector->detect(filenameString);
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();
@@ -60,11 +54,34 @@
}
int dispose() {
    detector->~Detector();
    //detector.reset();
   //if (detector != NULL) delete detector;
   //detector = NULL;
    detector.reset();
    return 1;
}
int get_device_count() {
#ifdef GPU
    int count = 0;
    cudaGetDeviceCount(&count);
    return count;
#else
    return -1;
#endif   // GPU
}
int get_device_name(int gpu, char* deviceName) {
#ifdef GPU
    cudaDeviceProp prop;
    cudaGetDeviceProperties(&prop, gpu);
    std::string result = prop.name;
    std::copy(result.begin(), result.end(), deviceName);
    return 1;
#else
    return -1;
#endif   // GPU
}
#ifdef GPU
void check_cuda(cudaError_t status) {
   if (status != cudaSuccess) {