未验证 提交 315fd738 编写于 作者: G Guanghua Yu 提交者: GitHub

add blazeface keypoint model and modify some comment (#1048)

上级 d30bb02e
...@@ -254,6 +254,12 @@ wget https://dataset.bj.bcebos.com/wider_face/wider_face_train_bbx_lmk_gt.txt ...@@ -254,6 +254,12 @@ wget https://dataset.bj.bcebos.com/wider_face/wider_face_train_bbx_lmk_gt.txt
(2)使用`configs/face_detection/blazeface_keypoint.yml`配置文件进行训练与评估,使用方法与上一节内容一致。 (2)使用`configs/face_detection/blazeface_keypoint.yml`配置文件进行训练与评估,使用方法与上一节内容一致。
### 模型评估
| 网络结构 | 输入尺寸 | 图片个数/GPU | 学习率策略 | Easy Set | Medium Set | Hard Set | 下载 | 配置文件 |
|:------------:|:----:|:-------:|:-------:|:---------:|:----------:|:---------:|:--------:|:--------:|
| BlazeFace Keypoint | 640 | 16 | 16w | 0.852 | 0.816 | 0.662 | [模型](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_keypoint.pdparams) | [配置文件](https://github.com/PaddlePaddle/PaddleDetection/tree/master/configs/face_detection/blazeface_keypoint.yml) |
![](../images/12_Group_Group_12_Group_Group_12_84.jpg) ![](../images/12_Group_Group_12_Group_Group_12_84.jpg)
## 算法细节 ## 算法细节
...@@ -285,7 +291,7 @@ wget https://dataset.bj.bcebos.com/wider_face/wider_face_train_bbx_lmk_gt.txt ...@@ -285,7 +291,7 @@ wget https://dataset.bj.bcebos.com/wider_face/wider_face_train_bbx_lmk_gt.txt
- 使用密度先验盒(density_prior_box)可提高检测精度。 - 使用密度先验盒(density_prior_box)可提高检测精度。
**版本信息:** **版本信息:**
- 原始版本: 参考原始论文复现 - 原始版本: 参考原始论文进行修改
- Lite版本: 使用更少的网络层数和通道数,具体可参考[代码](https://github.com/PaddlePaddle/PaddleDetection/blob/master/ppdet/modeling/architectures/faceboxes.py) - Lite版本: 使用更少的网络层数和通道数,具体可参考[代码](https://github.com/PaddlePaddle/PaddleDetection/blob/master/ppdet/modeling/architectures/faceboxes.py)
......
...@@ -270,6 +270,12 @@ wget https://dataset.bj.bcebos.com/wider_face/wider_face_train_bbx_lmk_gt.txt ...@@ -270,6 +270,12 @@ wget https://dataset.bj.bcebos.com/wider_face/wider_face_train_bbx_lmk_gt.txt
(2)Use `configs/face_detection/blazeface_keypoint.yml` configuration file for training and evaluation, the method of use is the same as the previous section. (2)Use `configs/face_detection/blazeface_keypoint.yml` configuration file for training and evaluation, the method of use is the same as the previous section.
### Evaluation
| Architecture | Size | Img/gpu | Lr schd | Easy Set | Medium Set | Hard Set | Download | Configs |
|:------------:|:----:|:-------:|:-------:|:---------:|:----------:|:---------:|:--------:|:--------:|
| BlazeFace Keypoint | 640 | 16 | 16w | 0.852 | 0.816 | 0.662 | [download](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_keypoint.pdparams) | [config](https://github.com/PaddlePaddle/PaddleDetection/tree/master/configs/face_detection/blazeface_keypoint.yml) |
![](../images/12_Group_Group_12_Group_Group_12_84.jpg) ![](../images/12_Group_Group_12_Group_Group_12_84.jpg)
......
...@@ -41,6 +41,7 @@ class BlazeFace(object): ...@@ -41,6 +41,7 @@ class BlazeFace(object):
output_decoder (object): `SSDOutputDecoder` instance output_decoder (object): `SSDOutputDecoder` instance
min_sizes (list|None): min sizes of generated prior boxes. min_sizes (list|None): min sizes of generated prior boxes.
max_sizes (list|None): max sizes of generated prior boxes. Default: None. max_sizes (list|None): max sizes of generated prior boxes. Default: None.
steps (list|None): step size of adjacent prior boxes on each feature map.
num_classes (int): number of output classes num_classes (int): number of output classes
use_density_prior_box (bool): whether or not use density_prior_box use_density_prior_box (bool): whether or not use density_prior_box
instead of prior_box instead of prior_box
......
...@@ -32,8 +32,8 @@ __all__ = ['FaceBoxes'] ...@@ -32,8 +32,8 @@ __all__ = ['FaceBoxes']
@register @register
class FaceBoxes(object): class FaceBoxes(object):
""" """
FaceBoxes: Sub-millisecond Neural Face Detection on Mobile GPUs, FaceBoxes: A CPU Real-time Face Detector with High Accuracy.
see https://https://arxiv.org/abs/1708.05234 see https://arxiv.org/abs/1708.05234
Args: Args:
backbone (object): backbone instance backbone (object): backbone instance
...@@ -42,7 +42,8 @@ class FaceBoxes(object): ...@@ -42,7 +42,8 @@ class FaceBoxes(object):
this attribute should be a list or tuple of integers. this attribute should be a list or tuple of integers.
fixed_sizes (list|None): the fixed sizes of generated density prior boxes, fixed_sizes (list|None): the fixed sizes of generated density prior boxes,
this attribute should a list or tuple of same length with `densities`. this attribute should a list or tuple of same length with `densities`.
num_classes (int): number of output classes num_classes (int): number of output classes.
steps (list|None): step size of adjacent prior boxes on each feature map.
""" """
__category__ = 'architecture' __category__ = 'architecture'
...@@ -55,7 +56,7 @@ class FaceBoxes(object): ...@@ -55,7 +56,7 @@ class FaceBoxes(object):
densities=[[4, 2, 1], [1], [1]], densities=[[4, 2, 1], [1], [1]],
fixed_sizes=[[32., 64., 128.], [256.], [512.]], fixed_sizes=[[32., 64., 128.], [256.], [512.]],
num_classes=2, num_classes=2,
steps=[8., 16., 32.]): steps=[16., 32., 64.]):
super(FaceBoxes, self).__init__() super(FaceBoxes, self).__init__()
self.backbone = backbone self.backbone = backbone
self.num_classes = num_classes self.num_classes = num_classes
...@@ -116,7 +117,7 @@ class FaceBoxes(object): ...@@ -116,7 +117,7 @@ class FaceBoxes(object):
fixed_ratios=[1.], fixed_ratios=[1.],
clip=False, clip=False,
offset=0.5, offset=0.5,
steps=[self.steps[i]] * 2) steps=[self.steps[i]])
num_boxes = box.shape[2] num_boxes = box.shape[2]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册