#include "track_link.h" #include "objects_update.h" #include "objects_tracker.h" #define MAX_OUTPUT 100 object_T object_input[MAX_OUTPUT]; object_T object_output[MAX_OUTPUT]; long create_tracker() { OdtDetector *object = new OdtDetector(); return (long)object; } void destroy_tracker(long handle) { delete((OdtDetector*)handle); } void track(long handle, int maxTrackLifetime, int track_input_num, float * c_track_input_locations, int * c_track_input_class, float * c_track_input_score, int * c_track_output_num, float * c_track_output_locations, int * c_track_output_class, float * c_track_output_score, int * c_track_output_id, int width, int height){ OdtDetector *object = (OdtDetector*)handle; for (int i = 0; i < track_input_num; i++) { object_input[i].r.x = (int)c_track_input_locations[i*4 +0]; object_input[i].r.y = (int)c_track_input_locations[i*4 +1]; object_input[i].r.width = (int)(c_track_input_locations[i*4 +2] -c_track_input_locations[i*4 +0]); object_input[i].r.height = (int)(c_track_input_locations[i*4 +3] -c_track_input_locations[i*4 +1]); object_input[i].score = c_track_input_score[i]; object_input[i].obj_class = c_track_input_class[i]; //LOGI("%d input P: %f\n", i, object_input[i].score); } object->update(maxTrackLifetime, track_input_num, object_input, c_track_output_num, object_output, width, height); for (int i = 0; i < *c_track_output_num; i++) { c_track_output_locations[i*4 +0] = (float)object_output[i].r.x; c_track_output_locations[i*4 +1] = (float)object_output[i].r.y; c_track_output_locations[i*4 +2] = (float)(object_output[i].r.x +object_output[i].r.width); c_track_output_locations[i*4 +3] = (float)(object_output[i].r.y +object_output[i].r.height); c_track_output_class[i] = object_output[i].obj_class; c_track_output_score[i] = object_output[i].score; // LOGI("output P: %f\n", c_track_output_score[i]); c_track_output_id[i] = object_output[i].id; } //LOGI("handle=%ld tracker input_num=%d output_num=%d maxTrackLifetime=%d width=%d height=%d\n", // handle, track_input_num, *c_track_output_num, maxTrackLifetime, width, height); }