几则代码

/ PartsBasedDetector

https://github.com/wg-perception/PartsBasedDetector


Deformable parts-based object recognition for Open CV


During his summer internship at Willow Garage, Hilton Bristow, a PhD. student from the Queensland University of Technology, Australia, implemented a deformable parts-based object recognition method.  There are many perception situations when only monocular (single camera) visual data is available, and in such situations, robust, efficient object detection techniques are desired. 

Object recognition using mixtures of deformable parts is a state-of-the-art technique for monocular object recognition.  Hilton ported an existing method by Deva Ramanan from Matlab to C++ to improve the computational performance and make it more accessible to the computer vision and robotics communities alike.  In doing so, he recognized that depth data (such as with the kinnect sensor) could be leveraged to prune the object search space, and disambiguate multiple superimposed object candidates.  The result was an object detection framework capable of detecting human bodies at 1-2 frames per second (fps) and simpler objects at 5-10 fps.

Give the code a shot! You can find it in the wg-perception repository on GitHub, along with a number of pre-trained models and bindings to ROS and the ECTO synchronous vision pipeline. For more information check out the video.



This project implements a Parts Based Detector in C++, described in the
following paper:

    Yi Yang, Deva Ramanan, "Articulated Pose Estimation with 
    Flexible Mixtures-of-Parts," CVPR 2011

The project has the following dependencies:

    OpenCV  REQUIRED (for image processing)
    CMake   REQUIRED (for building)
    Doxygen OPTIONAL (for documentation)
    OpenMP  OPTIONAL (for multithreading)
    ROS     OPTIONAL (for publishing detections on a ROS topic)
    ECTO    OPTIONAL (for building and ECTO cell)

BUILDING
The project can be built in one of two modes:

    A standalone binary (for testing functionality)
    A shared library    (for use in existing applications)

To configure the project, set the options at the top of CMakeLists.txt
To build the project, follow the normal cmake routine from the root folder:

    >> mkdir build
    >> cd build
    >> cmake ..
    >> make

DETECTING
To run the detector, please consult the Mainpage of the docs, or
src/demo.cpp. Both contain examples of how the detector can be
initialised and run

LEARNING
The learning code is currently only in Octave/Matlab. This is because
the detector supports a number of learning schema, and porting all of
these to C++ is not practical at this time.
Please consult the README within the matlab/ directory for instructions
on training a model

This package is developed and maintained by Hilton Bristow, Willow Garage



Rapid Deformable Object Detection using Bounding-Based Techniques

Software and licences

Our code builds on the system distributed in [4] under the GNU GPL. We include a slightly adapted version of that software, allowing us to extract timing information, and also to compile it in windows. We include parts of source code from the ESS implementation [6] and the Dual Tree implementation in [8], released under the Apache and the GNU GPL licences respectively. Our code is distributed under the GNU-gpl v2.




Stanford University
CS223C: The Cutting Edge of Computer Vision

Project 1: Pedestrian Detection with the Deformable Part Model

Project Description:

Implement a pedestrian detection algorithm using the HOG (Histogram of Oriented Gradients) feature representation and the Deformable Part Model.
•   Refer to Viola & Jones for a general idea about object detection systems.
•   Refer to Dalal & Triggs for the HOG (Histogram of Oriented Gradients) feature representation.
•   Refer to Felzenszwalb et al (2008) for the Deformable Part Model for object detection. Felzenszwalb et al (PAMI 2010) is a more detailed
    version of the paper.
•   Refer to Felzenszwalb et al (CVPR 2010) for how to make your algorithm faster. (We encourage you to read this paper to get more ideas about how to improve a detection system. But you are not required to implement this paper.)

Dataset and Project Setup:

In this project, we will use PASCAL VOC 2007 person detection dataset to train and test your program. Here is a brief introduction of the datasets (you only need to look at the "person" category). The performance of your method will be evaluated using precision & recall curve and average precision (AP). Here is a criteria to evaluate whether a specific detection result is correct or not.
Fortunately, in this project you do not need to install the PASCAL VOC development kit and write codes of how to evaluate the performance by yourself. Please follow these steps to start your project:
•   Download the PASCAL VOC development kit that has been installed by us from here (859MB). Untar the file.
•   Run "VOCdevkit/example_detector.m" in matlab, which contains a very simple person detection training and testing method. This program
    loads training data to memory, trains a person detector, tests the trained detector on testing images, and finally computes the average
    precision score and draws the precision-recall curve.
•   In "VOCdevkit/example_detector.m", replace "detector=train(VOCopts,cls)" with your own training implementation. Refer to the "train"
    function for how to load training images and ground truth bounding boxes.
•   In "VOCdevkit/example_detector.m", replace "test(VOCopts,cls,detector)" with your own testing implementation. Refer to the "test" function
    for how to load testing images and ground truth bounding boxes.

More Guides

•   The authors of the deformable part model have the code online:http://people.cs.uchicago.edu/~pff/latent/. You can read the code
    before you start your own implementation. But the authors' code has many tricks that are not fully covered by their paper, and you do not
    need to worry if you cannot fully understand their code.
•   Implement your method based on the CVPR 2008 paper but you do not need to implement the mixture model and dynamic programming for
    updating deformable parts. You can refer to the PAMI 2010 paper to have a better understanding of the method, but you do not need to
    implement the additional details in this paper.
•   Directly copying the authors' code without mentioning it in your write-up is an honor code violation. But if you do have trouble in
    implementing a specific function, you might refer to the existing codes and mention this clearly in your write-up. Note that implementing a
    function by yourself but have poor performance is more desirable than using existing codes.
•   There might be some very time-consuming parts in the method. You may use mex-files which allows you to call C functions in matlab so
    that your algorithm can be accelerated.
•   If your compute is limited by memory or your code is extremely slow, you do not need to use all training and testing images. You can use half
    or a even smaller proportion of the images. But it is encouraged to use all training (2501) and testing (4952) images in your experiments.
•   If you have any questions or trouble, feel free to ask questions in Piazzza or send emails to the course staff email "cs223c-spr1011-staff [at]
    lists [dot] stanford [dot] edu".
•   Although you are basically implementing an existing algorithm, the project is very open and you can do everything you can imagine to
    achieve good performance. You do not need to worry too much if your algorithm is not doing a perfect job. But we do encourage you to
    start your projects earlier so that you have more time to play with your algorithm.
•   Your project will not be evaluated based only on the performance of your algorithm. Show us that you have a good understanding of the
    problem and the algorithm, and try to have deep insights from your experiment results.

References:

•   P.Viola and M.Jones. Rapid Object Detection using a Boosted Cascade of Simple Features. CVPR 2001.
•   N.Dalal and B.Triggs. Histograms of Oriented Gradients for Human Detection. CVPR 2005.
•   P.Felzenszwalb, D.McAllester, and D.Ramanan. A Discriminatively Trained, Multiscale, Deformable Part Model. CVPR 2008.
•   P.Felzenszwalb, R.Girshick, D. McAllester, and D.Ramanan. Object Detection with Discriminatively Trained Part-Based Models. PAMI
    2010.
•   P.Felzenszwalb, R.Girshick, and D.McAllester. Cascade Object Detection with Deformable Part Models. CVPR 2010.

Important Dates:

•   Deadline of submitting the code and write-up: Sat, Apr 16 (23:59pm), how to submit your documents will be updated later
•   A short presentation of your work: Mon, Apr 18 (in class)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值