VehicleRecognition.cpp 1.38 KB
#include "VehicleRecognition.h"
#include <iostream>
#include "sy_errorinfo.h"

#include "depend_inc.h"

using namespace std;


VehicleRecognition::VehicleRecognition(/* args */)
{
}

VehicleRecognition::~VehicleRecognition()
{
	LOG_INFO("~VehicleRecognition");
}

int VehicleRecognition::init(char*dbpath, int gpuid, char* auth_license)
{
	vr_param params;
	params.gpuid = 0;
	params.mode = DEVICE_GPU;
	params.engine = ENGINE_TENSORRT;
	params.max_batch = 20;
	params.vehicle_brand_serialize_file = "./serialize_file/VEHICLE_BRAND";
	params.vr5905cls_serialize_file = "./serialize_file/VR5905CLS";
	params.vehicle_type_serialize_file = "./serialize_file/VEHICLE_TYPE";
	params.auth_license = "sy_va_sub_sdk_2023";

    int ret = vr_init(&handle, params);
    if (ret != 0) {
		LOG_ERROR("vr_init failed!");
        return FAILED;
    }

	LOG_INFO("vr_init success! gpu_id: {}", gpuid);
	return SUCCESS;
}

int VehicleRecognition::process(sy_img * batch_img, int batchsize, vehicle_recog_result *&vrresult)
{
	for (int i = 0; i < batchsize; i++) {
		if (batch_img[i].data_ == NULL) {
			LOG_ERROR("data null ");
			return FAILED;
		}
	}
	
	vr_batch(handle, batch_img, batchsize, vrresult);

	return SUCCESS;
}

int VehicleRecognition::release()
{
	if (handle) {
		vr_release(&handle);
		handle = nullptr;
	}

	LOG_INFO("release");
	return SUCCESS;
}