Как отслеживать объект с помощью dlib(c++) из видеопотока, переданного из даркнета(c)?

Я использую даркнет для обнаружения объектов из живого видеопотока и хочу передать каждый кадр в dlib для отслеживания этого объекта, но я не понимаю, как я передаю кадры из даркнета demo.c в dlib и выполните отслеживание. Нужно ли использовать коннектор c C++? если да, то как? любые объяснения или подсказки будут полезны. Спасибо...

Файл Dlib, в который я хочу передать изображение ipl и отследить объект.

#include <dlib/image_processing.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_io.h>
#include <dlib/dir_nav.h>
#include "dlib/opencv.h"
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace dlib;
using namespace std;

extern "C"{

int enx = 203, int eny = 190, int enw = 98, int enh = 86;

void track(IplImage  * ipl, int enx, int eny, int enw, int enh)
{
    Mat frame = cvarrToMat(ipl);
    image_window win;
    correlation_tracker tracker;
    array2d<rgb_pixel> img;

    std::cout << "Starting" << std::endl;
    assign_image(img, cv_image<bgr_pixel>(frame));
    tracker.start_track(img, centered_rect(point(enx, eny), enw, enh));

    win.set_image(img); 
    win.clear_overlay(); 
    win.add_overlay(tracker.get_position());

    while(ipl) {
        Mat frame = cvarrToMat(ipl);
        assign_image(img, cv_image<bgr_pixel>(frame));
        tracker.update(img);
        win.set_image(img); 
        win.clear_overlay(); 
        win.add_overlay(tracker.get_position());
    }    
}
}

person Jay Singh    schedule 28.03.2018    source источник
comment
Используйте любой из портированных даркнетов на С++   -  person aram    schedule 28.03.2018
comment
я не могу использовать портированный даркнет   -  person Jay Singh    schedule 29.03.2018
comment
Тогда вам придется портировать его самостоятельно. Или используйте детектор объектов dnn dlib.   -  person aram    schedule 29.03.2018


Ответы (1)


Я бы порекомендовал вам взглянуть на https://github.com/AlexeyAB/darknet/blob/master/src/yolo_console_dll.cpp, где вы найдете много идей о манипулировании данными даркнета. В том числе трекер

person szhernovoy    schedule 29.03.2018
comment
спасибо за ответ @szhernovoy, это действительно полезно. - person Jay Singh; 30.03.2018