Add new app dedicated for training soft cascades.
authormarina.kolpakova <marina.kolpakova@itseez.com>
Thu, 6 Dec 2012 07:07:35 +0000 (11:07 +0400)
committermarina.kolpakova <marina.kolpakova@itseez.com>
Fri, 1 Feb 2013 10:34:38 +0000 (14:34 +0400)
apps/sft/CMakeLists.txt [new file with mode: 0644]
apps/sft/include/sft/common.hpp [new file with mode: 0644]
apps/sft/include/sft/octave.hpp [new file with mode: 0644]
apps/sft/octave.cpp [new file with mode: 0644]
apps/sft/sft.cpp [new file with mode: 0644]

diff --git a/apps/sft/CMakeLists.txt b/apps/sft/CMakeLists.txt
new file mode 100644 (file)
index 0000000..3980a29
--- /dev/null
@@ -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 (file)
index 0000000..86d2355
--- /dev/null
@@ -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 <opencv2/core/core.hpp>
+
+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 (file)
index 0000000..dab07ef
--- /dev/null
@@ -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 <opencv2/ml/ml.hpp>
+
+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 (file)
index 0000000..a18f082
--- /dev/null
@@ -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.hpp>
+
+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 (file)
index 0000000..255919d
--- /dev/null
@@ -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 <sft/common.hpp>
+#include <sft/octave.hpp>
+
+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<float>(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<float>(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<int>(0, x) = x;
+
+    // // Mat sample_idx;
+    // Mat sample_idx(1, nsamples, CV_32SC1);
+    // for (int x = 0; x < nsamples; ++x)
+    //     sample_idx.at<int>(0, x) = x;
+
+    // Mat var_type(1, nfeatures + 1, CV_8UC1);
+    // for (int x = 0; x < nfeatures; ++x)
+    //     var_type.at<uchar>(0, x) = CV_VAR_ORDERED;
+
+    // var_type.at<uchar>(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