OpenPose  1.0.0rc2
OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
op Namespace Reference

Classes

class  CameraParameterReader
 
class  PoseTriangulation
 
class  WPoseTriangulation
 
class  Array
 
class  CvMatToOpInput
 
class  CvMatToOpOutput
 
struct  Datum
 
class  GpuRenderer
 
class  KeepTopNPeople
 
class  KeypointScaler
 
class  OpOutputToCvMat
 
struct  Point
 
struct  Rectangle
 
class  Renderer
 
class  ScaleAndSizeExtractor
 
class  WCvMatToOpInput
 
class  WCvMatToOpOutput
 
class  WKeepTopNPeople
 
class  WKeypointScaler
 
class  WOpOutputToCvMat
 
class  WScaleAndSizeExtractor
 
class  FaceCpuRenderer
 
class  FaceDetector
 
class  FaceDetectorOpenCV
 
class  FaceExtractorCaffe
 
class  FaceExtractorNet
 
class  FaceGpuRenderer
 
class  FaceRenderer
 
class  WFaceDetector
 
class  WFaceDetectorOpenCV
 
class  WFaceExtractorNet
 
class  WFaceRenderer
 
class  CocoJsonSaver
 
class  FileSaver
 
class  HeatMapSaver
 
class  ImageSaver
 
class  JsonOfstream
 
class  KeypointSaver
 
class  PeopleJsonSaver
 
class  UdpSender
 
class  VideoSaver
 
class  WCocoJsonSaver
 
class  WFaceSaver
 
class  WHandSaver
 
class  WHeatMapSaver
 
class  WImageSaver
 
class  WPeopleJsonSaver
 
class  WPoseSaver
 
class  WUdpSender
 
class  WVideoSaver
 
class  FrameDisplayer
 
class  Gui
 
class  Gui3D
 
class  GuiInfoAdder
 
class  WGui
 
class  WGui3D
 
class  WGuiInfoAdder
 
class  HandCpuRenderer
 
class  HandDetector
 
class  HandDetectorFromTxt
 
class  HandExtractorCaffe
 
class  HandExtractorNet
 
class  HandGpuRenderer
 
class  HandRenderer
 
class  WHandDetector
 
class  WHandDetectorFromTxt
 
class  WHandDetectorTracking
 
class  WHandDetectorUpdate
 
class  WHandExtractorNet
 
class  WHandRenderer
 
class  MaximumCaffe
 
class  Net
 
class  NetCaffe
 
class  NmsCaffe
 
class  ResizeAndMergeCaffe
 
class  BodyPartConnectorCaffe
 
class  PoseCpuRenderer
 
class  PoseExtractor
 
class  PoseExtractorCaffe
 
class  PoseExtractorNet
 
class  PoseGpuRenderer
 
class  PoseRenderer
 
class  WPoseExtractor
 
class  WPoseExtractorNet
 
class  WPoseRenderer
 
class  DatumProducer
 
class  FlirReader
 
class  ImageDirectoryReader
 
class  IpCameraReader
 
class  Producer
 
class  SpinnakerWrapper
 
class  VideoCaptureReader
 
class  VideoReader
 
class  WDatumProducer
 
class  WebcamReader
 
class  PriorityQueue
 
class  Queue
 
class  QueueBase
 
class  SubThread
 
class  SubThreadNoQueue
 
class  SubThreadQueueIn
 
class  SubThreadQueueInOut
 
class  SubThreadQueueOut
 
class  Thread
 
class  ThreadManager
 
class  WIdGenerator
 
class  Worker
 
class  WorkerConsumer
 
class  WorkerProducer
 
class  WQueueAssembler
 
class  WQueueOrderer
 
struct  PersonEntry
 
class  PersonIdExtractor
 
struct  PersonTrackerEntry
 
class  PersonTracker
 
class  WPersonIdExtractor
 
class  ConfigureError
 
class  ConfigureLog
 
class  PointerContainerGreater
 
class  PointerContainerLess
 
class  Profiler
 
class  Wrapper
 
struct  WrapperStructExtra
 
struct  WrapperStructFace
 
struct  WrapperStructHand
 
struct  WrapperStructInput
 
struct  WrapperStructOutput
 
struct  WrapperStructPose
 

