1 of 22

Hard Negative Mining for

Multi-view Human Part Segmentation

16-622 Class Presentation

​

Presenters:�Ashwin Vaswani (apvaswan)

Minh Tran (mtanh)

2 of 22

Team

Students:

  • Ashwin Vaswani (apvaswan)
  • Minh Tran (minht)�

Advisors:

  • Meta:
    • He Wen
    • Yuan Dong�
  • CMU:
    • Professor Deepak Pathak

2

3 of 22

Motivation

  • Photorealistic avatars
  • Virtual reality
  • Teleconferencing

3

4 of 22

Goal - Active Learning using Hard Poses

Desired output:

Hard examples for labelling to improve segmentation model using AL

4

Small labelled dataset of multi-view images (~thousands)

Large unlabelled dataset (~millions)

5 of 22

Challenges

  • Problem 1: Long tail
    • Solution: Multi-view
  • Problem 2: Annotation cost
    • Dense prediction problem
    • Solution: Active learning

5

6 of 22

Proposed Approach - Active Learning for Hard Poses

6

Hard - Use for next iteration of training with weighted penalty and continue from stage 1 iteratively till annotation budget

​

​

Other - Continue as unlabeled for next iteration

​

​

Easy - Good as pseudo labels, use for self-training in the next iteration.

​

​

7 of 22

CDGNet - Body Part Segmentation

​

​

​

  • Part segmentation is a positionally dependent problem.
  • CGD backbone learns horizontal and vertical class distribution labels.
  • Features as positional guidance signal of human parts.

7

8 of 22

Progress I - Learning from Synthetic Humans

​

​

  • Create synthetic data using the Surreal dataset.�
  • Captured SMPL pose parameters of people performing actions in videos.�
  • Given SMPL poses, we randomly sample shapes, randomly sample male/female and randomly add clothing textures to get the mesh. �
  • For diversity, we only sample poses if they are different from the previously sampled pose.�
  • Next, we render this mesh and using camera poses from the CMU panoptic studio and add the corresponding backgrounds from panoptic studio.

8

9 of 22

Progress I - Learning from Synthetic Humans

​

​

​

  • We have per vertex segmentation label for SMPL meshes.
  • Rendering mesh interpolates pixels.
    • Rendering without interpolation to get segmentation maps.

9

10 of 22

Progress I - Learning from Synthetic Humans

​

​

​

  • We have per vertex segmentation label for SMPL meshes.
  • Rendering mesh interpolates pixels.
    • Rendering without interpolation to get segmentation maps.

10

11 of 22

Progress I - Learning from Synthetic Humans

​

​

​

Dataset statistics:

  • Images, Part segmentations, Depth maps.
  • 10 views.
  • ᯈ2.5M images.

11

12 of 22

Progress II - Initial Strategies & Results

​

​

  • Baselines: Random, Entropy based
  • Common failure: Self-occlusions, Joints crossings, Complex actions.
  • Approach: Multi-view active learning (AL) method to identify hard examples.
  • Goal: Improve performance, automate annotation process

12

13 of 22

Finding Hard Poses

  • Method 1: Multi-view Consistency
    • Multiview data is important for self-occlusions

​

  • Method 2: Clustering / Similarity
    • Clustering to find most unusual poses
    • Predefine hard poses

13

14 of 22

Method 1: Multi-view Consistency

​

​

  • Some frames have more descriptive information than others due to viewing angles to resolve ambiguities
    • Use uncertainty across cross projects as sampling strategy.

14

15 of 22

Method 2: Clustering / Similarity

​

​

​

​

  • Clustering on weighted poses (joints).
    • Torso and head less likely move.
    • Limbs are more flexible.
  • Uncommon poses are hard.
    • Poses at tail of distribution.
    • Generate similar poses.
  • Predefine hard poses.
    • Generate/Find similar poses.

15

16 of 22

Active Learning Specifics

  • Start with 600 initial images.
  • For Stages 1, 2,3,4,5…:
    • Train segmentation model.
    • Run inference on unlabelled dataset and sample hard examples.
      • All hard (600 images)
      • Mix of easy and hard
    • Add these hard examples and corresponding labels to the training set and move to next stage.

16

X% sampled data data

Trained Model

Inference

Other

Hard

Data Pool

Data Pool

Use in next Stage for training

17 of 22

Qualitative Results

17

Hard examples

Easy examples

18 of 22

Quantitative Results (mIOU scores)

18

Stage number \ Method

Random

Ours

80% random, 20% ours

1

52.61

52.64

52.60

2

59.15

55.63

58.22

3

65.62

61.43

64.09

4

69.51

65.65

68.41

5

71.29

68.81

70.55

19 of 22

Discussion

  • Why is random better?
    • Mostly (>95%) had easy examples.
  • Solution:
    • Stratifying test set (Semi-automated).

19

20 of 22

Next Steps

20

November

Modeling improvements

​

Re-weighting, learning with pseudo labels too, improving learning strategies using these hard and easy samples. Better sampling strategies.

​

​

December

Project wind-down

​

Final documentation, code and wrap-up.

​

​

Next week

Longer training

​

For hard examples, training curves were slightly more noisy. Probably the models have not converged and might need take more time / scheduling.

Mid October

Testing with Meta’s data

​

So far, we trained and experimented with synthetic data, our sampling results are promising and we’re currently setting up pipelines for Meta’s data.

​

​

21 of 22

Conclusion

  • Even after identifying hard examples, learning is not easy.
  • However, there is promise in literature and we are working on improvements.
  • Stratified test set would give us more signal.

21

22 of 22

Thank you!

Questions?

22