Main MRPT website > C++ reference for MRPT 1.9.9
List of all members | Classes | Public Member Functions | Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes
mrpt::detectors::CFaceDetection Class Reference

Detailed Description

Specific class for face detection.

Methods and variables labeled as experimentals are temporals (for debug or testing purposes) and may disappear in future versions.

Definition at line 32 of file CFaceDetection.h.

#include <mrpt/detectors/CFaceDetection.h>

Inheritance diagram for mrpt::detectors::CFaceDetection:
Inheritance graph

Classes

struct  TMeasurement
 
struct  TOptions
 
struct  TTestsOptions
 

Public Member Functions

 CFaceDetection ()
 
 ~CFaceDetection ()
 
virtual void init (const mrpt::utils::CConfigFileBase &cfg)
 Initialize the object with parameters loaded from the given config source. More...
 
virtual void detectObjects_Impl (const mrpt::obs::CObservation *obs, vector_detectable_object &detected)
 
void experimental_showMeasurements ()
 
void debug_returnResults (const vector_uint &falsePositives, const vector_uint &ignore, unsigned int &falsePositivesDeleted, unsigned int &realFacesDeleted)
 
void init (const std::string &configFile)
 Initialize the object with parameters loaded from the given config file. More...
 
void detectObjects (const mrpt::obs::CObservation::Ptr obs, vector_detectable_object &detected)
 
void detectObjects (const mrpt::obs::CObservation *obs, vector_detectable_object &detected)
 
void detectObjects (const mrpt::utils::CImage *img, vector_detectable_object &detected)
 

Public Attributes

CCascadeClassifierDetection cascadeClassifier
 
struct mrpt::detectors::CFaceDetection::TOptions m_options
 
struct mrpt::detectors::CFaceDetection::TTestsOptions m_testsOptions
 

Private Member Functions

bool checkIfFacePlane (mrpt::obs::CObservation3DRangeScan *face)
 
bool checkIfFacePlaneCov (mrpt::obs::CObservation3DRangeScan *face)
 
void thread_checkIfFacePlaneCov ()
 
bool checkIfFaceRegions (mrpt::obs::CObservation3DRangeScan *face)
 
void thread_checkIfFaceRegions ()
 
size_t checkRelativePosition (const mrpt::math::TPoint3D &p1, const mrpt::math::TPoint3D &p2, const mrpt::math::TPoint3D &p, double &dist)
 
void thread_checkIfDiagonalSurface ()
 
bool checkIfDiagonalSurface (mrpt::obs::CObservation3DRangeScan *face)
 
bool checkIfDiagonalSurface2 (mrpt::obs::CObservation3DRangeScan *face)
 
void experimental_viewFacePointsScanned (const std::vector< float > &xs, const std::vector< float > &ys, const std::vector< float > &zs)
 
void experimental_viewFacePointsScanned (const mrpt::obs::CObservation3DRangeScan &face)
 
void experimental_viewFacePointsScanned (const std::vector< mrpt::math::TPoint3D > &points)
 
void experimental_viewFacePointsAndEigenVects (const std::vector< mrpt::math::CArrayDouble< 3 >> &pointsVector, const mrpt::math::CMatrixDouble &eigenVect, const mrpt::math::CVectorDouble &eigenVal)
 
void experimental_viewRegions (const std::vector< mrpt::math::TPoint3D > regions[9], const mrpt::math::TPoint3D meanPos[3][3])
 
void experimental_segmentFace (const mrpt::obs::CObservation3DRangeScan &face, mrpt::math::CMatrixTemplate< bool > &region)
 
void experimental_calcHist (const mrpt::utils::CImage &face, const size_t &c1, const size_t &r1, const size_t &c2, const size_t &r2, mrpt::math::CMatrixTemplate< unsigned int > &hist)
 

Static Private Member Functions

static void dummy_checkIfFacePlaneCov (CFaceDetection *obj)
 
static void dummy_checkIfFaceRegions (CFaceDetection *obj)
 
static void dummy_checkIfDiagonalSurface (CFaceDetection *obj)
 

Private Attributes

