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  WPoseTriangulation
 
class  Array
 
class  CvMatToOpInput
 
class  CvMatToOpOutput
 
struct  Datum
 
class  GpuRenderer
 
class  KeepTopNPeople
 
class  KeypointScaler
 
class  MaximumCaffe
 
class  Net
 
class  NetCaffe
 
class  NmsCaffe
 
class  OpOutputToCvMat
 
struct  Point
 
struct  Rectangle
 
class  Renderer
 
class  ResizeAndMergeCaffe
 
class  ScaleAndSizeExtractor
 
class  WCvMatToOpInput
 
class  WCvMatToOpOutput
 
class  WKeepTopNPeople
 
class  WKeypointScaler
 
class  WOpOutputToCvMat
 
class  WScaleAndSizeExtractor
 
class  PersonIdExtractor
 
class  WPersonIdExtractor
 
class  FaceCpuRenderer
 
class  FaceDetector
 
class  FaceDetectorOpenCV
 
class  FaceExtractor
 
class  FaceExtractorCaffe
 
class  FaceGpuRenderer
 
class  FaceRenderer
 
class  WFaceDetector
 
class  WFaceDetectorOpenCV
 
class  WFaceExtractor
 
class  WFaceRenderer
 
class  CocoJsonSaver
 
class  FileSaver
 
class  HeatMapSaver
 
class  ImageSaver
 
class  JsonOfstream
 
class  KeypointSaver
 
class  PeopleJsonSaver
 
class  VideoSaver
 
class  WCocoJsonSaver
 
class  WFaceSaver
 
class  WHandSaver
 
class  WHeatMapSaver
 
class  WImageSaver
 
class  WPeopleJsonSaver
 
class  WPoseSaver
 
class  WVideoSaver
 
class  FrameDisplayer
 
class  Gui
 
class  Gui3D
 
class  GuiInfoAdder
 
class  WGui
 
class  WGui3D
 
class  WGuiInfoAdder
 
class  HandCpuRenderer
 
class  HandDetector
 
class  HandDetectorFromTxt
 
class  HandExtractor
 
class  HandExtractorCaffe
 
class  HandGpuRenderer
 
class  HandRenderer
 
class  WHandDetector
 
class  WHandDetectorFromTxt
 
class  WHandDetectorTracking
 
class  WHandDetectorUpdate
 
class  WHandExtractor
 
class  WHandRenderer
 
class  BodyPartConnectorCaffe
 
class  PoseCpuRenderer
 
class  PoseExtractor
 
class  PoseExtractorCaffe
 
class  PoseGpuRenderer
 
class  PoseRenderer
 
class  WPoseExtractor
 
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  WQueueOrderer
 
class  ConfigureError
 
class  ConfigureLog
 
class  PointerContainerGreater
 
class  PointerContainerLess
 
class  Profiler
 
class  Wrapper
 
struct  WrapperStructFace
 
struct  WrapperStructHand
 
struct  WrapperStructInput
 
struct  WrapperStructOutput
 
struct  WrapperStructPose
 

Enumerations

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  DataFormat : unsigned char { DataFormat::Json, DataFormat::Xml, DataFormat::Yaml, DataFormat::Yml }
 
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 }
 
enum  FullScreenMode : bool { FullScreenMode::FullScreen, FullScreenMode::Windowed }
 
enum  PoseModel : unsigned char {
  PoseModel::COCO_18 = 0, PoseModel::MPI_15, PoseModel::MPI_15_4, PoseModel::BODY_18,
  PoseModel::BODY_19, PoseModel::BODY_19_X2, PoseModel::BODY_23, PoseModel::BODY_59,
  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

OP_API Array< float > reconstructArray (const std::vector< Array< float >> &keypointsVector, const std::vector< cv::Mat > &matrixEachCamera)
 
 COMPILE_TEMPLATE_DATUM (WPoseTriangulation)
 
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)
 
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)
 
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 int gpuID=0)
 
template<typename T >
Rectangle< T > recenter (const Rectangle< T > &rectangle, const T newWidth, const T newHeight)
 
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, 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)
 
 COMPILE_TEMPLATE_DATUM (WCvMatToOpInput)
 
 COMPILE_TEMPLATE_DATUM (WCvMatToOpOutput)
 
 COMPILE_TEMPLATE_DATUM (WKeepTopNPeople)
 
 COMPILE_TEMPLATE_DATUM (WKeypointScaler)
 
 COMPILE_TEMPLATE_DATUM (WOpOutputToCvMat)
 
 COMPILE_TEMPLATE_DATUM (WScaleAndSizeExtractor)
 
 COMPILE_TEMPLATE_DATUM (WPersonIdExtractor)
 
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 (WFaceExtractor)
 
 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 (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 (WHandExtractor)
 
 COMPILE_TEMPLATE_DATUM (WHandRenderer)
 
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)
 
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)
 
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 (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)
 
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::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 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 unsigned int imageDirectoryStereo=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 scaleKeypoints (Array< float > &keypoints, const float scaleX, const float scaleY)
 
