import sys #sys.path.extend(['..','../AIlib2' ]) from ocrTrt import toONNX,ONNXtoTrt from collections import OrderedDict import torch import argparse from load_obb_model import load_model_decoder_OBB def getModel(opt): ###倾斜框(OBB)的ship目标检测 par={ 'model_size':(608,608), #width,height 'K':100, #Maximum of objects' 'conf_thresh':0.18,##Confidence threshold, 0.1 for general evaluation 'device':"cuda:0", 'down_ratio':4,'num_classes':15, 'weights':opt.weights, 'dataset':'dota', 'test_dir': 'images/ship/', 'result_dir': 'images/results', 'half': False, 'mean':(0.5, 0.5, 0.5), 'std':(1, 1, 1), 'category':['0','1','2','3','4','5','6','7','8','9','10','11','12','13','boat'], 'model_size':(608,608),##width,height 'decoder':None, 'test_flag':True, 'heads': {'hm': None,'wh': 10,'reg': 2,'cls_theta': 1}, } ####加载模型 model,decoder2=load_model_decoder_OBB(par) par['decoder']=decoder2 model = model.to(par['device']) return model if __name__=='__main__': parser = argparse.ArgumentParser() parser.add_argument('--weights', type=str, default='/mnt/thsw2/DSP2/weights/ship2/obb_608X608.pth', help='model path(s)') parser.add_argument('--mWidth', type=int, default=608, help='segmodel mWdith') parser.add_argument('--mHeight', type=int, default=608, help='segmodel mHeight') opt = parser.parse_args() pthmodel = getModel(opt) ###转换TRT模型 onnxFile=opt.weights.replace('.pth','.onnx') trtFile=opt.weights.replace('.pth','.engine') print('#'*20, ' begin to toONNX') toONNX(pthmodel,onnxFile,inputShape=(1,3,opt.mHeight, opt.mWidth),device='cuda:0') print('#'*20, ' begin to TRT') ONNXtoTrt(onnxFile,trtFile,half=False)