diff --git a/example/ncnn/1.jpg b/example/ncnn/1.jpg deleted file mode 100644 index 7912379..0000000 Binary files a/example/ncnn/1.jpg and /dev/null differ diff --git a/example/ncnn/3.jpg b/example/ncnn/3.jpg new file mode 100644 index 0000000..19c4fff Binary files /dev/null and b/example/ncnn/3.jpg differ diff --git a/example/ncnn/FastestDet b/example/ncnn/FastestDet new file mode 100755 index 0000000..e9ee6a0 Binary files /dev/null and b/example/ncnn/FastestDet differ diff --git a/example/ncnn/FastestDet.bin b/example/ncnn/FastestDet.bin index 04df872..230a72a 100644 Binary files a/example/ncnn/FastestDet.bin and b/example/ncnn/FastestDet.bin differ diff --git a/example/ncnn/FastestDet.cpp b/example/ncnn/FastestDet.cpp index a2b0ece..7a6ab8a 100644 --- a/example/ncnn/FastestDet.cpp +++ b/example/ncnn/FastestDet.cpp @@ -121,7 +121,7 @@ int main() printf("ncnn model load sucess...\n"); // 加载图片 - cv::Mat img = cv::imread("1.jpg"); + cv::Mat img = cv::imread("3.jpg"); int img_width = img.cols; int img_height = img.rows; @@ -139,11 +139,11 @@ int main() double start = ncnn::get_current_time(); //set input tensor - ex.input("in0", input); + ex.input("input.1", input); // get output tensor ncnn::Mat output; - ex.extract("out0", output); + ex.extract("758", output); printf("output: %d, %d, %d\n", output.c, output.h, output.w); // handle output tensor @@ -170,7 +170,7 @@ int main() category = i; } } - float score = max_score * obj_score; + float score = pow(max_score, 0.4) * pow(obj_score, 0.6); // 阈值筛选 if(score > thresh) diff --git a/example/ncnn/FastestDet.param b/example/ncnn/FastestDet.param index 399847e..655bedb 100644 --- a/example/ncnn/FastestDet.param +++ b/example/ncnn/FastestDet.param @@ -1,129 +1,132 @@ 7767517 -127 150 -Input in0 0 1 in0 -Convolution convrelu_0 1 1 in0 1 0=24 1=3 11=3 12=1 13=2 14=1 2=1 3=2 4=1 5=1 6=648 9=1 -Pooling maxpool2d_43 1 1 1 2 0=0 1=3 11=3 12=2 13=1 2=2 3=1 5=1 -Split splitncnn_0 1 2 2 3 4 -ConvolutionDepthWise convdw_95 1 1 4 5 0=24 1=3 11=3 12=1 13=2 14=1 2=1 3=2 4=1 5=1 6=216 7=24 -Convolution convrelu_1 1 1 3 6 0=24 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=576 9=1 -ConvolutionDepthWise convdw_96 1 1 6 7 0=24 1=3 11=3 12=1 13=2 14=1 2=1 3=2 4=1 5=1 6=216 7=24 -Convolution convrelu_3 1 1 5 8 0=24 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=576 9=1 -Convolution convrelu_2 1 1 7 9 0=24 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=576 9=1 -Concat cat_0 2 1 8 9 10 0=0 -ShuffleChannel shufflechannel_0 1 1 10 11 0=2 1=1 -Slice shufflechannel_0_slice 1 2 11 12 13 -23300=2,-233,-233 1=0 -Convolution convrelu_4 1 1 13 14 0=24 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=576 9=1 -ConvolutionDepthWise convdw_97 1 1 14 15 0=24 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=216 7=24 -Convolution convrelu_5 1 1 15 16 0=24 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=576 9=1 -Concat cat_1 2 1 12 16 17 0=0 -ShuffleChannel shufflechannel_1 1 1 17 18 0=2 1=1 -Slice shufflechannel_1_slice 1 2 18 19 20 -23300=2,-233,-233 1=0 -Convolution convrelu_6 1 1 20 21 0=24 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=576 9=1 -ConvolutionDepthWise convdw_98 1 1 21 22 0=24 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=216 7=24 -Convolution convrelu_7 1 1 22 23 0=24 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=576 9=1 -Concat cat_2 2 1 19 23 24 0=0 -ShuffleChannel shufflechannel_2 1 1 24 25 0=2 1=1 -Slice shufflechannel_2_slice 1 2 25 26 27 -23300=2,-233,-233 1=0 -Convolution convrelu_8 1 1 27 28 0=24 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=576 9=1 -ConvolutionDepthWise convdw_99 1 1 28 29 0=24 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=216 7=24 -Convolution convrelu_9 1 1 29 30 0=24 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=576 9=1 -Concat cat_3 2 1 26 30 31 0=0 -Split splitncnn_1 1 3 31 32 33 34 -ConvolutionDepthWise convdw_100 1 1 34 35 0=48 1=3 11=3 12=1 13=2 14=1 2=1 3=2 4=1 5=1 6=432 7=48 -Convolution convrelu_10 1 1 33 36 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -ConvolutionDepthWise convdw_101 1 1 36 37 0=48 1=3 11=3 12=1 13=2 14=1 2=1 3=2 4=1 5=1 6=432 7=48 -Convolution convrelu_12 1 1 35 38 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -Convolution convrelu_11 1 1 37 39 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -Concat cat_4 2 1 38 39 40 0=0 -ShuffleChannel shufflechannel_3 1 1 40 41 0=2 1=1 -Slice shufflechannel_3_slice 1 2 41 42 43 -23300=2,-233,-233 1=0 -Convolution convrelu_13 1 1 43 44 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -ConvolutionDepthWise convdw_102 1 1 44 45 0=48 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=432 7=48 -Convolution convrelu_14 1 1 45 46 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -Concat cat_5 2 1 42 46 47 0=0 -ShuffleChannel shufflechannel_4 1 1 47 48 0=2 1=1 -Slice shufflechannel_4_slice 1 2 48 49 50 -23300=2,-233,-233 1=0 -Convolution convrelu_15 1 1 50 51 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -ConvolutionDepthWise convdw_103 1 1 51 52 0=48 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=432 7=48 -Convolution convrelu_16 1 1 52 53 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -Concat cat_6 2 1 49 53 54 0=0 -ShuffleChannel shufflechannel_5 1 1 54 55 0=2 1=1 -Slice shufflechannel_5_slice 1 2 55 56 57 -23300=2,-233,-233 1=0 -Convolution convrelu_17 1 1 57 58 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -ConvolutionDepthWise convdw_104 1 1 58 59 0=48 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=432 7=48 -Convolution convrelu_18 1 1 59 60 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -Concat cat_7 2 1 56 60 61 0=0 -ShuffleChannel shufflechannel_6 1 1 61 62 0=2 1=1 -Slice shufflechannel_6_slice 1 2 62 63 64 -23300=2,-233,-233 1=0 -Convolution convrelu_19 1 1 64 65 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -ConvolutionDepthWise convdw_105 1 1 65 66 0=48 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=432 7=48 -Convolution convrelu_20 1 1 66 67 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -Concat cat_8 2 1 63 67 68 0=0 -ShuffleChannel shufflechannel_7 1 1 68 69 0=2 1=1 -Slice shufflechannel_7_slice 1 2 69 70 71 -23300=2,-233,-233 1=0 -Convolution convrelu_21 1 1 71 72 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -ConvolutionDepthWise convdw_106 1 1 72 73 0=48 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=432 7=48 -Convolution convrelu_22 1 1 73 74 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -Concat cat_9 2 1 70 74 75 0=0 -ShuffleChannel shufflechannel_8 1 1 75 76 0=2 1=1 -Slice shufflechannel_8_slice 1 2 76 77 78 -23300=2,-233,-233 1=0 -Convolution convrelu_23 1 1 78 79 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -ConvolutionDepthWise convdw_107 1 1 79 80 0=48 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=432 7=48 -Convolution convrelu_24 1 1 80 81 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -Concat cat_10 2 1 77 81 82 0=0 -ShuffleChannel shufflechannel_9 1 1 82 83 0=2 1=1 -Slice shufflechannel_9_slice 1 2 83 84 85 -23300=2,-233,-233 1=0 -Convolution convrelu_25 1 1 85 86 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -ConvolutionDepthWise convdw_108 1 1 86 87 0=48 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=432 7=48 -Convolution convrelu_26 1 1 87 88 0=48 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=2304 9=1 -Concat cat_11 2 1 84 88 89 0=0 -Split splitncnn_2 1 3 89 90 91 92 -ConvolutionDepthWise convdw_109 1 1 92 93 0=96 1=3 11=3 12=1 13=2 14=1 2=1 3=2 4=1 5=1 6=864 7=96 -Convolution convrelu_27 1 1 91 94 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -ConvolutionDepthWise convdw_110 1 1 94 95 0=96 1=3 11=3 12=1 13=2 14=1 2=1 3=2 4=1 5=1 6=864 7=96 -Convolution convrelu_29 1 1 93 96 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -Convolution convrelu_28 1 1 95 97 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -Concat cat_12 2 1 96 97 98 0=0 -ShuffleChannel shufflechannel_10 1 1 98 99 0=2 1=1 -Slice shufflechannel_10_slice 1 2 99 100 101 -23300=2,-233,-233 1=0 -Convolution convrelu_30 1 1 101 102 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -ConvolutionDepthWise convdw_111 1 1 102 103 0=96 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=864 7=96 -Convolution convrelu_31 1 1 103 104 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -Concat cat_13 2 1 100 104 105 0=0 -ShuffleChannel shufflechannel_11 1 1 105 106 0=2 1=1 -Slice shufflechannel_11_slice 1 2 106 107 108 -23300=2,-233,-233 1=0 -Convolution convrelu_32 1 1 108 109 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -ConvolutionDepthWise convdw_112 1 1 109 110 0=96 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=864 7=96 -Convolution convrelu_33 1 1 110 111 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -Concat cat_14 2 1 107 111 112 0=0 -ShuffleChannel shufflechannel_12 1 1 112 113 0=2 1=1 -Slice shufflechannel_12_slice 1 2 113 114 115 -23300=2,-233,-233 1=0 -Convolution convrelu_34 1 1 115 116 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -ConvolutionDepthWise convdw_113 1 1 116 117 0=96 1=3 11=3 12=1 13=1 14=1 2=1 3=1 4=1 5=1 6=864 7=96 -Convolution convrelu_35 1 1 117 118 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -Concat cat_15 2 1 114 118 119 0=0 -Pooling avgpool2d_0 1 1 32 120 0=1 1=3 11=3 12=2 13=1 2=2 3=1 5=1 6=1 -Interp upsample_94 1 1 119 121 0=1 1=2.000000e+00 2=2.000000e+00 6=0 -Concat cat_16 3 1 120 90 121 122 0=0 -Convolution convrelu_36 1 1 122 123 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=32256 9=1 -Split splitncnn_3 1 4 123 124 125 126 127 -ConvolutionDepthWise convdwrelu_5 1 1 127 128 0=96 1=5 11=5 12=1 13=1 14=2 2=1 3=1 4=2 5=1 6=2400 7=96 9=1 -ConvolutionDepthWise convdwrelu_0 1 1 126 129 0=96 1=5 11=5 12=1 13=1 14=2 2=1 3=1 4=2 5=1 6=2400 7=96 9=1 -ConvolutionDepthWise convdwrelu_4 1 1 129 130 0=96 1=5 11=5 12=1 13=1 14=2 2=1 3=1 4=2 5=1 6=2400 7=96 9=1 -ConvolutionDepthWise convdwrelu_1 1 1 125 131 0=96 1=5 11=5 12=1 13=1 14=2 2=1 3=1 4=2 5=1 6=2400 7=96 9=1 -ConvolutionDepthWise convdwrelu_2 1 1 131 132 0=96 1=5 11=5 12=1 13=1 14=2 2=1 3=1 4=2 5=1 6=2400 7=96 9=1 -ConvolutionDepthWise convdwrelu_3 1 1 132 133 0=96 1=5 11=5 12=1 13=1 14=2 2=1 3=1 4=2 5=1 6=2400 7=96 9=1 -Concat cat_17 3 1 128 130 133 134 0=0 -Convolution conv_38 1 1 134 135 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=27648 -BinaryOp add_0 2 1 124 135 136 0=0 -ReLU relu_87 1 1 136 137 -Convolution convrelu_37 1 1 137 138 0=96 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=9216 9=1 -Split splitncnn_4 1 3 138 139 140 141 -ConvolutionDepthWise convdwrelu_7 1 1 139 142 0=96 1=5 11=5 12=1 13=1 14=2 2=1 3=1 4=2 5=1 6=2400 7=96 9=1 -Convolution conv_41 1 1 142 143 0=80 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=7680 -ConvolutionDepthWise convdwrelu_8 1 1 140 144 0=96 1=5 11=5 12=1 13=1 14=2 2=1 3=1 4=2 5=1 6=2400 7=96 9=1 -Convolution conv_42 1 1 144 145 0=4 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=384 -Softmax softmax_93 1 1 143 146 0=0 1=1 -ConvolutionDepthWise convdwrelu_6 1 1 141 147 0=96 1=5 11=5 12=1 13=1 14=2 2=1 3=1 4=2 5=1 6=2400 7=96 9=1 -Convolution convsigmoid_38 1 1 147 148 0=1 1=1 11=1 12=1 13=1 14=0 2=1 3=1 4=0 5=1 6=96 9=4 -Concat cat_18 3 1 148 145 146 out0 0=0 +130 153 +Input input.1 0 1 input.1 +Convolution Conv_0 1 1 input.1 onnx::MaxPool_423 0=24 1=3 3=2 4=1 5=1 6=648 9=1 +Pooling MaxPool_2 1 1 onnx::MaxPool_423 input.8 1=3 2=2 3=1 5=1 +Split splitncnn_0 1 2 input.8 input.8_splitncnn_0 input.8_splitncnn_1 +ConvolutionDepthWise Conv_3 1 1 input.8_splitncnn_1 input.16 0=24 1=3 3=2 4=1 5=1 6=216 7=24 +Convolution Conv_4 1 1 input.16 onnx::Concat_429 0=24 1=1 5=1 6=576 9=1 +Convolution Conv_6 1 1 input.8_splitncnn_0 onnx::Conv_432 0=24 1=1 5=1 6=576 9=1 +ConvolutionDepthWise Conv_8 1 1 onnx::Conv_432 input.40 0=24 1=3 3=2 4=1 5=1 6=216 7=24 +Convolution Conv_9 1 1 input.40 onnx::Concat_437 0=24 1=1 5=1 6=576 9=1 +Concat Concat_11 2 1 onnx::Concat_429 onnx::Concat_437 old_x +ShuffleChannel Reshape_16 1 1 old_x onnx::Gather_443 0=2 1=1 +Slice Gather_20 1 2 onnx::Gather_443 onnx::Concat_445 input.52 -23300=2,-233,-233 +Convolution Conv_21 1 1 input.52 onnx::Conv_450 0=24 1=1 5=1 6=576 9=1 +ConvolutionDepthWise Conv_23 1 1 onnx::Conv_450 input.68 0=24 1=3 4=1 5=1 6=216 7=24 +Convolution Conv_24 1 1 input.68 onnx::Concat_455 0=24 1=1 5=1 6=576 9=1 +Concat Concat_26 2 1 onnx::Concat_445 onnx::Concat_455 old_x.3 +ShuffleChannel Reshape_31 1 1 old_x.3 onnx::Gather_461 0=2 1=1 +Slice Gather_35 1 2 onnx::Gather_461 onnx::Concat_463 input.80 -23300=2,-233,-233 +Convolution Conv_36 1 1 input.80 onnx::Conv_468 0=24 1=1 5=1 6=576 9=1 +ConvolutionDepthWise Conv_38 1 1 onnx::Conv_468 input.96 0=24 1=3 4=1 5=1 6=216 7=24 +Convolution Conv_39 1 1 input.96 onnx::Concat_473 0=24 1=1 5=1 6=576 9=1 +Concat Concat_41 2 1 onnx::Concat_463 onnx::Concat_473 old_x.7 +ShuffleChannel Reshape_46 1 1 old_x.7 onnx::Gather_479 0=2 1=1 +Slice Gather_50 1 2 onnx::Gather_479 onnx::Concat_481 input.108 -23300=2,-233,-233 +Convolution Conv_51 1 1 input.108 onnx::Conv_486 0=24 1=1 5=1 6=576 9=1 +ConvolutionDepthWise Conv_53 1 1 onnx::Conv_486 input.124 0=24 1=3 4=1 5=1 6=216 7=24 +Convolution Conv_54 1 1 input.124 onnx::Concat_491 0=24 1=1 5=1 6=576 9=1 +Concat Concat_56 2 1 onnx::Concat_481 onnx::Concat_491 input.136 +Split splitncnn_1 1 3 input.136 input.136_splitncnn_0 input.136_splitncnn_1 input.136_splitncnn_2 +ConvolutionDepthWise Conv_57 1 1 input.136_splitncnn_2 input.144 0=48 1=3 3=2 4=1 5=1 6=432 7=48 +Convolution Conv_58 1 1 input.144 onnx::Concat_497 0=48 1=1 5=1 6=2304 9=1 +Convolution Conv_60 1 1 input.136_splitncnn_1 onnx::Conv_500 0=48 1=1 5=1 6=2304 9=1 +ConvolutionDepthWise Conv_62 1 1 onnx::Conv_500 input.168 0=48 1=3 3=2 4=1 5=1 6=432 7=48 +Convolution Conv_63 1 1 input.168 onnx::Concat_505 0=48 1=1 5=1 6=2304 9=1 +Concat Concat_65 2 1 onnx::Concat_497 onnx::Concat_505 old_x.11 +ShuffleChannel Reshape_70 1 1 old_x.11 onnx::Gather_511 0=2 1=1 +Slice Gather_74 1 2 onnx::Gather_511 onnx::Concat_513 input.180 -23300=2,-233,-233 +Convolution Conv_75 1 1 input.180 onnx::Conv_518 0=48 1=1 5=1 6=2304 9=1 +ConvolutionDepthWise Conv_77 1 1 onnx::Conv_518 input.196 0=48 1=3 4=1 5=1 6=432 7=48 +Convolution Conv_78 1 1 input.196 onnx::Concat_523 0=48 1=1 5=1 6=2304 9=1 +Concat Concat_80 2 1 onnx::Concat_513 onnx::Concat_523 old_x.15 +ShuffleChannel Reshape_85 1 1 old_x.15 onnx::Gather_529 0=2 1=1 +Slice Gather_89 1 2 onnx::Gather_529 onnx::Concat_531 input.208 -23300=2,-233,-233 +Convolution Conv_90 1 1 input.208 onnx::Conv_536 0=48 1=1 5=1 6=2304 9=1 +ConvolutionDepthWise Conv_92 1 1 onnx::Conv_536 input.224 0=48 1=3 4=1 5=1 6=432 7=48 +Convolution Conv_93 1 1 input.224 onnx::Concat_541 0=48 1=1 5=1 6=2304 9=1 +Concat Concat_95 2 1 onnx::Concat_531 onnx::Concat_541 old_x.19 +ShuffleChannel Reshape_100 1 1 old_x.19 onnx::Gather_547 0=2 1=1 +Slice Gather_104 1 2 onnx::Gather_547 onnx::Concat_549 input.236 -23300=2,-233,-233 +Convolution Conv_105 1 1 input.236 onnx::Conv_554 0=48 1=1 5=1 6=2304 9=1 +ConvolutionDepthWise Conv_107 1 1 onnx::Conv_554 input.252 0=48 1=3 4=1 5=1 6=432 7=48 +Convolution Conv_108 1 1 input.252 onnx::Concat_559 0=48 1=1 5=1 6=2304 9=1 +Concat Concat_110 2 1 onnx::Concat_549 onnx::Concat_559 old_x.23 +ShuffleChannel Reshape_115 1 1 old_x.23 onnx::Gather_565 0=2 1=1 +Slice Gather_119 1 2 onnx::Gather_565 onnx::Concat_567 input.264 -23300=2,-233,-233 +Convolution Conv_120 1 1 input.264 onnx::Conv_572 0=48 1=1 5=1 6=2304 9=1 +ConvolutionDepthWise Conv_122 1 1 onnx::Conv_572 input.280 0=48 1=3 4=1 5=1 6=432 7=48 +Convolution Conv_123 1 1 input.280 onnx::Concat_577 0=48 1=1 5=1 6=2304 9=1 +Concat Concat_125 2 1 onnx::Concat_567 onnx::Concat_577 old_x.27 +ShuffleChannel Reshape_130 1 1 old_x.27 onnx::Gather_583 0=2 1=1 +Slice Gather_134 1 2 onnx::Gather_583 onnx::Concat_585 input.292 -23300=2,-233,-233 +Convolution Conv_135 1 1 input.292 onnx::Conv_590 0=48 1=1 5=1 6=2304 9=1 +ConvolutionDepthWise Conv_137 1 1 onnx::Conv_590 input.308 0=48 1=3 4=1 5=1 6=432 7=48 +Convolution Conv_138 1 1 input.308 onnx::Concat_595 0=48 1=1 5=1 6=2304 9=1 +Concat Concat_140 2 1 onnx::Concat_585 onnx::Concat_595 old_x.31 +ShuffleChannel Reshape_145 1 1 old_x.31 onnx::Gather_601 0=2 1=1 +Slice Gather_149 1 2 onnx::Gather_601 onnx::Concat_603 input.320 -23300=2,-233,-233 +Convolution Conv_150 1 1 input.320 onnx::Conv_608 0=48 1=1 5=1 6=2304 9=1 +ConvolutionDepthWise Conv_152 1 1 onnx::Conv_608 input.336 0=48 1=3 4=1 5=1 6=432 7=48 +Convolution Conv_153 1 1 input.336 onnx::Concat_613 0=48 1=1 5=1 6=2304 9=1 +Concat Concat_155 2 1 onnx::Concat_603 onnx::Concat_613 old_x.35 +ShuffleChannel Reshape_160 1 1 old_x.35 onnx::Gather_619 0=2 1=1 +Slice Gather_164 1 2 onnx::Gather_619 onnx::Concat_621 input.348 -23300=2,-233,-233 +Convolution Conv_165 1 1 input.348 onnx::Conv_626 0=48 1=1 5=1 6=2304 9=1 +ConvolutionDepthWise Conv_167 1 1 onnx::Conv_626 input.364 0=48 1=3 4=1 5=1 6=432 7=48 +Convolution Conv_168 1 1 input.364 onnx::Concat_631 0=48 1=1 5=1 6=2304 9=1 +Concat Concat_170 2 1 onnx::Concat_621 onnx::Concat_631 input.376 +Split splitncnn_2 1 3 input.376 input.376_splitncnn_0 input.376_splitncnn_1 input.376_splitncnn_2 +ConvolutionDepthWise Conv_171 1 1 input.376_splitncnn_2 input.384 0=96 1=3 3=2 4=1 5=1 6=864 7=96 +Convolution Conv_172 1 1 input.384 onnx::Concat_637 0=96 1=1 5=1 6=9216 9=1 +Convolution Conv_174 1 1 input.376_splitncnn_1 onnx::Conv_640 0=96 1=1 5=1 6=9216 9=1 +ConvolutionDepthWise Conv_176 1 1 onnx::Conv_640 input.408 0=96 1=3 3=2 4=1 5=1 6=864 7=96 +Convolution Conv_177 1 1 input.408 onnx::Concat_645 0=96 1=1 5=1 6=9216 9=1 +Concat Concat_179 2 1 onnx::Concat_637 onnx::Concat_645 old_x.39 +ShuffleChannel Reshape_184 1 1 old_x.39 onnx::Gather_651 0=2 1=1 +Slice Gather_188 1 2 onnx::Gather_651 onnx::Concat_653 input.420 -23300=2,-233,-233 +Convolution Conv_189 1 1 input.420 onnx::Conv_658 0=96 1=1 5=1 6=9216 9=1 +ConvolutionDepthWise Conv_191 1 1 onnx::Conv_658 input.436 0=96 1=3 4=1 5=1 6=864 7=96 +Convolution Conv_192 1 1 input.436 onnx::Concat_663 0=96 1=1 5=1 6=9216 9=1 +Concat Concat_194 2 1 onnx::Concat_653 onnx::Concat_663 old_x.43 +ShuffleChannel Reshape_199 1 1 old_x.43 onnx::Gather_669 0=2 1=1 +Slice Gather_203 1 2 onnx::Gather_669 onnx::Concat_671 input.448 -23300=2,-233,-233 +Convolution Conv_204 1 1 input.448 onnx::Conv_676 0=96 1=1 5=1 6=9216 9=1 +ConvolutionDepthWise Conv_206 1 1 onnx::Conv_676 input.464 0=96 1=3 4=1 5=1 6=864 7=96 +Convolution Conv_207 1 1 input.464 onnx::Concat_681 0=96 1=1 5=1 6=9216 9=1 +Concat Concat_209 2 1 onnx::Concat_671 onnx::Concat_681 old_x.47 +ShuffleChannel Reshape_214 1 1 old_x.47 onnx::Gather_687 0=2 1=1 +Slice Gather_218 1 2 onnx::Gather_687 onnx::Concat_689 input.476 -23300=2,-233,-233 +Convolution Conv_219 1 1 input.476 onnx::Conv_694 0=96 1=1 5=1 6=9216 9=1 +ConvolutionDepthWise Conv_221 1 1 onnx::Conv_694 input.492 0=96 1=3 4=1 5=1 6=864 7=96 +Convolution Conv_222 1 1 input.492 onnx::Concat_699 0=96 1=1 5=1 6=9216 9=1 +Concat Concat_224 2 1 onnx::Concat_689 onnx::Concat_699 input.504 +Interp Resize_226 1 1 input.504 onnx::Concat_705 0=1 1=2.000000e+00 2=2.000000e+00 +Padding Pad_228 1 1 input.136_splitncnn_0 onnx::AveragePool_707 0=1 1=1 2=1 3=1 +Pooling AveragePool_229 1 1 onnx::AveragePool_707 onnx::Concat_708 0=1 1=3 2=2 5=1 +Concat Concat_230 3 1 onnx::Concat_708 input.376_splitncnn_0 onnx::Concat_705 input.508 +Convolution Conv_231 1 1 input.508 onnx::Conv_712 0=96 1=1 5=1 6=32256 9=1 +Split splitncnn_3 1 4 onnx::Conv_712 onnx::Conv_712_splitncnn_0 onnx::Conv_712_splitncnn_1 onnx::Conv_712_splitncnn_2 onnx::Conv_712_splitncnn_3 +ConvolutionDepthWise Conv_233 1 1 onnx::Conv_712_splitncnn_3 onnx::Concat_715 0=96 1=5 4=2 5=1 6=2400 7=96 9=1 +ConvolutionDepthWise Conv_235 1 1 onnx::Conv_712_splitncnn_2 onnx::Conv_718 0=96 1=5 4=2 5=1 6=2400 7=96 9=1 +ConvolutionDepthWise Conv_237 1 1 onnx::Conv_718 onnx::Concat_721 0=96 1=5 4=2 5=1 6=2400 7=96 9=1 +ConvolutionDepthWise Conv_239 1 1 onnx::Conv_712_splitncnn_1 onnx::Conv_724 0=96 1=5 4=2 5=1 6=2400 7=96 9=1 +ConvolutionDepthWise Conv_241 1 1 onnx::Conv_724 onnx::Conv_727 0=96 1=5 4=2 5=1 6=2400 7=96 9=1 +ConvolutionDepthWise Conv_243 1 1 onnx::Conv_727 onnx::Concat_730 0=96 1=5 4=2 5=1 6=2400 7=96 9=1 +Concat Concat_245 3 1 onnx::Concat_715 onnx::Concat_721 onnx::Concat_730 input.568 +Convolution Conv_246 1 1 input.568 onnx::Add_945 0=96 1=1 5=1 6=27648 +BinaryOp Add_247 2 1 onnx::Conv_712_splitncnn_0 onnx::Add_945 input.576 +ReLU Relu_248 1 1 input.576 onnx::Conv_735 +Convolution Conv_249 1 1 onnx::Conv_735 onnx::Conv_738 0=96 1=1 5=1 6=9216 9=1 +Split splitncnn_4 1 3 onnx::Conv_738 onnx::Conv_738_splitncnn_0 onnx::Conv_738_splitncnn_1 onnx::Conv_738_splitncnn_2 +ConvolutionDepthWise Conv_251 1 1 onnx::Conv_738_splitncnn_2 onnx::Conv_741 0=96 1=5 4=2 5=1 6=2400 7=96 9=1 +Convolution Conv_253 1 1 onnx::Conv_741 onnx::Concat_744 0=1 1=1 5=1 6=96 9=4 +ConvolutionDepthWise Conv_255 1 1 onnx::Conv_738_splitncnn_1 onnx::Conv_747 0=96 1=5 4=2 5=1 6=2400 7=96 9=1 +Convolution Conv_257 1 1 onnx::Conv_747 onnx::Concat_960 0=4 1=1 5=1 6=384 +ConvolutionDepthWise Conv_258 1 1 onnx::Conv_738_splitncnn_0 onnx::Conv_752 0=96 1=5 4=2 5=1 6=2400 7=96 9=1 +Convolution Conv_260 1 1 onnx::Conv_752 input.624 0=80 1=1 5=1 6=7680 +Permute Transpose_261 1 1 input.624 onnx::Softmax_755 0=5 +Softmax Softmax_262 1 1 onnx::Softmax_755 onnx::Transpose_756 0=2 1=1 +Permute Transpose_263 1 1 onnx::Transpose_756 onnx::Concat_757 0=5 +Concat Concat_264 3 1 onnx::Concat_744 onnx::Concat_960 onnx::Concat_757 758 diff --git a/example/ncnn/result.jpg b/example/ncnn/result.jpg index ced29e3..06eb8fd 100644 Binary files a/example/ncnn/result.jpg and b/example/ncnn/result.jpg differ