std::thread m_thread_checkIfFaceRegions
 Thread that execute checkIfFaceRegions filter. More...
 
std::thread m_thread_checkIfFacePlaneCov
 Thread that execute checkIfFacePlaneCov filter. More...
 
std::thread m_thread_checkIfDiagonalSurface
 Thread that execute checkIfDiagonalSurface filter. More...
 
bool m_checkIfFaceRegions_res
 Save result of checkIfFaceRegions filter. More...
 
bool m_checkIfFacePlaneCov_res
 Save result of checkIfFacePlaneCov filter. More...
 
bool m_checkIfDiagonalSurface_res
 Save result of checkIfDiagonalSurface filter. More...
 
bool m_end_threads
 Indicates to all threads that must finish their execution. More...
 
std::promise< voidm_enter_checkIfFaceRegions
 Indicates to thread_checkIfFaceRegions that exist a new face to analyze. More...
 
std::promise< voidm_enter_checkIfFacePlaneCov
 Indicates to thread_checkIfFacePlaneCov that exist a new face to analyze. More...
 
std::promise< voidm_enter_checkIfDiagonalSurface
 Indicates to thread_checkIfDiagonalSurface that exist a new face to analyze. More...
 
std::promise< voidm_leave_checkIfFaceRegions
 Indicates to main thread that thread_checkIfFaceRegions has been completed analisis of the last face detected. More...
 
std::promise< voidm_leave_checkIfFacePlaneCov
 Indicates to main thread that thread_checkIfFacePlaneCov has been completed analisis of the last face detected. More...
 
std::promise< voidm_leave_checkIfDiagonalSurface
 Indicates to main thread that thread_checkIfDiagonalSurface has been completed analisis of the last face detected. More...
 
mrpt::obs::CObservation3DRangeScan m_lastFaceDetected
 Last face detected. More...
 
struct mrpt::detectors::CFaceDetection::TMeasurement m_measure
 
mrpt::utils::CTimeLogger m_timeLog
 
std::vector< double > m_meanHist
 

Constructor & Destructor Documentation

◆ CFaceDetection()

CFaceDetection::CFaceDetection ( )

◆ ~CFaceDetection()

CFaceDetection::~CFaceDetection ( )

Member Function Documentation

◆ checkIfDiagonalSurface()

bool CFaceDetection::checkIfDiagonalSurface ( mrpt::obs::CObservation3DRangeScan face)
private

◆ checkIfDiagonalSurface2()

bool CFaceDetection::checkIfDiagonalSurface2 ( mrpt::obs::CObservation3DRangeScan face)
private

◆ checkIfFacePlane()

bool CFaceDetection::checkIfFacePlane ( mrpt::obs::CObservation3DRangeScan face)
private

◆ checkIfFacePlaneCov()

bool CFaceDetection::checkIfFacePlaneCov ( mrpt::obs::CObservation3DRangeScan face)
private

◆ checkIfFaceRegions()

bool CFaceDetection::checkIfFaceRegions ( mrpt::obs::CObservation3DRangeScan face)
private

◆ checkRelativePosition()

size_t CFaceDetection::checkRelativePosition ( const mrpt::math::TPoint3D p1,
const mrpt::math::TPoint3D p2,
const mrpt::math::TPoint3D p,
double &  dist 
)
private

Definition at line 809 of file CFaceDetection.cpp.

References mrpt::math::TPoint3D::x, and mrpt::math::TPoint3D::y.

Referenced by checkIfFaceRegions().

Here is the caller graph for this function:

◆ debug_returnResults()

void CFaceDetection::debug_returnResults ( const vector_uint falsePositives,
const vector_uint ignore,
unsigned int &  falsePositivesDeleted,
unsigned int &  realFacesDeleted 
)

◆ detectObjects() [1/3]

void mrpt::detectors::CObjectDetection::detectObjects ( const mrpt::obs::CObservation::Ptr  obs,
vector_detectable_object detected 
)
inlineinherited

Definition at line 39 of file CObjectDetection.h.

References mrpt::detectors::CObjectDetection::detectObjects_Impl().