Enumerations

enum  Points2DOrigin { Points2DOrigin::TopLeft, Points2DOrigin::TopRight, Points2DOrigin::BottomLeft, Points2DOrigin::BottomRight }
 
enum  ScaleMode : unsigned char {
  ScaleMode::InputResolution, ScaleMode::NetOutputResolution, ScaleMode::OutputResolution, ScaleMode::ZeroToOne,
  ScaleMode::PlusMinusOne, ScaleMode::UnsignedChar, ScaleMode::NoScale
}
 
enum  HeatMapType : unsigned char { HeatMapType::Parts, HeatMapType::Background, HeatMapType::PAFs }
 
enum  RenderMode : unsigned char { RenderMode::None, RenderMode::Cpu, RenderMode::Gpu }
 
enum  ElementToRender : unsigned char { ElementToRender::Skeleton, ElementToRender::Background, ElementToRender::AddKeypoints, ElementToRender::AddPAFs }
 
enum  DataFormat : unsigned char { DataFormat::Json, DataFormat::Xml, DataFormat::Yaml, DataFormat::Yml }
 
enum  CocoJsonFormat : bool { CocoJsonFormat::Body, CocoJsonFormat::Foot }
 
enum  GpuMode : unsigned char { GpuMode::Cuda = 0, GpuMode::OpenCL = 1, GpuMode::NoGpu = 2, GpuMode::Size }
 
enum  DisplayMode : unsigned short {
  DisplayMode::NoDisplay, DisplayMode::DisplayAll, DisplayMode::Display2D, DisplayMode::Display3D,
  DisplayMode::DisplayAdam
}
 
enum  FullScreenMode : bool { FullScreenMode::FullScreen, FullScreenMode::Windowed }
 
enum  PoseModel : unsigned char {
  PoseModel::BODY_25 = 0, PoseModel::COCO_18, PoseModel::MPI_15, PoseModel::MPI_15_4,
  PoseModel::BODY_19, PoseModel::BODY_19_X2, PoseModel::BODY_59, PoseModel::BODY_19N,
  PoseModel::BODY_25E, PoseModel::BODY_25_19, PoseModel::BODY_65, PoseModel::CAR_12,
  PoseModel::Size
}
 
enum  PoseProperty : unsigned char {
  PoseProperty::NMSThreshold = 0, PoseProperty::ConnectInterMinAboveThreshold, PoseProperty::ConnectInterThreshold, PoseProperty::ConnectMinSubsetCnt,
  PoseProperty::ConnectMinSubsetScore, PoseProperty::Size
}
 
enum  ProducerFpsMode : bool { ProducerFpsMode::OriginalFps, ProducerFpsMode::RetrievalFps }
 
enum  ProducerProperty : unsigned char { ProducerProperty::AutoRepeat = 0, ProducerProperty::Flip, ProducerProperty::Rotation, ProducerProperty::Size }
 
enum  ProducerType : unsigned char {
  ProducerType::FlirCamera, ProducerType::ImageDirectory, ProducerType::IPCamera, ProducerType::Video,
  ProducerType::Webcam, ProducerType::None
}
 
enum  ThreadManagerMode : unsigned char { ThreadManagerMode::Asynchronous, ThreadManagerMode::AsynchronousIn, ThreadManagerMode::AsynchronousOut, ThreadManagerMode::Synchronous }
 
enum  ErrorMode : unsigned char { ErrorMode::StdRuntimeError, ErrorMode::FileLogging, ErrorMode::StdCerr, ErrorMode::All }
 
enum  LogMode : unsigned char { LogMode::FileLogging, LogMode::StdCout, LogMode::All }
 
enum  Priority : unsigned char {
  Priority::None = 0, Priority::Low = 1, Priority::Normal = 2, Priority::High = 3,
  Priority::Max = 4, Priority::NoOutput = 255
}
 

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)
 
OP_API 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)
 
OP_API 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 >
OP_API void maximumCpu (T *targetPtr, const T *const sourcePtr, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize)
 
template<typename T >
OP_API void maximumGpu (T *targetPtr, const T *const sourcePtr, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize)
 
template<typename T >
OP_API 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 >
OP_API 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 >
OP_API 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 >
OP_API 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 >
OP_API 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 >
OP_API 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)
 
