sliding_window_object_detector.h
Go to the documentation of this file.
1 // @author Krishneel Chaudhary, JSK
2 
3 #ifndef JSK_PERCEPTION_SLIDING_WINDOW_OBJECT_DETECTOR_H
4 #define JSK_PERCEPTION_SLIDING_WINDOW_OBJECT_DETECTOR_H
5 
8 #include <jsk_recognition_msgs/RectArray.h>
9 #include <jsk_recognition_msgs/ClusterPointIndices.h>
10 #include <jsk_perception/SlidingWindowObjectDetectorConfig.h>
11 
12 #include <pcl/point_types.h>
13 
14 #include <ros/ros.h>
15 #include <ros/console.h>
16 #include <rosbag/bag.h>
17 #include <rosbag/view.h>
18 
19 #include <boost/foreach.hpp>
20 
22 #include <cv_bridge/cv_bridge.h>
24 #include <sensor_msgs/PointCloud2.h>
25 #include <dynamic_reconfigure/server.h>
26 
27 #include <iostream>
28 #include <vector>
29 #include <string>
30 #include <fstream>
31 #include <map>
32 #include <algorithm>
33 #include <utility>
34 
35 namespace jsk_perception
36 {
39  {
40  public:
42  DiagnosticNodelet("SlidingWindowObjectDetector") {}
43 
44  virtual void readTrainingManifestFromDirectory();
45  virtual void loadTrainedDetectorModel();
46  virtual std::multimap<float, cv::Rect_<int> > runSlidingWindowDetector(
47  const cv::Mat &, const cv::Size, const float, const int, const int);
48  virtual void objectRecognizer(
49  const cv::Mat &, std::multimap<float, cv::Rect_<int> > &,
50  const cv::Size, const int = 16);
51  virtual void pyramidialScaling(
52  cv::Size &, const float);
53  virtual std::vector<cv::Rect_<int> > nonMaximumSuppression(
54  std::multimap<float, cv::Rect_<int> > &, const float);
56  const std::vector<cv::Rect_<int> > &,
57  jsk_recognition_msgs::RectArray &, const int, const cv::Size);
58  virtual void configCallback(
59  jsk_perception::SlidingWindowObjectDetectorConfig &, uint32_t);
60  virtual void concatenateCVMat(
61  const cv::Mat &, const cv::Mat &, cv::Mat &, bool = true);
62  virtual void setBoundingBoxLabel(
63  cv::Mat&, cv::Rect_<int>, const std::string = "object");
64 
65  // temp placed here
66  virtual void computeHSHistogram(
67  cv::Mat &, cv::Mat &, const int = 64, const int = 32, bool = true);
68 
69  protected:
70  virtual void imageCb(
71  const sensor_msgs::ImageConstPtr&);
72 
73  virtual void onInit();
74  virtual void subscribe();
75  virtual void unsubscribe();
76 
77  boost::mutex mutex_;
82 
83  int swindow_x;
84  int swindow_y;
85  float scale_;
88  int downsize_;
89 
90  std::string run_type_;
94  std::string ndataset_path_;
95 
96  std::string model_name_;
97  std::string dataset_path_;
98 
100 
101 #if CV_MAJOR_VERSION >= 3 // http://answers.opencv.org/question/46770/cvknearest-missing-in-300-cvmlknearest-abstract/
102  cv::Ptr<cv::ml::SVM> supportVectorMachine_;
103 #else
105 #endif
106  boost::shared_ptr<dynamic_reconfigure::Server<
107  jsk_perception::SlidingWindowObjectDetectorConfig> > srv_;
109  };
110 
111 } // namespace jsk_perception
112 
113 
114 #endif // JSK_PERCEPTION_SLIDING_WINDOW_OBJECT_DETECTOR_H
void convertCvRectToJSKRectArray(const std::vector< cv::Rect_< int > > &, jsk_recognition_msgs::RectArray &, const int, const cv::Size)
virtual void imageCb(const sensor_msgs::ImageConstPtr &)
virtual void setBoundingBoxLabel(cv::Mat &, cv::Rect_< int >, const std::string="object")
virtual void computeHSHistogram(cv::Mat &, cv::Mat &, const int=64, const int=32, bool=true)
virtual void concatenateCVMat(const cv::Mat &, const cv::Mat &, cv::Mat &, bool=true)
DiagnosticNodelet(const std::string &name)
virtual std::vector< cv::Rect_< int > > nonMaximumSuppression(std::multimap< float, cv::Rect_< int > > &, const float)
boost::shared_ptr< dynamic_reconfigure::Server< jsk_perception::SlidingWindowObjectDetectorConfig > > srv_
virtual std::multimap< float, cv::Rect_< int > > runSlidingWindowDetector(const cv::Mat &, const cv::Size, const float, const int, const int)
virtual void pyramidialScaling(cv::Size &, const float)
virtual void configCallback(jsk_perception::SlidingWindowObjectDetectorConfig &, uint32_t)
virtual void objectRecognizer(const cv::Mat &, std::multimap< float, cv::Rect_< int > > &, const cv::Size, const int=16)


jsk_perception
Author(s): Manabu Saito, Ryohei Ueda
autogenerated on Mon May 3 2021 03:03:27