Giter Site home page Giter Site logo

mmhmmmmm / spudrfs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from learninginvision/spudrfs-caffe

0.0 0.0 0.0 26.77 MB

Self-Paced Deep Regression Forests with Consderation on Underrepresented Examples in Pytorch

Makefile 21.52% CMake 0.01% C++ 72.89% C 0.62% Cuda 2.48% MATLAB 0.30% Python 2.15% Shell 0.03%

spudrfs's Introduction

Self-Paced Deep Regression Forests with Consideration on Underrepresented Examples

Abstract: Deep discriminative models (e.g. deep regression forests, deep neural decision forests) have achieved remarkable success recently to solve problems such as facial age estimation and head pose estimation. Most existing methods pursue robust and unbiased solutions either through learning discriminative features, or reweighting samples. We argue what is more desirable is learning gradually to discriminate like our human beings, and hence we resort to self-paced learning (SPL). Then, a natural question arises: can self-paced regime lead deep discriminative models to achieve more robust and less biased solutions? To this end, we propose a new deep discriminative model—self-paced deep regression forests with consideration on underrepresented examples (SPUDRFs). It tackles the fundamental ranking and selecting problem in SPL from a new perspective: fairness. This paradigm is fundamental and could be easily combined with a variety of deep discriminative models (DDMs). Extensive experiments on two computer vision tasks, i.e., facial age estimation and head pose estimation, demonstrate the efficacy of SPUDRFs, where state-of-the-art performances are achieved.

Poster Presentation

Poster Presentation [PDF]

Tasks and Performances

Age Estimation on MORPH II Dataset

The gradual learning process of SP-DRFs and SPUDRFs. Left: The typical worst cases at each iteration. The two numbers below each image are the real age (left) and predicted age (right). Right: The MAEs of SP-DRFs and SPUDRFs at each pace descend gradually. The SPUDRFs show its superiority of taking predictive uncertainty into consideration, when compared with SP-DRFs.

Head Pose Estimation on BIWI Dataset

The leaf node distribution of SP-DRFs and SPUDRFs in gradual learning process. Three paces, i.e. pace 1, 3, and 6, are randomly chosen for visualization. For SP-DRFs, the Gaussian means of leaf nodes (the red points in the second row) are concentrated in a small range, incurring seriously biased solutions. For SPUDRFs, the Gaussian means of leaf nodes (the orange points in the third row) distribute widely, leading to much better MAE performance.

Code

We provide our implementation of self-paced deep regression forests with consideration on underrepresentd examples.

If you use this code for your research, please cite:

Self-Paced Deep Regression Forests with Consideration on Underrepresented Examples.
Lili Pan, Shijie Ai, Yazhou Ren, Zenglin Xu. In ECCV2020.
[Bibtex] [PDF]

Setup

Requirements:

  • caffe
  • python 2.7

Clone this repo:

git clone https://github.com/learninginvision/SPUDRFs   
cd SPUDFRs  

Code descritption:

Here is the description of the main codes.

  • main.py:
    train SPUDRFs from scratch
  • train.py:
    complete one pace training for a given train set
  • predict.py:
    complete a test for a given test set
  • picksamples.py:
    select samples for next pace

Train your SPUDRFs from scratch

cd SPUDRFs/caffe_soft
sudo make clean
sudo make all
sudo make pycaffe
cd ..
python2 main.py

You can download the final model from here.

Acknowledgments

This code is inspired by caffe-DRFs.

spudrfs's People

Contributors

learninginvision avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.