template<typename T >
OP_API 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 >
OP_API void connectBodyPartsGpu (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, const T *const heatMapGpuPtr=nullptr, const T *const peaksGpuPtr=nullptr)
 
template<typename T >
OP_API std::vector< std::pair
< std::vector< int >, double > > 
generateInitialSubsets (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 unsigned int subsetCounterIndex)
 
template<typename T >
OP_API void removeSubsetsBelowThresholds (std::vector< int > &validSubsetIndexes, int &numberPeople, const std::vector< std::pair< std::vector< int >, double >> &subsets, const unsigned int subsetCounterIndex, const unsigned int numberBodyParts, const int minSubsetCnt, const T minSubsetScore)
 
template<typename T >
OP_API void subsetsToPoseKeypointsAndScores (Array< T > &poseKeypoints, Array< T > &poseScores, const T scaleFactor, const std::vector< std::pair< std::vector< int >, double >> &subsets, const std::vector< int > &validSubsetIndexes, const T *const peaksPtr, const int numberPeople, const unsigned int numberBodyParts, const unsigned int numberBodyPartPairs)
 
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 const std::vector< int > & getPosePartPairsStar (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)
 
OP_API 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)
 
OP_API void renderPoseHeatMapGpu (float *frame, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatmap, const Point< int > &heatmapSize, const float scaleToKeepRatio, const int part, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP)
 
OP_API void renderPoseHeatMapsGpu (float *frame, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatmap, const Point< int > &heatmapSize, const float scaleToKeepRatio, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP)
 
OP_API 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)
 
OP_API 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)
 
 COMPILE_TEMPLATE_DATUM (WPoseExtractor)
 
 COMPILE_TEMPLATE_DATUM (WPoseExtractorNet)
 
 COMPILE_TEMPLATE_DATUM (WPoseRenderer)
 
 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)
 
OP_API 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 >
fastMax (const T a, const T b)
 
template<typename T >
fastMin (const T a, const T b)
 
template<class 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::shared_ptr< ProducerflagsToProducer (const std::string &imageDirectory, const std::string &videoPath, const std::string &ipCameraPath, const int webcamIndex, const bool flirCamera=false, const std::string &cameraResolution="-1x-1", const double webcamFps=30., const std::string &cameraParameterPath="models/cameraParameters/", const bool undistortImage=true, const unsigned int imageDirectoryStereo=1, const int flirCameraIndex=-1)
 