Referenced by detectObjects_Impl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ detectObjects() [2/3]

void mrpt::detectors::CObjectDetection::detectObjects ( const mrpt::obs::CObservation obs,
vector_detectable_object detected 
)
inlineinherited

Definition at line 46 of file CObjectDetection.h.

References mrpt::detectors::CObjectDetection::detectObjects_Impl().

Here is the call graph for this function:

◆ detectObjects() [3/3]

void CObjectDetection::detectObjects ( const mrpt::utils::CImage img,
vector_detectable_object detected 
)
inherited

◆ detectObjects_Impl()

void CFaceDetection::detectObjects_Impl ( const mrpt::obs::CObservation obs,
vector_detectable_object detected 
)
virtual

◆ dummy_checkIfDiagonalSurface()

void CFaceDetection::dummy_checkIfDiagonalSurface ( CFaceDetection obj)
staticprivate

Definition at line 841 of file CFaceDetection.cpp.

Referenced by init().

Here is the caller graph for this function:

◆ dummy_checkIfFacePlaneCov()

void CFaceDetection::dummy_checkIfFacePlaneCov ( CFaceDetection obj)
staticprivate

Definition at line 352 of file CFaceDetection.cpp.

Referenced by init().

Here is the caller graph for this function:

◆ dummy_checkIfFaceRegions()

void CFaceDetection::dummy_checkIfFaceRegions ( CFaceDetection obj)
staticprivate

Definition at line 480 of file CFaceDetection.cpp.

Referenced by init().

Here is the caller graph for this function:

◆ experimental_calcHist()

void CFaceDetection::experimental_calcHist ( const mrpt::utils::CImage face,
const size_t &  c1,
const size_t &  r1,
const size_t &  c2,
const size_t &  r2,
mrpt::math::CMatrixTemplate< unsigned int > &  hist 
)
private

Definition at line 1862 of file CFaceDetection.cpp.

References mrpt::math::CMatrixTemplate< T >::get_unsafe(), and mrpt::math::CMatrixTemplate< T >::set_unsafe().

Referenced by checkIfFaceRegions().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ experimental_segmentFace()

void CFaceDetection::experimental_segmentFace ( const mrpt::obs::CObservation3DRangeScan face,
mrpt::math::CMatrixTemplate< bool > &  region 
)
private

◆ experimental_showMeasurements()

void CFaceDetection::experimental_showMeasurements ( )

◆ experimental_viewFacePointsAndEigenVects()

void CFaceDetection::experimental_viewFacePointsAndEigenVects ( const std::vector< mrpt::math::CArrayDouble< 3 >> &  pointsVector,
const mrpt::math::CMatrixDouble eigenVect,
const mrpt::math::CVectorDouble eigenVal 
)
private

◆ experimental_viewFacePointsScanned() [1/3]

void CFaceDetection::experimental_viewFacePointsScanned ( const std::vector< float > &  xs,
const std::vector< float > &  ys,
const std::vector< float > &  zs 
)
private

◆ experimental_viewFacePointsScanned() [2/3]

void CFaceDetection::experimental_viewFacePointsScanned ( const mrpt::obs::CObservation3DRangeScan face)
private

Definition at line 1364 of file CFaceDetection.cpp.

References experimental_viewFacePointsScanned().

Here is the call graph for this function:

◆ experimental_viewFacePointsScanned() [3/3]

void CFaceDetection::experimental_viewFacePointsScanned ( const std::vector< mrpt::math::TPoint3D > &  points)
private

Definition at line 1389 of file CFaceDetection.cpp.

References experimental_viewFacePointsScanned().

Here is the call graph for this function:

◆ experimental_viewRegions()

void CFaceDetection::experimental_viewRegions ( const std::vector< mrpt::math::TPoint3D regions[9],
const mrpt::math::TPoint3D  meanPos[3][3] 
)
private

◆ init() [1/2]

void mrpt::detectors::CObjectDetection::init ( const std::string configFile)
inlineinherited

Initialize the object with parameters loaded from the given config file.

Definition at line 29 of file CObjectDetection.h.

◆ init() [2/2]

