From e08c0c7f090d0238ed58ad3f09a3db2bdfbc87d8 Mon Sep 17 00:00:00 2001 From: Ivan Mukhin <92549376+ismukhin@users.noreply.github.com> Date: Sun, 8 Oct 2023 19:30:36 +0300 Subject: [PATCH] [MXNet] detection and semantic segmentation (#402) --- results/mxnet_models_checklist.md | 200 +++++++++--------- ...resnet101_citys_out_segmentation_async.bmp | Bin 0 -> 786486 bytes ..._resnet101_citys_out_segmentation_sync.bmp | Bin 0 -> 786486 bytes ..._resnet50_citys_out_segmentation_async.bmp | Bin 0 -> 786486 bytes ...t_resnet50_citys_out_segmentation_sync.bmp | Bin 0 -> 786486 bytes ..._resnet101_coco_out_segmentation_async.bmp | Bin 0 -> 1228854 bytes ...n_resnet101_coco_out_segmentation_sync.bmp | Bin 0 -> 1228854 bytes ...t_fcn_resnet101_voc_segmentation_async.bmp | Bin 0 -> 786486 bytes ...ut_fcn_resnet101_voc_segmentation_sync.bmp | Bin 0 -> 786486 bytes ...validation_results_mxnet_gluon_modelzoo.md | 141 ++++++++++++ src/inference/inference_mxnet_async_mode.py | 99 ++------- src/inference/inference_mxnet_sync_mode.py | 99 ++------- src/inference/io_model_wrapper.py | 4 + src/inference/mxnet_auxiliary.py | 107 ++++++++++ 14 files changed, 388 insertions(+), 262 deletions(-) create mode 100644 results/validation/semantic_segmentation/MXNet/danet_resnet101_citys_out_segmentation_async.bmp create mode 100644 results/validation/semantic_segmentation/MXNet/danet_resnet101_citys_out_segmentation_sync.bmp create mode 100644 results/validation/semantic_segmentation/MXNet/danet_resnet50_citys_out_segmentation_async.bmp create mode 100644 results/validation/semantic_segmentation/MXNet/danet_resnet50_citys_out_segmentation_sync.bmp create mode 100644 results/validation/semantic_segmentation/MXNet/fcn_resnet101_coco_out_segmentation_async.bmp create mode 100644 results/validation/semantic_segmentation/MXNet/fcn_resnet101_coco_out_segmentation_sync.bmp create mode 100644 results/validation/semantic_segmentation/MXNet/out_fcn_resnet101_voc_segmentation_async.bmp create mode 100644 results/validation/semantic_segmentation/MXNet/out_fcn_resnet101_voc_segmentation_sync.bmp create mode 100644 src/inference/mxnet_auxiliary.py diff --git a/results/mxnet_models_checklist.md b/results/mxnet_models_checklist.md index 65df33944..27685c95b 100644 --- a/results/mxnet_models_checklist.md +++ b/results/mxnet_models_checklist.md @@ -111,124 +111,124 @@ xception|+|+| Model | Availability in OMZ (2023.02.24)| Availability in the validation table | -|-|-| -custom_faster_rcnn_fpn|+|-| -center_net_dla34_coco|+|-| -center_net_dla34_dcnv2_coco|+|-| -center_net_dla34_dcnv2_voc|+|-| -center_net_dla34_voc|+|-| -center_net_mobilenetv3_large_duc_coco|+|-| -center_net_mobilenetv3_large_duc_voc|+|-| -center_net_mobilenetv3_small_duc_coco|+|-| -center_net_mobilenetv3_small_duc_voc|+|-| -center_net_resnet101_v1b_coco|+|-| -center_net_resnet101_v1b_dcnv2_coco|+|-| -center_net_resnet101_v1b_dcnv2_voc|+|-| -center_net_resnet101_v1b_voc|+|-| -center_net_resnet18_v1b_coco|+|-| -center_net_resnet18_v1b_dcnv2_coco|+|-| -center_net_resnet18_v1b_dcnv2_voc|+|-| -center_net_resnet18_v1b_voc|+|-| -center_net_resnet50_v1b_coco|+|-| -center_net_resnet50_v1b_dcnv2_coco|+|-| -center_net_resnet50_v1b_dcnv2_voc|+|-| -center_net_resnet50_v1b_voc|+|-| -doublehead_rcnn_resnet50_v1b_voc|+|-| +custom_faster_rcnn_fpn|+|TypeError: custom_faster_rcnn_fpn() missing 1 required positional argument: 'classes'| +center_net_dla34_coco|+|Pretrained model for center_net_dla34_coco is not available.| +center_net_dla34_dcnv2_coco|+|Pretrained model for center_net_dla34_dcnv2_coco is not available.| +center_net_dla34_dcnv2_voc|+|Pretrained model for center_net_dla34_dcnv2_voc is not available.| +center_net_dla34_voc|+|Pretrained model for center_net_dla34_voc is not available.| +center_net_mobilenetv3_large_duc_coco|+|+| +center_net_mobilenetv3_large_duc_voc|+|+| +center_net_mobilenetv3_small_duc_coco|+|+| +center_net_mobilenetv3_small_duc_voc|+|+| +center_net_resnet101_v1b_coco|+|+| +center_net_resnet101_v1b_dcnv2_coco|+|+| +center_net_resnet101_v1b_dcnv2_voc|+|+| +center_net_resnet101_v1b_voc|+|+| +center_net_resnet18_v1b_coco|+|+| +center_net_resnet18_v1b_dcnv2_coco|+|+| +center_net_resnet18_v1b_dcnv2_voc|+|+| +center_net_resnet18_v1b_voc|+|+| +center_net_resnet50_v1b_coco|+|+| +center_net_resnet50_v1b_dcnv2_coco|+|+| +center_net_resnet50_v1b_dcnv2_voc|+|+| +center_net_resnet50_v1b_voc|+|+| +doublehead_rcnn_resnet50_v1b_voc|+|RuntimeError: Parameter 'doubleheadrcnn0_double_fc_dense0_weight' has not been initialized.| dla34|+|-| -faster_rcnn_fpn_resnet101_v1d_coco|+|-| -faster_rcnn_fpn_resnet50_v1b_coco|+|-| -faster_rcnn_fpn_syncbn_resnest101_coco|+|-| -faster_rcnn_fpn_syncbn_resnest269_coco|+|-| -faster_rcnn_fpn_syncbn_resnest50_coco|+|-| -faster_rcnn_fpn_syncbn_resnet101_v1d_coco|+|-| -faster_rcnn_fpn_syncbn_resnet50_v1b_coco|+|-| -faster_rcnn_resnet101_v1d_coco|+|-| -faster_rcnn_resnet101_v1d_custom|+|-| -faster_rcnn_resnet101_v1d_voc|+|-| -faster_rcnn_resnet50_v1b_coco|+|-| -faster_rcnn_resnet50_v1b_custom|+|-| -faster_rcnn_resnet50_v1b_voc|+|-| -ssd_300_mobilenet0.25_coco|+|-| -ssd_300_mobilenet0.25_custom|+|-| -ssd_300_mobilenet0.25_voc|+|-| -ssd_300_mobilenet1.0_lite_coco|+|-| -ssd_300_resnet34_v1b_coco|+|-| -ssd_300_resnet34_v1b_custom|+|-| -ssd_300_resnet34_v1b_voc|+|-| -ssd_300_vgg16_atrous_coco|+|-| -ssd_300_vgg16_atrous_custom|+|-| -ssd_300_vgg16_atrous_voc|+|-| +faster_rcnn_fpn_resnet101_v1d_coco|+|+| +faster_rcnn_fpn_resnet50_v1b_coco|+|+| +faster_rcnn_fpn_syncbn_resnest101_coco|+|+| +faster_rcnn_fpn_syncbn_resnest269_coco|+|+| +faster_rcnn_fpn_syncbn_resnest50_coco|+|+| +faster_rcnn_fpn_syncbn_resnet101_v1d_coco|+|Pretrained model for faster_rcnn_fpn_syncbn_resnet101_v1d_coco is not available.| +faster_rcnn_fpn_syncbn_resnet50_v1b_coco|+|Pretrained model for faster_rcnn_fpn_syncbn_resnet50_v1b_coco is not available.| +faster_rcnn_resnet101_v1d_coco|+|+| +faster_rcnn_resnet101_v1d_custom|+|TypeError: faster_rcnn_resnet101_v1d_custom() missing 1 required positional argument: 'classes'| +faster_rcnn_resnet101_v1d_voc|+|Pretrained model for faster_rcnn_resnet101_v1d_voc is not available.| +faster_rcnn_resnet50_v1b_coco|+|+| +faster_rcnn_resnet50_v1b_custom|+|TypeError: faster_rcnn_resnet50_v1b_custom() missing 1 required positional argument: 'classes'| +faster_rcnn_resnet50_v1b_voc|+|+| +ssd_300_mobilenet0.25_coco|+|Pretrained model for ssd_300_mobilenet0.25_coco is not available.| +ssd_300_mobilenet0.25_custom|+|TypeError: ssd_300_mobilenet0_25_custom() missing 1 required positional argument: 'classes'| +ssd_300_mobilenet0.25_voc|+|Pretrained model for ssd_300_mobilenet0.25_voc is not available.| +ssd_300_mobilenet1.0_lite_coco|+|Pretrained model for ssd_300_mobilenet1.0_coco is not available.| +ssd_300_resnet34_v1b_coco|+|+| +ssd_300_resnet34_v1b_custom|+|TypeError: ssd_300_resnet34_v1b_custom() missing 1 required positional argument: 'classes'| +ssd_300_resnet34_v1b_voc|+|Pretrained model for ssd_300_resnet34_v1b_voc is not available.| +ssd_300_vgg16_atrous_coco|+|+| +ssd_300_vgg16_atrous_custom|+|TypeError: ssd_300_vgg16_atrous_custom() missing 1 required positional argument: 'classes'| +ssd_300_vgg16_atrous_voc|+|+| ssd_300_vgg16_atrous_voc_int8|+|-| -ssd_512_mobilenet1.0_coco|+|-| -ssd_512_mobilenet1.0_custom|+|-| -ssd_512_mobilenet1.0_voc|+|-| +ssd_512_mobilenet1.0_coco|+|+| +ssd_512_mobilenet1.0_custom|+|TypeError: ssd_512_mobilenet1_0_custom() missing 1 required positional argument: 'classes'| +ssd_512_mobilenet1.0_voc|+|+| ssd_512_mobilenet1.0_voc_int8|+|-| -ssd_512_resnet101_v2_voc|+|-| -ssd_512_resnet152_v2_voc|+|-| -ssd_512_resnet18_v1_coco|+|-| -ssd_512_resnet18_v1_voc|+|-| -ssd_512_resnet50_v1_coco|+|-| -ssd_512_resnet50_v1_custom|+|-| -ssd_512_resnet50_v1_voc|+|-| +ssd_512_resnet101_v2_voc|+|+| +ssd_512_resnet152_v2_voc|+|Pretrained model for ssd_512_resnet152_v2_voc is not available.| +ssd_512_resnet18_v1_coco|+|Pretrained model for ssd_512_resnet18_v1_coco is not available.| +ssd_512_resnet18_v1_voc|+|Pretrained model for ssd_512_resnet18_v1_voc is not available.| +ssd_512_resnet50_v1_coco|+|+| +ssd_512_resnet50_v1_custom|+|TypeError: ssd_512_resnet50_v1_custom() missing 1 required positional argument: 'classes'| +ssd_512_resnet50_v1_voc|+|+| ssd_512_resnet50_v1_voc_int8|+|-| -ssd_512_vgg16_atrous_coco|+|-| -ssd_512_vgg16_atrous_custom|+|-| -ssd_512_vgg16_atrous_voc|+|-| +ssd_512_vgg16_atrous_coco|+|+| +ssd_512_vgg16_atrous_custom|+|TypeError: ssd_512_vgg16_atrous_custom() missing 1 required positional argument: 'classes'| +ssd_512_vgg16_atrous_voc|+|+| ssd_512_vgg16_atrous_voc_int8|+|-| -yolo3_darknet53_coco|+|-| -yolo3_darknet53_custom|+|-| -yolo3_darknet53_voc|+|-| -yolo3_mobilenet0.25_coco|+|-| -yolo3_mobilenet0.25_custom|+|-| -yolo3_mobilenet0.25_voc|+|-| -yolo3_mobilenet1.0_coco|+|-| -yolo3_mobilenet1.0_custom|+|-| -yolo3_mobilenet1.0_voc|+|-| +yolo3_darknet53_coco|+|+| +yolo3_darknet53_custom|+|TypeError: yolo3_darknet53_custom() missing 1 required positional argument: 'classes'| +yolo3_darknet53_voc|+|+| +yolo3_mobilenet0.25_coco|+|Pretrained model for yolo3_mobilenet0.25_coco is not available.| +yolo3_mobilenet0.25_custom|+|TypeError: yolo3_mobilenet0_25_custom() missing 1 required positional argument: 'classes'| +yolo3_mobilenet0.25_voc|+|Pretrained model for yolo3_mobilenet0.25_voc is not available.| +yolo3_mobilenet1.0_coco|+|+| +yolo3_mobilenet1.0_custom|+|TypeError: yolo3_mobilenet1_0_custom() missing 1 required positional argument: 'classes'| +yolo3_mobilenet1.0_voc|+|+| ### Semantic segmentation Model | Availability in OMZ (2023.02.24)| Availability in the validation table | -|-|-| -danet_resnet101_citys|+|-| -danet_resnet50_citys|+|-| -deeplab_resnest101_ade|+|-| -deeplab_resnest200_ade|+|-| -deeplab_resnest269_ade|+|-| -deeplab_resnest50_ade|+|-| -deeplab_resnet101_ade|+|-| -deeplab_resnet101_citys|+|-| -deeplab_resnet101_coco|+|-| +danet_resnet101_citys|+|+| +danet_resnet50_citys|+|+| +deeplab_resnest101_ade|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_resnest200_ade|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_resnest269_ade|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_resnest50_ade|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_resnet101_ade|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_resnet101_citys|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_resnet101_coco|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| deeplab_resnet101_coco_int8|+|-| -deeplab_resnet101_voc|+|-| +deeplab_resnet101_voc|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| deeplab_resnet101_voc_int8|+|-| -deeplab_resnet152_coco|+|-| -deeplab_resnet152_voc|+|-| -deeplab_resnet50_ade|+|-| -deeplab_resnet50_citys|+|-| -deeplab_v3b_plus_wideresnet_citys|+|-| -fastscnn_citys|+|-| +deeplab_resnet152_coco|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_resnet152_voc|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_resnet50_ade|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_resnet50_citys|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,256,60,60]| +deeplab_v3b_plus_wideresnet_citys|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,60,60], got [1,256,80,80]| +fastscnn_citys|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,16,16], got [1,32,32,32]| fcn_resnet101_ade|+|-| -fcn_resnet101_coco|+|-| +fcn_resnet101_coco|+|+| fcn_resnet101_coco_int8|+|-| -fcn_resnet101_voc|+|-| +fcn_resnet101_voc|+|+| fcn_resnet101_voc_int8|+|-| fcn_resnet50_ade|+|-| -fcn_resnet50_voc|+|-| -hrnet_w18_small_v1_s|+|-| -hrnet_w18_small_v2_s|+|-| -hrnet_w48_s|+|-| -icnet_resnet50_citys|+|-| -icnet_resnet50_mhpv1|+|-| -nasnet_4_1056|+|-| -nasnet_5_1538|+|-| -nasnet_6_4032|+|-| -nasnet_7_1920|+|-| -psp_resnet101_ade|+|-| -psp_resnet101_citys|+|-| -psp_resnet101_coco|+|-| +fcn_resnet50_voc|+|Pretrained model for fcn_resnet50_voc is not available.| +hrnet_w18_small_v1_s|+|Pretrained model for hrnet_w18_small_v1_seg is not available.| +hrnet_w18_small_v2_s|+|Pretrained model for hrnet_w18_small_v2_seg is not available.| +hrnet_w48_s|+|Pretrained model for hrnet_w48_seg is not available.| +icnet_resnet50_citys|+|MXNetError: Check failed: l == 1 || r == 1: operands could not be broadcast together with shapes [1,128,60,60] [1,128,64,64]| +icnet_resnet50_mhpv1|+|MXNetError: Check failed: l == 1 || r == 1: operands could not be broadcast together with shapes [1,128,60,60] [1,128,64,64]| +nasnet_4_1056|+|Pretrained model for nasnet_4_1056 is not available.| +nasnet_5_1538|+|Pretrained model for nasnet_5_1538 is not available.| +nasnet_6_4032|+|Pretrained model for nasnet_6_4032 is not available.| +nasnet_7_1920|+|Pretrained model for nasnet_7_1920 is not available.| +psp_resnet101_ade|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,512,60,60]| +psp_resnet101_citys|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,512,60,60]| +psp_resnet101_coco|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,512,60,60]| psp_resnet101_coco_int8|+|-| -psp_resnet101_voc|+|-| +psp_resnet101_voc|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,512,60,60]| psp_resnet101_voc_int8|+|-| -psp_resnet50_ade|+|-| +psp_resnet50_ade|+|MXNetError: Check failed: shape_assign(&(*in_shape)[i], dshape): Incompatible input shape: expected [1,-1,64,64], got [1,512,60,60]| ### Instance segmentation diff --git a/results/validation/semantic_segmentation/MXNet/danet_resnet101_citys_out_segmentation_async.bmp b/results/validation/semantic_segmentation/MXNet/danet_resnet101_citys_out_segmentation_async.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b3f40b87e981ec1f8432d6c5601b690bbd04677f GIT binary patch literal 786486 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 literal 0 HcmV?d00001 diff --git a/results/validation/semantic_segmentation/MXNet/danet_resnet101_citys_out_segmentation_sync.bmp b/results/validation/semantic_segmentation/MXNet/danet_resnet101_citys_out_segmentation_sync.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b3f40b87e981ec1f8432d6c5601b690bbd04677f GIT binary patch literal 786486 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 literal 0 HcmV?d00001 diff --git a/results/validation/semantic_segmentation/MXNet/danet_resnet50_citys_out_segmentation_async.bmp b/results/validation/semantic_segmentation/MXNet/danet_resnet50_citys_out_segmentation_async.bmp new file mode 100644 index 0000000000000000000000000000000000000000..871284cb8d7df1f99ba5653df93a7a58955ee748 GIT binary patch literal 786486 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 E0Xz|Xa{vGU literal 0 HcmV?d00001 diff --git a/results/validation/semantic_segmentation/MXNet/danet_resnet50_citys_out_segmentation_sync.bmp b/results/validation/semantic_segmentation/MXNet/danet_resnet50_citys_out_segmentation_sync.bmp new file mode 100644 index 0000000000000000000000000000000000000000..871284cb8d7df1f99ba5653df93a7a58955ee748 GIT binary patch literal 786486 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 E0Xz|Xa{vGU literal 0 HcmV?d00001 diff --git a/results/validation/semantic_segmentation/MXNet/fcn_resnet101_coco_out_segmentation_async.bmp b/results/validation/semantic_segmentation/MXNet/fcn_resnet101_coco_out_segmentation_async.bmp new file mode 100644 index 0000000000000000000000000000000000000000..dc015635019f566c30e1fe454face35190a46a8a GIT binary patch literal 1228854 zcmeI*OV8w1UI*ZTkHCtLz$X~@B^@5*9uq_t3ZGN0RjZ75xDb{ z=D}ZVBG^EH009C72xJp@<)_V)kDL4NG`D}0ZJ8ECfB*pk1gaK@%)R%l`Pn~gUhzf* zSG_kVJOKg(2;>rY{TJVcZyUk!PXhr01PBlyFt>pGom<%a2@oJafWW@MPX0c8zqxv= zxp8ZMM4u2KK!5-N0?7n+@;82ke*97M+M^~;%F-8{OxcVG5FkK+z;^<1!Eao16sJA6 zJ-_?^8-H?L@ON7Np8x>@1PG)Nh-{6^e&foc{p4*wi9fk6IE}Tr5FkK+0DRSLs&F{;R5n^xRo&p z6eSS%Y>)cezT#}jt_#UI8%1pqg0_?$rD0&&mw=o@NZalt~Dzs}hxe8X8i z0wEB;Q^i;1BPUJg|^K>k*`;T8Mx1%~8r{30Er z83+(4P(c0`xKXSUfgu9&cZia42ox(Ie~aBTR*b-L0r`8}$6pDQED#+-(LJ<(&Sc*w z5!MC*1Qr*F2Xn{cx#J<-eN}b)bH6_?zP+pffqj92-=Dj>EPwY6eL^6=z>s^^b=5Y$ zW5;c>;!c$Y0tCttkiX?@3u{7PxWHNY8$s+|Si^0NNg$7a{LSNRDFo6A$ltV{=0+gD zz`6PBTEhI>$Px+c3&`Jn6Q2;cEP-?LH-5;9Nel!CEGr;?m-V-F0@DTL?{q_RAdp`` z{^mEgL;`6Ap@&wiE($2%L5OV0R&d-=F8$7UoIdEP;W~?B1@n&VN2j z*vJHC6*%|%b61yLOE~LxF>?YZ1U0ZYI?@3i75XdGlI)9@&tIOFolLZmj7m&aE zCO#o>K?3skf;N^_C9o|Zf44QfCvb5B^7rC4nH46`3XI6#Cm%QW-)W-b*g$~5;sWw_ z@l9X_2#gSj488Yk&|??6b2hp+5!?m>1Qr*#d3*EZqxe?b)y?5=^#3lt`K&;-0wb;& z?5ei>t#-Fj@S+5+U27tO<0q-EZVrDVe~a3bR;DTe`CHZIR@fB_jH}D?cg4Geq7^PM zuFkgKt{wjtzHzNyRRZJc^5c)1*B&*uUaE>pVF@fO5D)N;$M{CK(eR(DcE*&y3vWV; zC$J?jE`NQO-XiptKqi4H=S-@znKqKe5Ev{Ve+N?;k-)+N@^|44VDSW!3b>XbDW{nc zm`h;9J)d`ee2#zm{dum01T@1m+VM{haQdP?o>*Z6k9gFj_$Vj;1pqf%ydD zgsZ5V@w4;9Bi}ZNoXf8(UexEoJIuz>)9=>pNu8$sE=#yuOQ3*4PI@^|{yF$V(41*YV0 z)N$7}B;O)tSgpX6`{C>a?#@5uZ?!v>f|o2XF@M`?9y2izATUut{!RomIf2U(h&#GJ z`k;CG$)u|r@S0-m}dK)dm6t&J~y`e;>ZTc~qIFg`T@Pj87ngK-&C`6xJ7< zVXIlh`UGam-x5LI4Y1Qf87`Q z=tl5I0-J|uw_jEh{;%Jk?N|g#7RZyo(WJO9bjiDcbz59O{w}@=tN?+`0@?D{eW5dN zS&O?Y0r`7b+soP#m@belf8!9?wMf&qmpQCeK>n_E%PJRvK7pM18+XKtn^N9-sc&6; zPM}7CxH>N`5QuAa6ZZVJv(o=t@6N;Gg} zb!~0Ci}I{dV2-}0z9zyw@z%HpDbpB%yANjh*}1EF@^{QuF%5yd0y*7PQH&3V|Mh%=sHFLwjH7IQwhhGlJXS$z%MTSNwP$e=?LH zu)U3Jm%c3$JACZJ^Y!`4-#&St6DU(4fBv@jg^nwd20kOWJx?sg-+9HMbo|Lsg247R zvR(SNNbK;j56{=X|=!j7Iv&OTrHJ9;yjkia4W>(1Zp7O8z7KTt=JXMNSs2ffqh zyYIaHNoyWSH1LQu0Jk?#Oujw0?)}dB1H?LEL-gzbL$Zl0Y_U*Ha(e>bblw%cWi8=gmz zkFWE5e+>Zx0Rn{!$lv+ez=3n_`boDtH~Zd43%@gLUwhj(RrmS8BhZ~i#6Q#aV{Z4$ zM?}Uy2U?vw+F7=p(&#s{mgTInNBWQ6*85xECjp9vP^CUoEUqJqz)vPT( za@&_0TdjL-UweCU^>+G9+nK~sTfDj%9(nNK1ExF;fZUjO={;s33RSE(-0`gZ2PoQuC`Mc9<`6q#O2*}^U+g__z zv%s>~C$6K3Qwjpb3drA@n|Ea|Tp%v8i1R#)Z9S|Q0RmG5;#9ru>#PfJj;tPmss!Zk zl*Y}p1j-kPFW6Dd4Fm|3CLn*yZ$GUefhhv=x3pH*`VeRZ0uJa8b>#m8n@EZnp1!zXKaCqY+qvfNOzkZt#`8 zC;|7JTtSPf2n5a&a4vLFjj)xeRzUuq)o>Y^zzPK9Z?z4+f)^s-p3f_2NELy=2!SUb zH}RAm{NfZ}de_u?C<_4s zQv~z{=V^N_g@Ai*Olhf1OJJ1(`hrCRfmsFOvZFZjIc@;E$_7NC2oRVe;J#S1Hosf|R>uxrcjzAIt z`7197Bo~msNm?f}A+S~fzdt8$b|q4hRb{i zT)KchU%5aar-1yu^fuG_6G$bX&o^h=Ygq*3Z>qM-ds(cTaTs zTzb=C{Rt2lE%4;y=Ked)?H^@pcr1tjfo}yOf}I6Dy6rL{fr}Q1@Qqtt-MpvH+%j?pa=nd!I#*aT4w@h3Fz}J zqP4XW1oi~<1)tTF8JWPv33#^PUbE)|0;LG(3%Q)4{{5I86h zUy=vbXrmDzP`<#^Pnt&`G4qTp+?XZgO?~WgBxIA!p?KUO>0>ui%&(3k=D|`>Obv`6epg=@$oGKYtD-_$RSTOqCIRNrAS{ zH=Z;a7d03N5V%AEeZeOiIwKG$O+cUTB{sI!nZUk)zTnbYSL;LIxPU(2{dUYJ1TIvd z?F){+B+m;z-tPG;fyD))lIrul(3aL}6WAAM`+}n{$@792Z(Xebf#U*EN%i^eH)1{^ zaOnbZkLXu^`v0$}>5hnxH-`RtaRPDi`}R(L@O^Z!#_Qmpx({Q7%w>wN2W zL9unYs~Vecd*epT#c2$ghZnCmKYroF>kl6^zx>++uYY>4`QM+NetrE`^Vc72Cja@f z=GB|c^=p}nXmJDxlqe8i#iPsk_-nrFi@WO|kFUUyzs|RAmm6vqwC1t-wl{8sZ=A-E zd3gIy^W_^SUSB&v zEb-fT^8W6c_he-!K!Csn30&Q3K76hD`my|7Mj%cJGY}v^fIx);@e}B!94)SLJ>_qO zl}?cf5Fii&@^{%-m%pkZ0RjXn6o}5pk}uC$HW~9QUH(>B?-ZE;0RqwZ=Sdk$=@XE@ zsv!Xa1S%AezkRWo?Q{8CVZBpi0t5)i-)uSCw;=he8WJEtph5xp+ZT)3K9|20);mQe zK!AY!&6cx$3zEO8AprseDin~veX*GBbNO3gy;EcY1PI9AY&qMvAo;5r5+FdJDuI`8 zG@o8I&mX$}Xkh{QTUEVNSONqHc;-Ui0cqyX<*&*}fB=E21mth#ob6kj{H?0qDJ%g3 z1mtgDAZGqt{;G@w2oR`BK>lXV*}lce->T}J!V(}rK>qdxV&>1~ugXY(0D-Cm5+Fc8{`Li8=FjD? z%1D3!fvN=LZ|0osTb%r@s@^Fq0RjZ%Z(ks0{#^d5j06Y}s7gToX3p8Z#mV2Q>Yc(8 zAV5I=_61_*&*iVmNPqx=ss!Y3=A7+Yocyh--YF~r0tDo5Um#}wT>h$z1PBnQNuOBy`URAZc|v;9;4s)Gaw5U5!|{$>l@odwC?n(Lji6Cgl9{_ezL zwtvcBwT}P+0(A;pzt+5Zv-$kK`#&!uAb;zucS=ow0D%bKFCH}CJXt1vvK?j?yCC_i z4iX?hpiTkL|6Mkkae(@7=9%2UKJN z1PD|rAb-n={maHB>rfBtU>b2z+|g#L2gnr(QY5 zm%nNy0RjXn5pd7Ra>6&(Fq3GVaB()*7c= z1PBml1>AF^%&eEcYA68$1lBDef93DG_i&{nK!8A*0`gb>mbqtID*^-vtXSac*5UalKPC0t5)S=VXD&8>$$k z=xU6XznmDVYE9ySkMY>YINK^-`h3+&0t5)uBM_a85y5fTRaNShQ`iXKIN*(6A>yUa zx1M^Zqyz{MXa(H=IcFlr1z&O5S3K}BUU3R~oCRkfK!5;&ItAi^?`{E|A%X)rzUp|k zLY=itsR9TGo&1vk0RjXD3dmpiJ8)Mq8UX?X2qYAczw$TX z?qpU32oNAJP{6go@^|2_Vl)B-2oOjs5YOnDl0h|3tN%Ccu4rxq2oR`BK>m*Y3L$^1 zswoOffB=EC0`gb>rro2=jQ{}x1cnI6U->&^KQRsg0t5)86_CI3H|-u}ZUhJrATUHg z{>tAW`-yP~5FkJxt$_TMziIa~>%O}BIAV7dXasl}(f0OT2W=Mbl0Rkrl zj@WHXLVy4P0uu$~ul$|33z?h% z0RjX@2*_XgJ7Tvn2>}8G2uu`^zw&qDE@W~71PBlqAs~O{?}**TBm@W$ATUut{>tBp zyO7BV5FkKcgn;~&zaw@VlMo<4fWSln`73`X?m{LfK!5;&5d!j8{*KsfOhSMF0Rj^R zUcS+MdeuCC=oXYC1>FB?;vQ&n0t5)uED#|w@i4I3$>nd&6-U_#5Fjv7K>m*Y{vdxR z?t3ODK!8Ba0`gb>*1Z2KI{^X&mJ*P^@^`6y&vFS6AW*Y_{FT2o@Bhk9fB=D|1mv&$ zU25O6Tml3L)GQ!>yjTl4;}>;wo9SV}WAZQGXoAr|fB*pk z1cnR9U->(HZ!snT0t5)85|F?0H`TsmJ_HC5ATV4&{>tCsdy6p%5FkJxm4N(}zp3^m z^C3Wh0D<8G@>l*2-&>4HfB*pksRZP&{7tnlnGXR11PBZlkiYVG_}*en0t5&UNF^YD z+GD}Ph%OXfp>009C61s>mSKEL05^Q4)c zK{d}I0E00w4Fm`fAV6SWeD$dL&C_HVROeA}00v`V z8VC>|K!CsyffuiDel?Bks53WHl{x@}F)$4T2oNAZV4#5WucoK4=MN6t*^EYj009D> zKs-1;9v>eMk)IwzbBLR{;Z zffGal6{+MmM#K18SAV7csfw={u zUpP+jE#x)iWT*G;&a$>KTLS?C1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyP?f;{0aMWP AX#fBK literal 0 HcmV?d00001 diff --git a/results/validation/semantic_segmentation/MXNet/fcn_resnet101_coco_out_segmentation_sync.bmp b/results/validation/semantic_segmentation/MXNet/fcn_resnet101_coco_out_segmentation_sync.bmp new file mode 100644 index 0000000000000000000000000000000000000000..dc015635019f566c30e1fe454face35190a46a8a GIT binary patch literal 1228854 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyP?f;{0aMWP AX#fBK literal 0 HcmV?d00001 diff --git a/results/validation/semantic_segmentation/MXNet/out_fcn_resnet101_voc_segmentation_async.bmp b/results/validation/semantic_segmentation/MXNet/out_fcn_resnet101_voc_segmentation_async.bmp new file mode 100644 index 0000000000000000000000000000000000000000..507ec671ef3faac7d32cadcb96769f70a89a4743 GIT binary patch literal 786486 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.1722970 liner, ocean liner
0.0720538 contai xception |0.9181097 water bottle
0.0309580 sandbar, sand bar
0.0148073 breakwater, groin, groyne, mole, bulwark, seawall, jetty
0.0098892 seashore, coast, seacoast, sea-coast
0.0050070 lifeboat| senet_154 |0.4430478 beacon, lighthouse, beacon light, pharos
0.2592156 breakwater, groin, groyne, mole, bulwark, seawall, jetty
0.0319326 lifeboat
0.0148673 seashore, coast, seacoast, sea-coast
0.0140872 submarine, pigboat, sub, U-boat| +## Object detection + +### Test image #1 + +Data source: [Pascal VOC][pascal_voc] + +Image resolution: 500 x 375 + + +

+ + +
+ +Bounding boxes (upper left and bottom right corners):
+AEROPLANE (127, 62), (251, 443)
+ +Model | Python (latency mode, implementation) | Python (throughput mode, implementation) | +------|---------------------------------------|------------------------------------------| +ssd_300_vgg16_atrous_voc | Bounding box:
AEROPLANE (34, 98), (258, 191) | Bounding box:
AEROPLANE (34, 98), (258, 191) | +ssd_512_vgg16_atrous_voc | Bounding box:
AEROPLANE (52, 160), (450, 330) | Bounding box:
AEROPLANE (52, 160), (450, 330) | +ssd_512_resnet50_v1_voc | Bounding box:
AEROPLANE (65, 175), (435, 329) | Bounding box:
AEROPLANE (65, 175), (435, 329) | +ssd_512_resnet101_v2_voc | ounding box:
AEROPLANE (50, 167), (428, 336) | Bounding box:
AEROPLANE (50, 167), (428, 336) | +ssd_512_mobilenet1.0_voc | Bounding box:
AEROPLANE (65, 170), (422, 334) | Bounding box:
AEROPLANE (65, 170), (422, 334) | +faster_rcnn_resnet50_v1b_voc | Bounding box:
AEROPLANE (37, 168), (452, 329) | Bounding box:
AEROPLANE (37, 168), (452, 329) | +yolo3_darknet53_voc | Bounding box:
AEROPLANE (36, 103), (274, 208) | Bounding box:
AEROPLANE (36, 103), (274, 208) | +yolo3_mobilenet1.0_voc | Bounding box:
AEROPLANE (38, 102), (274, 208) | Bounding box:
AEROPLANE (38, 102), (274, 208) | +center_net_resnet18_v1b_voc | Bounding box:
AEROPLANE (70, 170), (445, 329) | Bounding box:
AEROPLANE (70, 170), (445, 329) | +center_net_resnet18_v1b_dcnv2_voc | Bounding box:
AEROPLANE (55, 163), (444, 337) | Bounding box:
AEROPLANE (55, 163), (444, 337) | +center_net_resnet50_v1b_voc | Bounding box:
AEROPLANE (51, 164), (448, 327) | Bounding box:
AEROPLANE (51, 164), (448, 327) | +center_net_resnet50_v1b_dcnv2_voc | Bounding box:
AEROPLANE (55, 164), (444, 335) | Bounding box:
AEROPLANE (55, 164), (444, 335) | +center_net_resnet101_v1b_voc | Bounding box:
AEROPLANE (48, 176), (444, 331) | Bounding box:
AEROPLANE (48, 176), (444, 331) | +center_net_resnet101_v1b_dcnv2_voc | Bounding box:
AEROPLANE (62, 181), (444, 334) | Bounding box:
AEROPLANE (62, 181), (444, 334) | +center_net_mobilenetv3_large_duc_voc | Bounding box:
AEROPLANE (44, 164), (462, 327) | Bounding box:
AEROPLANE (44, 164), (462, 327) | +center_net_mobilenetv3_small_duc_voc | Bounding box:
AEROPLANE (44, 159), (471, 332) | Bounding box:
AEROPLANE (44, 159), (471, 332) | + +### Test image #2 +Data source: [MS COCO][ms_coco] + +Image resolution: 640 x 480 + + +
+ +
+
+ + +
+Bounding box (upper left anf bottom right corners)
+TV (110, 41), (397, 304)
+MOUSE (508, 337), (559, 374)
+KEYBOARD (241, 342), (496, 461)
+ + + Model | Python (latency mode, implementation) | Python (throughput mode, implementation) | + --------|---------------------------------------|----------------------------------------| + ssd_300_vgg16_atrous_coco | Bounding box:
KEYBOARD (106, 214), (229, 287); TV (48, 23), (184, 184) | Bounding box:
KEYBOARD (106, 214), (229, 287); TV (48, 23), (184, 184) | + ssd_512_vgg16_atrous_coco | Bounding box:
KEYBOARD (187, 365), (402, 489); TV (76, 35), (308, 316); MOUSE (404, 359), (448, 397) | Bounding box:
KEYBOARD (187, 365), (402, 489); TV (76, 35), (308, 316); MOUSE (404, 359), (448, 397) | + ssd_300_resnet34_v1b_coco | Bounding box:
KEYBOARD (108, 213), (236, 285); TV (36, 21), (187, 180); MOUSE (238, 210), (261, 233) | Bounding box:
KEYBOARD (108, 213), (236, 285); TV (36, 21), (187, 180); MOUSE (238, 210), (261, 233) | + ssd_512_resnet50_v1_coco | Bounding box:
KEYBOARD (184, 366), (399, 492); TV (77, 36), (317, 327); MOUSE (407, 359), (447, 397) | Bounding box:
KEYBOARD (184, 366), (399, 492); TV (77, 36), (317, 327); MOUSE (407, 359), (447, 397) | + ssd_512_mobilenet1.0_coco | Bounding box:
KEYBOARD (196, 365), (394, 489); TV (76, 33), (317, 320); MOUSE (408, 359), (446, 397) | Bounding box:
KEYBOARD (196, 365), (394, 489); TV (76, 33), (317, 320); MOUSE (408, 359), (446, 397) | + faster_rcnn_resnet50_v1b_coco | Bounding box:
KEYBOARD (286, 566), (631, 759); TV (124, 43), (526, 513); MOUSE (634, 560), (700, 621) | Bounding box:
KEYBOARD (286, 566), (631, 759); TV (124, 43), (526, 513); MOUSE (634, 560), (700, 621) | + faster_rcnn_resnet101_v1d_coco | Bounding box:
KEYBOARD (286, 567), (622, 759); TV (119, 58), (493, 489); MOUSE (635, 561), (699, 620); DINING TABLE (-2, 396), (820, 783) | Bounding box:
KEYBOARD (286, 567), (622, 759); TV (119, 58), (493, 489); MOUSE (635, 561), (699, 620); DINING TABLE (-2, 396), (820, 783) | + faster_rcnn_fpn_resnet50_v1b_coco | Bounding box:
KEYBOARD (280, 557), (634, 769); TV (108, 52), (507, 495); MOUSE (636, 561), (699, 620) | Bounding box:
KEYBOARD (280, 557), (634, 769); TV (108, 52), (507, 495); MOUSE (636, 561), (699, 620) | + faster_rcnn_fpn_resnet101_v1d_coco | Bounding box:
KEYBOARD (285, 568), (623, 766); TV (130, 52), (489, 513); MOUSE (635, 563), (698, 620); DINING TABLE (30, 340), (779, 792) | Bounding box:
KEYBOARD (285, 568), (623, 766); TV (130, 52), (489, 513); MOUSE (635, 563), (698, 620); DINING TABLE (30, 340), (779, 792) | + faster_rcnn_fpn_bn_resnet50_v1b_coco | ValueError: "faster_rcnn_fpn_bn_resnet50_v1b_coco" is not among the following model list | ValueError: "faster_rcnn_fpn_bn_resnet50_v1b_coco" is not among the following model list | + faster_rcnn_fpn_syncbn_resnest50_coco | Bounding box:
KEYBOARD (290, 568), (627, 771); TV (133, 66), (493, 488); MOUSE (634, 560), (700, 621) | Bounding box:
KEYBOARD (290, 568), (627, 771); TV (133, 66), (493, 488); MOUSE (634, 560), (700, 621) | + faster_rcnn_fpn_syncbn_resnest101_coco | Bounding box:
KEYBOARD (292, 570), (625, 768); TV (141, 62), (493, 492); MOUSE (634, 562), (698, 619) | Bounding box:
KEYBOARD (292, 570), (625, 768); TV (141, 62), (493, 492); MOUSE (634, 562), (698, 619) | + faster_rcnn_fpn_syncbn_resnest269_coco | Bounding box:
KEYBOARD (289, 569), (630, 768); TV (119, 61), (496, 493); MOUSE (634, 561), (699, 620) | Bounding box:
KEYBOARD (289, 569), (630, 768); TV (119, 61), (496, 493); MOUSE (634, 561), (699, 620) | + yolo3_darknet53_coco | Bounding box:
KEYBOARD (117, 227), (248, 304); TV (47, 23), (195, 196); MOUSE (254, 223), (279, 248) | Bounding box:
KEYBOARD (117, 227), (248, 304); TV (47, 23), (195, 196); MOUSE (254, 223), (279, 248) | + yolo3_mobilenet1.0_coco | Bounding box:
KEYBOARD (119, 225), (239, 304); TV (25, 19), (205, 196); MOUSE (252, 223), (278, 247) | Bounding box:
KEYBOARD (119, 225), (239, 304); TV (25, 19), (205, 196); MOUSE (252, 223), (278, 247) | + center_net_resnet18_v1b_coco | Bounding box:
KEYBOARD (187, 356), (401, 495); TV (96, 42), (307, 320); MOUSE (407, 360), (449, 395) | Bounding box:
KEYBOARD (187, 356), (401, 495); TV (96, 42), (307, 320); MOUSE (407, 360), (449, 395) | + center_net_resnet18_v1b_dcnv2_coco | Bounding box:
KEYBOARD (182, 362), (405, 490); TV (91, 23), (311, 324); MOUSE (406, 358), (448, 398) | Bounding box:
KEYBOARD (182, 362), (405, 490); TV (91, 23), (311, 324); MOUSE (406, 358), (448, 398) | + center_net_resnet50_v1b_coco | Bounding box:
KEYBOARD (185, 363), (401, 489); TV (85, 42), (311, 320); MOUSE (405, 358), (446, 397) | Bounding box:
KEYBOARD (185, 363), (401, 489); TV (85, 42), (311, 320); MOUSE (405, 358), (446, 397) | + center_net_resnet50_v1b_dcnv2_coco | Bounding box:
KEYBOARD (182, 363), (404, 488); TV (88, 34), (315, 321); MOUSE (405, 359), (448, 396) | Bounding box:
KEYBOARD (182, 363), (404, 488); TV (88, 34), (315, 321); MOUSE (405, 359), (448, 396) | + center_net_resnet101_v1b_coco | Bounding box:
KEYBOARD (184, 364), (401, 488); TV (87, 40), (316, 323); MOUSE (406, 359), (447, 395) | Bounding box:
KEYBOARD (184, 364), (401, 488); TV (87, 40), (316, 323); MOUSE (406, 359), (447, 395) | + center_net_resnet101_v1b_dcnv2_coco | Bounding box:
KEYBOARD (183, 362), (403, 496); TV (92, 43), (311, 328); MOUSE (406, 359), (445, 397) | Bounding box:
KEYBOARD (183, 362), (403, 496); TV (92, 43), (311, 328); MOUSE (406, 359), (445, 397) | + center_net_mobilenetv3_large_duc_coco | Bounding box:
KEYBOARD (188, 369), (400, 491); MOUSE (406, 358), (448, 396) | Bounding box:
KEYBOARD (188, 369), (400, 491); MOUSE (406, 358), (448, 396) | + center_net_mobilenetv3_small_duc_coco | Bounding box:
MOUSE (405, 361), (446, 395) | Bounding box:
MOUSE (405, 361), (446, 395) | + +## Semantic segmentation + +### Test image #1 + +Data source: [pascal_voc][pascal_voc] + +Image resolution: 500 x 375 + + +
+ +
+ +Segmented images are identical. + + + Model | Python (latency mode, implementation) | Python (throughput mode, implementation) | + --------|---------------------------------------|----------------------------------------| +fcn_resnet101_voc |
|
| + +### Test image #2 + +Data source: [Cityscapes][cityscapes] + +Image resolution: 2048 x 1024 + + +
+ +
+ +Segmented images are identical. + + + Model | Python (latency mode, implementation) | Python (throughput mode, implementation) | + --------|---------------------------------------|----------------------------------------| + danet_resnet50_citys |
|
| + danet_resnet101_citys |
|
| + +### Test image #3 + +Data source: [MS COCO][ms_coco] + +Image resolution: 640 x 480 + + +
+ +
+
+
+ +Segmented images are identical. + + Model | Python (latency mode, implementation) | Python (throughput mode, implementation) | + --------|---------------------------------------|----------------------------------------| + fcn_resnet101_coco |
|
| [imagenet]: http://www.image-net.org [gluon_modelzoo_classification]: https://cv.gluon.ai/model_zoo/classification.html +[ms_coco]: http://cocodataset.org +[pascal_voc]: http://host.robots.ox.ac.uk/pascal/VOC +[cityscapes]: https://www.cityscapes-dataset.com \ No newline at end of file diff --git a/src/inference/inference_mxnet_async_mode.py b/src/inference/inference_mxnet_async_mode.py index 52d9d5c5b..6594cb89c 100644 --- a/src/inference/inference_mxnet_async_mode.py +++ b/src/inference/inference_mxnet_async_mode.py @@ -1,14 +1,11 @@ import argparse import json import logging as log -import os import sys import traceback -import warnings from pathlib import Path from time import time -import gluoncv import mxnet import postprocessing_data as pp @@ -16,6 +13,9 @@ from io_model_wrapper import MXNetIOModelWrapper from reporter.report_writer import ReportWriter from transformer import MXNetTransformer +from mxnet_auxiliary import (load_network_gluon, load_network_gluon_model_zoo, + get_device_to_infer, create_dict_for_modelwrapper, + create_dict_for_transformer, prepare_output) def cli_argument_parser(): @@ -108,7 +108,8 @@ def cli_argument_parser(): 'method. Available values: feedforward - without' 'postprocessing (by default), classification - output' 'is a vector of probabilities.', - choices=['feedforward', 'classification'], + choices=['feedforward', 'classification', 'detection', + 'segmentation'], default='feedforward', type=str, dest='task') @@ -142,76 +143,22 @@ def cli_argument_parser(): type=Path, default=Path(__file__).parent / 'mxnet_async_inference_report.json', dest='report_path') + parser.add_argument('--threshold', + help='Probability threshold for detections filtering', + default=0.5, + type=float, + dest='threshold') + parser.add_argument('--color_map', + help='Classes color map', + type=str, + default=None, + dest='color_map') args = parser.parse_args() return args -def get_device_to_infer(device): - log.info('Get device for inference') - if device == 'CPU': - log.info(f'Inference will be executed on {device}') - return mxnet.cpu() - elif device == 'NVIDIA_GPU': - log.info(f'Inference will be executed on {device}') - return mxnet.gpu() - else: - log.info(f'The device {device} is not supported') - raise ValueError('The device is not supported') - - -def load_network_gluon(model_json, model_params, context, input_name): - log.info(f'Deserializing network from file ({model_json}, {model_params})') - with warnings.catch_warnings(): - warnings.simplefilter('ignore') - deserialized_net = mxnet.gluon.nn.SymbolBlock.imports( - model_json, [input_name], model_params, ctx=context) - return deserialized_net - - -def load_network_gluon_model_zoo(model_name, hybrid, context, save_model, path_save_model): - log.info(f'Loading network \"{model_name}\" from GluonCV model zoo') - net = gluoncv.model_zoo.get_model(model_name, pretrained=True, ctx=context) - - if save_model is True: - log.info(f'Saving model \"{model_name}\" to \"{path_save_model}\"') - if path_save_model is None: - path_save_model = os.getcwd() - path_save_model = os.path.join(path_save_model, model_name) - if not os.path.exists(path_save_model): - os.mkdir(path_save_model) - gluoncv.utils.export_block(os.path.join(path_save_model, model_name), net, - preprocess=None, layout='CHW', ctx=context) - - log.info(f'Info about the network:\n{net}') - - log.info(f'Hybridizing model to accelerate inference: {hybrid}') - if hybrid is True: - net.hybridize() - return net - - -def create_dict_for_transformer(args): - dictionary = { - 'channel_swap': args.channel_swap, - 'mean': args.mean, - 'std': args.std, - 'norm': args.norm, - 'input_shape': args.input_shape, - 'batch_size': args.batch_size, - } - return dictionary - - -def create_dict_for_modelwrapper(args): - dictionary = { - 'input_name': args.input_name, - 'input_shape': [args.batch_size] + args.input_shape[1:4], - } - return dictionary - - def inference_mxnet(net, num_iterations, get_slice, input_name): predictions = None slice_input = None @@ -219,7 +166,7 @@ def inference_mxnet(net, num_iterations, get_slice, input_name): mxnet.nd.waitall() inference_time = time() slice_input = get_slice() - predictions = net(slice_input[input_name]).softmax() + predictions = net(slice_input[input_name]) mxnet.nd.waitall() inference_time = time() - inference_time else: @@ -234,17 +181,6 @@ def inference_mxnet(net, num_iterations, get_slice, input_name): return predictions, inference_time -def prepare_output(result, output_names, task): - if task == 'feedforward': - return {} - if (output_names is None) or len(output_names) == 0: - raise ValueError('The number of output tensors does not match the number of corresponding output names') - if task == 'classification': - return {output_names[0]: result.asnumpy()} - else: - raise ValueError(f'Unsupported task {task} to print inference results') - - def main(): log.basicConfig( format='[ %(levelname)s ] %(message)s', @@ -297,7 +233,8 @@ def main(): if args.number_iter == 1: try: log.info('Converting output tensor to print results') - result = prepare_output(result, args.output_names, args.task) + result = prepare_output(result, args.output_names, args.task, + model_wrapper) log.info('Inference results') io.process_output(result, log) diff --git a/src/inference/inference_mxnet_sync_mode.py b/src/inference/inference_mxnet_sync_mode.py index 42478119a..fab2dd050 100644 --- a/src/inference/inference_mxnet_sync_mode.py +++ b/src/inference/inference_mxnet_sync_mode.py @@ -1,14 +1,11 @@ import argparse import json import logging as log -import os import sys import traceback -import warnings from pathlib import Path from time import time -import gluoncv import mxnet import postprocessing_data as pp @@ -17,6 +14,9 @@ from io_model_wrapper import MXNetIOModelWrapper from reporter.report_writer import ReportWriter from transformer import MXNetTransformer +from mxnet_auxiliary import (load_network_gluon, load_network_gluon_model_zoo, + get_device_to_infer, create_dict_for_modelwrapper, + create_dict_for_transformer, prepare_output) def cli_argument_parser(): @@ -109,7 +109,8 @@ def cli_argument_parser(): 'method. Available values: feedforward - without' 'postprocessing (by default), classification - output' 'is a vector of probabilities.', - choices=['feedforward', 'classification'], + choices=['feedforward', 'classification', 'detection', + 'segmentation'], default='feedforward', type=str, dest='task') @@ -146,75 +147,21 @@ def cli_argument_parser(): parser.add_argument('--time', required=False, default=0, type=int, dest='time', help='Optional. Time in seconds to execute topology.') + parser.add_argument('--threshold', + help='Probability threshold for detections filtering', + default=0.5, + type=float, + dest='threshold') + parser.add_argument('--color_map', + help='Classes color map', + type=str, + default=None, + dest='color_map') args = parser.parse_args() return args -def get_device_to_infer(device): - log.info('Get device for inference') - if device == 'CPU': - log.info(f'Inference will be executed on {device}') - return mxnet.cpu() - elif device == 'NVIDIA_GPU': - log.info(f'Inference will be executed on {device}') - return mxnet.gpu() - else: - log.info(f'The device {device} is not supported') - raise ValueError('The device is not supported') - - -def load_network_gluon(model_json, model_params, context, input_name): - log.info(f'Deserializing network from file ({model_json}, {model_params})') - with warnings.catch_warnings(): - warnings.simplefilter('ignore') - deserialized_net = mxnet.gluon.nn.SymbolBlock.imports( - model_json, [input_name], model_params, ctx=context) - return deserialized_net - - -def load_network_gluon_model_zoo(model_name, hybrid, context, save_model, path_save_model): - log.info(f'Loading network \"{model_name}\" from GluonCV model zoo') - net = gluoncv.model_zoo.get_model(model_name, pretrained=True, ctx=context) - - if save_model is True: - log.info(f'Saving model \"{model_name}\" to \"{path_save_model}\"') - if path_save_model is None: - path_save_model = os.getcwd() - path_save_model = os.path.join(path_save_model, model_name) - if not os.path.exists(path_save_model): - os.mkdir(path_save_model) - gluoncv.utils.export_block(os.path.join(path_save_model, model_name), net, - preprocess=None, layout='CHW', ctx=context) - - log.info(f'Info about the network:\n{net}') - - log.info(f'Hybridizing model to accelerate inference: {hybrid}') - if hybrid is True: - net.hybridize() - return net - - -def create_dict_for_transformer(args): - dictionary = { - 'channel_swap': args.channel_swap, - 'mean': args.mean, - 'std': args.std, - 'norm': args.norm, - 'input_shape': args.input_shape, - 'batch_size': args.batch_size, - } - return dictionary - - -def create_dict_for_modelwrapper(args): - dictionary = { - 'input_name': args.input_name, - 'input_shape': [args.batch_size] + args.input_shape[1:4], - } - return dictionary - - def inference_mxnet(net, num_iterations, get_slice, input_name, test_duration): predictions = None time_infer = [] @@ -222,7 +169,7 @@ def inference_mxnet(net, num_iterations, get_slice, input_name, test_duration): mxnet.nd.waitall() t0 = time() slice_input = get_slice() - predictions = net(slice_input[input_name]).softmax() + predictions = net(slice_input[input_name]) mxnet.nd.waitall() t1 = time() time_infer.append(t1 - t0) @@ -245,17 +192,6 @@ def infer_slice(input_name, net, slice_input): return res -def prepare_output(result, output_names, task): - if task == 'feedforward': - return {} - if (output_names is None) or len(output_names) == 0: - raise ValueError('The number of output tensors does not match the number of corresponding output names') - if task == 'classification': - return {output_names[0]: result.asnumpy()} - else: - raise ValueError(f'Unsupported task {task} to print inference results') - - def main(): log.basicConfig( format='[ %(levelname)s ] %(message)s', @@ -306,7 +242,8 @@ def main(): if args.number_iter == 1: try: log.info('Converting output tensor to print results') - result = prepare_output(result, args.output_names, args.task) + result = prepare_output(result, args.output_names, args.task, + model_wrapper) log.info('Inference results') io.process_output(result, log) diff --git a/src/inference/io_model_wrapper.py b/src/inference/io_model_wrapper.py index f34711677..ff31569b4 100644 --- a/src/inference/io_model_wrapper.py +++ b/src/inference/io_model_wrapper.py @@ -158,6 +158,7 @@ def __init__(self, args): # model wrapper supports only one input (batch of images) self._input_names = [args['input_name']] self._input_shapes = [args['input_shape']] + self._model_name = args['model_name'] def get_input_layer_names(self, model): return self._input_names @@ -169,6 +170,9 @@ def get_input_layer_dtype(self, model, layer_name): import numpy as np return np.float32 + def get_model_name(self): + return self._model_name + class OpenCVIOModelWrapper(IOModelWrapper): def __init__(self, args): diff --git a/src/inference/mxnet_auxiliary.py b/src/inference/mxnet_auxiliary.py new file mode 100644 index 000000000..605fb6d3e --- /dev/null +++ b/src/inference/mxnet_auxiliary.py @@ -0,0 +1,107 @@ +import numpy as np +import mxnet +import gluoncv +import logging as log +import os +import warnings + + +def prepare_output(result, output_names, task, model_wrapper): + if task == 'feedforward': + return {} + if (output_names is None) or len(output_names) == 0: + raise ValueError('The number of output tensors does not match the number of corresponding output names') + if task == 'classification': + return {output_names[0]: (result.softmax()).asnumpy()} + if task == 'detection': + box_ids, scores, bboxes = result + box_ids = (box_ids.asnumpy())[0] + scores = (scores.asnumpy())[0] + bboxes = (bboxes.asnumpy())[0] + + if 'center_net' in model_wrapper.get_model_name(): + box_ids = np.expand_dims(box_ids, axis=1) + scores = np.expand_dims(scores, axis=1) + + tmp = np.concatenate([box_ids, scores, bboxes], axis=1) + num_of_images = np.zeros((tmp.shape[0], 1)) + tmp = np.concatenate([num_of_images, tmp], axis=1) + tmp = np.expand_dims(tmp, axis=0) + tmp = np.expand_dims(tmp, axis=0) + input_shape = model_wrapper.get_input_layer_shape(model=None, layer_name=None) + tmp[:, :, :, 3] /= input_shape[2] + tmp[:, :, :, 4] /= input_shape[3] + tmp[:, :, :, 5] /= input_shape[2] + tmp[:, :, :, 6] /= input_shape[3] + return {output_names[0]: tmp} + if task == 'segmentation': + result = mxnet.nd.squeeze(mxnet.nd.argmax(result[0], 1)).asnumpy() + result = np.expand_dims(result, axis=0) + return {output_names[0]: result} + else: + raise ValueError(f'Unsupported task {task} to print inference results') + + +def get_device_to_infer(device): + log.info('Get device for inference') + if device == 'CPU': + log.info(f'Inference will be executed on {device}') + return mxnet.cpu() + elif device == 'NVIDIA_GPU': + log.info(f'Inference will be executed on {device}') + return mxnet.gpu() + else: + log.info(f'The device {device} is not supported') + raise ValueError('The device is not supported') + + +def load_network_gluon(model_json, model_params, context, input_name): + log.info(f'Deserializing network from file ({model_json}, {model_params})') + with warnings.catch_warnings(): + warnings.simplefilter('ignore') + deserialized_net = mxnet.gluon.nn.SymbolBlock.imports( + model_json, [input_name], model_params, ctx=context) + return deserialized_net + + +def load_network_gluon_model_zoo(model_name, hybrid, context, save_model, path_save_model): + log.info(f'Loading network \"{model_name}\" from GluonCV model zoo') + net = gluoncv.model_zoo.get_model(model_name, pretrained=True, ctx=context) + + if save_model is True: + log.info(f'Saving model \"{model_name}\" to \"{path_save_model}\"') + if path_save_model is None: + path_save_model = os.getcwd() + path_save_model = os.path.join(path_save_model, model_name) + if not os.path.exists(path_save_model): + os.mkdir(path_save_model) + gluoncv.utils.export_block(os.path.join(path_save_model, model_name), net, + preprocess=None, layout='CHW', ctx=context) + + log.info(f'Info about the network:\n{net}') + + log.info(f'Hybridizing model to accelerate inference: {hybrid}') + if hybrid is True: + net.hybridize() + return net + + +def create_dict_for_transformer(args): + dictionary = { + 'channel_swap': args.channel_swap, + 'mean': args.mean, + 'std': args.std, + 'norm': args.norm, + 'input_shape': args.input_shape, + 'batch_size': args.batch_size, + } + return dictionary + + +def create_dict_for_modelwrapper(args): + dictionary = { + 'input_name': args.input_name, + 'input_shape': [args.batch_size] + args.input_shape[1:4], + 'model_name': args.model_name, + } + return dictionary