OP_API std::vector< HeatMapTypeflagsToHeatMaps (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")
 
OP_API float getDistance (const Array< float > &keypoints, const int person, const int elementA, const int elementB)
 
OP_API void averageKeypoints (Array< float > &keypointsA, const Array< float > &keypointsB, const int personA)
 
OP_API void scaleKeypoints (Array< float > &keypoints, const float scale)
 
OP_API void scaleKeypoints2d (Array< float > &keypoints, const float scaleX, const float scaleY)
 
OP_API void scaleKeypoints2d (Array< float > &keypoints, const float scaleX, const float scaleY, const float offsetX, const float offsetY)
 
OP_API void renderKeypointsCpu (Array< float > &frameArray, const Array< float > &keypoints, const std::vector< unsigned int > &pairs, const std::vector< float > colors, const float thicknessCircleRatio, const float thicknessLineRatioWRTCircle, const std::vector< float > &poseScales, const float threshold)
 
OP_API Rectangle< float > getKeypointsRectangle (const Array< float > &keypoints, const int person, const float threshold)
 
OP_API float getAverageScore (const Array< float > &keypoints, const int person)
 
OP_API float getKeypointsArea (const Array< float > &keypoints, const int person, const float threshold)
 
OP_API int getBiggestPerson (const Array< float > &keypoints, const float 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 cv::Mat resizeFixedAspectRatio (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})
 
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 >
OP_API 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 wrapperConfigureSecurityChecks (WrapperStructPose &wrapperStructPose, const WrapperStructFace &wrapperStructFace, const WrapperStructHand &wrapperStructHand, const WrapperStructExtra &wrapperStructExtra, const WrapperStructInput &wrapperStructInput, const WrapperStructOutput &wrapperStructOutput, const bool renderOutput, const bool userOutputWsEmpty, const ThreadManagerMode threadManagerMode)
 

Variables

const auto FACE_MAX_FACES = POSE_MAX_PEOPLE
 
const auto FACE_NUMBER_PARTS = 70u
 
const std::vector< unsigned int > FACE_PAIRS_RENDER {FACE_PAIRS_RENDER_GPU}
 
const std::vector< float > FACE_COLORS_RENDER {FACE_COLORS_RENDER_GPU}
 
const std::vector< float > FACE_SCALES_RENDER {FACE_SCALES_RENDER_GPU}
 
const auto FACE_CCN_DECREASE_FACTOR = 8.f
 
const std::string FACE_PROTOTXT {"face/pose_deploy.prototxt"}
 
const std::string FACE_TRAINED_MODEL {"face/pose_iter_116000.caffemodel"}
 
const auto FACE_DEFAULT_ALPHA_KEYPOINT = POSE_DEFAULT_ALPHA_KEYPOINT
 
const auto FACE_DEFAULT_ALPHA_HEAT_MAP = POSE_DEFAULT_ALPHA_HEAT_MAP
 
const auto CUDA_NUM_THREADS = 512u
 
const auto HAND_MAX_HANDS = 2*POSE_MAX_PEOPLE
 
const auto HAND_NUMBER_PARTS = 21u
 
const std::vector< unsigned int > HAND_PAIRS_RENDER {HAND_PAIRS_RENDER_GPU}
 
const std::vector< float > HAND_COLORS_RENDER {HAND_COLORS_RENDER_GPU}
 
const std::vector< float > HAND_SCALES_RENDER {HAND_SCALES_RENDER_GPU}
 
const auto HAND_CCN_DECREASE_FACTOR = 8.f
 
const std::string HAND_PROTOTXT {"hand/pose_deploy.prototxt"}
 
const std::string HAND_TRAINED_MODEL {"hand/pose_iter_102000.caffemodel"}
 
const auto HAND_DEFAULT_ALPHA_KEYPOINT = POSE_DEFAULT_ALPHA_KEYPOINT
 
const auto HAND_DEFAULT_ALPHA_HEAT_MAP = POSE_DEFAULT_ALPHA_HEAT_MAP
 
const auto POSE_MAX_PEOPLE = 127u
 
const bool COCO_CHALLENGE = false
 
const auto POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f
 
const auto POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f
 
 spTQueueIn
 
 spTQueueOut
 

Enumeration Type Documentation

enum op::CocoJsonFormat : bool
strong
Enumerator
Body 
Foot 
enum op::DataFormat : unsigned char
strong
Enumerator
Json 
Xml 
Yaml 
Yml 
enum op::DisplayMode : unsigned short
strong

GUI display modes. An enum class with the different output screen options. E.g., 2-D, 3-D, all, none.

Enumerator
NoDisplay 

No display.

DisplayAll 

All (2-D and 3-D/Adam) displays

Display2D 

Only 2-D display.

Display3D 

Only 3-D display.

DisplayAdam 

Only Adam display.

enum op::ElementToRender : unsigned char
strong
Enumerator
Skeleton 
Background 
AddKeypoints 
AddPAFs 
enum op::ErrorMode : unsigned char
strong
Enumerator
StdRuntimeError 
FileLogging 
StdCerr 
All 
enum op::FullScreenMode : bool
strong

Full screen modes. An enum class with the different full screen mode options, i.e., full screen or windored.

Enumerator
FullScreen 

Full screen mode.

Windowed 

Windowed mode, depending on the frame output size.

enum op::GpuMode : unsigned char
strong
Enumerator
Cuda 
OpenCL 
NoGpu 
Size 
enum op::HeatMapType : unsigned char
strong
Enumerator
Parts 
Background 
PAFs 
enum op::LogMode : unsigned char
strong
Enumerator
FileLogging 
StdCout 
All 
enum op::Points2DOrigin
strong
Enumerator
TopLeft 
TopRight 
BottomLeft 
BottomRight 
enum op::PoseModel : unsigned char
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.

Size 
enum op::PoseProperty : unsigned char
strong
Enumerator
NMSThreshold 
ConnectInterMinAboveThreshold 
ConnectInterThreshold 
ConnectMinSubsetCnt 
ConnectMinSubsetScore 
Size 
enum op::Priority : unsigned char
strong
Enumerator
None 
Low 
Normal 
High 
Max 
NoOutput 
enum op::ProducerFpsMode : bool
strong
Enumerator
OriginalFps 

The frames will be extracted at the original source fps (frames might be skipped or repeated).

RetrievalFps 

The frames will be extracted when the software retrieves them (frames will not be skipped or repeated).

enum op::ProducerProperty : unsigned char
strong
Enumerator
AutoRepeat 
Flip 
Rotation 
Size 
enum op::ProducerType : unsigned char
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.

enum op::RenderMode : unsigned char
strong
Enumerator
None 
Cpu 
Gpu 
enum op::ScaleMode : unsigned char
strong
Enumerator
InputResolution 
NetOutputResolution 
OutputResolution 
ZeroToOne 
PlusMinusOne 
UnsignedChar 
NoScale 
enum op::ThreadManagerMode : unsigned char
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).

