CPU CascadeClassifier with HOG not working anymore with opencv 3.0.0.rc1 (Bug #4336)
Description
Hi,
While moving from opencv 2.4.10 to opencv 3.0.0rc1 I found that the CPU CascadeClassifier is not working anymore with HOG.
Digging into the code I discovered that the HOGEvaluator is completely missing in 3.0.
This is the FeatureEvaluator::create() method from the 2.4 version:
Ptr<FeatureEvaluator> FeatureEvaluator::create( int featureType ) { return featureType == HAAR ? Ptr<FeatureEvaluator>(new HaarEvaluator) : featureType == LBP ? Ptr<FeatureEvaluator>(new LBPEvaluator) : featureType == HOG ? Ptr<FeatureEvaluator>(new HOGEvaluator) : Ptr<FeatureEvaluator>(); }
And this is the same method from the 3.0 version:
Ptr<FeatureEvaluator> FeatureEvaluator::create( int featureType ) { return featureType == HAAR ? Ptr<FeatureEvaluator>(new HaarEvaluator) : featureType == LBP ? Ptr<FeatureEvaluator>(new LBPEvaluator) : Ptr<FeatureEvaluator>(); }
They are both extracted from the "cascadedetect.cpp" source file of the relative version.
The "opencv_traincascade" utility included in the 3.0.0rc1 version still permits us to use HOG for training but we don't know how to use the training results anymore.
Is it a bug or a decision ?
If the latter: how are supposed to be used files produced by "opencv_traincascade" with HOG ?
Thank you
Valentino
Related issues
related to Bug #4137: Crash while loading HOG object detection model | Cancelled | 2015-01-20 |
History
Updated by Alex D almost 10 years ago
Valentino Proietti wrote:
Hi,
While moving from opencv 2.4.10 to opencv 3.0.0rc1 I found that the CPU CascadeClassifier is not working anymore with HOG.
Digging into the code I discovered that the HOGEvaluator is completely missing in 3.0.This is the FeatureEvaluator::create() method from the 2.4 version:
[...]And this is the same method from the 3.0 version:
[...]They are both extracted from the "cascadedetect.cpp" source file of the relative version.
The "opencv_traincascade" utility included in the 3.0.0rc1 version still permits us to use HOG for training but we don't know how to use the training results anymore.
Is it a bug or a decision ?
If the latter: how are supposed to be used files produced by "opencv_traincascade" with HOG ?Thank you
Valentino
I have exactly the same problem.
Updated by Vadim Pisarevsky almost 10 years ago
- Category set to objdetect
Updated by Vadim Pisarevsky almost 10 years ago
We decided to drop the current HOG cascades in OpenCV 3.x. The implemented HOG features are quite weird - different from Dalal's interpretation of HOG, different from P. Dollar integral channel features. In xobjdetect we slowly grow superior ICF/ACF+WaldBoost-based detector, which is there already and will be improved during 2015.
- Status changed from New to Cancelled
- Assignee set to Vadim Pisarevsky
- Difficulty set to Hard
Updated by Valentino Proietti almost 10 years ago
I'm just wondering why this "design decision" has not been evidenced as needed on the release notes, but may be it's just my fault.
Thank you very much indeed Vadim !!!
Updated by Steven Puttemans over 9 years ago
Valentino Proietti wrote:
I'm just wondering why this "design decision" has not been evidenced as needed on the release notes, but may be it's just my fault.
Thank you very much indeed Vadim !!!
Actually that is a very good point. It should be mentioned if functionality is dropped. We should remove the ability to train HOG features than also from the training interface. Will take a look at it later on! I will reopen this bugreport simply so I can link the PR for the deletion of the functionality.
- Status changed from Cancelled to Open
- Assignee changed from Vadim Pisarevsky to Steven Puttemans
Updated by Maksim Shabunin over 9 years ago
Issue has been transferred to GitHub: https://github.com/Itseez/opencv/issues/4989