Go to the documentation of this file.00001
00060 #ifndef __ABSTRACT_FACE_RECOGNIZER_H__
00061 #define __ABSTRACT_FACE_RECOGNIZER_H__
00062
00063 #ifdef __LINUX__
00064 #else
00065 #include "cob_vision/cob_vision_ipa_utils/common/include/cob_vision_ipa_utils/MathUtils.h"
00066 #include "cob_vision/cob_sensor_fusion/common/include/cob_sensor_fusion/ColoredPointCloud.h"
00067 #endif
00068
00069
00070 #include <opencv2/opencv.hpp>
00071
00072 namespace ipa_PeopleDetector
00073 {
00074
00075 class AbstractFaceRecognizer
00076 {
00077 public:
00078
00080 AbstractFaceRecognizer(void);
00081 ~AbstractFaceRecognizer(void);
00082
00089 virtual unsigned long recognizeFaces(std::vector<cv::Mat>& color_images, std::vector<std::vector<cv::Rect> >& face_coordinates,
00090 std::vector<std::vector<std::string> >& identification_labels);
00091 virtual unsigned long recognizeFaces(std::vector<cv::Mat>& color_images, std::vector<cv::Mat>& depth_images, std::vector<std::vector<cv::Rect> >& face_coordinates,
00092 std::vector<std::vector<std::string> >& identification_labels);
00093
00097 virtual unsigned long trainRecognitionModel(std::vector<std::string>& identification_labels_to_train) = 0;
00098
00101 virtual unsigned long saveRecognitionModel() = 0;
00102
00106 virtual unsigned long loadRecognitionModel(std::vector<std::string>& identification_labels_to_recognize) = 0;
00107
00108 protected:
00115 virtual unsigned long recognizeFace(cv::Mat& color_image, std::vector<cv::Rect>& face_coordinates, std::vector<std::string>& identification_labels) = 0;
00116 virtual unsigned long recognizeFace(cv::Mat& color_image, cv::Mat& depth_image, std::vector<cv::Rect>& face_coordinates, std::vector<std::string>& identification_labels) = 0;
00117 };
00118
00119 }
00120
00121 #endif // __ABSTRACT_FACE_RECOGNIZER_H__