Function Documentation

OP_API void op::averageKeypoints ( Array< float > &  keypointsA,
const Array< float > &  keypointsB,
const int  personA 
)
template<typename T >
char op::charRound ( const T  a)
inline
template<typename T >
void op::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 op::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 op::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 op::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 , typename T1 , typename T2 >
void op::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 op::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 op::checkNE ( const T1 &  conditionA,
const T2 &  conditionB,
const T &  message = "",
const int  line = -1,
const std::string &  function = "",
const std::string &  file = "" 
)
template<typename TPointerContainer >
bool op::checkNoNullNorEmpty ( const TPointerContainer &  tPointerContainer)
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 ( WHandDetectorTracking  )
op::COMPILE_TEMPLATE_DATUM ( WPersonIdExtractor  )
op::COMPILE_TEMPLATE_DATUM ( WHandDetectorFromTxt  )
op::COMPILE_TEMPLATE_DATUM ( WHandDetectorUpdate  )
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  )
template<typename T >
OP_API 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 
)
template<typename T >
OP_API void op::connectBodyPartsGpu ( 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,
const T *const  heatMapGpuPtr = nullptr,
const T *const  peaksGpuPtr = nullptr 
)
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)
template<typename T >
void op::dLog ( const T &  message,
const Priority  priority = Priority::Max,
const int  line = -1,
const std::string &  function = "",
const std::string &  file = "" 
)
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 = "" 
)
template<typename T >
void op::error ( const T &  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).

