mmdeploy icon indicating copy to clipboard operation
mmdeploy copied to clipboard

Can I use ONNX+tensorRT to deploy the mmocr with the net robust-scanner?

Open Nuralill opened this issue 1 year ago • 3 comments

I dont know whether mmdeploy support the mmocr recognition robust ? I tried use the command: python ./tools/deploy.py configs/mmocr/text-recognition/text-recognition_tensorrt-fp16_dynamic-1x32x32-1x32x640.py ../mmocr-main/configs/textrecog/robust_scanner/mytest.py ../mmocr-main/workplace/recog/robust/0915/add1/epoch_1.pth ./demo/1.jpg --work-dir ../mmdeploy_out/mmocr/reg/robust/ --device cuda:0 --dump-info With ERROR: File "D:\Users\hid\anaconda3\envs\mmdet\lib\site-packages\torch\nn\modules\module.py", line 1090, in _slow_forward result = self.forward(*input, **kwargs) File "e:\pycharmprojects\mmdeploy-master\mmdeploy\core\rewriters\rewriter_utils.py", line 379, in wrapper return self.func(self, *args, **kwargs) File "e:\pycharmprojects\mmdeploy-master\mmdeploy\codebase\mmocr\models\text_recognition\base.py", line 53, in base_recognizer__forward return self.simple_test(img, img_metas, **kwargs) File "e:\pycharmprojects\mmdeploy-master\mmdeploy\core\rewriters\rewriter_utils.py", line 379, in wrapper return self.func(self, *args, **kwargs) File "e:\pycharmprojects\mmdeploy-master\mmdeploy\codebase\mmocr\models\text_recognition\encode_decode_recognizer.py", line 36, in encode_decode_recognizer__simple_test out_dec = self.decoder(feat, out_enc, None, img_metas, train_mode=False) File "D:\Users\hid\anaconda3\envs\mmdet\lib\site-packages\torch\nn\modules\module.py", line 1102, in _call_impl return forward_call(*input, **kwargs) File "D:\Users\hid\anaconda3\envs\mmdet\lib\site-packages\torch\nn\modules\module.py", line 1090, in _slow_forward result = self.forward(*input, **kwargs) File "e:\pycharmprojects\mmocr-main\mmocr\models\textrecog\decoders\base_decoder.py", line 30, in forward return self.forward_test(feat, out_enc, img_metas) File "e:\pycharmprojects\mmocr-main\mmocr\models\textrecog\decoders\robust_scanner_decoder.py", line 141, in forward_test feat, out_enc, img_metas) File "e:\pycharmprojects\mmocr-main\mmocr\models\textrecog\decoders\position_attention_decoder.py", line 167, in forward_test position_index = self._get_position_index(seq_len, n, feat.device) File "e:\pycharmprojects\mmocr-main\mmocr\models\textrecog\decoders\position_attention_decoder.py", line 77, in _get_position_index position_index = position_index.repeat([batch_size, 1]) File "e:\pycharmprojects\mmdeploy-master\mmdeploy\core\rewriters\rewriter_utils.py", line 379, in wrapper return self.func(self, *args, **kwargs) File "e:\pycharmprojects\mmdeploy-master\mmdeploy\pytorch\functions\repeat.py", line 21, in tensor__repeat__tensorrt return origin_func(input.unsqueeze(0), *([1] + list(size))).squeeze(0) **TypeError: repeat(): argument 'repeats' must be tuple of ints, but found element of type list at pos 2** 2022-09-16 11:23:41,710 - mmdeploy - ERROR -mmdeploy.apis.pytorch2onnx.torch2onnxwith Call id: 0 failed. exit.

I also download the latest vertion,but it seems also could't use. I tried mmdet,It shows: TypeError: export2SDK() got an unexpected keyword argument 'device'

command is below,and I am sure in old vertion (download at last month)this could be run successful : python tools/deploy.py configs/mmdet/detection/detection_tensorrt_dynamic-320x320-1344x1344.py ../mmdetection-master/configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py ../mmdetection-master/work_dirs/mask_rcnn_r50_fpn_1x_coco/latest.pth ../mmdetection-master/demo/1.jpg --work-dir ../mmdeploy_out/mmdet/mask_rcnn_r50_fpn_1x_coco--mytest/ --device cuda:0 --dump-info please help me!

Nuralill avatar Sep 16 '22 03:09 Nuralill

Did you install MMDeploy from source or not? As for robust, it is not in the supported list of MMDeploy yet. But you can refer to how to support new models and try it again.

AllentDan avatar Sep 16 '22 03:09 AllentDan

I download the latest zip from github. I also tried turn satrn ,with following command: python ./tools/deploy.py configs/mmocr/text-recognition/text-recognition_tensorrt_dynamic-1x32x32-1x32x640.py ../mmocr-main/configs/textrecog/satrn/satrn_small.py ../mmocr-main/workplace/recog/satrn/0914/best_0_char_precision_epoch_2.pth ./demo/1.jpg --work-dir ../mmdeploy_out/mmocr/reg/ --device cuda:0 --dump-info But also failed. [09/16/2022-16:50:18] [TRT] [E] 4: [network.cpp::nvinfer1::Network::validate::3008] Error Code 4: Internal Error (input: for dimension number 1 in profile 0 does not match network definit ion (got min=1, opt=1, max=1), expected min=opt=max=3).) Process Process-3: Traceback (most recent call last): File "D:\Users\hid\anaconda3\envs\mmdet\lib\multiprocessing\process.py", line 297, in _bootstrap self.run() File "D:\Users\hid\anaconda3\envs\mmdet\lib\multiprocessing\process.py", line 99, in run self._target(*self._args, **self._kwargs) File "e:\pycharmprojects\mmdeploy-master\mmdeploy\apis\core\pipeline_manager.py", line 107, in __call__ ret = func(*args, **kwargs) File "e:\pycharmprojects\mmdeploy-master\mmdeploy\backend\tensorrt\onnx2tensorrt.py", line 88, in onnx2tensorrt device_id=device_id) File "e:\pycharmprojects\mmdeploy-master\mmdeploy\backend\tensorrt\utils.py", line 153, in from_onnx assert engine is not None, 'Failed to create TensorRT engine' AssertionError: Failed to create TensorRT engine 2022-09-16 16:50:19,334 - mmdeploy - ERROR - mmdeploy.backend.tensorrt.onnx2tensorrt.onnx2tensorrtwith Call id: 1 failed. exit.

Nuralill avatar Sep 16 '22 09:09 Nuralill

SATRN accepts inputs of 3 channels. Please use text-recognition_tensorrt_dynamic-32x32-32x640.py instead.

AllentDan avatar Sep 16 '22 09:09 AllentDan