From 582d3c25a19b8563098d0e677a5143a6bb25e988 Mon Sep 17 00:00:00 2001 From: ceci3 Date: Mon, 17 Feb 2020 15:41:59 +0800 Subject: [PATCH] add blazeface nas1 result based on latency (#235) * add blazeface_nas1 --- configs/face_detection/blazeface_nas_v2.yml | 131 ++++++++++++++++++++ docs/featured_model/FACE_DETECTION.md | 2 + docs/featured_model/FACE_DETECTION_en.md | 2 + 3 files changed, 135 insertions(+) create mode 100644 configs/face_detection/blazeface_nas_v2.yml diff --git a/configs/face_detection/blazeface_nas_v2.yml b/configs/face_detection/blazeface_nas_v2.yml new file mode 100644 index 000000000..aba386f4a --- /dev/null +++ b/configs/face_detection/blazeface_nas_v2.yml @@ -0,0 +1,131 @@ +architecture: BlazeFace +max_iters: 320000 +pretrain_weights: +use_gpu: true +snapshot_iter: 10000 +log_smooth_window: 20 +log_iter: 20 +metric: WIDERFACE +save_dir: output +weights: output/blazeface_nas/model_final/ +# 1(label_class) + 1(background) +num_classes: 2 + +BlazeFace: + backbone: BlazeNet + output_decoder: + keep_top_k: 750 + nms_threshold: 0.3 + nms_top_k: 5000 + score_threshold: 0.01 + min_sizes: [[16.,24.], [32., 48., 64., 80., 96., 128.]] + use_density_prior_box: false + +BlazeNet: + blaze_filters: [[12, 12], [12, 12, 2], [12, 12]] + double_blaze_filters: [[12, 16, 32, 2], [32, 32, 32], [32, 16, 72, 2], [72, 24, 72]] + with_extra_blocks: true + lite_edition: false + +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [240000, 300000] + +OptimizerBuilder: + optimizer: + momentum: 0.0 + type: RMSPropOptimizer + regularizer: + factor: 0.0005 + type: L2 + +TrainReader: + inputs_def: + image_shape: [3, 640, 640] + fields: ['image', 'gt_bbox', 'gt_class'] + dataset: + !WIDERFaceDataSet + dataset_dir: dataset/wider_face + anno_path: wider_face_split/wider_face_train_bbx_gt.txt + image_dir: WIDER_train/images + sample_transforms: + - !DecodeImage + to_rgb: true + - !NormalizeBox {} + - !RandomDistort + brightness_lower: 0.875 + brightness_upper: 1.125 + is_order: true + - !ExpandImage + max_ratio: 4 + prob: 0.5 + - !CropImageWithDataAchorSampling + anchor_sampler: + - [1, 10, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.2, 0.0] + batch_sampler: + - [1, 50, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] + - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] + - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] + - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] + - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] + target_size: 640 + - !RandomInterpImage + target_size: 640 + - !RandomFlipImage + is_normalized: true + - !Permute {} + - !NormalizeImage + is_scale: false + mean: [104, 117, 123] + std: [127.502231, 127.502231, 127.502231] + batch_size: 8 + use_process: true + worker_num: 8 + shuffle: true + +EvalReader: + inputs_def: + fields: ['image', 'im_id'] + dataset: + !WIDERFaceDataSet + dataset_dir: dataset/wider_face + anno_path: wider_face_split/wider_face_val_bbx_gt.txt + image_dir: WIDER_val/images + sample_transforms: + - !DecodeImage + to_rgb: true + - !NormalizeBox {} + - !ResizeImage + interp: 1 + target_size: 640 + use_cv2: false + - !Permute {} + - !NormalizeImage + is_scale: false + mean: [104, 117, 123] + std: [127.502231, 127.502231, 127.502231] + batch_size: 1 + +TestReader: + inputs_def: + image_shape: [3,640,640] + fields: ['image', 'im_id', 'im_shape'] + dataset: + !ImageFolder + use_default_label: true + sample_transforms: + - !DecodeImage + to_rgb: true + - !ResizeImage + interp: 1 + target_size: 640 + use_cv2: false + - !Permute {} + - !NormalizeImage + is_scale: false + mean: [104, 117, 123] + std: [127.502231, 127.502231, 127.502231] + batch_size: 1 diff --git a/docs/featured_model/FACE_DETECTION.md b/docs/featured_model/FACE_DETECTION.md index 5e4f784ff..b5bc2c7d1 100644 --- a/docs/featured_model/FACE_DETECTION.md +++ b/docs/featured_model/FACE_DETECTION.md @@ -36,6 +36,7 @@ FaceDetection的目标是提供高效、高速的人脸检测解决方案,包 | BlazeFace | 原始版本 | 640 | 8 | 32w | **0.915** | **0.892** | **0.797** | [模型](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_original.tar) | | BlazeFace | Lite版本 | 640 | 8 | 32w | 0.909 | 0.885 | 0.781 | [模型](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_lite.tar) | | BlazeFace | NAS版本 | 640 | 8 | 32w | 0.837 | 0.807 | 0.658 | [模型](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_nas.tar) | +| BlazeFace | NAS_V2版本 | 640 | 8 | 32W | 0.870 | 0.837 | 0.685 | [模型](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_nas2.tar) | FaceBoxes | 原始版本 | 640 | 8 | 32w | 0.878 | 0.851 | 0.576 | [模型](https://paddlemodels.bj.bcebos.com/object_detection/faceboxes_original.tar) | | FaceBoxes | Lite版本 | 640 | 8 | 32w | 0.901 | 0.875 | 0.760 | [模型](https://paddlemodels.bj.bcebos.com/object_detection/faceboxes_lite.tar) | @@ -254,6 +255,7 @@ cd dataset/fddb/evaluation - 原始版本: 参考原始论文复现; - Lite版本: 使用3x3卷积替换5x5卷积,更少的网络层数和通道数; - NAS版本: 使用神经网络搜索算法构建网络结构,相比于`Lite`版本,NAS版本需要更少的网络层数和通道数。 +- NAS_V2版本1: 基于PaddleSlim中SANAS算法在blazeface-NAS的基础上搜索出来的结构,相比`NAS`版本,NAS_V2版本的精度平均高出3个点,在855芯片上的硬件延时相对`NAS`版本仅增加5%。 ### FaceBoxes **简介:** diff --git a/docs/featured_model/FACE_DETECTION_en.md b/docs/featured_model/FACE_DETECTION_en.md index 41f97eb89..05737bf5d 100644 --- a/docs/featured_model/FACE_DETECTION_en.md +++ b/docs/featured_model/FACE_DETECTION_en.md @@ -40,6 +40,7 @@ optimized network structure. | BlazeFace | Original | 640 | 8 | 32w | **0.915** | **0.892** | **0.797** | [model](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_original.tar) | | BlazeFace | Lite | 640 | 8 | 32w | 0.909 | 0.885 | 0.781 | [model](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_lite.tar) | | BlazeFace | NAS | 640 | 8 | 32w | 0.837 | 0.807 | 0.658 | [model](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_nas.tar) | +| BlazeFace | NAS_V2 | 640 | 8 | 32W | 0.870 | 0.837 | 0.685 | [model](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_nas2.tar) | FaceBoxes | Original | 640 | 8 | 32w | 0.878 | 0.851 | 0.576 | [model](https://paddlemodels.bj.bcebos.com/object_detection/faceboxes_original.tar) | | FaceBoxes | Lite | 640 | 8 | 32w | 0.901 | 0.875 | 0.760 | [model](https://paddlemodels.bj.bcebos.com/object_detection/faceboxes_lite.tar) | @@ -275,6 +276,7 @@ regression parameters of a bounding box as a weighted mean between the overlappi - Lite: Replace 5x5 conv with 3x3 conv, fewer network layers and conv channels. - NAS: use `Neural Architecture Search` algorithm to optimized network structure, less network layer and conv channel number than `Lite`. +- NAS_V2: this version of model architecture searched based on blazeface-NAS by the SANAS in PaddleSlim, the average precision is 3% higher than blazeface-NAS, the latency is only 5% higher than blazeface-NAS on chip 855. ### FaceBoxes **Introduction:** -- GitLab