Parameters
gridInnerCornersThe Point<int> of the board, i.e., the number of squares by width and height
gridSquareSizeMmFloating number with the size of a square in your defined unit (point, millimeter,etc).
flagsInteger with the OpenCV flags for calibration (e.g., CALIB_RATIONAL_MODEL, CALIB_THIN_PRISM_MODEL, or CALIB_TILTED_MODEL)
outputFilePathString 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)
template<typename T >
T op::fastMax ( const T  a,
const T  b 
)
inline
template<typename T >
T op::fastMin ( const T  a,
const T  b 
)
inline
template<class T >
T op::fastTruncate ( value,
min = 0,
max = 1 
)
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 ScaleMode op::flagsToHeatMapScaleMode ( const int  heatMapScale)
OP_API Point<int> op::flagsToPoint ( const std::string &  pointString,
const std::string &  pointExample = "1280x720" 
)
OP_API PoseModel op::flagsToPoseModel ( const std::string &  poseModeString)
OP_API std::shared_ptr<Producer> op::flagsToProducer ( const std::string &  imageDirectory,
const std::string &  videoPath,
const std::string &  ipCameraPath,
const int  webcamIndex,
const bool  flirCamera = false,
const std::string &  cameraResolution = "-1x-1",
const double  webcamFps = 30.,
const std::string &  cameraParameterPath = "models/cameraParameters/",
const bool  undistortImage = true,
const unsigned int  imageDirectoryStereo = 1,
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 ScaleMode op::flagsToScaleMode ( const int  keypointScale)
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 '/'.

Parameters
directoryPathStringstd::string with the directory path to be formatted.
Returns
std::string with the formatted directory path.
template<typename T >
OP_API std::vector<std::pair<std::vector<int>, double> > op::generateInitialSubsets ( 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 unsigned int  subsetCounterIndex 
)
OP_API float op::getAverageScore ( const Array< float > &  keypoints,
const int  person 
)
OP_API int op::getBiggestPerson ( const Array< float > &  keypoints,
const float  threshold 
)
OP_API int op::getCudaGpuNumber ( )
OP_API float op::getDistance ( const Array< float > &  keypoints,
const int  person,
const int  elementA,
const int  elementB 
)
OP_API std::string op::getFileExtension ( const std::string &  fullPath)

This function extracts the extension from a full path.

Parameters
fullPathstd::string with the full path.
Returns
std::string with the file extension.
OP_API std::string op::getFileNameAndExtension ( const std::string &  fullPath)

This function extracts the file name and extension from a full path.

Parameters
fullPathstd::string with the full path.
Returns
std::string with the file name with extension.
OP_API std::string op::getFileNameNoExtension ( const std::string &  fullPath)

This function extracts the file name (without extension) from a full path.

Parameters
fullPathstd::string with the full path.
Returns
std::string with the file name without extension.
OP_API std::string op::getFileParentFolderPath ( const std::string &  fullPath)

This function extracts the full file path of the folder where it is contained.

Parameters
fullPathstd::string with the full path.
Returns
std::string with the full file path of the folder.
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.

Parameters
directoryPathstd::string with the directory path.
extensionsstd::vector<std::string> with the extensions of the desired files.
Returns
std::vector<std::string> with the existing file names.
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.

Parameters
directoryPathstd::string with the directory path.
extensionstd::string with the extension of the desired files.
Returns
std::vector<std::string> with the existing file names.
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.

Parameters
fullPathstd::string with the full path.
Returns
std::string with the full file path without extension.
OP_API GpuMode op::getGpuMode ( )
OP_API int op::getGpuNumber ( )
OP_API float op::getKeypointsArea ( const Array< float > &  keypoints,
const int  person,
const float  threshold 
)
OP_API Rectangle<float> op::getKeypointsRectangle ( const Array< float > &  keypoints,
const int  person,
const float  threshold 
)
OP_API unsigned long long op::getLastNumber ( const std::string &  string)
unsigned int op::getNumberCudaBlocks ( const unsigned int  totalRequired,
const unsigned int  numberCudaThreads = CUDA_NUM_THREADS 
)
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::vector<int>& op::getPosePartPairsStar ( 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)
template<typename T >
int op::intRound ( const T  a)
inline
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 = "" 
)
template<typename T >
void op::log ( const T &  message,
const Priority  priority = Priority::Max,
const int  line = -1,
const std::string &  function = "",
const std::string &  file = "" 
)
inline
template<typename T >
long long op::longLongRound ( const T  a)
inline
template<typename T >
long op::longRound ( const T  a)
inline
OP_API void op::makeDirectory ( const std::string &  directoryPath)
template<typename T >
OP_API void op::maximumCpu ( T *  targetPtr,
const T *const  sourcePtr,
const std::array< int, 4 > &  targetSize,
const std::array< int, 4 > &  sourceSize 
)
template<typename T >
OP_API void op::maximumGpu ( T *  targetPtr,
const T *const  sourcePtr,
const std::array< int, 4 > &  targetSize,
const std::array< int, 4 > &  sourceSize 
)
template<typename T >
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.

