xingyizhou / CenterTrack

Simultaneous object detection and tracking using center points.
MIT License
2.37k stars 524 forks source link

cannot convert to onnx #3

Open rlrahulkanojia opened 4 years ago

rlrahulkanojia commented 4 years ago

Use scipy.optimize.linear_sum_assignment instead. FutureWarning) Running tracking Using tracking threshold for out threshold! 0.3 Fix size testing. training chunk_sizes: [32] input h w: 512 512 heads {'hm': 80, 'reg': 2, 'wh': 2, 'tracking': 2} weights {'hm': 1, 'reg': 1, 'wh': 0.1, 'tracking': 1} head conv {'hm': [256], 'reg': [256], 'wh': [256], 'tracking': [256]} Namespace(K=100, add_05=False, amodel_offset_weight=1, arch='dla_34', aug_rot=0, backbone='dla34', batch_size=32, chunk_sizes=[32], data_dir='/home/unreal/rahul/Documents/pose_py/CenterTrack/src/lib/../../data', dataset='coco', dataset_version='', debug=0, debug_dir='/home/unreal/rahul/Documents/pose_py/CenterTrack/src/lib/../../exp/tracking/default/debug', debugger_theme='white', demo='', dense_reg=1, dep_weight=1, depth_scale=1, device=device(type='cuda'), dim_weight=1, dla_node='dcn', down_ratio=4, efficient_level=0, eval_val=False, exp_dir='/home/unreal/rahul/Documents/pose_py/CenterTrack/src/lib/../../exp/tracking', exp_id='default', fix_res=True, fix_short=-1, flip=0.5, flip_test=False, fp_disturb=0, gpus=[0], gpus_str='0', head_conv={'hm': [256], 'reg': [256], 'wh': [256], 'tracking': [256]}, head_kernel=3, heads={'hm': 80, 'reg': 2, 'wh': 2, 'tracking': 2}, hm_disturb=0, hm_hp_weight=1, hm_weight=1, hp_weight=1, hungarian=False, ignore_loaded_cats=[], input_h=512, input_res=512, input_w=512, keep_res=False, kitti_split='3dop', load_model='', load_results='', lost_disturb=0, lr=0.000125, lr_step=[60], ltrb=False, ltrb_amodal=False, ltrb_amodal_weight=0.1, ltrb_weight=0.1, map_argoverse_id=False, master_batch_size=32, max_age=-1, max_frame_dist=3, model_output_list=True, msra_outchannel=256, neck='dlaup', new_thresh=0.3, nms=False, no_color_aug=False, no_pause=False, no_pre_img=False, non_block_test=False, not_cuda_benchmark=False, not_idaup=False, not_prefetch_test=False, not_rand_crop=False, not_set_cuda_env=False, not_show_bbox=False, not_show_number=False, num_classes=80, num_epochs=70, num_head_conv=1, num_iters=-1, num_layers=101, num_stacks=1, num_workers=4, nuscenes_att=False, nuscenes_att_weight=1, off_weight=1, optim='adam', out_thresh=0.3, output_h=128, output_res=128, output_w=128, pad=31, pre_hm=False, pre_img=True, pre_thresh=0.3, print_iter=0, prior_bias=-4.6, public_det=False, qualitative=False, reg_loss='l1', reset_hm=False, resize_video=False, resume=False, reuse_hm=False, root_dir='/home/unreal/rahul/Documents/pose_py/CenterTrack/src/lib/../..', rot_weight=1, rotate=0, same_aug_pre=False, save_all=False, save_dir='/home/unreal/rahul/Documents/pose_py/CenterTrack/src/lib/../../exp/tracking/default', save_framerate=30, save_img_suffix='', save_imgs=[], save_point=[90], save_results=False, save_video=False, scale=0, seed=317, shift=0, show_track_color=False, skip_first=-1, tango_color=False, task='tracking', test=False, test_dataset='coco', test_scales=[1.0], track_thresh=0.3, tracking=True, tracking_weight=1, trainval=False, transpose_video=False, use_kpt_center=False, use_loaded_results=False, val_intervals=10000, velocity=False, velocity_weight=1, video_h=512, video_w=512, vis_gt_bev='', vis_thresh=0.3, weights={'hm': 1, 'reg': 1, 'wh': 0.1, 'tracking': 1}, wh_weight=0.1, zero_pre_hm=False, zero_tracking=False) Using node type: (<class 'model.networks.dla.DeformConv'>, <class 'model.networks.dla.DeformConv'>) /home/unreal/rahul/Documents/pose_py/CenterTrack/src/lib/model/networks/DCNv2/dcn_v2.py:31: TracerWarning: Converting a tensor to a Python integer might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs! ctx.deformable_groups) Traceback (most recent call last): File "convert_onnx.py", line 65, in convert_onnx(opt) File "convert_onnx.py", line 43, in convert_onnx torch.onnx.export(model.module, dummy_input1, "model.onnx") File "/home/unreal/anaconda3/envs/CenterTrack/lib/python3.6/site-packages/torch/onnx/init.py", line 148, in export strip_doc_string, dynamic_axes, keep_initializers_as_inputs) File "/home/unreal/anaconda3/envs/CenterTrack/lib/python3.6/site-packages/torch/onnx/utils.py", line 66, in export dynamic_axes=dynamic_axes, keep_initializers_as_inputs=keep_initializers_as_inputs) File "/home/unreal/anaconda3/envs/CenterTrack/lib/python3.6/site-packages/torch/onnx/utils.py", line 428, in _export operator_export_type, strip_doc_string, val_keep_init_as_ip) RuntimeError: ONNX export failed: Couldn't export Python operator _DCNv2

xingyizhou commented 4 years ago

Unfortunately, we don't support exporting models with deformable layers (i.e., all models from the model zoo) to ONNX yet. To use CenterTrack in ONNX, you will need to train models without DCN yourself (e.g., --arch dlav0_34 or --arch generic --backbone mobilenet --neck dlaup --dla_node conv. Check the source code in src/lib/model/ for details). Support/documentation for more backbones will be supported in (far) future versions.

rlrahulkanojia commented 4 years ago

Thanks.

bhack commented 4 years ago

@rlrahulkanojia upvote and track https://github.com/onnx/onnx/issues/2665

xingyizhou commented 4 years ago

Also here is a third-party resource about CenterNet-ONNX with DCN. However I haven't got time to check.

hopef commented 4 years ago

Here is my re-implement CenterTrack and CenterNet-ONNX with DCN