void CFaceDetection::init ( const mrpt::utils::CConfigFileBase cfg)
virtual

Initialize the object with parameters loaded from the given config source.

Implements mrpt::detectors::CObjectDetection.

Definition at line 75 of file CFaceDetection.cpp.

References cascadeClassifier, mrpt::detectors::CFaceDetection::TOptions::confidenceThreshold, dummy_checkIfDiagonalSurface(), dummy_checkIfFacePlaneCov(), dummy_checkIfFaceRegions(), mrpt::detectors::CCascadeClassifierDetection::init(), m_checkIfDiagonalSurface_res, m_checkIfFacePlaneCov_res, m_checkIfFaceRegions_res, m_measure, m_options, m_testsOptions, m_thread_checkIfDiagonalSurface, m_thread_checkIfFacePlaneCov, m_thread_checkIfFaceRegions, mrpt::detectors::CFaceDetection::TOptions::multithread, mrpt::detectors::CFaceDetection::TTestsOptions::planeTest_eigenVal_bottom, mrpt::detectors::CFaceDetection::TTestsOptions::planeTest_eigenVal_top, mrpt::detectors::CFaceDetection::TTestsOptions::planeThreshold, mrpt::utils::CConfigFileBase::read_bool(), mrpt::utils::CConfigFileBase::read_double(), mrpt::utils::CConfigFileBase::read_int(), mrpt::detectors::CFaceDetection::TTestsOptions::regionsTest_sumDistThreshold_bottom, mrpt::detectors::CFaceDetection::TTestsOptions::regionsTest_sumDistThreshold_top, mrpt::detectors::CFaceDetection::TMeasurement::saveMeasurementsToFile, mrpt::detectors::CFaceDetection::TMeasurement::takeMeasures, mrpt::detectors::CFaceDetection::TMeasurement::takeTime, mrpt::detectors::CFaceDetection::TOptions::useCovFilter, mrpt::detectors::CFaceDetection::TOptions::useDiagonalDistanceFilter, mrpt::detectors::CFaceDetection::TOptions::useRegionsFilter, and mrpt::detectors::CFaceDetection::TOptions::useSizeDistanceRelationFilter.

Here is the call graph for this function:

◆ thread_checkIfDiagonalSurface()

void CFaceDetection::thread_checkIfDiagonalSurface ( )
private

◆ thread_checkIfFacePlaneCov()

void CFaceDetection::thread_checkIfFacePlaneCov ( )
private

◆ thread_checkIfFaceRegions()

void CFaceDetection::thread_checkIfFaceRegions ( )
private

Definition at line 485 of file CFaceDetection.cpp.

References checkIfFaceRegions(), m_checkIfFaceRegions_res, m_end_threads, m_enter_checkIfFaceRegions, m_lastFaceDetected, and m_leave_checkIfFaceRegions.

Here is the call graph for this function:

Member Data Documentation

◆ cascadeClassifier

CCascadeClassifierDetection mrpt::detectors::CFaceDetection::cascadeClassifier

Definition at line 35 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), and init().

◆ m_checkIfDiagonalSurface_res

bool mrpt::detectors::CFaceDetection::m_checkIfDiagonalSurface_res
private

Save result of checkIfDiagonalSurface filter.

Definition at line 90 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), init(), and thread_checkIfDiagonalSurface().

◆ m_checkIfFacePlaneCov_res

bool mrpt::detectors::CFaceDetection::m_checkIfFacePlaneCov_res
private

Save result of checkIfFacePlaneCov filter.

Definition at line 88 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), init(), and thread_checkIfFacePlaneCov().

◆ m_checkIfFaceRegions_res

bool mrpt::detectors::CFaceDetection::m_checkIfFaceRegions_res
private

Save result of checkIfFaceRegions filter.

Definition at line 86 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), init(), and thread_checkIfFaceRegions().

◆ m_end_threads

bool mrpt::detectors::CFaceDetection::m_end_threads
private

Indicates to all threads that must finish their execution.

Definition at line 93 of file CFaceDetection.h.

