10#ifndef CFaceDetection_H
11#define CFaceDetection_H
Specific class for face detection.
mrpt::system::TThreadHandle m_thread_checkIfFacePlaneCov
Thread that execute checkIfFacePlaneCov filter.
bool m_checkIfFaceRegions_res
Save result of checkIfFaceRegions filter.
bool checkIfDiagonalSurface2(mrpt::obs::CObservation3DRangeScan *face)
void experimental_viewFacePointsScanned(const mrpt::obs::CObservation3DRangeScan &face)
virtual void detectObjects_Impl(const mrpt::obs::CObservation *obs, vector_detectable_object &detected)
void experimental_viewFacePointsScanned(const std::vector< float > &xs, const std::vector< float > &ys, const std::vector< float > &zs)
bool checkIfFacePlaneCov(mrpt::obs::CObservation3DRangeScan *face)
mrpt::synch::CSemaphore m_leave_checkIfFacePlaneCov
Indicates to main thread that thread_checkIfFacePlaneCov has been completed analisis of the last face...
void experimental_segmentFace(const mrpt::obs::CObservation3DRangeScan &face, mrpt::math::CMatrixTemplate< bool > ®ion)
std::vector< double > m_meanHist
static void dummy_checkIfFaceRegions(CFaceDetection *obj)
mrpt::system::TThreadHandle m_thread_checkIfDiagonalSurface
Thread that execute checkIfDiagonalSurface filter.
virtual void init(const mrpt::utils::CConfigFileBase &cfg)
Initialize the object with parameters loaded from the given config source.
mrpt::system::TThreadHandle m_thread_checkIfFaceRegions
Thread that execute checkIfFaceRegions filter.
mrpt::synch::CSemaphore m_enter_checkIfFaceRegions
Indicates to thread_checkIfFaceRegions that exist a new face to analyze.
mrpt::synch::CSemaphore m_leave_checkIfDiagonalSurface
Indicates to main thread that thread_checkIfDiagonalSurface has been completed analisis of the last f...
mrpt::synch::CSemaphore m_leave_checkIfFaceRegions
Indicates to main thread that thread_checkIfFaceRegions has been completed analisis of the last face ...
size_t checkRelativePosition(const mrpt::math::TPoint3D &p1, const mrpt::math::TPoint3D &p2, const mrpt::math::TPoint3D &p, double &dist)
void experimental_showMeasurements()
mrpt::obs::CObservation3DRangeScan m_lastFaceDetected
Last face detected.
mrpt::utils::CTimeLogger m_timeLog
CCascadeClassifierDetection cascadeClassifier
void thread_checkIfFaceRegions()
void thread_checkIfFacePlaneCov()
bool m_end_threads
Indicates to all threads that must finish their execution.
bool checkIfFacePlane(mrpt::obs::CObservation3DRangeScan *face)
bool m_checkIfFacePlaneCov_res
Save result of checkIfFacePlaneCov filter.
static void dummy_checkIfFacePlaneCov(CFaceDetection *obj)
void experimental_viewFacePointsScanned(const std::vector< mrpt::math::TPoint3D > &points)
mrpt::synch::CSemaphore m_enter_checkIfFacePlaneCov
Indicates to thread_checkIfFacePlaneCov that exist a new face to analyze.
bool checkIfDiagonalSurface(mrpt::obs::CObservation3DRangeScan *face)
mrpt::synch::CSemaphore m_enter_checkIfDiagonalSurface
Indicates to thread_checkIfDiagonalSurface that exist a new face to analyze.
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)
void thread_checkIfDiagonalSurface()
void experimental_viewRegions(const std::vector< mrpt::math::TPoint3D > regions[9], const mrpt::math::TPoint3D meanPos[3][3])
void debug_returnResults(const vector_uint &falsePositives, const vector_uint &ignore, unsigned int &falsePositivesDeleted, unsigned int &realFacesDeleted)
bool m_checkIfDiagonalSurface_res
Save result of checkIfDiagonalSurface filter.
void experimental_viewFacePointsAndEigenVects(const std::vector< mrpt::math::CArrayDouble< 3 > > &pointsVector, const mrpt::math::CMatrixDouble &eigenVect, const mrpt::math::CVectorDouble &eigenVal)
static void dummy_checkIfDiagonalSurface(CFaceDetection *obj)
bool checkIfFaceRegions(mrpt::obs::CObservation3DRangeScan *face)
A partial specialization of CArrayNumeric for double numbers.
This template class provides the basic functionality for a general 2D any-size, resizable container o...
Column vector, like Eigen::MatrixX*, but automatically initialized to zeros since construction.
Declares a class derived from "CObservation" that encapsules a 3D range scan measurement,...
Declares a class that represents any robot's observation.
A semaphore for inter-thread synchronization.
This class allows loading and storing values and vectors of different types from a configuration text...
A class for storing images as grayscale or RGB bitmaps.
A versatile "profiler" that logs the time spent within each pair of calls to enter(X)-leave(X),...
std::vector< uint32_t > vector_uint
std::vector< CDetectableObjectPtr > vector_detectable_object
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
mrpt::math::CVectorDouble sumDistances
mrpt::math::CVectorDouble meanRegions
bool saveMeasurementsToFile
mrpt::math::CVectorDouble errorEstimations
int numPossibleFacesDetected
vector_uint deletedRegions
mrpt::math::CVectorDouble lessEigenVals
bool useSizeDistanceRelationFilter
bool useDiagonalDistanceFilter
double regionsTest_sumDistThreshold_bottom
double regionsTest_sumDistThreshold_top
double planeTest_eigenVal_top
double planeTest_eigenVal_bottom
This structure contains the information needed to interface the threads API on each platform: