From 776ca93e854198b1c2da87da6b5386265b34542b Mon Sep 17 00:00:00 2001 From: Guanghua Yu <742925032@qq.com> Date: Wed, 1 Jul 2020 14:25:08 +0800 Subject: [PATCH] add face key-point detection (#1001) --- configs/face_detection/blazeface_keypoint.yml | 128 ++++++++++ dataset/wider_face/download.sh | 6 +- docs/featured_model/FACE_DETECTION.md | 19 +- docs/featured_model/FACE_DETECTION_en.md | 17 +- .../12_Group_Group_12_Group_Group_12_84.jpg | Bin 0 -> 178418 bytes ppdet/data/source/widerface.py | 125 +++++---- ppdet/data/transform/op_helper.py | 20 +- ppdet/data/transform/operators.py | 139 +++++++++- ppdet/modeling/architectures/blazeface.py | 80 ++++-- ppdet/modeling/losses/__init__.py | 2 + ppdet/modeling/losses/ssd_with_lmk_loss.py | 241 ++++++++++++++++++ ppdet/modeling/ops.py | 4 +- ppdet/utils/checkpoint.py | 3 +- ppdet/utils/visualizer.py | 23 +- ppdet/utils/widerface_eval_utils.py | 57 ++++- tools/infer.py | 9 +- 16 files changed, 781 insertions(+), 92 deletions(-) create mode 100644 configs/face_detection/blazeface_keypoint.yml create mode 100644 docs/images/12_Group_Group_12_Group_Group_12_84.jpg create mode 100644 ppdet/modeling/losses/ssd_with_lmk_loss.py diff --git a/configs/face_detection/blazeface_keypoint.yml b/configs/face_detection/blazeface_keypoint.yml new file mode 100644 index 000000000..07481f409 --- /dev/null +++ b/configs/face_detection/blazeface_keypoint.yml @@ -0,0 +1,128 @@ +architecture: BlazeFace +max_iters: 160000 +pretrain_weights: +use_gpu: true +snapshot_iter: 10000 +log_smooth_window: 20 +log_iter: 20 +metric: WIDERFACE +save_dir: output +weights: output/blazeface_keypoint/model_final.pdparams +# 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 + with_lmk: true + lmk_loss: + overlap_threshold: 0.35 + neg_overlap: 0.35 + +BlazeNet: + with_extra_blocks: true + lite_edition: false + +LearningRate: + base_lr: 0.002 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [120000, 150000] + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +TrainReader: + inputs_def: + image_shape: [3, 640, 640] + fields: ['image', 'gt_bbox', 'gt_class', 'gt_keypoint', 'keypoint_ignore'] + dataset: + !WIDERFaceDataSet + dataset_dir: dataset/wider_face + anno_path: wider_face_split/wider_face_train_bbx_lmk_gt.txt + image_dir: WIDER_train/images + with_lmk: true + 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 + - !ResizeImage + target_size: 640 + interp: 1 + - !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: 16 + 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 {} + - !Permute {} + - !NormalizeImage + is_scale: false + mean: [104, 117, 123] + std: [127.502231, 127.502231, 127.502231] + batch_size: 1 + +TestReader: + inputs_def: + fields: ['image', 'im_id', 'im_shape'] + dataset: + !ImageFolder + use_default_label: true + sample_transforms: + - !DecodeImage + to_rgb: true + - !Permute {} + - !NormalizeImage + is_scale: false + mean: [104, 117, 123] + std: [127.502231, 127.502231, 127.502231] + batch_size: 1 diff --git a/dataset/wider_face/download.sh b/dataset/wider_face/download.sh index 6c86a22c6..59a2054de 100755 --- a/dataset/wider_face/download.sh +++ b/dataset/wider_face/download.sh @@ -16,6 +16,6 @@ wget https://dataset.bj.bcebos.com/wider_face/WIDER_val.zip wget https://dataset.bj.bcebos.com/wider_face/wider_face_split.zip # Extract the data. echo "Extracting..." -unzip WIDER_train.zip -unzip WIDER_val.zip -unzip wider_face_split.zip +unzip -q WIDER_train.zip +unzip -q WIDER_val.zip +unzip -q wider_face_split.zip diff --git a/docs/featured_model/FACE_DETECTION.md b/docs/featured_model/FACE_DETECTION.md index d43f075db..4a141857c 100644 --- a/docs/featured_model/FACE_DETECTION.md +++ b/docs/featured_model/FACE_DETECTION.md @@ -8,6 +8,7 @@ - [数据准备](#数据准备) - [训练与推理](#训练与推理) - [评估](#评估) +- [人脸关键点检测](#人脸关键点检测) - [算法细节](#算法细节) - [如何贡献代码](#如何贡献代码) @@ -142,7 +143,7 @@ cd dataset/wider_face && ./download.sh 训练流程与推理流程方法与其他算法一致,请参考[GETTING_STARTED_cn.md](../tutorials/GETTING_STARTED_cn.md)。 **注意:** - `BlazeFace`和`FaceBoxes`训练是以每卡`batch_size=8`在4卡GPU上进行训练(总`batch_size`是32),并且训练320000轮 -(如果你的GPU数达不到4,请参考[学习率计算规则表](../tutorials/GETTING_STARTED_cn.html#faq))。 +(如果你的GPU数达不到4,请参考[学习率计算规则表](../FAQ.md))。 - 人脸检测模型目前我们不支持边训练边评估。 @@ -241,6 +242,20 @@ cd dataset/fddb/evaluation (2)`OUTPUT_DIR`是FDDB评估输出结果文件前缀,会生成两个文件`{OUTPUT_DIR}ContROC.txt`、`{OUTPUT_DIR}DiscROC.txt`; (3)参数用法及注释可通过执行`./evaluate --help`来获取。 + +## 人脸关键点检测 + +(1)下载PaddleDetection开放的WIDER-FACE数据集人脸关键点标注文件([链接](https://dataset.bj.bcebos.com/wider_face/wider_face_train_bbx_lmk_gt.txt)),并拷贝至`wider_face/wider_face_split`文件夹中: + +```shell +cd dataset/wider_face/wider_face_split/ +wget https://dataset.bj.bcebos.com/wider_face/wider_face_train_bbx_lmk_gt.txt +``` + +(2)使用`configs/face_detection/blazeface_keypoint.yml`配置文件进行训练与评估,使用方法与上一节内容一致。 + +![](../images/12_Group_Group_12_Group_Group_12_84.jpg) + ## 算法细节 ### BlazeFace @@ -257,7 +272,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%。 +- NAS_V2版本: 基于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 2f9579fc2..3bcc4a89e 100644 --- a/docs/featured_model/FACE_DETECTION_en.md +++ b/docs/featured_model/FACE_DETECTION_en.md @@ -8,6 +8,7 @@ English | [简体中文](FACE_DETECTION.md) - [Data Pipline](#Data-Pipline) - [Training and Inference](#Training-and-Inference) - [Evaluation](#Evaluation) +- [Face key-point detection](#Face-key-point-detection) - [Algorithm Description](#Algorithm-Description) - [Contributing](#Contributing) @@ -155,7 +156,7 @@ Please refer to [READER.md](../advanced_tutorials/READER.md) for details. **NOTES:** - `BlazeFace` and `FaceBoxes` is trained in 4 GPU with `batch_size=8` per gpu (total batch size as 32) and trained 320000 iters.(If your GPU count is not 4, please refer to the rule of training parameters -in the table of [calculation rules](../tutorials/GETTING_STARTED.html#faq)). +in the table of [calculation rules](../FAQ.md)). - Currently we do not support evaluation in training. ### Evaluation @@ -258,6 +259,20 @@ cd dataset/fddb/evaluation which will generate two files `{OUTPUT_DIR}ContROC.txt`、`{OUTPUT_DIR}DiscROC.txt`; (3)The interpretation of the argument can be performed by `./evaluate --help`. +## Face key-point detection + +(1)Download face key-point annotation file in WIDER FACE dataset([Link](https://dataset.bj.bcebos.com/wider_face/wider_face_train_bbx_lmk_gt.txt)), and copy to the folder `wider_face/wider_face_split`: + +```shell +cd dataset/wider_face/wider_face_split/ +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. + +![](../images/12_Group_Group_12_Group_Group_12_84.jpg) + + ## Algorithm Description ### BlazeFace diff --git a/docs/images/12_Group_Group_12_Group_Group_12_84.jpg b/docs/images/12_Group_Group_12_Group_Group_12_84.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da1795dbafb386303e85d50ea7708a8a2f6f6a3f GIT binary patch literal 178418 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 literal 0 HcmV?d00001 diff --git a/ppdet/data/source/widerface.py b/ppdet/data/source/widerface.py index 311430559..7aab15337 100644 --- a/ppdet/data/source/widerface.py +++ b/ppdet/data/source/widerface.py @@ -41,7 +41,8 @@ class WIDERFaceDataSet(DataSet): image_dir=None, anno_path=None, sample_num=-1, - with_background=True): + with_background=True, + with_lmk=False): super(WIDERFaceDataSet, self).__init__( image_dir=image_dir, anno_path=anno_path, @@ -53,6 +54,7 @@ class WIDERFaceDataSet(DataSet): self.with_background = with_background self.roidbs = None self.cname2cid = None + self.with_lmk = with_lmk def load_roidb_and_cname2cid(self): anno_path = os.path.join(self.dataset_dir, self.anno_path) @@ -62,33 +64,23 @@ class WIDERFaceDataSet(DataSet): records = [] ct = 0 - file_lists = _load_file_list(txt_file) + file_lists = self._load_file_list(txt_file) cname2cid = widerface_label(self.with_background) for item in file_lists: im_fname = item[0] im_id = np.array([ct]) - gt_bbox = np.zeros((len(item) - 2, 4), dtype=np.float32) - gt_class = np.ones((len(item) - 2, 1), dtype=np.int32) + gt_bbox = np.zeros((len(item) - 1, 4), dtype=np.float32) + gt_class = np.ones((len(item) - 1, 1), dtype=np.int32) + gt_lmk_labels = np.zeros((len(item) - 1, 10), dtype=np.float32) + lmk_ignore_flag = np.zeros((len(item) - 1, 1), dtype=np.int32) for index_box in range(len(item)): - if index_box >= 2: - temp_info_box = item[index_box].split(' ') - xmin = float(temp_info_box[0]) - ymin = float(temp_info_box[1]) - w = float(temp_info_box[2]) - h = float(temp_info_box[3]) - # Filter out wrong labels - if w < 0 or h < 0: - logger.warn('Illegal box with w: {}, h: {} in ' - 'img: {}, and it will be ignored'.format( - w, h, im_fname)) - continue - xmin = max(0, xmin) - ymin = max(0, ymin) - xmax = xmin + w - ymax = ymin + h - gt_bbox[index_box - 2] = [xmin, ymin, xmax, ymax] - + if index_box < 1: + continue + gt_bbox[index_box - 1] = item[index_box][0] + if self.with_lmk: + gt_lmk_labels[index_box - 1] = item[index_box][1] + lmk_ignore_flag[index_box - 1] = item[index_box][2] im_fname = os.path.join(image_dir, im_fname) if image_dir else im_fname widerface_rec = { @@ -97,7 +89,10 @@ class WIDERFaceDataSet(DataSet): 'gt_bbox': gt_bbox, 'gt_class': gt_class, } - # logger.debug + if self.with_lmk: + widerface_rec['gt_keypoint'] = gt_lmk_labels + widerface_rec['keypoint_ignore'] = lmk_ignore_flag + if len(item) != 0: records.append(widerface_rec) @@ -108,34 +103,64 @@ class WIDERFaceDataSet(DataSet): logger.debug('{} samples in file {}'.format(ct, anno_path)) self.roidbs, self.cname2cid = records, cname2cid - -def _load_file_list(input_txt): - with open(input_txt, 'r') as f_dir: - lines_input_txt = f_dir.readlines() - - file_dict = {} - num_class = 0 - for i in range(len(lines_input_txt)): - line_txt = lines_input_txt[i].strip('\n\t\r') - if '.jpg' in line_txt: - if i != 0: - num_class += 1 - file_dict[num_class] = [] - file_dict[num_class].append(line_txt) - if '.jpg' not in line_txt: - if len(line_txt) > 6: - split_str = line_txt.split(' ') - x1_min = float(split_str[0]) - y1_min = float(split_str[1]) - x2_max = float(split_str[2]) - y2_max = float(split_str[3]) - line_txt = str(x1_min) + ' ' + str(y1_min) + ' ' + str( - x2_max) + ' ' + str(y2_max) + def _load_file_list(self, input_txt): + with open(input_txt, 'r') as f_dir: + lines_input_txt = f_dir.readlines() + + file_dict = {} + num_class = 0 + for i in range(len(lines_input_txt)): + line_txt = lines_input_txt[i].strip('\n\t\r') + if '.jpg' in line_txt: + if i != 0: + num_class += 1 + file_dict[num_class] = [] file_dict[num_class].append(line_txt) - else: - file_dict[num_class].append(line_txt) - - return list(file_dict.values()) + if '.jpg' not in line_txt: + if len(line_txt) <= 6: + continue + result_boxs = [] + split_str = line_txt.split(' ') + xmin = float(split_str[0]) + ymin = float(split_str[1]) + w = float(split_str[2]) + h = float(split_str[3]) + # Filter out wrong labels + if w < 0 or h < 0: + logger.warn('Illegal box with w: {}, h: {} in ' + 'img: {}, and it will be ignored'.format( + w, h, file_dict[num_class][0])) + continue + xmin = max(0, xmin) + ymin = max(0, ymin) + xmax = xmin + w + ymax = ymin + h + gt_bbox = [xmin, ymin, xmax, ymax] + result_boxs.append(gt_bbox) + if self.with_lmk: + assert len(split_str) > 18, 'When `with_lmk=True`, the number' \ + 'of characters per line in the annotation file should' \ + 'exceed 18.' + lmk0_x = float(split_str[5]) + lmk0_y = float(split_str[6]) + lmk1_x = float(split_str[8]) + lmk1_y = float(split_str[9]) + lmk2_x = float(split_str[11]) + lmk2_y = float(split_str[12]) + lmk3_x = float(split_str[14]) + lmk3_y = float(split_str[15]) + lmk4_x = float(split_str[17]) + lmk4_y = float(split_str[18]) + lmk_ignore_flag = 0 if lmk0_x == -1 else 1 + gt_lmk_label = [ + lmk0_x, lmk0_y, lmk1_x, lmk1_y, lmk2_x, lmk2_y, lmk3_x, + lmk3_y, lmk4_x, lmk4_y + ] + result_boxs.append(gt_lmk_label) + result_boxs.append(lmk_ignore_flag) + file_dict[num_class].append(result_boxs) + + return list(file_dict.values()) def widerface_label(with_background=True): diff --git a/ppdet/data/transform/op_helper.py b/ppdet/data/transform/op_helper.py index d41efd934..a9d19b96d 100644 --- a/ppdet/data/transform/op_helper.py +++ b/ppdet/data/transform/op_helper.py @@ -61,10 +61,13 @@ def is_overlap(object_bbox, sample_bbox): return True -def filter_and_process(sample_bbox, bboxes, labels, scores=None): +def filter_and_process(sample_bbox, bboxes, labels, scores=None, + keypoints=None): new_bboxes = [] new_labels = [] new_scores = [] + new_keypoints = [] + new_kp_ignore = [] for i in range(len(bboxes)): new_bbox = [0, 0, 0, 0] obj_bbox = [bboxes[i][0], bboxes[i][1], bboxes[i][2], bboxes[i][3]] @@ -84,9 +87,24 @@ def filter_and_process(sample_bbox, bboxes, labels, scores=None): new_labels.append([labels[i][0]]) if scores is not None: new_scores.append([scores[i][0]]) + if keypoints is not None: + sample_keypoint = keypoints[0][i] + for j in range(len(sample_keypoint)): + kp_len = sample_height if j % 2 else sample_width + sample_coord = sample_bbox[1] if j % 2 else sample_bbox[0] + sample_keypoint[j] = ( + sample_keypoint[j] - sample_coord) / kp_len + sample_keypoint[j] = max(min(sample_keypoint[j], 1.0), 0.0) + new_keypoints.append(sample_keypoint) + new_kp_ignore.append(keypoints[1][i]) + bboxes = np.array(new_bboxes) labels = np.array(new_labels) scores = np.array(new_scores) + if keypoints is not None: + keypoints = np.array(new_keypoints) + new_kp_ignore = np.array(new_kp_ignore) + return bboxes, labels, scores, (keypoints, new_kp_ignore) return bboxes, labels, scores diff --git a/ppdet/data/transform/operators.py b/ppdet/data/transform/operators.py index f04feedd3..79ed2b6bc 100644 --- a/ppdet/data/transform/operators.py +++ b/ppdet/data/transform/operators.py @@ -32,9 +32,10 @@ import logging import random import math import numpy as np +import os import cv2 -from PIL import Image, ImageEnhance +from PIL import Image, ImageEnhance, ImageDraw from ppdet.core.workspace import serializable from ppdet.modeling.ops import AnchorGrid @@ -400,6 +401,16 @@ class RandomFlipImage(BaseOperator): flipped_segms.append(_flip_rle(segm, height, width)) return flipped_segms + def flip_keypoint(self, gt_keypoint, width): + for i in range(gt_keypoint.shape[1]): + if i % 2 == 0: + old_x = gt_keypoint[:, i].copy() + if self.is_normalized: + gt_keypoint[:, i] = 1 - old_x + else: + gt_keypoint[:, i] = width - old_x - 1 + return gt_keypoint + def __call__(self, sample, context=None): """Filp the image and bounding box. Operators: @@ -447,6 +458,9 @@ class RandomFlipImage(BaseOperator): if self.is_mask_flip and len(sample['gt_poly']) != 0: sample['gt_poly'] = self.flip_segms(sample['gt_poly'], height, width) + if 'gt_keypoint' in sample.keys(): + sample['gt_keypoint'] = self.flip_keypoint( + sample['gt_keypoint'], width) sample['flipped'] = True sample['image'] = im sample = samples if batch_input else samples[0] @@ -741,8 +755,17 @@ class ExpandImage(BaseOperator): im = Image.fromarray(im) expand_im.paste(im, (int(w_off), int(h_off))) expand_im = np.asarray(expand_im) - gt_bbox, gt_class, _ = filter_and_process(expand_bbox, gt_bbox, - gt_class) + if 'gt_keypoint' in sample.keys( + ) and 'keypoint_ignore' in sample.keys(): + keypoints = (sample['gt_keypoint'], + sample['keypoint_ignore']) + gt_bbox, gt_class, _, gt_keypoints = filter_and_process( + expand_bbox, gt_bbox, gt_class, keypoints=keypoints) + sample['gt_keypoint'] = gt_keypoints[0] + sample['keypoint_ignore'] = gt_keypoints[1] + else: + gt_bbox, gt_class, _ = filter_and_process(expand_bbox, + gt_bbox, gt_class) sample['image'] = expand_im sample['gt_bbox'] = gt_bbox sample['gt_class'] = gt_class @@ -816,7 +839,7 @@ class CropImage(BaseOperator): sample_bbox = sampled_bbox.pop(idx) sample_bbox = clip_bbox(sample_bbox) crop_bbox, crop_class, crop_score = \ - filter_and_process(sample_bbox, gt_bbox, gt_class, gt_score) + filter_and_process(sample_bbox, gt_bbox, gt_class, scores=gt_score) if self.avoid_no_bbox: if len(crop_bbox) < 1: continue @@ -919,8 +942,16 @@ class CropImageWithDataAchorSampling(BaseOperator): idx = int(np.random.uniform(0, len(sampled_bbox))) sample_bbox = sampled_bbox.pop(idx) - crop_bbox, crop_class, crop_score = filter_and_process( - sample_bbox, gt_bbox, gt_class, gt_score) + if 'gt_keypoint' in sample.keys(): + keypoints = (sample['gt_keypoint'], + sample['keypoint_ignore']) + crop_bbox, crop_class, crop_score, gt_keypoints = \ + filter_and_process(sample_bbox, gt_bbox, gt_class, + scores=gt_score, + keypoints=keypoints) + else: + crop_bbox, crop_class, crop_score = filter_and_process( + sample_bbox, gt_bbox, gt_class, scores=gt_score) crop_bbox, crop_class, crop_score = bbox_area_sampling( crop_bbox, crop_class, crop_score, self.target_size, self.min_size) @@ -934,6 +965,9 @@ class CropImageWithDataAchorSampling(BaseOperator): sample['gt_bbox'] = crop_bbox sample['gt_class'] = crop_class sample['gt_score'] = crop_score + if 'gt_keypoint' in sample.keys(): + sample['gt_keypoint'] = gt_keypoints[0] + sample['keypoint_ignore'] = gt_keypoints[1] return sample return sample @@ -955,8 +989,16 @@ class CropImageWithDataAchorSampling(BaseOperator): sample_bbox = sampled_bbox.pop(idx) sample_bbox = clip_bbox(sample_bbox) - crop_bbox, crop_class, crop_score = filter_and_process( - sample_bbox, gt_bbox, gt_class, gt_score) + if 'gt_keypoint' in sample.keys(): + keypoints = (sample['gt_keypoint'], + sample['keypoint_ignore']) + crop_bbox, crop_class, crop_score, gt_keypoints = \ + filter_and_process(sample_bbox, gt_bbox, gt_class, + scores=gt_score, + keypoints=keypoints) + else: + crop_bbox, crop_class, crop_score = filter_and_process( + sample_bbox, gt_bbox, gt_class, scores=gt_score) # sampling bbox according the bbox area crop_bbox, crop_class, crop_score = bbox_area_sampling( crop_bbox, crop_class, crop_score, self.target_size, @@ -974,6 +1016,9 @@ class CropImageWithDataAchorSampling(BaseOperator): sample['gt_bbox'] = crop_bbox sample['gt_class'] = crop_class sample['gt_score'] = crop_score + if 'gt_keypoint' in sample.keys(): + sample['gt_keypoint'] = gt_keypoints[0] + sample['keypoint_ignore'] = gt_keypoints[1] return sample return sample @@ -995,6 +1040,17 @@ class NormalizeBox(BaseOperator): gt_bbox[i][2] = gt_bbox[i][2] / width gt_bbox[i][3] = gt_bbox[i][3] / height sample['gt_bbox'] = gt_bbox + + if 'gt_keypoint' in sample.keys(): + gt_keypoint = sample['gt_keypoint'] + + for i in range(gt_keypoint.shape[1]): + if i % 2: + gt_keypoint[:, i] = gt_keypoint[:, i] / height + else: + gt_keypoint[:, i] = gt_keypoint[:, i] / width + sample['gt_keypoint'] = gt_keypoint + return sample @@ -1837,7 +1893,6 @@ class BboxXYXY2XYWH(BaseOperator): return sample -@register_op class Lighting(BaseOperator): """ Lighting the imagen by eigenvalues and eigenvectors @@ -2270,3 +2325,69 @@ class TargetAssign(BaseOperator): targets[matched_indices] = matched_targets sample['fg_num'] = np.array(len(matched_targets), dtype=np.int32) return sample + + +@register_op +class DebugVisibleImage(BaseOperator): + """ + In debug mode, visualize images according to `gt_box`. + (Currently only supported when not cropping and flipping image.) + """ + + def __init__(self, output_dir='output/debug', is_normalized=False): + super(DebugVisibleImage, self).__init__() + self.is_normalized = is_normalized + self.output_dir = output_dir + if not os.path.isdir(output_dir): + os.makedirs(output_dir) + if not isinstance(self.is_normalized, bool): + raise TypeError("{}: input type is invalid.".format(self)) + + def __call__(self, sample, context=None): + image = Image.open(sample['im_file']).convert('RGB') + out_file_name = sample['im_file'].split('/')[-1] + width = sample['w'] + height = sample['h'] + gt_bbox = sample['gt_bbox'] + gt_class = sample['gt_class'] + draw = ImageDraw.Draw(image) + for i in range(gt_bbox.shape[0]): + if self.is_normalized: + gt_bbox[i][0] = gt_bbox[i][0] * width + gt_bbox[i][1] = gt_bbox[i][1] * height + gt_bbox[i][2] = gt_bbox[i][2] * width + gt_bbox[i][3] = gt_bbox[i][3] * height + + xmin, ymin, xmax, ymax = gt_bbox[i] + draw.line( + [(xmin, ymin), (xmin, ymax), (xmax, ymax), (xmax, ymin), + (xmin, ymin)], + width=2, + fill='green') + # draw label + text = str(gt_class[i][0]) + tw, th = draw.textsize(text) + draw.rectangle( + [(xmin + 1, ymin - th), (xmin + tw + 1, ymin)], fill='green') + draw.text((xmin + 1, ymin - th), text, fill=(255, 255, 255)) + + if 'gt_keypoint' in sample.keys(): + gt_keypoint = sample['gt_keypoint'] + if self.is_normalized: + for i in range(gt_keypoint.shape[1]): + if i % 2: + gt_keypoint[:, i] = gt_keypoint[:, i] * height + else: + gt_keypoint[:, i] = gt_keypoint[:, i] * width + for i in range(gt_keypoint.shape[0]): + keypoint = gt_keypoint[i] + for j in range(int(keypoint.shape[0] / 2)): + x1 = round(keypoint[2 * j]).astype(np.int32) + y1 = round(keypoint[2 * j + 1]).astype(np.int32) + draw.ellipse( + (x1, y1, x1 + 5, y1i + 5), + fill='green', + outline='green') + save_path = os.path.join(self.output_dir, out_file_name) + image.save(save_path, quality=95) + return sample diff --git a/ppdet/modeling/architectures/blazeface.py b/ppdet/modeling/architectures/blazeface.py index 62230cc5f..d740d07c0 100644 --- a/ppdet/modeling/architectures/blazeface.py +++ b/ppdet/modeling/architectures/blazeface.py @@ -25,6 +25,7 @@ from paddle.fluid.regularizer import L2Decay from ppdet.core.workspace import register from ppdet.modeling.ops import SSDOutputDecoder +from ppdet.modeling.losses import SSDWithLmkLoss __all__ = ['BlazeFace'] @@ -59,24 +60,29 @@ class BlazeFace(object): steps=[8., 16.], num_classes=2, use_density_prior_box=False, - densities=[[2, 2], [2, 1, 1, 1, 1, 1]]): + densities=[[2, 2], [2, 1, 1, 1, 1, 1]], + with_lmk=False, + lmk_loss=SSDWithLmkLoss().__dict__): super(BlazeFace, self).__init__() self.backbone = backbone self.num_classes = num_classes + self.with_lmk = with_lmk self.output_decoder = output_decoder if isinstance(output_decoder, dict): + if self.with_lmk: + output_decoder['return_index'] = True self.output_decoder = SSDOutputDecoder(**output_decoder) self.min_sizes = min_sizes self.max_sizes = max_sizes self.steps = steps self.use_density_prior_box = use_density_prior_box self.densities = densities + self.landmark = None + if self.with_lmk and isinstance(lmk_loss, dict): + self.lmk_loss = SSDWithLmkLoss(**lmk_loss) def build(self, feed_vars, mode='train'): im = feed_vars['image'] - if mode == 'train': - gt_bbox = feed_vars['gt_bbox'] - gt_class = feed_vars['gt_class'] body_feats = self.backbone(im) locs, confs, box, box_var = self._multi_box_head( @@ -86,20 +92,40 @@ class BlazeFace(object): use_density_prior_box=self.use_density_prior_box) if mode == 'train': - loss = fluid.layers.ssd_loss( - locs, - confs, - gt_bbox, - gt_class, - box, - box_var, - overlap_threshold=0.35, - neg_overlap=0.35) + gt_bbox = feed_vars['gt_bbox'] + gt_class = feed_vars['gt_class'] + if self.with_lmk: + lmk_labels = feed_vars['gt_keypoint'] + lmk_ignore_flag = feed_vars["keypoint_ignore"] + loss = self.lmk_loss(locs, confs, gt_bbox, gt_class, + self.landmark, lmk_labels, lmk_ignore_flag, + box, box_var) + else: + loss = fluid.layers.ssd_loss( + locs, + confs, + gt_bbox, + gt_class, + box, + box_var, + overlap_threshold=0.35, + neg_overlap=0.35) + loss = fluid.layers.reduce_sum(loss) return {'loss': loss} else: - pred = self.output_decoder(locs, confs, box, box_var) - return {'bbox': pred} + if self.with_lmk: + pred, face_index = self.output_decoder(locs, confs, box, + box_var) + return { + 'bbox': pred, + 'face_index': face_index, + 'prior_boxes': box, + 'landmark': self.landmark + } + else: + pred = self.output_decoder(locs, confs, box, box_var) + return {'bbox': pred} def _multi_box_head(self, inputs, @@ -111,11 +137,9 @@ class BlazeFace(object): compile_shape = [0, -1, last_dim] return fluid.layers.reshape(trans, shape=compile_shape) - def _is_list_or_tuple_(data): - return (isinstance(data, list) or isinstance(data, tuple)) - locs, confs = [], [] boxes, vars = [], [] + lmk_locs = [] b_attr = ParamAttr(learning_rate=2., regularizer=L2Decay(0.)) for i, input in enumerate(inputs): @@ -157,7 +181,21 @@ class BlazeFace(object): # get conf mbox_conf = fluid.layers.conv2d( input, num_conf_output, 3, 1, 1, bias_attr=b_attr) - conf = permute_and_reshape(mbox_conf, 2) + conf = permute_and_reshape(mbox_conf, num_classes) + + if self.with_lmk: + # get landmark + lmk_loc_output = num_boxes * 10 + lmk_box_loc = fluid.layers.conv2d( + input, + lmk_loc_output, + 3, + 1, + 1, + param_attr=ParamAttr(name='lmk' + str(i) + '_weights'), + bias_attr=False) + lmk_loc = permute_and_reshape(lmk_box_loc, 10) + lmk_locs.append(lmk_loc) locs.append(loc) confs.append(conf) @@ -168,6 +206,8 @@ class BlazeFace(object): face_mbox_conf = fluid.layers.concat(confs, axis=1) prior_boxes = fluid.layers.concat(boxes) box_vars = fluid.layers.concat(vars) + if self.with_lmk: + self.landmark = fluid.layers.concat(lmk_locs, axis=1) return face_mbox_loc, face_mbox_conf, prior_boxes, box_vars def _inputs_def(self, image_shape): @@ -179,6 +219,8 @@ class BlazeFace(object): 'gt_bbox': {'shape': [None, 4], 'dtype': 'float32', 'lod_level': 1}, 'gt_class': {'shape': [None, 1], 'dtype': 'int32', 'lod_level': 1}, 'im_shape': {'shape': [None, 3], 'dtype': 'int32', 'lod_level': 0}, + 'gt_keypoint': {'shape': [None, 10], 'dtype': 'float32', 'lod_level': 1}, + 'keypoint_ignore': {'shape': [None, 1], 'dtype': 'float32', 'lod_level': 1}, } # yapf: enable return inputs_def diff --git a/ppdet/modeling/losses/__init__.py b/ppdet/modeling/losses/__init__.py index d1b4dcca2..f4a1f65b2 100644 --- a/ppdet/modeling/losses/__init__.py +++ b/ppdet/modeling/losses/__init__.py @@ -23,6 +23,7 @@ from . import balanced_l1_loss from . import fcos_loss from . import diou_loss_yolo from . import iou_aware_loss +from . import ssd_with_lmk_loss from .iou_aware_loss import * from .yolo_loss import * @@ -33,3 +34,4 @@ from .iou_loss import * from .balanced_l1_loss import * from .fcos_loss import * from .diou_loss_yolo import * +from .ssd_with_lmk_loss import * \ No newline at end of file diff --git a/ppdet/modeling/losses/ssd_with_lmk_loss.py b/ppdet/modeling/losses/ssd_with_lmk_loss.py new file mode 100644 index 000000000..8cedee2d4 --- /dev/null +++ b/ppdet/modeling/losses/ssd_with_lmk_loss.py @@ -0,0 +1,241 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import paddle.fluid as fluid +from paddle.fluid.layer_helper import LayerHelper +from paddle.fluid.framework import Variable +import paddle.fluid.layers as layers +from paddle.fluid.layers import (tensor, iou_similarity, bipartite_match, + target_assign, box_coder) +from ppdet.core.workspace import register, serializable + +__all__ = ['SSDWithLmkLoss'] + + +@register +@serializable +class SSDWithLmkLoss(object): + """ + ssd_with_lmk_loss function. + Args: + background_label (int): The index of background label, 0 by default. + overlap_threshold (float): If match_type is `per_prediction`, + use `overlap_threshold` to determine the extra matching bboxes + when finding matched boxes. 0.5 by default. + neg_pos_ratio (float): The ratio of the negative boxes to the positive + boxes, used only when mining_type is `max_negative`, 3.0 by default. + neg_overlap (float): The negative overlap upper bound for the unmatched + predictions. Use only when mining_type is `max_negative`, 0.5 by default. + loc_loss_weight (float): Weight for localization loss, 1.0 by default. + conf_loss_weight (float): Weight for confidence loss, 1.0 by default. + match_type (str): The type of matching method during training, should be + `bipartite` or `per_prediction`, `per_prediction` by default. + normalize (bool): Whether to normalize the loss by the total number of + output locations, True by default. + """ + + def __init__(self, + background_label=0, + overlap_threshold=0.5, + neg_pos_ratio=3.0, + neg_overlap=0.5, + loc_loss_weight=1.0, + conf_loss_weight=1.0, + match_type='per_prediction', + normalize=True): + super(SSDWithLmkLoss, self).__init__() + self.background_label = background_label + self.overlap_threshold = overlap_threshold + self.neg_pos_ratio = neg_pos_ratio + self.neg_overlap = neg_overlap + self.loc_loss_weight = loc_loss_weight + self.conf_loss_weight = conf_loss_weight + self.match_type = match_type + self.normalize = normalize + + def __call__(self, + location, + confidence, + gt_box, + gt_label, + landmark_predict, + lmk_label, + lmk_ignore_flag, + prior_box, + prior_box_var=None): + def _reshape_to_2d(var): + return layers.flatten(x=var, axis=2) + + helper = LayerHelper('ssd_loss') #, **locals()) + # Only support mining_type == 'max_negative' now. + mining_type = 'max_negative' + # The max `sample_size` of negative box, used only + # when mining_type is `hard_example`. + sample_size = None + num, num_prior, num_class = confidence.shape + conf_shape = layers.shape(confidence) + + # 1. Find matched boundding box by prior box. + # 1.1 Compute IOU similarity between ground-truth boxes and prior boxes. + iou = iou_similarity(x=gt_box, y=prior_box) + # 1.2 Compute matched boundding box by bipartite matching algorithm. + matched_indices, matched_dist = bipartite_match(iou, self.match_type, + self.overlap_threshold) + + # 2. Compute confidence for mining hard examples + # 2.1. Get the target label based on matched indices + gt_label = layers.reshape( + x=gt_label, shape=(len(gt_label.shape) - 1) * (0, ) + (-1, 1)) + gt_label.stop_gradient = True + target_label, _ = target_assign( + gt_label, matched_indices, mismatch_value=self.background_label) + # 2.2. Compute confidence loss. + # Reshape confidence to 2D tensor. + confidence = _reshape_to_2d(confidence) + target_label = tensor.cast(x=target_label, dtype='int64') + target_label = _reshape_to_2d(target_label) + target_label.stop_gradient = True + conf_loss = layers.softmax_with_cross_entropy(confidence, target_label) + # 3. Mining hard examples + actual_shape = layers.slice(conf_shape, axes=[0], starts=[0], ends=[2]) + actual_shape.stop_gradient = True + conf_loss = layers.reshape( + x=conf_loss, shape=(-1, 0), actual_shape=actual_shape) + conf_loss.stop_gradient = True + neg_indices = helper.create_variable_for_type_inference(dtype='int32') + updated_matched_indices = helper.create_variable_for_type_inference( + dtype=matched_indices.dtype) + helper.append_op( + type='mine_hard_examples', + inputs={ + 'ClsLoss': conf_loss, + 'LocLoss': None, + 'MatchIndices': matched_indices, + 'MatchDist': matched_dist, + }, + outputs={ + 'NegIndices': neg_indices, + 'UpdatedMatchIndices': updated_matched_indices + }, + attrs={ + 'neg_pos_ratio': self.neg_pos_ratio, + 'neg_dist_threshold': self.neg_overlap, + 'mining_type': mining_type, + 'sample_size': sample_size, + }) + + # 4. Assign classification and regression targets + # 4.1. Encoded bbox according to the prior boxes. + encoded_bbox = box_coder( + prior_box=prior_box, + prior_box_var=prior_box_var, + target_box=gt_box, + code_type='encode_center_size') + # 4.2. Assign regression targets + target_bbox, target_loc_weight = target_assign( + encoded_bbox, + updated_matched_indices, + mismatch_value=self.background_label) + # 4.3. Assign classification targets + target_label, target_conf_weight = target_assign( + gt_label, + updated_matched_indices, + negative_indices=neg_indices, + mismatch_value=self.background_label) + + target_loc_weight = target_loc_weight * target_label + encoded_lmk_label = self.decode_lmk(lmk_label, prior_box, prior_box_var) + + target_lmk, target_lmk_weight = target_assign( + encoded_lmk_label, + updated_matched_indices, + mismatch_value=self.background_label) + lmk_ignore_flag = layers.reshape( + x=lmk_ignore_flag, + shape=(len(lmk_ignore_flag.shape) - 1) * (0, ) + (-1, 1)) + target_ignore, nouse = target_assign( + lmk_ignore_flag, + updated_matched_indices, + mismatch_value=self.background_label) + + target_lmk_weight = target_lmk_weight * target_ignore + landmark_predict = _reshape_to_2d(landmark_predict) + target_lmk = _reshape_to_2d(target_lmk) + target_lmk_weight = _reshape_to_2d(target_lmk_weight) + lmk_loss = layers.smooth_l1(landmark_predict, target_lmk) + lmk_loss = lmk_loss * target_lmk_weight + target_lmk.stop_gradient = True + target_lmk_weight.stop_gradient = True + target_ignore.stop_gradient = True + nouse.stop_gradient = True + + # 5. Compute loss. + # 5.1 Compute confidence loss. + target_label = _reshape_to_2d(target_label) + target_label = tensor.cast(x=target_label, dtype='int64') + + conf_loss = layers.softmax_with_cross_entropy(confidence, target_label) + target_conf_weight = _reshape_to_2d(target_conf_weight) + conf_loss = conf_loss * target_conf_weight + + # the target_label and target_conf_weight do not have gradient. + target_label.stop_gradient = True + target_conf_weight.stop_gradient = True + + # 5.2 Compute regression loss. + location = _reshape_to_2d(location) + target_bbox = _reshape_to_2d(target_bbox) + + loc_loss = layers.smooth_l1(location, target_bbox) + target_loc_weight = _reshape_to_2d(target_loc_weight) + loc_loss = loc_loss * target_loc_weight + + # the target_bbox and target_loc_weight do not have gradient. + target_bbox.stop_gradient = True + target_loc_weight.stop_gradient = True + + # 5.3 Compute overall weighted loss. + loss = self.conf_loss_weight * conf_loss + self.loc_loss_weight * loc_loss + 0.4 * lmk_loss + # reshape to [N, Np], N is the batch size and Np is the prior box number. + loss = layers.reshape(x=loss, shape=(-1, 0), actual_shape=actual_shape) + loss = layers.reduce_sum(loss, dim=1, keep_dim=True) + if self.normalize: + normalizer = layers.reduce_sum(target_loc_weight) + 1 + loss = loss / normalizer + + return loss + + def decode_lmk(self, lmk_label, prior_box, prior_box_var): + label0, label1, label2, label3, label4 = fluid.layers.split( + lmk_label, num_or_sections=5, dim=1) + lmk_labels_list = [label0, label1, label2, label3, label4] + encoded_lmk_list = [] + for label in lmk_labels_list: + concat_label = fluid.layers.concat([label, label], axis=1) + encoded_label = box_coder( + prior_box=prior_box, + prior_box_var=prior_box_var, + target_box=concat_label, + code_type='encode_center_size') + encoded_lmk_label, _ = fluid.layers.split( + encoded_label, num_or_sections=2, dim=2) + encoded_lmk_list.append(encoded_lmk_label) + + encoded_lmk_concat = fluid.layers.concat( + [ + encoded_lmk_list[0], encoded_lmk_list[1], encoded_lmk_list[2], + encoded_lmk_list[3], encoded_lmk_list[4] + ], + axis=2) + return encoded_lmk_concat diff --git a/ppdet/modeling/ops.py b/ppdet/modeling/ops.py index 972fcdf16..9f288b42f 100644 --- a/ppdet/modeling/ops.py +++ b/ppdet/modeling/ops.py @@ -1478,7 +1478,8 @@ class SSDOutputDecoder(object): keep_top_k=200, score_threshold=0.01, nms_eta=1.0, - background_label=0): + background_label=0, + return_index=False): super(SSDOutputDecoder, self).__init__() self.nms_threshold = nms_threshold self.background_label = background_label @@ -1486,6 +1487,7 @@ class SSDOutputDecoder(object): self.keep_top_k = keep_top_k self.score_threshold = score_threshold self.nms_eta = nms_eta + self.return_index = return_index @register diff --git a/ppdet/utils/checkpoint.py b/ppdet/utils/checkpoint.py index 42fe8194d..9461be8a3 100644 --- a/ppdet/utils/checkpoint.py +++ b/ppdet/utils/checkpoint.py @@ -115,7 +115,8 @@ def load_params(exe, prog, path, ignore_params=[]): path = _get_weight_path(path) path = _strip_postfix(path) - if not (os.path.isdir(path) or os.path.exists(path + '.pdparams')): + if not (os.path.isdir(path) or os.path.isfile(path) or + os.path.exists(path + '.pdparams')): raise ValueError("Model pretrain path {} does not " "exists.".format(path)) diff --git a/ppdet/utils/visualizer.py b/ppdet/utils/visualizer.py index 0658c8c35..0af8601e5 100644 --- a/ppdet/utils/visualizer.py +++ b/ppdet/utils/visualizer.py @@ -30,7 +30,8 @@ def visualize_results(image, catid2name, threshold=0.5, bbox_results=None, - mask_results=None): + mask_results=None, + lmk_results=None): """ Visualize bbox and mask results """ @@ -38,6 +39,8 @@ def visualize_results(image, image = draw_mask(image, im_id, mask_results, threshold) if bbox_results: image = draw_bbox(image, im_id, catid2name, bbox_results, threshold) + if lmk_results: + image = draw_lmk(image, im_id, lmk_results, threshold) return image @@ -106,3 +109,21 @@ def draw_bbox(image, im_id, catid2name, bboxes, threshold): draw.text((xmin + 1, ymin - th), text, fill=(255, 255, 255)) return image + + +def draw_lmk(image, im_id, lmk_results, threshold): + draw = ImageDraw.Draw(image) + catid2color = {} + color_list = colormap(rgb=True)[:40] + for dt in np.array(lmk_results): + lmk_decode, score = dt['landmark'], dt['score'] + if im_id != dt['image_id']: + continue + if score < threshold: + continue + for j in range(5): + x1 = int(round(lmk_decode[2 * j])) + y1 = int(round(lmk_decode[2 * j + 1])) + draw.ellipse( + (x1, y1, x1 + 5, y1 + 5), fill='green', outline='green') + return image diff --git a/ppdet/utils/widerface_eval_utils.py b/ppdet/utils/widerface_eval_utils.py index 7f35c2431..e7447e8fe 100644 --- a/ppdet/utils/widerface_eval_utils.py +++ b/ppdet/utils/widerface_eval_utils.py @@ -27,7 +27,7 @@ logger = logging.getLogger(__name__) __all__ = [ 'get_shrink', 'bbox_vote', 'save_widerface_bboxes', 'save_fddb_bboxes', - 'to_chw_bgr', 'bbox2out', 'get_category_info' + 'to_chw_bgr', 'bbox2out', 'get_category_info', 'lmk2out' ] @@ -227,3 +227,58 @@ def widerfaceall_category_info(with_background=True): catid2name = {i: name for i, name in enumerate(cats)} return clsid2catid, catid2name + + +def lmk2out(results, is_bbox_normalized=False): + """ + Args: + results: request a dict, should include: `landmark`, `im_id`, + if is_bbox_normalized=True, also need `im_shape`. + is_bbox_normalized: whether or not landmark is normalized. + """ + xywh_res = [] + for t in results: + bboxes = t['bbox'][0] + lengths = t['bbox'][1][0] + im_ids = np.array(t['im_id'][0]).flatten() + if bboxes.shape == (1, 1) or bboxes is None: + continue + face_index = t['face_index'][0] + prior_box = t['prior_boxes'][0] + predict_lmk = t['landmark'][0] + prior = np.reshape(prior_box, (-1, 4)) + predictlmk = np.reshape(predict_lmk, (-1, 10)) + + k = 0 + for a in range(len(lengths)): + num = lengths[a] + im_id = int(im_ids[a]) + for i in range(num): + score = bboxes[k][1] + theindex = face_index[i][0] + me_prior = prior[theindex, :] + lmk_pred = predictlmk[theindex, :] + prior_w = me_prior[2] - me_prior[0] + prior_h = me_prior[3] - me_prior[1] + prior_w_center = (me_prior[2] + me_prior[0]) / 2 + prior_h_center = (me_prior[3] + me_prior[1]) / 2 + lmk_decode = np.zeros((10)) + for j in [0, 2, 4, 6, 8]: + lmk_decode[j] = lmk_pred[j] * 0.1 * prior_w + prior_w_center + for j in [1, 3, 5, 7, 9]: + lmk_decode[j] = lmk_pred[j] * 0.1 * prior_h + prior_h_center + im_shape = t['im_shape'][0][a].tolist() + image_h, image_w = int(im_shape[0]), int(im_shape[1]) + if is_bbox_normalized: + lmk_decode = lmk_decode * np.array([ + image_w, image_h, image_w, image_h, image_w, image_h, + image_w, image_h, image_w, image_h + ]) + lmk_res = { + 'image_id': im_id, + 'landmark': lmk_decode, + 'score': score, + } + xywh_res.append(lmk_res) + k += 1 + return xywh_res diff --git a/tools/infer.py b/tools/infer.py index e4ee0a7cc..f7783d20b 100644 --- a/tools/infer.py +++ b/tools/infer.py @@ -144,7 +144,7 @@ def main(): if cfg.metric == "VOC": from ppdet.utils.voc_eval import bbox2out, get_category_info if cfg.metric == "WIDERFACE": - from ppdet.utils.widerface_eval_utils import bbox2out, get_category_info + from ppdet.utils.widerface_eval_utils import bbox2out, lmk2out, get_category_info anno_file = dataset.get_anno() with_background = dataset.with_background @@ -181,11 +181,14 @@ def main(): bbox_results = None mask_results = None + lmk_results = None if 'bbox' in res: bbox_results = bbox2out([res], clsid2catid, is_bbox_normalized) if 'mask' in res: mask_results = mask2out([res], clsid2catid, model.mask_head.resolution) + if 'landmark' in res: + lmk_results = lmk2out([res], is_bbox_normalized) # visualize result im_ids = res['im_id'][0] @@ -203,7 +206,7 @@ def main(): image = visualize_results(image, int(im_id), catid2name, FLAGS.draw_threshold, bbox_results, - mask_results) + mask_results, lmk_results) # use VisualDL to log image with bbox if FLAGS.use_vdl: @@ -253,4 +256,4 @@ if __name__ == '__main__': default="vdl_log_dir/image", help='VisualDL logging directory for image.') FLAGS = parser.parse_args() - main() + main() \ No newline at end of file -- GitLab