如何部署 YOLO11n
在本教程中,我们介绍如何使用 ESP-PPQ 对预训练的 YOLO11n 模型进行量化,并使用 ESP-DL 部署量化后的 YOLO11n 模型。
准备工作
模型量化
预训练模型
你可以从 Ultralytics release 下载预训练的 yolo11n 模型。
目前ESP-PPQ支持 ONNX、PyTorch、TensorFlow 模型。在量化过程中,PyTorch 和 TensorFlow 会先转化为 ONNX 模型,因此将与训练的 yolo11n 转化成ONNX模型。
具体来说,参考脚本: export_onnx.py 将预训练的 yolo11n 模型转换为 ONNX 模型。
在该脚本中,我们重载了 Detect 类的 forward 方法,具有以下优势:
更快的推理速度。 与原始的 yolo11n 模型相比, 将推理过程中 Detect 里与解码边界框相关的操作移至后处理中完成, 从而显著减少了推理延迟。一方面,
Conv,Transpose,Slice,Split和Concat操作在推理过程中运行是非常耗时的。另一方面,在后处理阶段,模型推理的输出首先进行置信度筛选,然后再解码边界框,这大大减少了计算量,从而加快了整体推理速度。更低的量化误差。 ESP-PPQ中的
Concat和Add操作采用了联合量化。为了减少量化误差,由于 box 和 score 的范围差异较大,它们通过不同的分支输出,而不是拼接在一起。类似地,由于Add和Sub的输入的范围差异较大,相关计算被移到了后处理中进行,避免被量化。
校准数据集
校准数据集需要和模型输入格式一致,同时尽可能覆盖模型输入的所有可能情况,以便更好地量化模型。本示例中,我们使用的校准集为 calib_yolo11n 。
8bit 后量化
下面的量化设置通过AutoQuant搜索得到。 要使用AutoQuant,请更新esp-ppq为最新版本并参考 教程。
ESP32-P4 量化设置
quant_setting = QuantizationSettingFactory.espdl_setting()
quant_setting.quantize_activation_setting.calib_algorithm = 'percentile'
quant_setting.bias_correct = True
quant_setting.bias_correct_setting.interested_layers = []
quant_setting.bias_correct_setting.block_size = 4
quant_setting.bias_correct_setting.steps = 32
quant_setting.tqt_optimization = True
tqt_setting = quant_setting.tqt_optimization_setting
tqt_setting.lr = 1e-5
tqt_setting.steps = 500
tqt_setting.block_size = 4
tqt_setting.is_scale_trainable = True
tqt_setting.gamma = 0.0
tqt_setting.int_lambda = 0.0
tqt_setting.collecting_device = 'cuda'
ESP32-P4 量化误差
Analysing Graphwise Quantization Error(Phrase 2):: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 4.59it/s]
Layer | NOISE:SIGNAL POWER RATIO
/model.3/conv/Conv: | ████████████████████ | 6.440%
/model.2/cv2/conv/Conv: | ███████████████████ | 6.035%
/model.2/m.0/cv2/conv/Conv: | █████████████████ | 5.410%
/model.6/m.0/cv2/conv/Conv: | █████████████████ | 5.329%
/model.10/m/m.0/attn/proj/conv/Conv: | ████████████████ | 5.175%
/model.23/cv2.0/cv2.0.1/conv/Conv: | ██████████████ | 4.425%
/model.4/m.0/cv1/conv/Conv: | ██████████████ | 4.371%
/model.10/m/m.0/ffn/ffn.1/conv/Conv: | █████████████ | 4.270%
/model.4/cv2/conv/Conv: | █████████████ | 4.266%
/model.6/cv1/conv/Conv: | █████████████ | 4.050%
/model.8/m.0/cv2/conv/Conv: | ███████████ | 3.640%
/model.6/m.0/cv3/conv/Conv: | ███████████ | 3.530%
/model.5/conv/Conv: | ███████████ | 3.420%
/model.4/cv1/conv/Conv: | ██████████ | 3.341%
/model.6/cv2/conv/Conv: | ██████████ | 3.242%
/model.6/m.0/m/m.0/cv1/conv/Conv: | ██████████ | 3.111%
/model.23/cv2.1/cv2.1.1/conv/Conv: | █████████ | 3.045%
/model.2/cv1/conv/Conv: | █████████ | 2.928%
/model.23/cv3.0/cv3.0.1/cv3.0.1.1/conv/Conv: | ████████ | 2.712%
/model.8/cv1/conv/Conv: | ████████ | 2.700%
/model.2/m.0/cv1/conv/Conv: | ████████ | 2.677%
/model.1/conv/Conv: | ████████ | 2.523%
/model.23/cv2.1/cv2.1.0/conv/Conv: | ████████ | 2.514%
/model.6/m.0/m/m.0/cv2/conv/Conv: | ████████ | 2.474%
/model.23/cv2.0/cv2.0.0/conv/Conv: | ███████ | 2.404%
/model.6/m.0/m/m.1/cv1/conv/Conv: | ███████ | 2.325%
/model.10/m/m.0/attn/pe/conv/Conv: | ███████ | 2.323%
/model.7/conv/Conv: | ███████ | 2.322%
/model.23/cv3.1/cv3.1.1/cv3.1.1.1/conv/Conv: | ███████ | 2.317%
/model.6/m.0/cv1/conv/Conv: | ███████ | 2.279%
/model.4/m.0/cv2/conv/Conv: | ███████ | 2.273%
/model.19/m.0/cv2/conv/Conv: | ███████ | 2.273%
/model.16/m.0/cv2/conv/Conv: | ███████ | 2.259%
/model.16/m.0/cv1/conv/Conv: | ███████ | 2.122%
/model.8/m.0/cv1/conv/Conv: | ██████ | 2.061%
/model.23/cv3.0/cv3.0.0/cv3.0.0.1/conv/Conv: | ██████ | 2.031%
/model.13/m.0/cv2/conv/Conv: | ██████ | 1.982%
/model.10/m/m.0/attn/qkv/conv/Conv: | ██████ | 1.969%
/model.10/cv1/conv/Conv: | ██████ | 1.939%
/model.19/cv2/conv/Conv: | ██████ | 1.879%
/model.8/m.0/m/m.0/cv1/conv/Conv: | ██████ | 1.868%
/model.23/cv3.2/cv3.2.1/cv3.2.1.1/conv/Conv: | ██████ | 1.861%
/model.8/cv2/conv/Conv: | ██████ | 1.835%
/model.17/conv/Conv: | ██████ | 1.819%
/model.19/cv1/conv/Conv: | █████ | 1.773%
/model.16/cv2/conv/Conv: | █████ | 1.750%
/model.23/cv3.1/cv3.1.0/cv3.1.0.1/conv/Conv: | █████ | 1.740%
/model.22/m.0/cv2/conv/Conv: | █████ | 1.730%
/model.19/m.0/cv1/conv/Conv: | █████ | 1.706%
/model.23/cv2.0/cv2.0.2/Conv: | █████ | 1.661%
/model.13/cv1/conv/Conv: | █████ | 1.635%
/model.20/conv/Conv: | █████ | 1.635%
/model.13/m.0/cv1/conv/Conv: | █████ | 1.613%
/model.13/cv2/conv/Conv: | █████ | 1.594%
/model.23/cv2.2/cv2.2.0/conv/Conv: | █████ | 1.560%
/model.23/cv3.2/cv3.2.0/cv3.2.0.1/conv/Conv: | █████ | 1.538%
/model.6/m.0/m/m.1/cv2/conv/Conv: | █████ | 1.513%
/model.23/cv3.2/cv3.2.0/cv3.2.0.0/conv/Conv: | █████ | 1.511%
/model.22/cv1/conv/Conv: | ████ | 1.456%
/model.8/m.0/m/m.0/cv2/conv/Conv: | ████ | 1.453%
/model.22/cv2/conv/Conv: | ████ | 1.384%
/model.16/cv1/conv/Conv: | ████ | 1.345%
/model.8/m.0/m/m.1/cv1/conv/Conv: | ████ | 1.336%
/model.8/m.0/cv3/conv/Conv: | ████ | 1.329%
/model.23/cv2.2/cv2.2.1/conv/Conv: | ████ | 1.288%
/model.10/m/m.0/attn/MatMul: | ████ | 1.260%
/model.22/m.0/cv3/conv/Conv: | ███ | 1.117%
/model.10/cv2/conv/Conv: | ███ | 1.094%
/model.23/cv2.1/cv2.1.2/Conv: | ███ | 1.045%
/model.22/m.0/m/m.0/cv1/conv/Conv: | ███ | 1.025%
/model.22/m.0/m/m.0/cv2/conv/Conv: | ███ | 0.999%
/model.10/m/m.0/attn/MatMul_1: | ███ | 0.984%
/model.22/m.0/m/m.1/cv2/conv/Conv: | ███ | 0.889%
/model.23/cv3.1/cv3.1.0/cv3.1.0.0/conv/Conv: | ███ | 0.864%
/model.8/m.0/m/m.1/cv2/conv/Conv: | ███ | 0.839%
/model.9/cv2/conv/Conv: | ██ | 0.800%
/model.23/cv3.2/cv3.2.1/cv3.2.1.0/conv/Conv: | ██ | 0.761%
/model.23/cv3.1/cv3.1.1/cv3.1.1.0/conv/Conv: | ██ | 0.759%
/model.22/m.0/cv1/conv/Conv: | ██ | 0.750%
/model.22/m.0/m/m.1/cv1/conv/Conv: | ██ | 0.705%
/model.23/cv3.0/cv3.0.1/cv3.0.1.0/conv/Conv: | ██ | 0.677%
/model.10/m/m.0/ffn/ffn.0/conv/Conv: | ██ | 0.669%
/model.23/cv2.2/cv2.2.2/Conv: | █ | 0.434%
/model.9/cv1/conv/Conv: | █ | 0.390%
/model.23/cv3.0/cv3.0.0/cv3.0.0.0/conv/Conv: | █ | 0.341%
/model.0/conv/Conv: | | 0.157%
/model.23/cv3.2/cv3.2.2/Conv: | | 0.079%
/model.23/cv3.1/cv3.1.2/Conv: | | 0.068%
/model.23/cv3.0/cv3.0.2/Conv: | | 0.038%
Analysing Layerwise quantization error:: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 89/89 [00:12<00:00, 7.30it/s]
Layer | NOISE:SIGNAL POWER RATIO
/model.1/conv/Conv: | ████████████████████ | 0.712%
/model.0/conv/Conv: | ███████████████ | 0.521%
/model.3/conv/Conv: | ██████████ | 0.369%
/model.2/cv2/conv/Conv: | █████ | 0.181%
/model.4/m.0/cv1/conv/Conv: | ███ | 0.120%
/model.2/cv1/conv/Conv: | ███ | 0.101%
/model.4/m.0/cv2/conv/Conv: | ███ | 0.095%
/model.2/m.0/cv1/conv/Conv: | ██ | 0.071%
/model.4/cv1/conv/Conv: | ██ | 0.069%
/model.5/conv/Conv: | █ | 0.052%
/model.4/cv2/conv/Conv: | █ | 0.045%
/model.7/conv/Conv: | █ | 0.036%
/model.10/cv2/conv/Conv: | █ | 0.029%
/model.9/cv2/conv/Conv: | █ | 0.029%
/model.6/cv1/conv/Conv: | █ | 0.027%
/model.2/m.0/cv2/conv/Conv: | █ | 0.026%
/model.13/cv1/conv/Conv: | █ | 0.024%
/model.6/cv2/conv/Conv: | █ | 0.022%
/model.10/cv1/conv/Conv: | █ | 0.021%
/model.10/m/m.0/attn/pe/conv/Conv: | | 0.017%
/model.8/cv2/conv/Conv: | | 0.017%
/model.16/cv1/conv/Conv: | | 0.016%
/model.13/cv2/conv/Conv: | | 0.015%
/model.23/cv2.2/cv2.2.0/conv/Conv: | | 0.015%
/model.19/m.0/cv1/conv/Conv: | | 0.012%
/model.23/cv2.0/cv2.0.0/conv/Conv: | | 0.012%
/model.9/cv1/conv/Conv: | | 0.011%
/model.16/cv2/conv/Conv: | | 0.011%
/model.13/m.0/cv1/conv/Conv: | | 0.010%
/model.19/cv2/conv/Conv: | | 0.010%
/model.23/cv2.1/cv2.1.0/conv/Conv: | | 0.010%
/model.22/m.0/m/m.1/cv1/conv/Conv: | | 0.009%
/model.10/m/m.0/attn/proj/conv/Conv: | | 0.009%
/model.10/m/m.0/ffn/ffn.0/conv/Conv: | | 0.008%
/model.23/cv2.2/cv2.2.1/conv/Conv: | | 0.008%
/model.8/cv1/conv/Conv: | | 0.008%
/model.22/m.0/cv1/conv/Conv: | | 0.007%
/model.19/m.0/cv2/conv/Conv: | | 0.007%
/model.19/cv1/conv/Conv: | | 0.007%
/model.16/m.0/cv1/conv/Conv: | | 0.006%
/model.16/m.0/cv2/conv/Conv: | | 0.006%
/model.10/m/m.0/attn/qkv/conv/Conv: | | 0.006%
/model.13/m.0/cv2/conv/Conv: | | 0.006%
/model.22/cv1/conv/Conv: | | 0.006%
/model.23/cv2.2/cv2.2.2/Conv: | | 0.006%
/model.23/cv2.0/cv2.0.2/Conv: | | 0.005%
/model.22/m.0/m/m.0/cv2/conv/Conv: | | 0.005%
/model.8/m.0/cv1/conv/Conv: | | 0.005%
/model.23/cv2.1/cv2.1.2/Conv: | | 0.005%
/model.6/m.0/m/m.0/cv1/conv/Conv: | | 0.005%
/model.6/m.0/m/m.1/cv1/conv/Conv: | | 0.005%
/model.8/m.0/m/m.1/cv1/conv/Conv: | | 0.004%
/model.8/m.0/m/m.0/cv1/conv/Conv: | | 0.004%
/model.6/m.0/m/m.0/cv2/conv/Conv: | | 0.004%
/model.20/conv/Conv: | | 0.004%
/model.10/m/m.0/ffn/ffn.1/conv/Conv: | | 0.004%
/model.22/cv2/conv/Conv: | | 0.004%
/model.23/cv2.1/cv2.1.1/conv/Conv: | | 0.004%
/model.23/cv2.0/cv2.0.1/conv/Conv: | | 0.004%
/model.17/conv/Conv: | | 0.004%
/model.8/m.0/m/m.0/cv2/conv/Conv: | | 0.004%
/model.6/m.0/cv3/conv/Conv: | | 0.003%
/model.6/m.0/cv1/conv/Conv: | | 0.003%
/model.23/cv3.1/cv3.1.1/cv3.1.1.1/conv/Conv: | | 0.003%
/model.22/m.0/m/m.0/cv1/conv/Conv: | | 0.003%
/model.6/m.0/m/m.1/cv2/conv/Conv: | | 0.003%
/model.22/m.0/m/m.1/cv2/conv/Conv: | | 0.002%
/model.22/m.0/cv3/conv/Conv: | | 0.002%
/model.23/cv3.2/cv3.2.0/cv3.2.0.1/conv/Conv: | | 0.002%
/model.8/m.0/m/m.1/cv2/conv/Conv: | | 0.002%
/model.8/m.0/cv3/conv/Conv: | | 0.002%
/model.10/m/m.0/attn/MatMul_1: | | 0.002%
/model.23/cv3.2/cv3.2.1/cv3.2.1.0/conv/Conv: | | 0.001%
/model.23/cv3.1/cv3.1.1/cv3.1.1.0/conv/Conv: | | 0.001%
/model.23/cv3.1/cv3.1.2/Conv: | | 0.001%
/model.23/cv3.0/cv3.0.1/cv3.0.1.0/conv/Conv: | | 0.001%
/model.23/cv3.2/cv3.2.2/Conv: | | 0.001%
/model.23/cv3.0/cv3.0.0/cv3.0.0.1/conv/Conv: | | 0.001%
/model.23/cv3.2/cv3.2.1/cv3.2.1.1/conv/Conv: | | 0.001%
/model.23/cv3.2/cv3.2.0/cv3.2.0.0/conv/Conv: | | 0.001%
/model.23/cv3.0/cv3.0.2/Conv: | | 0.001%
/model.23/cv3.1/cv3.1.0/cv3.1.0.1/conv/Conv: | | 0.000%
/model.10/m/m.0/attn/MatMul: | | 0.000%
/model.23/cv3.1/cv3.1.0/cv3.1.0.0/conv/Conv: | | 0.000%
/model.8/m.0/cv2/conv/Conv: | | 0.000%
/model.23/cv3.0/cv3.0.0/cv3.0.0.0/conv/Conv: | | 0.000%
/model.6/m.0/cv2/conv/Conv: | | 0.000%
/model.23/cv3.0/cv3.0.1/cv3.0.1.1/conv/Conv: | | 0.000%
/model.22/m.0/cv2/conv/Conv: | | 0.000%
ESP32-P4 量化结果
在相同输入下,量化后的模型在 COCO val2017 上的 mAP50-95 为0.373,略低于浮点模型精度。
ESP32-S3 量化设置
quant_setting = QuantizationSettingFactory.espdl_setting()
quant_setting.quantize_activation_setting.calib_algorithm = 'percentile'
quant_setting.tqt_optimization = True
tqt_setting = quant_setting.tqt_optimization_setting
tqt_setting.lr = 1e-5
tqt_setting.steps = 800
tqt_setting.block_size = 4
tqt_setting.is_scale_trainable = True
tqt_setting.gamma = 0.0
tqt_setting.int_lambda = 0.0
tqt_setting.collecting_device = 'cuda'
ESP32-S3 量化误差
Analysing Graphwise Quantization Error(Phrase 2):: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 4.25it/s]
Layer | NOISE:SIGNAL POWER RATIO
/model.3/conv/Conv: | ████████████████████ | 7.039%
/model.2/cv2/conv/Conv: | █████████████████ | 5.965%
/model.10/m/m.0/attn/proj/conv/Conv: | █████████████████ | 5.887%
/model.2/m.0/cv2/conv/Conv: | ████████████████ | 5.726%
/model.6/m.0/cv2/conv/Conv: | ████████████████ | 5.483%
/model.4/m.0/cv1/conv/Conv: | ██████████████ | 4.815%
/model.23/cv2.0/cv2.0.1/conv/Conv: | ██████████████ | 4.815%
/model.10/m/m.0/ffn/ffn.1/conv/Conv: | █████████████ | 4.569%
/model.4/cv2/conv/Conv: | ████████████ | 4.377%
/model.6/cv1/conv/Conv: | ███████████ | 4.048%
/model.6/m.0/cv3/conv/Conv: | ███████████ | 3.755%
/model.8/m.0/cv2/conv/Conv: | ██████████ | 3.517%
/model.4/cv1/conv/Conv: | ██████████ | 3.507%
/model.5/conv/Conv: | ██████████ | 3.495%
/model.23/cv3.0/cv3.0.1/cv3.0.1.1/conv/Conv: | ██████████ | 3.472%
/model.23/cv3.1/cv3.1.1/cv3.1.1.1/conv/Conv: | ██████████ | 3.460%
/model.6/cv2/conv/Conv: | ██████████ | 3.369%
/model.23/cv2.1/cv2.1.1/conv/Conv: | █████████ | 3.262%
/model.6/m.0/m/m.0/cv1/conv/Conv: | █████████ | 3.243%
/model.2/cv1/conv/Conv: | ████████ | 2.904%
/model.23/cv2.1/cv2.1.0/conv/Conv: | ████████ | 2.770%
/model.8/cv1/conv/Conv: | ████████ | 2.730%
/model.23/cv3.0/cv3.0.0/cv3.0.0.1/conv/Conv: | ████████ | 2.706%
/model.10/m/m.0/attn/pe/conv/Conv: | ████████ | 2.671%
/model.23/cv2.0/cv2.0.0/conv/Conv: | ███████ | 2.626%
/model.6/m.0/m/m.0/cv2/conv/Conv: | ███████ | 2.595%
/model.7/conv/Conv: | ███████ | 2.547%
/model.1/conv/Conv: | ███████ | 2.519%
/model.19/m.0/cv2/conv/Conv: | ███████ | 2.476%
/model.6/m.0/m/m.1/cv1/conv/Conv: | ███████ | 2.471%
/model.4/m.0/cv2/conv/Conv: | ███████ | 2.422%
/model.16/m.0/cv2/conv/Conv: | ███████ | 2.412%
/model.6/m.0/cv1/conv/Conv: | ███████ | 2.371%
/model.16/m.0/cv1/conv/Conv: | ███████ | 2.334%
/model.10/m/m.0/attn/qkv/conv/Conv: | ██████ | 2.159%
/model.23/cv3.1/cv3.1.0/cv3.1.0.1/conv/Conv: | ██████ | 2.150%
/model.10/cv1/conv/Conv: | ██████ | 2.135%
/model.23/cv2.2/cv2.2.0/conv/Conv: | ██████ | 2.123%
/model.13/m.0/cv2/conv/Conv: | ██████ | 2.073%
/model.22/m.0/cv2/conv/Conv: | ██████ | 2.059%
/model.8/m.0/cv1/conv/Conv: | ██████ | 2.053%
/model.19/cv2/conv/Conv: | ██████ | 2.049%
/model.23/cv3.2/cv3.2.1/cv3.2.1.1/conv/Conv: | ██████ | 2.041%
/model.13/cv2/conv/Conv: | ██████ | 2.027%
/model.17/conv/Conv: | ██████ | 2.001%
/model.16/cv2/conv/Conv: | █████ | 1.968%
/model.8/m.0/m/m.0/cv1/conv/Conv: | █████ | 1.916%
/model.8/cv2/conv/Conv: | █████ | 1.888%
/model.23/cv2.0/cv2.0.2/Conv: | █████ | 1.870%
/model.19/m.0/cv1/conv/Conv: | █████ | 1.847%
/model.19/cv1/conv/Conv: | █████ | 1.846%
/model.22/cv1/conv/Conv: | █████ | 1.725%
/model.23/cv3.2/cv3.2.0/cv3.2.0.1/conv/Conv: | █████ | 1.716%
/model.20/conv/Conv: | █████ | 1.710%
/model.23/cv3.2/cv3.2.0/cv3.2.0.0/conv/Conv: | █████ | 1.681%
/model.13/cv1/conv/Conv: | █████ | 1.669%
/model.2/m.0/cv1/conv/Conv: | █████ | 1.646%
/model.13/m.0/cv1/conv/Conv: | █████ | 1.641%
/model.6/m.0/m/m.1/cv2/conv/Conv: | █████ | 1.639%
/model.22/cv2/conv/Conv: | ████ | 1.524%
/model.8/m.0/m/m.0/cv2/conv/Conv: | ████ | 1.489%
/model.16/cv1/conv/Conv: | ████ | 1.457%
/model.8/m.0/cv3/conv/Conv: | ████ | 1.422%
/model.10/m/m.0/attn/MatMul: | ████ | 1.387%
/model.8/m.0/m/m.1/cv1/conv/Conv: | ████ | 1.369%
/model.23/cv2.2/cv2.2.1/conv/Conv: | ████ | 1.275%
/model.22/m.0/cv3/conv/Conv: | ███ | 1.259%
/model.10/m/m.0/attn/MatMul_1: | ███ | 1.195%
/model.10/cv2/conv/Conv: | ███ | 1.190%
/model.23/cv2.1/cv2.1.2/Conv: | ███ | 1.143%
/model.9/cv2/conv/Conv: | ███ | 1.026%
/model.22/m.0/m/m.1/cv2/conv/Conv: | ███ | 0.995%
/model.22/m.0/m/m.0/cv2/conv/Conv: | ███ | 0.994%
/model.22/m.0/m/m.0/cv1/conv/Conv: | ███ | 0.990%
/model.23/cv3.1/cv3.1.0/cv3.1.0.0/conv/Conv: | ███ | 0.977%
/model.8/m.0/m/m.1/cv2/conv/Conv: | ███ | 0.966%
/model.23/cv3.1/cv3.1.1/cv3.1.1.0/conv/Conv: | ███ | 0.964%
/model.23/cv3.0/cv3.0.1/cv3.0.1.0/conv/Conv: | ██ | 0.910%
/model.22/m.0/m/m.1/cv1/conv/Conv: | ██ | 0.768%
/model.10/m/m.0/ffn/ffn.0/conv/Conv: | ██ | 0.763%
/model.23/cv3.2/cv3.2.1/cv3.2.1.0/conv/Conv: | ██ | 0.752%
/model.22/m.0/cv1/conv/Conv: | ██ | 0.725%
/model.23/cv3.0/cv3.0.0/cv3.0.0.0/conv/Conv: | █ | 0.564%
/model.9/cv1/conv/Conv: | █ | 0.381%
/model.23/cv2.2/cv2.2.2/Conv: | █ | 0.363%
/model.0/conv/Conv: | | 0.172%
/model.23/cv3.1/cv3.1.2/Conv: | | 0.083%
/model.23/cv3.2/cv3.2.2/Conv: | | 0.079%
/model.23/cv3.0/cv3.0.2/Conv: | | 0.047%
Analysing Layerwise quantization error:: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 89/89 [00:12<00:00, 7.40it/s]
Layer | NOISE:SIGNAL POWER RATIO
/model.0/conv/Conv: | ████████████████████ | 0.451%
/model.1/conv/Conv: | ████████████████████ | 0.450%
/model.3/conv/Conv: | ██████████████████ | 0.402%
/model.2/cv2/conv/Conv: | ██████████████ | 0.312%
/model.9/cv2/conv/Conv: | ██████████ | 0.222%
/model.4/cv2/conv/Conv: | ████████ | 0.178%
/model.10/cv1/conv/Conv: | ███████ | 0.155%
/model.2/cv1/conv/Conv: | ██████ | 0.145%
/model.4/m.0/cv1/conv/Conv: | ██████ | 0.139%
/model.4/cv1/conv/Conv: | ██████ | 0.137%
/model.22/cv1/conv/Conv: | █████ | 0.119%
/model.5/conv/Conv: | █████ | 0.118%
/model.16/cv1/conv/Conv: | █████ | 0.118%
/model.4/m.0/cv2/conv/Conv: | █████ | 0.117%
/model.22/m.0/cv1/conv/Conv: | █████ | 0.104%
/model.2/m.0/cv1/conv/Conv: | ███ | 0.068%
/model.7/conv/Conv: | ███ | 0.057%
/model.13/cv2/conv/Conv: | ██ | 0.053%
/model.13/cv1/conv/Conv: | ██ | 0.047%
/model.16/cv2/conv/Conv: | ██ | 0.044%
/model.10/cv2/conv/Conv: | ██ | 0.043%
/model.6/cv2/conv/Conv: | ██ | 0.042%
/model.19/cv2/conv/Conv: | ██ | 0.041%
/model.6/cv1/conv/Conv: | ██ | 0.039%
/model.6/m.0/m/m.1/cv1/conv/Conv: | █ | 0.030%
/model.2/m.0/cv2/conv/Conv: | █ | 0.029%
/model.10/m/m.0/attn/qkv/conv/Conv: | █ | 0.029%
/model.10/m/m.0/attn/pe/conv/Conv: | █ | 0.027%
/model.8/cv2/conv/Conv: | █ | 0.027%
/model.19/cv1/conv/Conv: | █ | 0.026%
/model.19/m.0/cv1/conv/Conv: | █ | 0.025%
/model.22/m.0/m/m.1/cv1/conv/Conv: | █ | 0.025%
/model.10/m/m.0/ffn/ffn.0/conv/Conv: | █ | 0.024%
/model.23/cv2.1/cv2.1.0/conv/Conv: | █ | 0.023%
/model.16/m.0/cv1/conv/Conv: | █ | 0.021%
/model.23/cv2.0/cv2.0.0/conv/Conv: | █ | 0.021%
/model.13/m.0/cv2/conv/Conv: | █ | 0.020%
/model.9/cv1/conv/Conv: | █ | 0.020%
/model.23/cv2.2/cv2.2.0/conv/Conv: | █ | 0.019%
/model.10/m/m.0/attn/proj/conv/Conv: | █ | 0.018%
/model.8/cv1/conv/Conv: | █ | 0.017%
/model.16/m.0/cv2/conv/Conv: | █ | 0.017%
/model.22/cv2/conv/Conv: | █ | 0.015%
/model.13/m.0/cv1/conv/Conv: | █ | 0.014%
/model.6/m.0/cv3/conv/Conv: | █ | 0.013%
/model.20/conv/Conv: | █ | 0.012%
/model.22/m.0/cv3/conv/Conv: | | 0.011%
/model.23/cv2.2/cv2.2.1/conv/Conv: | | 0.011%
/model.17/conv/Conv: | | 0.011%
/model.19/m.0/cv2/conv/Conv: | | 0.010%
/model.23/cv2.2/cv2.2.2/Conv: | | 0.010%
/model.23/cv2.1/cv2.1.2/Conv: | | 0.009%
/model.8/m.0/cv3/conv/Conv: | | 0.009%
/model.8/m.0/cv1/conv/Conv: | | 0.009%
/model.23/cv2.0/cv2.0.2/Conv: | | 0.009%
/model.22/m.0/m/m.0/cv2/conv/Conv: | | 0.008%
/model.10/m/m.0/ffn/ffn.1/conv/Conv: | | 0.008%
/model.6/m.0/m/m.0/cv2/conv/Conv: | | 0.008%
/model.23/cv2.1/cv2.1.1/conv/Conv: | | 0.007%
/model.8/m.0/m/m.0/cv1/conv/Conv: | | 0.007%
/model.6/m.0/m/m.0/cv1/conv/Conv: | | 0.006%
/model.8/m.0/m/m.1/cv1/conv/Conv: | | 0.006%
/model.23/cv2.0/cv2.0.1/conv/Conv: | | 0.006%
/model.8/m.0/m/m.0/cv2/conv/Conv: | | 0.006%
/model.22/m.0/m/m.0/cv1/conv/Conv: | | 0.006%
/model.23/cv3.1/cv3.1.1/cv3.1.1.0/conv/Conv: | | 0.005%
/model.23/cv3.1/cv3.1.2/Conv: | | 0.004%
/model.6/m.0/m/m.1/cv2/conv/Conv: | | 0.004%
/model.6/m.0/cv1/conv/Conv: | | 0.004%
/model.23/cv3.0/cv3.0.0/cv3.0.0.1/conv/Conv: | | 0.004%
/model.23/cv3.2/cv3.2.0/cv3.2.0.1/conv/Conv: | | 0.004%
/model.23/cv3.1/cv3.1.0/cv3.1.0.1/conv/Conv: | | 0.004%
/model.8/m.0/m/m.1/cv2/conv/Conv: | | 0.003%
/model.23/cv3.1/cv3.1.1/cv3.1.1.1/conv/Conv: | | 0.003%
/model.22/m.0/m/m.1/cv2/conv/Conv: | | 0.003%
/model.23/cv3.2/cv3.2.1/cv3.2.1.0/conv/Conv: | | 0.003%
/model.23/cv3.0/cv3.0.0/cv3.0.0.0/conv/Conv: | | 0.002%
/model.10/m/m.0/attn/MatMul_1: | | 0.002%
/model.23/cv3.2/cv3.2.1/cv3.2.1.1/conv/Conv: | | 0.001%
/model.23/cv3.2/cv3.2.2/Conv: | | 0.001%
/model.23/cv3.0/cv3.0.1/cv3.0.1.0/conv/Conv: | | 0.001%
/model.23/cv3.0/cv3.0.2/Conv: | | 0.001%
/model.23/cv3.0/cv3.0.1/cv3.0.1.1/conv/Conv: | | 0.001%
/model.23/cv3.2/cv3.2.0/cv3.2.0.0/conv/Conv: | | 0.001%
/model.6/m.0/cv2/conv/Conv: | | 0.001%
/model.22/m.0/cv2/conv/Conv: | | 0.000%
/model.8/m.0/cv2/conv/Conv: | | 0.000%
/model.23/cv3.1/cv3.1.0/cv3.1.0.0/conv/Conv: | | 0.000%
/model.10/m/m.0/attn/MatMul: | | 0.000%
ESP32-S3 量化结果
在相同输入下, 量化后模型在 COCO val2017 上的 mAP50-95 为 0.37, 略低于ESP32-P4的量化结果。
备注
如果想要更快的模型推理速度,并且可以接受一定程度的精度损失,可以考虑在量化YOLO11N的时候将输入大小设置为320x320。不同分辨率下的模型推理速度可以在 README.md 中找到。
模型部署
目标检测基类
前处理
ImagePreprocessor 类中封装了常用的图像前处理流程,包括 color conversion, crop, resize, normalization, quantize。