Referenced by thread_checkIfDiagonalSurface(), thread_checkIfFacePlaneCov(), thread_checkIfFaceRegions(), and ~CFaceDetection().

◆ m_enter_checkIfDiagonalSurface

std::promise<void> mrpt::detectors::CFaceDetection::m_enter_checkIfDiagonalSurface
private

Indicates to thread_checkIfDiagonalSurface that exist a new face to analyze.

Definition at line 103 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), thread_checkIfDiagonalSurface(), and ~CFaceDetection().

◆ m_enter_checkIfFacePlaneCov

std::promise<void> mrpt::detectors::CFaceDetection::m_enter_checkIfFacePlaneCov
private

Indicates to thread_checkIfFacePlaneCov that exist a new face to analyze.

Definition at line 100 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), thread_checkIfFacePlaneCov(), and ~CFaceDetection().

◆ m_enter_checkIfFaceRegions

std::promise<void> mrpt::detectors::CFaceDetection::m_enter_checkIfFaceRegions
private

Indicates to thread_checkIfFaceRegions that exist a new face to analyze.

Definition at line 97 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), thread_checkIfFaceRegions(), and ~CFaceDetection().

◆ m_lastFaceDetected

mrpt::obs::CObservation3DRangeScan mrpt::detectors::CFaceDetection::m_lastFaceDetected
private

◆ m_leave_checkIfDiagonalSurface

std::promise<void> mrpt::detectors::CFaceDetection::m_leave_checkIfDiagonalSurface
private

Indicates to main thread that thread_checkIfDiagonalSurface has been completed analisis of the last face detected.

Definition at line 113 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), and thread_checkIfDiagonalSurface().

◆ m_leave_checkIfFacePlaneCov

std::promise<void> mrpt::detectors::CFaceDetection::m_leave_checkIfFacePlaneCov
private

Indicates to main thread that thread_checkIfFacePlaneCov has been completed analisis of the last face detected.

Definition at line 110 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), and thread_checkIfFacePlaneCov().

◆ m_leave_checkIfFaceRegions

std::promise<void> mrpt::detectors::CFaceDetection::m_leave_checkIfFaceRegions
private

Indicates to main thread that thread_checkIfFaceRegions has been completed analisis of the last face detected.

Definition at line 107 of file CFaceDetection.h.

Referenced by detectObjects_Impl(), and thread_checkIfFaceRegions().

◆ m_meanHist

std::vector<double> mrpt::detectors::CFaceDetection::m_meanHist
private

Definition at line 142 of file CFaceDetection.h.

Referenced by experimental_showMeasurements().

◆ m_measure

struct mrpt::detectors::CFaceDetection::TMeasurement mrpt::detectors::CFaceDetection::m_measure
private

◆ m_options

struct mrpt::detectors::CFaceDetection::TOptions mrpt::detectors::CFaceDetection::m_options

◆ m_testsOptions

struct mrpt::detectors::CFaceDetection::TTestsOptions mrpt::detectors::CFaceDetection::m_testsOptions

Referenced by checkIfFacePlane(), and init().

◆ m_thread_checkIfDiagonalSurface

std::thread mrpt::detectors::CFaceDetection::m_thread_checkIfDiagonalSurface
private

Thread that execute checkIfDiagonalSurface filter.

Definition at line 83 of file CFaceDetection.h.

Referenced by init(), and ~CFaceDetection().

◆ m_thread_checkIfFacePlaneCov

std::thread mrpt::detectors::CFaceDetection::m_thread_checkIfFacePlaneCov
private

Thread that execute checkIfFacePlaneCov filter.

Definition at line 81 of file CFaceDetection.h.

Referenced by init(), and ~CFaceDetection().

◆ m_thread_checkIfFaceRegions

std::thread mrpt::detectors::CFaceDetection::m_thread_checkIfFaceRegions
private

Thread that execute checkIfFaceRegions filter.

Definition at line 79 of file CFaceDetection.h.

Referenced by init(), and ~CFaceDetection().

◆ m_timeLog

mrpt::utils::CTimeLogger mrpt::detectors::CFaceDetection::m_timeLog
private



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019