OP_API void scaleKeypoints (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)
 
OP_API void floatPtrToUCharCvMat (cv::Mat &uCharCvMat, const float *const floatPtrImage, const std::array< int, 3 > resolutionSize)
 
OP_API void unrollArrayToUCharCvMat (cv::Mat &cvMatResult, const Array< float > &array)
 
OP_API void uCharCvMatToFloatPtr (float *floatPtrImage, const cv::Mat &cvImage, const bool 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 (const WrapperStructPose &wrapperStructPose, const WrapperStructFace &wrapperStructFace, const WrapperStructHand &wrapperStructHand, 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 = 96u
 
const auto POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f
 
const auto POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f
 
 spTQueueIn
 
 spTQueueOut
 

Enumeration Type Documentation

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) displays

Display2D 

Only 2-D display.

Display3D 

Only 3-D display.

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::PoseModel : unsigned char
strong

An enum class in which all the possible type of pose estimation models are included.

Enumerator
COCO_18 

COCO model, 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_18 

Experimental. Do not use.

BODY_19 

Experimental. Do not use.

BODY_19_X2 

Experimental. Do not use.

BODY_23 

Experimental. Do not use.

BODY_59 

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 ( WorkerConsumer  )
op::COMPILE_TEMPLATE_DATUM ( WorkerProducer  )
op::COMPILE_TEMPLATE_DATUM ( WIdGenerator  )
op::COMPILE_TEMPLATE_DATUM ( Worker  )
op::COMPILE_TEMPLATE_DATUM ( WPersonIdExtractor  )
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 ( WFaceRenderer  )
op::COMPILE_TEMPLATE_DATUM ( WHandRenderer  )
op::COMPILE_TEMPLATE_DATUM ( WCvMatToOpInput  )
op::COMPILE_TEMPLATE_DATUM ( WGuiInfoAdder  )
op::COMPILE_TEMPLATE_DATUM ( WCocoJsonSaver  )
op::COMPILE_TEMPLATE_DATUM ( WVideoSaver  )
op::COMPILE_TEMPLATE_DATUM ( WPoseRenderer  )
op::COMPILE_TEMPLATE_DATUM ( PriorityQueue  )
op::COMPILE_TEMPLATE_DATUM ( Queue  )
op::COMPILE_TEMPLATE_DATUM ( WKeypointScaler  )
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 ( WFaceExtractor  )
op::COMPILE_TEMPLATE_DATUM ( WKeepTopNPeople  )
op::COMPILE_TEMPLATE_DATUM ( WHeatMapSaver  )
op::COMPILE_TEMPLATE_DATUM ( WHandExtractor  )
op::COMPILE_TEMPLATE_DATUM ( WHandSaver  )
op::COMPILE_TEMPLATE_DATUM ( WPoseExtractor  )
op::COMPILE_TEMPLATE_DATUM ( WGui  )
op::COMPILE_TEMPLATE_DATUM ( WPoseTriangulation  )
op::COMPILE_TEMPLATE_DATUM ( WPeopleJsonSaver  )
op::COMPILE_TEMPLATE_DATUM ( WGui3D  )
op::COMPILE_TEMPLATE_DATUM ( WQueueOrderer  )
op::COMPILE_TEMPLATE_DATUM ( SubThread  )
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::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 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 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 unsigned int  imageDirectoryStereo = 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 void op::floatPtrToUCharCvMat ( cv::Mat &  uCharCvMat,
const float *const  floatPtrImage,
const std::array< int, 3 >  resolutionSize 
)
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.
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::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 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 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)
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 
)
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 
)
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 int  gpuID = 0 
)
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 
)
template<typename T >
Rectangle<T> op::recenter ( const Rectangle< T > &  rectangle,
const T  newWidth,
const T  newHeight 
)
OP_API Array<float> op::reconstructArray ( const std::vector< Array< float >> &  keypointsVector,
const std::vector< cv::Mat > &  matrixEachCamera 
)
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 
)
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,
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::scaleKeypoints ( Array< float > &  keypoints,
const float  scaleX,
const float  scaleY 
)
OP_API void op::scaleKeypoints ( 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 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 bool  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 ( const WrapperStructPose &  wrapperStructPose,
const WrapperStructFace &  wrapperStructFace,
const WrapperStructHand &  wrapperStructHand,
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
wrapperStructInput
wrapperStructOutput
renderOutput
userOutputWsEmpty
threadManagerMode

Variable Documentation

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 = 96u
op::spTQueueIn
op::spTQueueOut