📄 controlpointgeneticweaklearnerinterface.h
字号:
//LAB_LicenseBegin==============================================================
// Copyright (c) 2005-2006, Hicham GHORAYEB < ghorayeb@gmail.com >
// All rights reserved.
//
// This software is a Library for Adaptive Boosting. It provides a generic
// framework for the study of the Boosting algorithms. The framework provides
// the different tasks for boosting: Learning, Validation, Test, Profiling and
// Performance Analysis Tasks.
//
// This Library was developped during my PhD studies at:
// Ecole des Mines de Paris - Centre de Robotique( CAOR )
// http://caor.ensmp.fr
// under the supervision of Pr. Claude Laurgeau and Bruno Steux
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the distribution.
// * Neither the name of the Ecole des Mines de Paris nor the names of
// its contributors may be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//================================================================LAB_LicenseEnd
#ifndef _LIBADABOOST_LEARNERS_CP_GENETIC_WLINTERFACES_WEAKLEARNER_I_H_
#define _LIBADABOOST_LEARNERS_CP_GENETIC_WLINTERFACES_WEAKLEARNER_I_H_
#include "LibAdaBoost/modules/ModuleFactoryBase.h"
using namespace modules;
#include "LibAdaBoost/learners/wlinterfaces/GeneticWeakLearnerInterface.h"
using namespace learners::wlinterfaces;
#include "LibAdaBoost/classifiers/features/ControlPointFeature.h"
using namespace classifiers::features;
#define NUMBER_OF_MUTATION_TYPE 3
namespace learners{
namespace wlinterfaces{
class ControlPointGeneticWeakLearnerInterface
: public GeneticWeakLearnerInterface
{
typedef enum
{
MUTATE_MOVE_POINT = 0,
MUTATE_ADD_POINT = 1,
MUTATE_REMOVE_POINT = 2,
MUTATE_CHANGE_CHANNEL = 3,
MUTATE_CHANGE_THRESHOILD = 4
} t_MutationType;
public:// Constructor & Destructor
ControlPointGeneticWeakLearnerInterface();
~ControlPointGeneticWeakLearnerInterface();
public://Module
std::string GetName(void) const { return "ControlPointGeneticWeakLearnerInterface";}
void SetOptions(const modules::options::ModuleOptions &options);
public:// WeakLearnerInterface
WeakClassifier* Mutate(const WeakClassifier &wc) const;
WeakClassifier* Randomize(const WeakClassifier &wc) const ;
WeakClassifier* CrossOver(const WeakClassifier &wc1, const WeakClassifier &wc2) const;
private:
void MutateSpecific(ControlPointFeature &wcOut, ControlPointGeneticWeakLearnerInterface::t_MutationType mutationType) const;
};
typedef ModuleFactory<ControlPointGeneticWeakLearnerInterface> ControlPointGeneticWeakLearnerInterfaceFactory;
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -