Skip to content

Commit

Permalink
fix bugs of multipeople inference (PaddlePaddle#206)
Browse files Browse the repository at this point in the history
* fix bugs of multipeople inference
  • Loading branch information
lijianshe02 authored Mar 3, 2021
1 parent c11d914 commit 51bd84a
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 5 deletions.
6 changes: 4 additions & 2 deletions docs/en_US/tutorials/motion_driving.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,16 @@ cd applications/
python -u tools/first-order-demo.py \
--driving_video ../docs/imgs/fom_dv.mp4 \
--source_image ../docs/imgs/fom_source_image.png \
--relative --adapt_scale
--ratio 0.5 \
--relative --adapt_scalae
```

**params:**
- driving_video: driving video, the motion of the driving video is to be migrated.
- source_image: source_image, the image will be animated according to the motion of the driving video.
- source_image: source_image, support single people and multipeople in the image, the image will be animated according to the motion of the driving video.
- relative: indicate whether the relative or absolute coordinates of the key points in the video are used in the program. It is recommended to use relative coordinates. If absolute coordinates are used, the characters will be distorted after animation.
- adapt_scale: adapt movement scale based on convex hull of keypoints.
- ratio: The pasted face percentage of generated image, this parameter should be adjusted in the case of multipeople image in which the adjacent faces are close

## Animation results

Expand Down
3 changes: 2 additions & 1 deletion docs/zh_CN/tutorials/motion_driving.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@ python -u tools/first-order-demo.py \

**参数说明:**
- driving_video: 驱动视频,视频中人物的表情动作作为待迁移的对象
- source_image: 原始图片,视频中人物的表情动作将迁移到该原始图片中的人物上
- source_image: 原始图片,支持单人图片和多人图片,视频中人物的表情动作将迁移到该原始图片中的人物上
- relative: 指示程序中使用视频和图片中人物关键点的相对坐标还是绝对坐标,建议使用相对坐标,若使用绝对坐标,会导致迁移后人物扭曲变形
- adapt_scale: 根据关键点凸包自适应运动尺度
- ratio: 贴回驱动生成的人脸区域占原图的比例, 用户需要根据生成的效果调整该参数,尤其对于多人脸距离比较近的情况下需要调整改参数


## 生成结果展示
Expand Down
4 changes: 2 additions & 2 deletions ppgan/apps/first_order_predictor.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,9 +270,9 @@ def extract_bbox(self, image):
cx = rect[0] + int(bw / 2)
margin = max(bh, bw)
y1 = max(0, cy - margin)
x1 = max(0, cx - margin)
x1 = max(0, cx - int(0.8 * margin))
y2 = min(h, cy + margin)
x2 = min(w, cx + margin)
x2 = min(w, cx + int(0.8 * margin))
results.append([x1, y1, x2, y2])
boxes = np.array(results)
return boxes
16 changes: 16 additions & 0 deletions ppgan/faceutils/face_detection/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,19 @@ def get_detections_for_batch(self, images):
results.append((x1, y1, x2, y2))

return results

def get_detections_for_image(self, images):
images = images[..., ::-1]
detected_faces = self.face_detector.detect_from_batch(images.copy())
results = []

for i, d in enumerate(detected_faces[0]):
if len(d) == 0:
results.append(None)
continue
d = np.clip(d, 0, None)

x1, y1, x2, y2 = map(int, d[:-1])
results.append((x1, y1, x2, y2))

return results

0 comments on commit 51bd84a

Please sign in to comment.