#include "vehicle_detector.h" namespace trt_vehicle { VehicleDetector::VehicleDetector(const std::string& vehicleModelPath, float vehicleScoreThres, float vehicleIouThres) { vehicleModel = new DetectModel(vehicleModelPath, vehicleScoreThres, vehicleIouThres); } VehicleDetector::~VehicleDetector() { if (vehicleModel) { delete vehicleModel; } } void VehicleDetector::detect(std::vector& img_datas, std::vector>& vehicles) { vehicles.clear(); // batch size == 1 for vehicle det model // scan 1 by 1 for (int i = 0; i < img_datas.size(); i++) { std::vector> outBoxes; vehicleModel->predictPadding({img_datas[i]}, outBoxes, 128); auto& outBox = outBoxes[0]; std::vector vehicle_list; if (outBox.size() == 0) { vehicles.push_back(vehicle_list); continue; } for (auto box: outBox) { // attach vehicle label field box.label = vehicle_labels[box.class_]; vehicle_list.push_back(box); } vehicles.push_back(vehicle_list); } } }