FastestDetV2 [中文]
🔥🔥Even faster and stronger than FastestDet🔥🔥
🔥🔥比FastestDet更快更强🔥🔥
- ⚡2.5% mAP50 & 1% mAP50:95 improvement, with ~20% faster speed compared to FastestDet
- Assign Guidance Module and SimOTA label assignment for better precision
- Quantization-aware, reparameterizable MobileOne backbone and convolution modules
- ⚡相比FastestDet,mAP50提升2.5%,mAP50:95提升1%,同时速度提升约20%
- 采用Assign Guidance Module和SimOTA标签分配策略,以获得更好的精度
- 基于支持量化感知训练、可重参数化的MobileOne骨干网络和卷积模块
| Model | mAP50 | mAP50:95 | Resolution | Inference time (4x core) | Inference time (1x core) | Params (M) |
|---|---|---|---|---|---|---|
| FastestDetV2 | 27.8% | 14.0% | 352X352 | 2.83ms | 6.95ms | 0.33M |
| FastestDetV2-2x | 36.6% | 19.9% | 352X352 | 6.81ms | 19.88ms | 1.22M |
| FastestDet | 25.3% | 13.0% | 352X352 | 3.68ms | 8.48ms | 0.24M |
| NanoDet-m | - | 20.6% | 320X320 | 7.76ms | 22.23ms | 0.95M |
| YOLOX-Nano | - | 25.8% | 416X416 | 36.88ms | 92.52ms | 0.91M |
| YOLOv8n | 56.8% | 37.4% | 640X640 | 57.03ms | 122.63ms | 7.2M |
Tested on EmbedFire LubanCat-4 RK3588S ARM 4*Cortex-A76 CPU@2.0GHz, using NCNN.
| Device | Computing backend | System | Framework | Inference time (4x core) | Inference time (1x core) | 2x Inference time (4x core) | 2x Inference time (1x core) |
|---|---|---|---|---|---|---|---|
| EmbedFire LubanCat-4 | RK3588 (CPU) 1 | Linux (arm64) | NCNN | 2.83ms | 6.95ms | 6.81ms | 19.88ms |
| EmbedFire LubanCat-4 | RK3588 (NPU) | Linux (arm64) | RKNN | 7.067ms 2 | 7.532ms | 8.04ms 3 | 9.56ms |
| Google Pixel 10 Pro XL | Tensor G5 (CPU) | Android (arm64) | NCNN | 2.69ms | 3.88ms | 4.66ms | 6.26ms |
| OnePlus 6 | Snapdragon 845 (CPU) | Android (arm64) | NCNN | 4.73ms | 8.14ms | 11.56ms | 17.84ms |
| Dell Precision 3630 Tower | Core i9-9900 (CPU) 4 | Linux (x86_64) | NCNN | 2.90m | 7.31ms | 6.86ms | 19.94ms |
1: At 2.0 GHz.
2, 3: RKNNLite.NPU_CORE_0_1_2 is used.
4: At 800MHz.
| Download | Note |
|---|---|
| fastestdetv2.pth, fastestdetv2_unfused.pth fastestdetv2-2x.pth, fastestdetv2-2x_unfused.pth |
Model weights |
| qamobileone.pth qamobileone-2x.pth |
Backbone weights |
| fastestdetv2.apk | Android demo |
| fastestdetv2.bin, fastestdetv2.param fastestdetv2-2x.bin, fastestdetv2-2x.param |
NCNN files |
| fastestdetv2.rknn fastestdetv2-2x.rknn |
RKNN files |
| fastestdetv2.onnx fastestdetv2-2x.onnx |
ONNX files |
| fastestdetv2.pt, fastestdetv2_ptq.arm.pt, fastestdetv2_ptq.x86.pt fastestdetv2-2x.pt, fastestdetv2-2x_ptq.arm.pt, fastestdetv2-2x_ptq.x86.pt |
TorchScript files |
pip install -r requirements.txtDatasets can be either in Darknet format (like FastestDet, using a text file to list image paths, with labels stored in separate .txt files in the same directory) or in YOLO format (like YOLOv8, where each image has a corresponding .txt label file in a seperate directory). Labels are in cls cx cy w h normalized bboxes.
The .yaml configurations file specifies dataset paths, model settings, and training hyperparameters. Dataset could be either in Darknet format or YOLO format. Class names can also be in a single text file with each line representing a class name. See configs/coco.yaml for example.
You can evaluate the model with a fused (reparameterized) model weights file.
python3 eval.py --configs CONFIGS_PATH --weight WEIGHTS_PATHOr test it on an image:
python3 test.py --configs CONFIGS_PATH --weights WEIGHTS_PATH --image IMAGE_PATHDownload the backbone weights and place it under weights/qamobileone.pth and weights/qamobileone-2x.pth, and run:
python3 train.py --configs CONFIGS_PATHOr finetune it with an unfused weights file:
python3 train.py --configs CONFIGS_PATH --weights WEIGHTS_PATHExport to ONNX and TorchScript format with:
python3 test.py --configs CONFIGS_PATH --weights WEIGHTS_PATH --exportPost-training quantization for x86 (with X86InductorQuantizer) or arm (with XNNPackQuantizer) platforms, with fused weights:
python3 quant.py --configs CONFIGS_PATH --weights WEIGHTS_PATH --image IMAGE_PATH --target TARGET_PLATFORMFollow deploy/ncnn/README.md or deploy/ncnn_android/README.md (for Android).
Follow deploy/rknn/README.md.
@misc{=FastestDetV2,
title={FastestDetV2: Even faster and stronger than FastestDet},
author={Pairman},
howpublished = {\url{https://github.com/Pairman/FastestDetV2}},
year={2025}
}
- FastestDet: https://github.com/dog-qiuqiu/FastestDet
- Assign Guidance Module and NCNN deployment: https://github.com/RangiLyu/nanodet
- MobileOne: https://github.com/apple/ml-mobileone and https://github.com/glory-wan/TF-Net
- Quantization-aware RepConv: https://github.com/meituan/YOLOv6
- SimOTA label assignment: https://github.com/open-mmlab/mmyolo
- NCNN: https://github.com/Tencent/ncnn

