OpenPose
1.0.0rc2
OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
|
Namespaces | |
ConfigureError | |
ConfigureLog | |
Typedefs | |
typedef WrapperT < DATUM_BASE_NO_PTR > | Wrapper |
Functions | |
COMPILE_TEMPLATE_DATUM (WPoseTriangulation) | |
OP_API void | estimateAndSaveIntrinsics (const Point< int > &gridInnerCorners, const float gridSquareSizeMm, const int flags, const std::string &outputParameterFolder, const std::string &imagesFolder, const std::string &serialNumber, const bool saveImagesWithCorners=false) |
OP_API void | estimateAndSaveExtrinsics (const std::string &intrinsicsFolder, const std::string &extrinsicsImagesFolder, const Point< int > &gridInnerCorners, const float gridSquareSizeMm, const int index0, const int index1, const bool imagesAreUndistorted, const bool combineCam0Extrinsics) |
OP_API void | estimateAndSaveSiftFile (const Point< int > &gridInnerCorners, const std::string &imagesFolder, const int numberCameras, const bool saveImagesWithCorners=false) |
OP_API std::pair< bool, std::vector< cv::Point2f > > | findAccurateGridCorners (const cv::Mat &image, const cv::Size &gridInnerCorners) |
OP_API std::vector< cv::Point3f > | getObjects3DVector (const cv::Size &gridInnerCorners, const float gridSquareSizeMm) |
OP_API void | drawGridCorners (cv::Mat &image, const cv::Size &gridInnerCorners, const std::vector< cv::Point2f > &points2DVector) |
OP_API std::array< unsigned int, 4 > | getOutterCornerIndices (const std::vector< cv::Point2f > &points2DVector, const cv::Size &gridInnerCorners) |
OP_API void | reorderPoints (std::vector< cv::Point2f > &points2DVector, const cv::Size &gridInnerCorners, const Points2DOrigin points2DOriginDesired) |
OP_API void | plotGridCorners (const cv::Size &gridInnerCorners, const std::vector< cv::Point2f > &points2DVector, const std::string &imagePath, const cv::Mat &image) |
template<typename T > | |
Rectangle< T > | recenter (const Rectangle< T > &rectangle, const T newWidth, const T newHeight) |
COMPILE_TEMPLATE_DATUM (WCvMatToOpInput) | |
COMPILE_TEMPLATE_DATUM (WCvMatToOpOutput) | |
COMPILE_TEMPLATE_DATUM (WKeepTopNPeople) | |
COMPILE_TEMPLATE_DATUM (WKeypointScaler) | |
COMPILE_TEMPLATE_DATUM (WOpOutputToCvMat) | |
COMPILE_TEMPLATE_DATUM (WScaleAndSizeExtractor) | |
OP_API void | renderFaceKeypointsCpu (Array< float > &frameArray, const Array< float > &faceKeypoints, const float renderThreshold) |
void | renderFaceKeypointsGpu (float *framePtr, const Point< int > &frameSize, const float *const facePtr, const int numberPeople, const float renderThreshold, const float alphaColorToAdd=FACE_DEFAULT_ALPHA_KEYPOINT) |
COMPILE_TEMPLATE_DATUM (WFaceDetector) | |
COMPILE_TEMPLATE_DATUM (WFaceDetectorOpenCV) | |
COMPILE_TEMPLATE_DATUM (WFaceExtractorNet) | |
COMPILE_TEMPLATE_DATUM (WFaceRenderer) | |
OP_API std::string | dataFormatToString (const DataFormat dataFormat) |
OP_API DataFormat | stringToDataFormat (const std::string &dataFormat) |
OP_API void | saveFloatArray (const Array< float > &array, const std::string &fullFilePath) |
OP_API void | saveData (const std::vector< cv::Mat > &cvMats, const std::vector< std::string > &cvMatNames, const std::string &fileNameNoExtension, const DataFormat dataFormat) |
OP_API void | saveData (const cv::Mat &cvMat, const std::string cvMatName, const std::string &fileNameNoExtension, const DataFormat dataFormat) |
OP_API std::vector< cv::Mat > | loadData (const std::vector< std::string > &cvMatNames, const std::string &fileNameNoExtension, const DataFormat dataFormat) |
OP_API cv::Mat | loadData (const std::string &cvMatName, const std::string &fileNameNoExtension, const DataFormat dataFormat) |
OP_API void | savePeopleJson (const Array< float > &keypoints, const std::vector< std::vector< std::array< float, 3 >>> &candidates, const std::string &keypointName, const std::string &fileName, const bool humanReadable) |
OP_API void | savePeopleJson (const std::vector< std::pair< Array< float >, std::string >> &keypointVector, const std::vector< std::vector< std::array< float, 3 >>> &candidates, const std::string &fileName, const bool humanReadable) |
OP_API void | saveImage (const cv::Mat &cvMat, const std::string &fullFilePath, const std::vector< int > &openCvCompressionParams={CV_IMWRITE_JPEG_QUALITY, 100, CV_IMWRITE_PNG_COMPRESSION, 9}) |
OP_API cv::Mat | loadImage (const std::string &fullFilePath, const int openCvFlags=CV_LOAD_IMAGE_ANYDEPTH) |
OP_API std::vector< std::array < Rectangle< float >, 2 > > | loadHandDetectorTxt (const std::string &txtFilePath) |
COMPILE_TEMPLATE_DATUM (WCocoJsonSaver) | |
COMPILE_TEMPLATE_DATUM (WFaceSaver) | |
COMPILE_TEMPLATE_DATUM (WHandSaver) | |
COMPILE_TEMPLATE_DATUM (WHeatMapSaver) | |
COMPILE_TEMPLATE_DATUM (WImageSaver) | |
COMPILE_TEMPLATE_DATUM (WPeopleJsonSaver) | |
COMPILE_TEMPLATE_DATUM (WPoseSaver) | |
COMPILE_TEMPLATE_DATUM (WUdpSender) | |
COMPILE_TEMPLATE_DATUM (WVideoSaver) | |
OP_API void | cudaCheck (const int line=-1, const std::string &function="", const std::string &file="") |
OP_API int | getCudaGpuNumber () |
unsigned int | getNumberCudaBlocks (const unsigned int totalRequired, const unsigned int numberCudaThreads=CUDA_NUM_THREADS) |
OP_API void | getNumberCudaThreadsAndBlocks (dim3 &numberCudaThreads, dim3 &numberCudaBlocks, const Point< int > &frameSize) |
OP_API int | getGpuNumber () |
OP_API GpuMode | getGpuMode () |
COMPILE_TEMPLATE_DATUM (WGui) | |
COMPILE_TEMPLATE_DATUM (WGui3D) | |
COMPILE_TEMPLATE_DATUM (WGuiInfoAdder) | |
OP_API void | renderHandKeypointsCpu (Array< float > &frameArray, const std::array< Array< float >, 2 > &handKeypoints, const float renderThreshold) |
void | renderHandKeypointsGpu (float *framePtr, const Point< int > &frameSize, const float *const handsPtr, const int numberHands, const float renderThreshold, const float alphaColorToAdd=HAND_DEFAULT_ALPHA_KEYPOINT) |
COMPILE_TEMPLATE_DATUM (WHandDetector) | |
COMPILE_TEMPLATE_DATUM (WHandDetectorFromTxt) | |
COMPILE_TEMPLATE_DATUM (WHandDetectorTracking) | |
COMPILE_TEMPLATE_DATUM (WHandDetectorUpdate) | |
COMPILE_TEMPLATE_DATUM (WHandExtractorNet) | |
COMPILE_TEMPLATE_DATUM (WHandRenderer) | |
template<typename T > | |
void | connectBodyPartsCpu (Array< T > &poseKeypoints, Array< T > &poseScores, const T *const heatMapPtr, const T *const peaksPtr, const PoseModel poseModel, const Point< int > &heatMapSize, const int maxPeaks, const T interMinAboveThreshold, const T interThreshold, const int minSubsetCnt, const T minSubsetScore, const T scaleFactor=1.f) |
template<typename T > | |
void | connectBodyPartsGpu (Array< T > &poseKeypoints, Array< T > &poseScores, const T *const heatMapGpuPtr, const T *const peaksPtr, const PoseModel poseModel, const Point< int > &heatMapSize, const int maxPeaks, const T interMinAboveThreshold, const T interThreshold, const int minSubsetCnt, const T minSubsetScore, const T scaleFactor=1.f, Array< T > pairScoresCpu=Array< T >{}, T *pairScoresGpuPtr=nullptr, const unsigned int *const bodyPartPairsGpuPtr=nullptr, const unsigned int *const mapIdxGpuPtr=nullptr, const T *const peaksGpuPtr=nullptr) |
template<typename T > | |
std::vector< std::pair < std::vector< int >, T > > | createPeopleVector (const T *const heatMapPtr, const T *const peaksPtr, const PoseModel poseModel, const Point< int > &heatMapSize, const int maxPeaks, const T interThreshold, const T interMinAboveThreshold, const std::vector< unsigned int > &bodyPartPairs, const unsigned int numberBodyParts, const unsigned int numberBodyPartPairs, const Array< T > &precomputedPAFs=Array< T >()) |
template<typename T > | |
void | removePeopleBelowThresholds (std::vector< int > &validSubsetIndexes, int &numberPeople, const std::vector< std::pair< std::vector< int >, T >> &subsets, const unsigned int numberBodyParts, const int minSubsetCnt, const T minSubsetScore, const int maxPeaks) |
template<typename T > | |
void | peopleVectorToPeopleArray (Array< T > &poseKeypoints, Array< T > &poseScores, const T scaleFactor, const std::vector< std::pair< std::vector< int >, T >> &subsets, const std::vector< int > &validSubsetIndexes, const T *const peaksPtr, const int numberPeople, const unsigned int numberBodyParts, const unsigned int numberBodyPartPairs) |
template<typename T > | |
std::vector< std::tuple< T, T, int, int, int > > | pafPtrIntoVector (const Array< T > &pairScores, const T *const peaksPtr, const int maxPeaks, const std::vector< unsigned int > &bodyPartPairs, const unsigned int numberBodyPartPairs) |
template<typename T > | |
std::vector< std::pair < std::vector< int >, T > > | pafVectorIntoPeopleVector (const std::vector< std::tuple< T, T, int, int, int >> &pairScores, const T *const peaksPtr, const int maxPeaks, const std::vector< unsigned int > &bodyPartPairs, const unsigned int numberBodyParts) |
template<typename T > | |
void | maximumCpu (T *targetPtr, const T *const sourcePtr, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize) |
template<typename T > | |
void | maximumGpu (T *targetPtr, const T *const sourcePtr, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize) |
template<typename T > | |
void | nmsCpu (T *targetPtr, int *kernelPtr, const T *const sourcePtr, const T threshold, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize, const Point< T > &offset) |
template<typename T > | |
void | nmsGpu (T *targetPtr, int *kernelPtr, const T *const sourcePtr, const T threshold, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize, const Point< T > &offset) |
template<typename T > | |
void | nmsOcl (T *targetPtr, int *kernelPtr, const T *const sourcePtr, const T threshold, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize, const Point< T > &offset, const int gpuID=0) |
template<typename T > | |
void | resizeAndMergeCpu (T *targetPtr, const std::vector< const T * > &sourcePtrs, const std::array< int, 4 > &targetSize, const std::vector< std::array< int, 4 >> &sourceSizes, const std::vector< T > &scaleInputToNetInputs={1.f}) |
template<typename T > | |
void | resizeAndMergeGpu (T *targetPtr, const std::vector< const T * > &sourcePtrs, const std::array< int, 4 > &targetSize, const std::vector< std::array< int, 4 >> &sourceSizes, const std::vector< T > &scaleInputToNetInputs={1.f}) |
template<typename T > | |
void | resizeAndMergeOcl (T *targetPtr, const std::vector< const T * > &sourcePtrs, std::vector< T * > &sourceTempPtrs, const std::array< int, 4 > &targetSize, const std::vector< std::array< int, 4 >> &sourceSizes, const std::vector< T > &scaleInputToNetInputs={1.f}, const int gpuID=0) |
OP_API const std::map < unsigned int, std::string > & | getPoseBodyPartMapping (const PoseModel poseModel) |
OP_API const std::string & | getPoseProtoTxt (const PoseModel poseModel) |
OP_API const std::string & | getPoseTrainedModel (const PoseModel poseModel) |
OP_API unsigned int | getPoseNumberBodyParts (const PoseModel poseModel) |
OP_API const std::vector < unsigned int > & | getPosePartPairs (const PoseModel poseModel) |
OP_API const std::vector < unsigned int > & | getPoseMapIndex (const PoseModel poseModel) |
OP_API unsigned int | getPoseMaxPeaks (const PoseModel poseModel) |
OP_API float | getPoseNetDecreaseFactor (const PoseModel poseModel) |
OP_API unsigned int | poseBodyPartMapStringToKey (const PoseModel poseModel, const std::string &string) |
OP_API unsigned int | poseBodyPartMapStringToKey (const PoseModel poseModel, const std::vector< std::string > &strings) |
OP_API float | getPoseDefaultNmsThreshold (const PoseModel poseModel) |
OP_API float | getPoseDefaultConnectInterMinAboveThreshold (const PoseModel poseModel) |
OP_API float | getPoseDefaultConnectInterThreshold (const PoseModel poseModel) |
OP_API unsigned int | getPoseDefaultMinSubsetCnt (const PoseModel poseModel) |
OP_API float | getPoseDefaultConnectMinSubsetScore (const PoseModel poseModel) |
OP_API const std::vector< float > & | getPoseScales (const PoseModel poseModel) |
OP_API const std::vector< float > & | getPoseColors (const PoseModel poseModel) |
OP_API const std::vector < unsigned int > & | getPoseBodyPartPairsRender (const PoseModel poseModel) |
OP_API unsigned int | getNumberElementsToRender (const PoseModel poseModel) |
OP_API void | renderPoseKeypointsCpu (Array< float > &frameArray, const Array< float > &poseKeypoints, const PoseModel poseModel, const float renderThreshold, const bool blendOriginalFrame=true) |
void | renderPoseKeypointsGpu (float *framePtr, const PoseModel poseModel, const int numberPeople, const Point< int > &frameSize, const float *const posePtr, const float renderThreshold, const bool googlyEyes=false, const bool blendOriginalFrame=true, const float alphaBlending=POSE_DEFAULT_ALPHA_KEYPOINT) |
void | renderPoseHeatMapGpu (float *frame, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const unsigned int part, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP) |
void | renderPoseHeatMapsGpu (float *frame, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP) |
void | renderPosePAFGpu (float *framePtr, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const int part, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP) |
void | renderPosePAFsGpu (float *framePtr, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP) |
void | renderPoseDistanceGpu (float *framePtr, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const unsigned int part, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP) |
COMPILE_TEMPLATE_DATUM (WPoseExtractor) | |
COMPILE_TEMPLATE_DATUM (WPoseExtractorNet) | |
COMPILE_TEMPLATE_DATUM (WPoseRenderer) | |
OP_API std::shared_ptr< Producer > | createProducer (const ProducerType producerType=ProducerType::None, const std::string &producerString="", const Point< int > &cameraResolution=Point< int >{-1,-1}, const double webcamFps=30., const std::string &cameraParameterPath="models/cameraParameters/", const bool undistortImage=true, const unsigned int imageDirectoryStereo=-1) |
COMPILE_TEMPLATE_DATUM (PriorityQueue) | |
COMPILE_TEMPLATE_DATUM (Queue) | |
COMPILE_TEMPLATE_DATUM (SubThread) | |
COMPILE_TEMPLATE_DATUM (Thread) | |
COMPILE_TEMPLATE_DATUM (ThreadManager) | |
COMPILE_TEMPLATE_DATUM (WIdGenerator) | |
COMPILE_TEMPLATE_DATUM (Worker) | |
COMPILE_TEMPLATE_DATUM (WorkerConsumer) | |
COMPILE_TEMPLATE_DATUM (WorkerProducer) | |
COMPILE_TEMPLATE_DATUM (WQueueOrderer) | |
OP_API void | pyramidalLKCpu (std::vector< cv::Point2f > &coordI, std::vector< cv::Point2f > &coordJ, std::vector< cv::Mat > &pyramidImagesPrevious, std::vector< cv::Mat > &pyramidImagesCurrent, std::vector< char > &status, const cv::Mat &imagePrevious, const cv::Mat &imageCurrent, const int levels=3, const int patchSize=21) |
int | pyramidalLKGpu (std::vector< cv::Point2f > &ptsI, std::vector< cv::Point2f > &ptsJ, std::vector< char > &status, const cv::Mat &imagePrevious, const cv::Mat &imageCurrent, const int levels=3, const int patchSize=21) |
OP_API void | pyramidalLKOcv (std::vector< cv::Point2f > &coordI, std::vector< cv::Point2f > &coordJ, std::vector< cv::Mat > &pyramidImagesPrevious, std::vector< cv::Mat > &pyramidImagesCurrent, std::vector< char > &status, const cv::Mat &imagePrevious, const cv::Mat &imageCurrent, const int levels=3, const int patchSize=21, const bool initFlow=false) |
COMPILE_TEMPLATE_DATUM (WPersonIdExtractor) | |
template<typename T > | |
void | check (const bool condition, const T &message="", const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T , typename T1 , typename T2 > | |
void | checkE (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T , typename T1 , typename T2 > | |
void | checkNE (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T , typename T1 , typename T2 > | |
void | checkLE (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T , typename T1 , typename T2 > | |
void | checkLT (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T , typename T1 , typename T2 > | |
void | checkGE (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T , typename T1 , typename T2 > | |
void | checkGT (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T > | |
std::string | tToString (const T &message) |
OP_API void | error (const std::string &message, const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T > | |
void | error (const T &message, const int line=-1, const std::string &function="", const std::string &file="") |
OP_API void | log (const std::string &message, const Priority priority=Priority::Max, const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T > | |
void | log (const T &message, const Priority priority=Priority::Max, const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T > | |
void | dLog (const T &message, const Priority priority=Priority::Max, const int line=-1, const std::string &function="", const std::string &file="") |
template<typename T > | |
char | charRound (const T a) |
template<typename T > | |
signed char | sCharRound (const T a) |
template<typename T > | |
int | intRound (const T a) |
template<typename T > | |
long | longRound (const T a) |
template<typename T > | |
long long | longLongRound (const T a) |
template<typename T > | |
unsigned char | uCharRound (const T a) |
template<typename T > | |
unsigned int | uIntRound (const T a) |
template<typename T > | |
unsigned long | ulongRound (const T a) |
template<typename T > | |
unsigned long long | uLongLongRound (const T a) |
template<typename T > | |
T | fastMax (const T a, const T b) |
template<typename T > | |
T | fastMin (const T a, const T b) |
template<class T > | |
T | fastTruncate (T value, T min=0, T max=1) |
OP_API void | makeDirectory (const std::string &directoryPath) |
OP_API bool | existDirectory (const std::string &directoryPath) |
OP_API bool | existFile (const std::string &filePath) |
OP_API std::string | formatAsDirectory (const std::string &directoryPathString) |
OP_API std::string | getFileNameAndExtension (const std::string &fullPath) |
OP_API std::string | getFileNameNoExtension (const std::string &fullPath) |
OP_API std::string | getFileExtension (const std::string &fullPath) |
OP_API std::string | getFullFilePathNoExtension (const std::string &fullPath) |
OP_API std::string | getFileParentFolderPath (const std::string &fullPath) |
OP_API std::vector< std::string > | getFilesOnDirectory (const std::string &directoryPath, const std::vector< std::string > &extensions={}) |
OP_API std::vector< std::string > | getFilesOnDirectory (const std::string &directoryPath, const std::string &extension) |
OP_API std::string | removeSpecialsCharacters (const std::string &stringToVariate) |
OP_API void | removeAllOcurrencesOfSubString (std::string &stringToModify, const std::string &substring) |
OP_API void | replaceAll (std::string &stringText, const char charToChange, const char charToAdd) |
OP_API PoseModel | flagsToPoseModel (const std::string &poseModeString) |
OP_API ScaleMode | flagsToScaleMode (const int keypointScale) |
OP_API ScaleMode | flagsToHeatMapScaleMode (const int heatMapScale) |
OP_API ProducerType | flagsToProducerType (const std::string &imageDirectory, const std::string &videoPath, const std::string &ipCameraPath, const int webcamIndex, const bool flirCamera) |
OP_API std::pair< ProducerType, std::string > | flagsToProducer (const std::string &imageDirectory, const std::string &videoPath, const std::string &ipCameraPath="", const int webcamIndex=-1, const bool flirCamera=false, const int flirCameraIndex=-1) |
OP_API std::vector< HeatMapType > | flagsToHeatMaps (const bool heatMapsAddParts=false, const bool heatMapsAddBkg=false, const bool heatMapsAddPAFs=false) |
OP_API RenderMode | flagsToRenderMode (const int renderFlag, const bool gpuBuggy=false, const int renderPoseFlag=-2) |
OP_API DisplayMode | flagsToDisplayMode (const int display, const bool enabled3d) |
OP_API Point< int > | flagsToPoint (const std::string &pointString, const std::string &pointExample="1280x720") |
template<typename T > | |
T | getDistance (const Array< T > &keypoints, const int person, const int elementA, const int elementB) |
template<typename T > | |
void | averageKeypoints (Array< T > &keypointsA, const Array< T > &keypointsB, const int personA) |
template<typename T > | |
void | scaleKeypoints (Array< T > &keypoints, const T scale) |
template<typename T > | |
void | scaleKeypoints2d (Array< T > &keypoints, const T scaleX, const T scaleY) |
template<typename T > | |
void | scaleKeypoints2d (Array< T > &keypoints, const T scaleX, const T scaleY, const T offsetX, const T offsetY) |
template<typename T > | |
void | renderKeypointsCpu (Array< T > &frameArray, const Array< T > &keypoints, const std::vector< unsigned int > &pairs, const std::vector< T > colors, const T thicknessCircleRatio, const T thicknessLineRatioWRTCircle, const std::vector< T > &poseScales, const T threshold) |
template<typename T > | |
Rectangle< T > | getKeypointsRectangle (const Array< T > &keypoints, const int person, const T threshold) |
template<typename T > | |
T | getAverageScore (const Array< T > &keypoints, const int person) |
template<typename T > | |
T | getKeypointsArea (const Array< T > &keypoints, const int person, const T threshold) |
template<typename T > | |
int | getBiggestPerson (const Array< T > &keypoints, const T threshold) |
template<typename T > | |
int | getNonZeroKeypoints (const Array< T > &keypoints, const int person, const T threshold) |
template<typename T > | |
T | getDistanceAverage (const Array< T > &keypoints, const int personA, const int personB, const T threshold) |
template<typename T > | |
T | getDistanceAverage (const Array< T > &keypointsA, const int personA, const Array< T > &keypointsB, const int personB, const T threshold) |
template<typename T > | |
Array< T > | getKeypointsPerson (const Array< T > &keypoints, const int person, const bool noCopy=false) |
template<typename T > | |
float | getKeypointsRoi (const Array< T > &keypoints, const int personA, const int personB, const T threshold) |
template<typename T > | |
float | getKeypointsRoi (const Array< T > &keypointsA, const int personA, const Array< T > &keypointsB, const int personB, const T threshold) |
OP_API void | putTextOnCvMat (cv::Mat &cvMat, const std::string &textToDisplay, const Point< int > &position, const cv::Scalar &color, const bool normalizeWidth, const int imageWidth) |
OP_API void | unrollArrayToUCharCvMat (cv::Mat &cvMatResult, const Array< float > &array) |
OP_API void | uCharCvMatToFloatPtr (float *floatPtrImage, const cv::Mat &cvImage, const int normalize) |
OP_API double | resizeGetScaleFactor (const Point< int > &initialSize, const Point< int > &targetSize) |
OP_API void | resizeFixedAspectRatio (cv::Mat &resizedCvMat, const cv::Mat &cvMat, const double scaleFactor, const Point< int > &targetSize, const int borderMode=cv::BORDER_CONSTANT, const cv::Scalar &borderValue=cv::Scalar{0, 0, 0}) |
OP_API void | keepRoiInside (cv::Rect &roi, const int imageWidth, const int imageHeight) |
template<typename TPointerContainer > | |
bool | checkNoNullNorEmpty (const TPointerContainer &tPointerContainer) |
template<typename T > | |
bool | vectorsAreEqual (const std::vector< T > &vectorA, const std::vector< T > &vectorB) |
template<typename T > | |
std::vector< T > | mergeVectors (const std::vector< T > &vectorA, const std::vector< T > &vectorB) |
OP_API unsigned long long | getLastNumber (const std::string &string) |
template<typename T > | |
std::string | toFixedLengthString (const T number, const unsigned long long stringLength=0) |
OP_API std::vector< std::string > | splitString (const std::string &stringToSplit, const std::string &delimiter) |
OP_API std::string | toLower (const std::string &string) |
OP_API std::string | toUpper (const std::string &string) |
OP_API void | wrapperConfigureSanityChecks (WrapperStructPose &wrapperStructPose, const WrapperStructFace &wrapperStructFace, const WrapperStructHand &wrapperStructHand, const WrapperStructExtra &wrapperStructExtra, const WrapperStructInput &wrapperStructInput, const WrapperStructOutput &wrapperStructOutput, const bool renderOutput, const bool userOutputWsEmpty, const std::shared_ptr< Producer > &producerSharedPtr, const ThreadManagerMode threadManagerMode) |
OP_API void | threadIdPP (unsigned long long &threadId, const bool multiThreadEnabled) |
template<typename TDatums , typename TDatumsSP = std::shared_ptr<TDatums>, typename TWorker = std::shared_ptr<Worker<TDatumsSP>>> | |
void | configureThreadManager (ThreadManager< TDatumsSP > &threadManager, const bool multiThreadEnabled, const ThreadManagerMode threadManagerMode, const WrapperStructPose &wrapperStructPose, const WrapperStructFace &wrapperStructFace, const WrapperStructHand &wrapperStructHand, const WrapperStructExtra &wrapperStructExtra, const WrapperStructInput &wrapperStructInput, const WrapperStructOutput &wrapperStructOutput, const std::array< std::vector< TWorker >, int(WorkerType::Size)> &userWs, const std::array< bool, int(WorkerType::Size)> &userWsOnNewThread) |
typedef WrapperT<DATUM_BASE_NO_PTR> op::Wrapper |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
An enum class in which all the possible type of pose estimation models are included.
Enumerator | |
---|---|
BODY_25 |
COCO + 6 foot keypoints + neck + lower abs model, with 25+1 components (see poseParameters.hpp for details). |
COCO_18 |
COCO model + neck, with 18+1 components (see poseParameters.hpp for details). |
MPI_15 |
MPI model, with 15+1 components (see poseParameters.hpp for details). |
MPI_15_4 |
Variation of the MPI model, reduced number of CNN stages to 4: faster but less accurate. |
BODY_19 |
Experimental. Do not use. |
BODY_19_X2 |
Experimental. Do not use. |
BODY_59 |
Experimental. Do not use. |
BODY_19N |
Experimental. Do not use. |
BODY_25E |
Experimental. Do not use. |
BODY_25_19 |
Experimental. Do not use. |
BODY_65 |
Experimental. Do not use. |
CAR_12 |
Experimental. Do not use. |
BODY_25D |
Experimental. Do not use. |
BODY_23 |
Experimental. Do not use. |
CAR_22 |
Experimental. Do not use. |
Size |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Type of producers An enum class in which all the possible type of Producer are included. In order to add a new Producer, include its name in this enum and add a new 'else if' statement inside ProducerFactory::createProducer().
Enumerator | |
---|---|
FlirCamera |
Stereo FLIR (Point-Grey) camera reader. Based on Spinnaker SDK. |
ImageDirectory |
An image directory reader. It is able to read images on a folder with a interface similar to the OpenCV cv::VideoCapture. |
IPCamera |
An IP camera frames extractor, extending the functionality of cv::VideoCapture. |
Video |
A video frames extractor, extending the functionality of cv::VideoCapture. |
Webcam |
A webcam frames extractor, extending the functionality of cv::VideoCapture. |
None |
No type defined. Default state when no specific Producer has been picked yet. |
|
strong |
|
strong |
|
strong |
ThreadManager synchronization mode.
Enumerator | |
---|---|
Asynchronous |
First and last queues of ThreadManager will be given to the user, so he must push elements to the first queue and retrieve them from the last one after being processed. Recommended for prototyping environments (easier to test but more error-prone and potentially slower in performance). |
AsynchronousIn |
Similar to Asynchronous, but only the input (first) queue is given to the user. |
AsynchronousOut |
Similar to Asynchronous, but only the output (last) queue is given to the user. |
Synchronous |
Everything will run inside the ThreadManager. Recommended for production environments (more difficult to set up but faster in performance and less error-prone). |
|
strong |
void op::averageKeypoints | ( | Array< T > & | keypointsA, |
const Array< T > & | keypointsB, | ||
const int | personA | ||
) |
|
inline |
void op::check | ( | const bool | condition, |
const T & | message = "" , |
||
const int | line = -1 , |
||
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
void op::checkE | ( | const T1 & | conditionA, |
const T2 & | conditionB, | ||
const T & | message = "" , |
||
const int | line = -1 , |
||
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
void op::checkGE | ( | const T1 & | conditionA, |
const T2 & | conditionB, | ||
const T & | message = "" , |
||
const int | line = -1 , |
||
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
void op::checkGT | ( | const T1 & | conditionA, |
const T2 & | conditionB, | ||
const T & | message = "" , |
||
const int | line = -1 , |
||
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
void op::checkLE | ( | const T1 & | conditionA, |
const T2 & | conditionB, | ||
const T & | message = "" , |
||
const int | line = -1 , |
||
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
void op::checkLT | ( | const T1 & | conditionA, |
const T2 & | conditionB, | ||
const T & | message = "" , |
||
const int | line = -1 , |
||
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
void op::checkNE | ( | const T1 & | conditionA, |
const T2 & | conditionB, | ||
const T & | message = "" , |
||
const int | line = -1 , |
||
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
|
inline |
op::COMPILE_TEMPLATE_DATUM | ( | WorkerProducer | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WorkerConsumer | ) |
op::COMPILE_TEMPLATE_DATUM | ( | Worker | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WFaceDetector | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WFaceDetectorOpenCV | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WOpOutputToCvMat | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WHandDetector | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WHandDetectorFromTxt | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WHandDetectorTracking | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WHandDetectorUpdate | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WPersonIdExtractor | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WCvMatToOpInput | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WFaceRenderer | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WHandRenderer | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WCocoJsonSaver | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WVideoSaver | ) |
op::COMPILE_TEMPLATE_DATUM | ( | PriorityQueue | ) |
op::COMPILE_TEMPLATE_DATUM | ( | Queue | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WGuiInfoAdder | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WImageSaver | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WCvMatToOpOutput | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WScaleAndSizeExtractor | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WFaceSaver | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WPoseSaver | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WFaceExtractorNet | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WKeepTopNPeople | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WHeatMapSaver | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WKeypointScaler | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WIdGenerator | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WHandExtractorNet | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WHandSaver | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WPoseRenderer | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WPoseExtractorNet | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WUdpSender | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WGui | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WPeopleJsonSaver | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WGui3D | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WPoseExtractor | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WPoseTriangulation | ) |
op::COMPILE_TEMPLATE_DATUM | ( | SubThread | ) |
op::COMPILE_TEMPLATE_DATUM | ( | WQueueOrderer | ) |
op::COMPILE_TEMPLATE_DATUM | ( | Thread | ) |
op::COMPILE_TEMPLATE_DATUM | ( | ThreadManager | ) |
void op::configureThreadManager | ( | ThreadManager< TDatumsSP > & | threadManager, |
const bool | multiThreadEnabled, | ||
const ThreadManagerMode | threadManagerMode, | ||
const WrapperStructPose & | wrapperStructPose, | ||
const WrapperStructFace & | wrapperStructFace, | ||
const WrapperStructHand & | wrapperStructHand, | ||
const WrapperStructExtra & | wrapperStructExtra, | ||
const WrapperStructInput & | wrapperStructInput, | ||
const WrapperStructOutput & | wrapperStructOutput, | ||
const std::array< std::vector< TWorker >, int(WorkerType::Size)> & | userWs, | ||
const std::array< bool, int(WorkerType::Size)> & | userWsOnNewThread | ||
) |
Set ThreadManager from TWorkers (private internal function). After any configure() has been called, the TWorkers are initialized. This function resets the ThreadManager and adds them. Common code for start() and exec().
void op::connectBodyPartsCpu | ( | Array< T > & | poseKeypoints, |
Array< T > & | poseScores, | ||
const T *const | heatMapPtr, | ||
const T *const | peaksPtr, | ||
const PoseModel | poseModel, | ||
const Point< int > & | heatMapSize, | ||
const int | maxPeaks, | ||
const T | interMinAboveThreshold, | ||
const T | interThreshold, | ||
const int | minSubsetCnt, | ||
const T | minSubsetScore, | ||
const T | scaleFactor = 1.f |
||
) |
void op::connectBodyPartsGpu | ( | Array< T > & | poseKeypoints, |
Array< T > & | poseScores, | ||
const T *const | heatMapGpuPtr, | ||
const T *const | peaksPtr, | ||
const PoseModel | poseModel, | ||
const Point< int > & | heatMapSize, | ||
const int | maxPeaks, | ||
const T | interMinAboveThreshold, | ||
const T | interThreshold, | ||
const int | minSubsetCnt, | ||
const T | minSubsetScore, | ||
const T | scaleFactor = 1.f , |
||
Array< T > | pairScoresCpu = Array< T >{} , |
||
T * | pairScoresGpuPtr = nullptr , |
||
const unsigned int *const | bodyPartPairsGpuPtr = nullptr , |
||
const unsigned int *const | mapIdxGpuPtr = nullptr , |
||
const T *const | peaksGpuPtr = nullptr |
||
) |
std::vector<std::pair<std::vector<int>, T> > op::createPeopleVector | ( | const T *const | heatMapPtr, |
const T *const | peaksPtr, | ||
const PoseModel | poseModel, | ||
const Point< int > & | heatMapSize, | ||
const int | maxPeaks, | ||
const T | interThreshold, | ||
const T | interMinAboveThreshold, | ||
const std::vector< unsigned int > & | bodyPartPairs, | ||
const unsigned int | numberBodyParts, | ||
const unsigned int | numberBodyPartPairs, | ||
const Array< T > & | precomputedPAFs = Array< T >() |
||
) |
OP_API std::shared_ptr<Producer> op::createProducer | ( | const ProducerType | producerType = ProducerType::None , |
const std::string & | producerString = "" , |
||
const Point< int > & | cameraResolution = Point< int >{-1,-1} , |
||
const double | webcamFps = 30. , |
||
const std::string & | cameraParameterPath = "models/cameraParameters/" , |
||
const bool | undistortImage = true , |
||
const unsigned int | imageDirectoryStereo = -1 |
||
) |
This function returns the desired producer given the input parameters.
OP_API void op::cudaCheck | ( | const int | line = -1 , |
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
OP_API std::string op::dataFormatToString | ( | const DataFormat | dataFormat | ) |
|
inline |
OP_API void op::drawGridCorners | ( | cv::Mat & | image, |
const cv::Size & | gridInnerCorners, | ||
const std::vector< cv::Point2f > & | points2DVector | ||
) |
OP_API void op::error | ( | const std::string & | message, |
const int | line = -1 , |
||
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
|
inline |
OP_API void op::estimateAndSaveExtrinsics | ( | const std::string & | intrinsicsFolder, |
const std::string & | extrinsicsImagesFolder, | ||
const Point< int > & | gridInnerCorners, | ||
const float | gridSquareSizeMm, | ||
const int | index0, | ||
const int | index1, | ||
const bool | imagesAreUndistorted, | ||
const bool | combineCam0Extrinsics | ||
) |
OP_API void op::estimateAndSaveIntrinsics | ( | const Point< int > & | gridInnerCorners, |
const float | gridSquareSizeMm, | ||
const int | flags, | ||
const std::string & | outputParameterFolder, | ||
const std::string & | imagesFolder, | ||
const std::string & | serialNumber, | ||
const bool | saveImagesWithCorners = false |
||
) |
This function estimate and saves the intrinsic parameters (K and distortion coefficients).
gridInnerCorners | The Point<int> of the board, i.e., the number of squares by width and height |
gridSquareSizeMm | Floating number with the size of a square in your defined unit (point, millimeter,etc). |
flags | Integer with the OpenCV flags for calibration (e.g., CALIB_RATIONAL_MODEL, CALIB_THIN_PRISM_MODEL, or CALIB_TILTED_MODEL) |
outputFilePath | String with the name of the file where to write |
OP_API void op::estimateAndSaveSiftFile | ( | const Point< int > & | gridInnerCorners, |
const std::string & | imagesFolder, | ||
const int | numberCameras, | ||
const bool | saveImagesWithCorners = false |
||
) |
OP_API bool op::existDirectory | ( | const std::string & | directoryPath | ) |
OP_API bool op::existFile | ( | const std::string & | filePath | ) |
|
inline |
|
inline |
|
inline |
OP_API std::pair<bool, std::vector<cv::Point2f> > op::findAccurateGridCorners | ( | const cv::Mat & | image, |
const cv::Size & | gridInnerCorners | ||
) |
OP_API DisplayMode op::flagsToDisplayMode | ( | const int | display, |
const bool | enabled3d | ||
) |
OP_API std::vector<HeatMapType> op::flagsToHeatMaps | ( | const bool | heatMapsAddParts = false , |
const bool | heatMapsAddBkg = false , |
||
const bool | heatMapsAddPAFs = false |
||
) |
OP_API Point<int> op::flagsToPoint | ( | const std::string & | pointString, |
const std::string & | pointExample = "1280x720" |
||
) |
OP_API std::pair<ProducerType, std::string> op::flagsToProducer | ( | const std::string & | imageDirectory, |
const std::string & | videoPath, | ||
const std::string & | ipCameraPath = "" , |
||
const int | webcamIndex = -1 , |
||
const bool | flirCamera = false , |
||
const int | flirCameraIndex = -1 |
||
) |
OP_API ProducerType op::flagsToProducerType | ( | const std::string & | imageDirectory, |
const std::string & | videoPath, | ||
const std::string & | ipCameraPath, | ||
const int | webcamIndex, | ||
const bool | flirCamera | ||
) |
OP_API RenderMode op::flagsToRenderMode | ( | const int | renderFlag, |
const bool | gpuBuggy = false , |
||
const int | renderPoseFlag = -2 |
||
) |
OP_API std::string op::formatAsDirectory | ( | const std::string & | directoryPathString | ) |
This function makes sure that the directoryPathString is properly formatted. I.e., it changes all '\' by '/', and it makes sure that the string finishes with '/'.
directoryPathString | std::string with the directory path to be formatted. |
T op::getAverageScore | ( | const Array< T > & | keypoints, |
const int | person | ||
) |
int op::getBiggestPerson | ( | const Array< T > & | keypoints, |
const T | threshold | ||
) |
OP_API int op::getCudaGpuNumber | ( | ) |
T op::getDistance | ( | const Array< T > & | keypoints, |
const int | person, | ||
const int | elementA, | ||
const int | elementB | ||
) |
T op::getDistanceAverage | ( | const Array< T > & | keypoints, |
const int | personA, | ||
const int | personB, | ||
const T | threshold | ||
) |
T op::getDistanceAverage | ( | const Array< T > & | keypointsA, |
const int | personA, | ||
const Array< T > & | keypointsB, | ||
const int | personB, | ||
const T | threshold | ||
) |
OP_API std::string op::getFileExtension | ( | const std::string & | fullPath | ) |
This function extracts the extension from a full path.
fullPath | std::string with the full path. |
OP_API std::string op::getFileNameAndExtension | ( | const std::string & | fullPath | ) |
This function extracts the file name and extension from a full path.
fullPath | std::string with the full path. |
OP_API std::string op::getFileNameNoExtension | ( | const std::string & | fullPath | ) |
This function extracts the file name (without extension) from a full path.
fullPath | std::string with the full path. |
OP_API std::string op::getFileParentFolderPath | ( | const std::string & | fullPath | ) |
This function extracts the full file path of the folder where it is contained.
fullPath | std::string with the full path. |
OP_API std::vector<std::string> op::getFilesOnDirectory | ( | const std::string & | directoryPath, |
const std::vector< std::string > & | extensions = {} |
||
) |
This function extracts all the files in a directory path with the desired extensions. If no extensions is specified, then all the file names are returned.
directoryPath | std::string with the directory path. |
extensions | std::vector<std::string> with the extensions of the desired files. |
OP_API std::vector<std::string> op::getFilesOnDirectory | ( | const std::string & | directoryPath, |
const std::string & | extension | ||
) |
Analogous to getFilesOnDirectory(const std::string& directoryPath, const std::vector<std::string>& extensions) for 1 specific extension.
directoryPath | std::string with the directory path. |
extension | std::string with the extension of the desired files. |
OP_API std::string op::getFullFilePathNoExtension | ( | const std::string & | fullPath | ) |
This function extracts the full file path without its extension from a full file path.
fullPath | std::string with the full path. |
OP_API int op::getGpuNumber | ( | ) |
T op::getKeypointsArea | ( | const Array< T > & | keypoints, |
const int | person, | ||
const T | threshold | ||
) |
Array<T> op::getKeypointsPerson | ( | const Array< T > & | keypoints, |
const int | person, | ||
const bool | noCopy = false |
||
) |
Creates and Array<T> with a specific person.
keypoints | Array<T> with the original data array to slice. |
person | indicates the index of the array to extract. |
noCopy | indicates whether to perform a copy. Copy will never go to undefined behavior, however, if noCopy == true, then: |
Rectangle<T> op::getKeypointsRectangle | ( | const Array< T > & | keypoints, |
const int | person, | ||
const T | threshold | ||
) |
float op::getKeypointsRoi | ( | const Array< T > & | keypoints, |
const int | personA, | ||
const int | personB, | ||
const T | threshold | ||
) |
float op::getKeypointsRoi | ( | const Array< T > & | keypointsA, |
const int | personA, | ||
const Array< T > & | keypointsB, | ||
const int | personB, | ||
const T | threshold | ||
) |
OP_API unsigned long long op::getLastNumber | ( | const std::string & | string | ) |
int op::getNonZeroKeypoints | ( | const Array< T > & | keypoints, |
const int | person, | ||
const T | threshold | ||
) |
|
inline |
OP_API void op::getNumberCudaThreadsAndBlocks | ( | dim3 & | numberCudaThreads, |
dim3 & | numberCudaBlocks, | ||
const Point< int > & | frameSize | ||
) |
OP_API unsigned int op::getNumberElementsToRender | ( | const PoseModel | poseModel | ) |
OP_API std::vector<cv::Point3f> op::getObjects3DVector | ( | const cv::Size & | gridInnerCorners, |
const float | gridSquareSizeMm | ||
) |
OP_API std::array<unsigned int, 4> op::getOutterCornerIndices | ( | const std::vector< cv::Point2f > & | points2DVector, |
const cv::Size & | gridInnerCorners | ||
) |
OP_API const std::map<unsigned int, std::string>& op::getPoseBodyPartMapping | ( | const PoseModel | poseModel | ) |
OP_API const std::vector<unsigned int>& op::getPoseBodyPartPairsRender | ( | const PoseModel | poseModel | ) |
OP_API const std::vector<float>& op::getPoseColors | ( | const PoseModel | poseModel | ) |
OP_API float op::getPoseDefaultConnectInterMinAboveThreshold | ( | const PoseModel | poseModel | ) |
OP_API float op::getPoseDefaultConnectInterThreshold | ( | const PoseModel | poseModel | ) |
OP_API float op::getPoseDefaultConnectMinSubsetScore | ( | const PoseModel | poseModel | ) |
OP_API unsigned int op::getPoseDefaultMinSubsetCnt | ( | const PoseModel | poseModel | ) |
OP_API float op::getPoseDefaultNmsThreshold | ( | const PoseModel | poseModel | ) |
OP_API const std::vector<unsigned int>& op::getPoseMapIndex | ( | const PoseModel | poseModel | ) |
OP_API unsigned int op::getPoseMaxPeaks | ( | const PoseModel | poseModel | ) |
OP_API float op::getPoseNetDecreaseFactor | ( | const PoseModel | poseModel | ) |
OP_API unsigned int op::getPoseNumberBodyParts | ( | const PoseModel | poseModel | ) |
OP_API const std::vector<unsigned int>& op::getPosePartPairs | ( | const PoseModel | poseModel | ) |
OP_API const std::string& op::getPoseProtoTxt | ( | const PoseModel | poseModel | ) |
OP_API const std::vector<float>& op::getPoseScales | ( | const PoseModel | poseModel | ) |
OP_API const std::string& op::getPoseTrainedModel | ( | const PoseModel | poseModel | ) |
|
inline |
OP_API void op::keepRoiInside | ( | cv::Rect & | roi, |
const int | imageWidth, | ||
const int | imageHeight | ||
) |
OP_API std::vector<cv::Mat> op::loadData | ( | const std::vector< std::string > & | cvMatNames, |
const std::string & | fileNameNoExtension, | ||
const DataFormat | dataFormat | ||
) |
OP_API cv::Mat op::loadData | ( | const std::string & | cvMatName, |
const std::string & | fileNameNoExtension, | ||
const DataFormat | dataFormat | ||
) |
OP_API std::vector<std::array<Rectangle<float>, 2> > op::loadHandDetectorTxt | ( | const std::string & | txtFilePath | ) |
OP_API cv::Mat op::loadImage | ( | const std::string & | fullFilePath, |
const int | openCvFlags = CV_LOAD_IMAGE_ANYDEPTH |
||
) |
OP_API void op::log | ( | const std::string & | message, |
const Priority | priority = Priority::Max , |
||
const int | line = -1 , |
||
const std::string & | function = "" , |
||
const std::string & | file = "" |
||
) |
|
inline |
|
inline |
|
inline |
OP_API void op::makeDirectory | ( | const std::string & | directoryPath | ) |
void op::maximumCpu | ( | T * | targetPtr, |
const T *const | sourcePtr, | ||
const std::array< int, 4 > & | targetSize, | ||
const std::array< int, 4 > & | sourceSize | ||
) |
void op::maximumGpu | ( | T * | targetPtr, |
const T *const | sourcePtr, | ||
const std::array< int, 4 > & | targetSize, | ||
const std::array< int, 4 > & | sourceSize | ||
) |
std::vector<T> op::mergeVectors | ( | const std::vector< T > & | vectorA, |
const std::vector< T > & | vectorB | ||
) |
std::vector<T> concatenator. Auxiliary function that concatenate std::vectors of any class type T. It assumes basic copy (ideal for smart pointers, pointers, etc.), so note that the copy still shares the same internal data. It will not work for element that cannot be copied.
vectorA | First std::shared_ptr<T> element to be concatenated. |
vectorB | Second std::shared_ptr<T> element to be concatenated. |
void op::nmsCpu | ( | T * | targetPtr, |
int * | kernelPtr, | ||
const T *const | sourcePtr, | ||
const T | threshold, | ||
const std::array< int, 4 > & | targetSize, | ||
const std::array< int, 4 > & | sourceSize, | ||
const Point< T > & | offset | ||
) |
void op::nmsGpu | ( | T * | targetPtr, |
int * | kernelPtr, | ||
const T *const | sourcePtr, | ||
const T | threshold, | ||
const std::array< int, 4 > & | targetSize, | ||
const std::array< int, 4 > & | sourceSize, | ||
const Point< T > & | offset | ||
) |
void op::nmsOcl | ( | T * | targetPtr, |
int * | kernelPtr, | ||
const T *const | sourcePtr, | ||
const T | threshold, | ||
const std::array< int, 4 > & | targetSize, | ||
const std::array< int, 4 > & | sourceSize, | ||
const Point< T > & | offset, | ||
const int | gpuID = 0 |
||
) |
std::vector<std::tuple<T, T, int, int, int> > op::pafPtrIntoVector | ( | const Array< T > & | pairScores, |
const T *const | peaksPtr, | ||
const int | maxPeaks, | ||
const std::vector< unsigned int > & | bodyPartPairs, | ||
const unsigned int | numberBodyPartPairs | ||
) |
std::vector<std::pair<std::vector<int>, T> > op::pafVectorIntoPeopleVector | ( | const std::vector< std::tuple< T, T, int, int, int >> & | pairScores, |
const T *const | peaksPtr, | ||
const int | maxPeaks, | ||
const std::vector< unsigned int > & | bodyPartPairs, | ||
const unsigned int | numberBodyParts | ||
) |
void op::peopleVectorToPeopleArray | ( | Array< T > & | poseKeypoints, |
Array< T > & | poseScores, | ||
const T | scaleFactor, | ||
const std::vector< std::pair< std::vector< int >, T >> & | subsets, | ||
const std::vector< int > & | validSubsetIndexes, | ||
const T *const | peaksPtr, | ||
const int | numberPeople, | ||
const unsigned int | numberBodyParts, | ||
const unsigned int | numberBodyPartPairs | ||
) |
OP_API void op::plotGridCorners | ( | const cv::Size & | gridInnerCorners, |
const std::vector< cv::Point2f > & | points2DVector, | ||
const std::string & | imagePath, | ||
const cv::Mat & | image | ||
) |
OP_API unsigned int op::poseBodyPartMapStringToKey | ( | const PoseModel | poseModel, |
const std::string & | string | ||
) |
OP_API unsigned int op::poseBodyPartMapStringToKey | ( | const PoseModel | poseModel, |
const std::vector< std::string > & | strings | ||
) |
OP_API void op::putTextOnCvMat | ( | cv::Mat & | cvMat, |
const std::string & | textToDisplay, | ||
const Point< int > & | position, | ||
const cv::Scalar & | color, | ||
const bool | normalizeWidth, | ||
const int | imageWidth | ||
) |
OP_API void op::pyramidalLKCpu | ( | std::vector< cv::Point2f > & | coordI, |
std::vector< cv::Point2f > & | coordJ, | ||
std::vector< cv::Mat > & | pyramidImagesPrevious, | ||
std::vector< cv::Mat > & | pyramidImagesCurrent, | ||
std::vector< char > & | status, | ||
const cv::Mat & | imagePrevious, | ||
const cv::Mat & | imageCurrent, | ||
const int | levels = 3 , |
||
const int | patchSize = 21 |
||
) |
int op::pyramidalLKGpu | ( | std::vector< cv::Point2f > & | ptsI, |
std::vector< cv::Point2f > & | ptsJ, | ||
std::vector< char > & | status, | ||
const cv::Mat & | imagePrevious, | ||
const cv::Mat & | imageCurrent, | ||
const int | levels = 3 , |
||
const int | patchSize = 21 |
||
) |
OP_API void op::pyramidalLKOcv | ( | std::vector< cv::Point2f > & | coordI, |
std::vector< cv::Point2f > & | coordJ, | ||
std::vector< cv::Mat > & | pyramidImagesPrevious, | ||
std::vector< cv::Mat > & | pyramidImagesCurrent, | ||
std::vector< char > & | status, | ||
const cv::Mat & | imagePrevious, | ||
const cv::Mat & | imageCurrent, | ||
const int | levels = 3 , |
||
const int | patchSize = 21 , |
||
const bool | initFlow = false |
||
) |
Rectangle<T> op::recenter | ( | const Rectangle< T > & | rectangle, |
const T | newWidth, | ||
const T | newHeight | ||
) |
OP_API void op::removeAllOcurrencesOfSubString | ( | std::string & | stringToModify, |
const std::string & | substring | ||
) |
void op::removePeopleBelowThresholds | ( | std::vector< int > & | validSubsetIndexes, |
int & | numberPeople, | ||
const std::vector< std::pair< std::vector< int >, T >> & | subsets, | ||
const unsigned int | numberBodyParts, | ||
const int | minSubsetCnt, | ||
const T | minSubsetScore, | ||
const int | maxPeaks | ||
) |
OP_API std::string op::removeSpecialsCharacters | ( | const std::string & | stringToVariate | ) |
OP_API void op::renderFaceKeypointsCpu | ( | Array< float > & | frameArray, |
const Array< float > & | faceKeypoints, | ||
const float | renderThreshold | ||
) |
void op::renderFaceKeypointsGpu | ( | float * | framePtr, |
const Point< int > & | frameSize, | ||
const float *const | facePtr, | ||
const int | numberPeople, | ||
const float | renderThreshold, | ||
const float | alphaColorToAdd = FACE_DEFAULT_ALPHA_KEYPOINT |
||
) |
OP_API void op::renderHandKeypointsCpu | ( | Array< float > & | frameArray, |
const std::array< Array< float >, 2 > & | handKeypoints, | ||
const float | renderThreshold | ||
) |
void op::renderHandKeypointsGpu | ( | float * | framePtr, |
const Point< int > & | frameSize, | ||
const float *const | handsPtr, | ||
const int | numberHands, | ||
const float | renderThreshold, | ||
const float | alphaColorToAdd = HAND_DEFAULT_ALPHA_KEYPOINT |
||
) |
void op::renderKeypointsCpu | ( | Array< T > & | frameArray, |
const Array< T > & | keypoints, | ||
const std::vector< unsigned int > & | pairs, | ||
const std::vector< T > | colors, | ||
const T | thicknessCircleRatio, | ||
const T | thicknessLineRatioWRTCircle, | ||
const std::vector< T > & | poseScales, | ||
const T | threshold | ||
) |
void op::renderPoseDistanceGpu | ( | float * | framePtr, |
const Point< int > & | frameSize, | ||
const float *const | heatMapPtr, | ||
const Point< int > & | heatMapSize, | ||
const float | scaleToKeepRatio, | ||
const unsigned int | part, | ||
const float | alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP |
||
) |
void op::renderPoseHeatMapGpu | ( | float * | frame, |
const Point< int > & | frameSize, | ||
const float *const | heatMapPtr, | ||
const Point< int > & | heatMapSize, | ||
const float | scaleToKeepRatio, | ||
const unsigned int | part, | ||
const float | alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP |
||
) |
void op::renderPoseHeatMapsGpu | ( | float * | frame, |
const PoseModel | poseModel, | ||
const Point< int > & | frameSize, | ||
const float *const | heatMapPtr, | ||
const Point< int > & | heatMapSize, | ||
const float | scaleToKeepRatio, | ||
const float | alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP |
||
) |
OP_API void op::renderPoseKeypointsCpu | ( | Array< float > & | frameArray, |
const Array< float > & | poseKeypoints, | ||
const PoseModel | poseModel, | ||
const float | renderThreshold, | ||
const bool | blendOriginalFrame = true |
||
) |
void op::renderPoseKeypointsGpu | ( | float * | framePtr, |
const PoseModel | poseModel, | ||
const int | numberPeople, | ||
const Point< int > & | frameSize, | ||
const float *const | posePtr, | ||
const float | renderThreshold, | ||
const bool | googlyEyes = false , |
||
const bool | blendOriginalFrame = true , |
||
const float | alphaBlending = POSE_DEFAULT_ALPHA_KEYPOINT |
||
) |
void op::renderPosePAFGpu | ( | float * | framePtr, |
const PoseModel | poseModel, | ||
const Point< int > & | frameSize, | ||
const float *const | heatMapPtr, | ||
const Point< int > & | heatMapSize, | ||
const float | scaleToKeepRatio, | ||
const int | part, | ||
const float | alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP |
||
) |
void op::renderPosePAFsGpu | ( | float * | framePtr, |
const PoseModel | poseModel, | ||
const Point< int > & | frameSize, | ||
const float *const | heatMapPtr, | ||
const Point< int > & | heatMapSize, | ||
const float | scaleToKeepRatio, | ||
const float | alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP |
||
) |
OP_API void op::reorderPoints | ( | std::vector< cv::Point2f > & | points2DVector, |
const cv::Size & | gridInnerCorners, | ||
const Points2DOrigin | points2DOriginDesired | ||
) |
OP_API void op::replaceAll | ( | std::string & | stringText, |
const char | charToChange, | ||
const char | charToAdd | ||
) |
void op::resizeAndMergeCpu | ( | T * | targetPtr, |
const std::vector< const T * > & | sourcePtrs, | ||
const std::array< int, 4 > & | targetSize, | ||
const std::vector< std::array< int, 4 >> & | sourceSizes, | ||
const std::vector< T > & | scaleInputToNetInputs = {1.f} |
||
) |
void op::resizeAndMergeGpu | ( | T * | targetPtr, |
const std::vector< const T * > & | sourcePtrs, | ||
const std::array< int, 4 > & | targetSize, | ||
const std::vector< std::array< int, 4 >> & | sourceSizes, | ||
const std::vector< T > & | scaleInputToNetInputs = {1.f} |
||
) |
void op::resizeAndMergeOcl | ( | T * | targetPtr, |
const std::vector< const T * > & | sourcePtrs, | ||
std::vector< T * > & | sourceTempPtrs, | ||
const std::array< int, 4 > & | targetSize, | ||
const std::vector< std::array< int, 4 >> & | sourceSizes, | ||
const std::vector< T > & | scaleInputToNetInputs = {1.f} , |
||
const int | gpuID = 0 |
||
) |
OP_API void op::resizeFixedAspectRatio | ( | cv::Mat & | resizedCvMat, |
const cv::Mat & | cvMat, | ||
const double | scaleFactor, | ||
const Point< int > & | targetSize, | ||
const int | borderMode = cv::BORDER_CONSTANT , |
||
const cv::Scalar & | borderValue = cv::Scalar{0, 0, 0} |
||
) |
OP_API double op::resizeGetScaleFactor | ( | const Point< int > & | initialSize, |
const Point< int > & | targetSize | ||
) |
OP_API void op::saveData | ( | const std::vector< cv::Mat > & | cvMats, |
const std::vector< std::string > & | cvMatNames, | ||
const std::string & | fileNameNoExtension, | ||
const DataFormat | dataFormat | ||
) |
OP_API void op::saveData | ( | const cv::Mat & | cvMat, |
const std::string | cvMatName, | ||
const std::string & | fileNameNoExtension, | ||
const DataFormat | dataFormat | ||
) |
OP_API void op::saveFloatArray | ( | const Array< float > & | array, |
const std::string & | fullFilePath | ||
) |
OP_API void op::saveImage | ( | const cv::Mat & | cvMat, |
const std::string & | fullFilePath, | ||
const std::vector< int > & | openCvCompressionParams = {CV_IMWRITE_JPEG_QUALITY, 100, CV_IMWRITE_PNG_COMPRESSION, 9} |
||
) |
OP_API void op::savePeopleJson | ( | const Array< float > & | keypoints, |
const std::vector< std::vector< std::array< float, 3 >>> & | candidates, | ||
const std::string & | keypointName, | ||
const std::string & | fileName, | ||
const bool | humanReadable | ||
) |
OP_API void op::savePeopleJson | ( | const std::vector< std::pair< Array< float >, std::string >> & | keypointVector, |
const std::vector< std::vector< std::array< float, 3 >>> & | candidates, | ||
const std::string & | fileName, | ||
const bool | humanReadable | ||
) |
void op::scaleKeypoints | ( | Array< T > & | keypoints, |
const T | scale | ||
) |
void op::scaleKeypoints2d | ( | Array< T > & | keypoints, |
const T | scaleX, | ||
const T | scaleY | ||
) |
void op::scaleKeypoints2d | ( | Array< T > & | keypoints, |
const T | scaleX, | ||
const T | scaleY, | ||
const T | offsetX, | ||
const T | offsetY | ||
) |
|
inline |
OP_API std::vector<std::string> op::splitString | ( | const std::string & | stringToSplit, |
const std::string & | delimiter | ||
) |
OP_API DataFormat op::stringToDataFormat | ( | const std::string & | dataFormat | ) |
OP_API void op::threadIdPP | ( | unsigned long long & | threadId, |
const bool | multiThreadEnabled | ||
) |
Thread ID increase (private internal function). If multi-threading mode, it increases the thread ID. If single-threading mode (for debugging), it does not modify it. Note that mThreadId must be re-initialized to 0 before starting a new Wrapper(T) configuration.
threadId | unsigned long long element with the current thread id value. I will be edited to the next `desired thread id number. |
std::string op::toFixedLengthString | ( | const T | number, |
const unsigned long long | stringLength = 0 |
||
) |
This template function turns an integer number into a fixed-length std::string.
number | T integer corresponding to the integer to be formatted. |
stringLength | unsigned long long indicating the final length. If 0, the final length is the original number length. |
OP_API std::string op::toLower | ( | const std::string & | string | ) |
OP_API std::string op::toUpper | ( | const std::string & | string | ) |
std::string op::tToString | ( | const T & | message | ) |
OP_API void op::uCharCvMatToFloatPtr | ( | float * | floatPtrImage, |
const cv::Mat & | cvImage, | ||
const int | normalize | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
OP_API void op::unrollArrayToUCharCvMat | ( | cv::Mat & | cvMatResult, |
const Array< float > & | array | ||
) |
bool op::vectorsAreEqual | ( | const std::vector< T > & | vectorA, |
const std::vector< T > & | vectorB | ||
) |
OP_API void op::wrapperConfigureSanityChecks | ( | WrapperStructPose & | wrapperStructPose, |
const WrapperStructFace & | wrapperStructFace, | ||
const WrapperStructHand & | wrapperStructHand, | ||
const WrapperStructExtra & | wrapperStructExtra, | ||
const WrapperStructInput & | wrapperStructInput, | ||
const WrapperStructOutput & | wrapperStructOutput, | ||
const bool | renderOutput, | ||
const bool | userOutputWsEmpty, | ||
const std::shared_ptr< Producer > & | producerSharedPtr, | ||
const ThreadManagerMode | threadManagerMode | ||
) |
It checks that no wrong/contradictory flags are enabled for Wrapper(T)
wrapperStructPose | |
wrapperStructFace | |
wrapperStructHand | |
wrapperStructExtra | |
wrapperStructInput | |
wrapperStructOutput | |
renderOutput | |
userOutputWsEmpty | |
producerSharedPtr | |
threadManagerMode |
const bool op::COCO_CHALLENGE = false |
const auto op::CUDA_NUM_THREADS = 512u |
const auto op::FACE_CCN_DECREASE_FACTOR = 8.f |
const std::vector<float> op::FACE_COLORS_RENDER {FACE_COLORS_RENDER_GPU} |
const auto op::FACE_DEFAULT_ALPHA_HEAT_MAP = POSE_DEFAULT_ALPHA_HEAT_MAP |
const auto op::FACE_DEFAULT_ALPHA_KEYPOINT = POSE_DEFAULT_ALPHA_KEYPOINT |
const auto op::FACE_MAX_FACES = POSE_MAX_PEOPLE |
const auto op::FACE_NUMBER_PARTS = 70u |
const std::vector<unsigned int> op::FACE_PAIRS_RENDER {FACE_PAIRS_RENDER_GPU} |
const std::string op::FACE_PROTOTXT {"face/pose_deploy.prototxt"} |
const std::vector<float> op::FACE_SCALES_RENDER {FACE_SCALES_RENDER_GPU} |
const std::string op::FACE_TRAINED_MODEL {"face/pose_iter_116000.caffemodel"} |
const auto op::HAND_CCN_DECREASE_FACTOR = 8.f |
const std::vector<float> op::HAND_COLORS_RENDER {HAND_COLORS_RENDER_GPU} |
const auto op::HAND_DEFAULT_ALPHA_HEAT_MAP = POSE_DEFAULT_ALPHA_HEAT_MAP |
const auto op::HAND_DEFAULT_ALPHA_KEYPOINT = POSE_DEFAULT_ALPHA_KEYPOINT |
const auto op::HAND_MAX_HANDS = 2*POSE_MAX_PEOPLE |
const auto op::HAND_NUMBER_PARTS = 21u |
const std::vector<unsigned int> op::HAND_PAIRS_RENDER {HAND_PAIRS_RENDER_GPU} |
const std::string op::HAND_PROTOTXT {"hand/pose_deploy.prototxt"} |
const std::vector<float> op::HAND_SCALES_RENDER {HAND_SCALES_RENDER_GPU} |
const std::string op::HAND_TRAINED_MODEL {"hand/pose_iter_102000.caffemodel"} |
const auto op::POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f |
const auto op::POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f |
const auto op::POSE_MAX_PEOPLE = 127u |
op::spTQueueIn |
op::spTQueueOut |