diff --git a/apps/sft/CMakeLists.txt b/apps/sft/CMakeLists.txt new file mode 100644 index 0000000000..3980a29d93 --- /dev/null +++ b/apps/sft/CMakeLists.txt @@ -0,0 +1,37 @@ +if(IOS OR ANDROID) + return() +endif() + +set(the_target stf) +set(name ${the_target}) + +set(OPENCV_${the_target}_DEPS opencv_core opencv_objdetect opencv_highgui opencv_imgproc opencv_ml) +ocv_check_dependencies(${OPENCV_${the_target}_DEPS}) + +if(NOT OCV_DEPENDENCIES_FOUND) + return() +endif() + +project(${the_target}) + +ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include" "${OpenCV_SOURCE_DIR}/include/opencv") +ocv_include_modules(${OPENCV_${the_target}_DEPS}) + +file(GLOB ${the_target}_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) + +add_executable(${the_target} ${${the_target}_SOURCES}) + +target_link_libraries(${the_target} ${OPENCV_${the_target}_DEPS}) + +set_target_properties(${the_target} PROPERTIES + DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" + ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} + RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH} + INSTALL_NAME_DIR lib + OUTPUT_NAME ${name}) + +if(ENABLE_SOLUTION_FOLDERS) + set_target_properties(${the_target} PROPERTIES FOLDER "applications") +endif() + +install(TARGETS ${the_target} RUNTIME DESTINATION bin COMPONENT main) \ No newline at end of file diff --git a/apps/sft/include/sft/common.hpp b/apps/sft/include/sft/common.hpp new file mode 100644 index 0000000000..86d2355470 --- /dev/null +++ b/apps/sft/include/sft/common.hpp @@ -0,0 +1,53 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2008-2012, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's 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. +// +// * The name of the copyright holders may not 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 Intel Corporation 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. +// +//M*/ + +#ifndef __SFT_COMMON_HPP__ +#define __SFT_COMMON_HPP__ + +#include + +namespace sft +{ + using cv::Mat; +} + +#endif \ No newline at end of file diff --git a/apps/sft/include/sft/octave.hpp b/apps/sft/include/sft/octave.hpp new file mode 100644 index 0000000000..dab07ef0fc --- /dev/null +++ b/apps/sft/include/sft/octave.hpp @@ -0,0 +1,63 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2008-2012, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's 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. +// +// * The name of the copyright holders may not 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 Intel Corporation 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. +// +//M*/ + +#ifndef __SFT_OCTAVE_HPP__ +#define __SFT_OCTAVE_HPP__ + +#include + +namespace sft +{ + +// used for traning single octave scale +class Octave : public cv::Boost +{ +public: + Octave(); + ~Octave(); + +private: +}; + +} + +#endif \ No newline at end of file diff --git a/apps/sft/octave.cpp b/apps/sft/octave.cpp new file mode 100644 index 0000000000..a18f082a57 --- /dev/null +++ b/apps/sft/octave.cpp @@ -0,0 +1,47 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2008-2012, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's 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. +// +// * The name of the copyright holders may not 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 Intel Corporation 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. +// +//M*/ + +#include + +sft::Octave::Octave(){} + +sft::Octave::~Octave(){} \ No newline at end of file diff --git a/apps/sft/sft.cpp b/apps/sft/sft.cpp new file mode 100644 index 0000000000..255919d89b --- /dev/null +++ b/apps/sft/sft.cpp @@ -0,0 +1,117 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2008-2012, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's 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. +// +// * The name of the copyright holders may not 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 Intel Corporation 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. +// +//M*/ + +// Trating application for Soft Cascades. + +#include +#include + +int main(int argc, char** argv) +{ +// hard coded now + int nfeatures = 50; + int npositives = 10; + int nnegatives = 10; + int nsamples = npositives + nnegatives; + + sft::Octave boost; + cv::Mat train_data(nfeatures, nsamples, CV_32FC1); + + // cv::RNG rng; + + // for (int y = 0; y < nfeatures; ++y) + // for (int x = 0; x < nsamples; ++x) + // train_data.at(y, x) = rng.uniform(0.f, 1.f); + + // int tflag = CV_COL_SAMPLE; + // Mat responses(nsamples, 1, CV_32FC1); + // for (int y = 0; y < nsamples; ++y) + // responses.at(y, 0) = (y < npositives) ? 1.f : 0.f; + + + // Mat var_idx(1, nfeatures, CV_32SC1); + // for (int x = 0; x < nfeatures; ++x) + // var_idx.at(0, x) = x; + + // // Mat sample_idx; + // Mat sample_idx(1, nsamples, CV_32SC1); + // for (int x = 0; x < nsamples; ++x) + // sample_idx.at(0, x) = x; + + // Mat var_type(1, nfeatures + 1, CV_8UC1); + // for (int x = 0; x < nfeatures; ++x) + // var_type.at(0, x) = CV_VAR_ORDERED; + + // var_type.at(0, nfeatures) = CV_VAR_CATEGORICAL; + + // Mat missing_mask; + + // CvBoostParams params; + // { + // params.max_categories = 10; + // params.max_depth = 2; + // params.min_sample_count = 2; + // params.cv_folds = 0; + // params.truncate_pruned_tree = false; + + // /// ?????????????????? + // params.regression_accuracy = 0.01; + // params.use_surrogates = false; + // params.use_1se_rule = false; + + // ///////// boost params + // params.boost_type = CvBoost::GENTLE; + // params.weak_count = 1; + // params.split_criteria = CvBoost::SQERR; + // params.weight_trim_rate = 0.95; + // } + + // bool update = false; + + // boost.train(train_data, tflag, responses, + // var_idx, sample_idx, var_type, missing_mask, params, update); + + // CvFileStorage* fs = cvOpenFileStorage( "/home/kellan/train_res.xml", 0, CV_STORAGE_WRITE ); + // boost.write(fs, "test_res"); + + // cvReleaseFileStorage( &fs ); +} \ No newline at end of file