Parameters
vectorAFirst std::shared_ptr<T> element to be concatenated.
vectorBSecond std::shared_ptr<T> element to be concatenated.
Returns
Concatenated std::vector<T> of both vectorA and vectorB.
template<typename T >
OP_API 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 
)
template<typename T >
OP_API 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 
)
template<typename T >
OP_API 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 
)
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 
)
OP_API 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 
)
template<typename T >
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 
)
OP_API std::string op::removeSpecialsCharacters ( const std::string &  stringToVariate)
template<typename T >
OP_API void op::removeSubsetsBelowThresholds ( std::vector< int > &  validSubsetIndexes,
int &  numberPeople,
const std::vector< std::pair< std::vector< int >, double >> &  subsets,
const unsigned int  subsetCounterIndex,
const unsigned int  numberBodyParts,
const int  minSubsetCnt,
const T  minSubsetScore 
)
OP_API void op::renderFaceKeypointsCpu ( Array< float > &  frameArray,
const Array< float > &  faceKeypoints,
const float  renderThreshold 
)
OP_API 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 
)
OP_API 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 
)
OP_API void op::renderKeypointsCpu ( Array< float > &  frameArray,
const Array< float > &  keypoints,
const std::vector< unsigned int > &  pairs,
const std::vector< float >  colors,
const float  thicknessCircleRatio,
const float  thicknessLineRatioWRTCircle,
const std::vector< float > &  poseScales,
const float  threshold 
)
OP_API void op::renderPoseHeatMapGpu ( float *  frame,
const PoseModel  poseModel,
const Point< int > &  frameSize,
const float *const  heatmap,
const Point< int > &  heatmapSize,
const float  scaleToKeepRatio,
const int  part,
const float  alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP 
)
OP_API void op::renderPoseHeatMapsGpu ( float *  frame,
const PoseModel  poseModel,
const Point< int > &  frameSize,
const float *const  heatmap,
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 
)
OP_API 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 
)
OP_API 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 
)
OP_API 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 
)
template<typename T >
OP_API 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} 
)
template<typename T >
OP_API 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} 
)
template<typename T >
OP_API 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 cv::Mat op::resizeFixedAspectRatio ( 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 
)
OP_API void op::scaleKeypoints ( Array< float > &  keypoints,
const float  scale 
)
OP_API void op::scaleKeypoints2d ( Array< float > &  keypoints,
const float  scaleX,
const float  scaleY 
)
OP_API void op::scaleKeypoints2d ( Array< float > &  keypoints,
const float  scaleX,
const float  scaleY,
const float  offsetX,
const float  offsetY 
)
template<typename T >
signed char op::sCharRound ( const T  a)
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)
template<typename T >
OP_API void op::subsetsToPoseKeypointsAndScores ( Array< T > &  poseKeypoints,
Array< T > &  poseScores,
const T  scaleFactor,
const std::vector< std::pair< std::vector< int >, double >> &  subsets,
const std::vector< int > &  validSubsetIndexes,
const T *const  peaksPtr,
const int  numberPeople,
const unsigned int  numberBodyParts,
const unsigned int  numberBodyPartPairs 
)
template<typename T >
OP_API 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.

Parameters
numberT integer corresponding to the integer to be formatted.
stringLengthunsigned long long indicating the final length. If 0, the final length is the original number length.
Returns
std::string with the formatted value.
OP_API std::string op::toLower ( const std::string &  string)
OP_API std::string op::toUpper ( const std::string &  string)
template<typename T >
std::string op::tToString ( const T &  message)
OP_API void op::uCharCvMatToFloatPtr ( float *  floatPtrImage,
const cv::Mat &  cvImage,
const int  normalize 
)
template<typename T >
unsigned char op::uCharRound ( const T  a)
inline
template<typename T >
unsigned int op::uIntRound ( const T  a)
inline
template<typename T >
unsigned long long op::uLongLongRound ( const T  a)
inline
template<typename T >
unsigned long op::ulongRound ( const T  a)
inline
OP_API void op::unrollArrayToUCharCvMat ( cv::Mat &  cvMatResult,
const Array< float > &  array 
)
template<typename T >
bool op::vectorsAreEqual ( const std::vector< T > &  vectorA,
const std::vector< T > &  vectorB 
)
OP_API void op::wrapperConfigureSecurityChecks ( WrapperStructPose &  wrapperStructPose,
const WrapperStructFace &  wrapperStructFace,
const WrapperStructHand &  wrapperStructHand,
const WrapperStructExtra &  wrapperStructExtra,
const WrapperStructInput &  wrapperStructInput,
const WrapperStructOutput &  wrapperStructOutput,
const bool  renderOutput,
const bool  userOutputWsEmpty,
const ThreadManagerMode  threadManagerMode 
)

It checks that no wrong/contradictory flags are enabled for Wrapper

Parameters
wrapperStructPose
wrapperStructFace
wrapperStructHand
wrapperStructExtra
wrapperStructInput
wrapperStructOutput
renderOutput
userOutputWsEmpty
threadManagerMode

Variable Documentation

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