PosturePerfection
Data Structures | Namespaces | Macros
pipeline.h File Reference

Main pipeline for the PosturePerfection system. More...

#include <CppTimer.h>
#include <condition_variable>
#include <deque>
#include <mutex>
#include <thread>
#include <vector>
#include "iir.h"
#include "inference_core.h"
#include "opencv2/core.hpp"
#include "opencv2/videoio.hpp"
#include "post_processor.h"
#include "posture_estimator.h"
#include "pre_processor.h"
Include dependency graph for pipeline.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Buffer::PopResult< T >
 Result when calling Buffer::pop() More...
 
class  Buffer::Buffer< T >
 A synchronising buffer to be used as a communication mechanism between threads. More...
 
struct  Pipeline::FramerateSetting
 Parameters relevant to the currently set frame rate. More...
 
class  Pipeline::FramerateSettings
 Class to maintain the currently set frame rate and any related settings. More...
 
struct  Pipeline::PreprocessedFrame
 Contains the id of the frame within the pipeline, as well as the raw image and the preprocessed_image. A struct of this type is created for every input image after it has been passed through the PreProcessing::PreProcessor, before being sent to the Inference::InferenceCore More...
 
struct  Pipeline::RawFrame
 A frame as returned by the FrameGenerator More...
 
class  Pipeline::FrameGenerator
 Class to maintain access to the cv::VideoCapture used as the input video stream. This class makes use of the CppTimer wrapper created here to regularly capture input frames at the set frame rate. More...
 
struct  Pipeline::CoreResults
 Contains the id of the frame within the pipeline, as well as the raw image and the results of running inference on that image. A struct of this type is created for every input image after it has been passed through the InferenceCore, before being sent to the PostProcessor More...
 
class  Pipeline::Pipeline
 Frame-by-frame pipeline to process video. More...
 

Namespaces

 Buffer
 A synchronising buffer and results structure.
 
 Pipeline
 Components of the pipeline at the core of the system.
 

Macros

#define FRAME_DELAY_MAX   2000
 Maximum settable frame delay, i.e., 0.5Hz. More...
 
#define FRAME_DELAY_MIN   50
 Minimum settable frame delay, i.e., 20Hz. More...
 
#define FRAME_DELAY_DEFAULT   1000
 Default delay between frames in ms. More...
 

Detailed Description

Main pipeline for the PosturePerfection system.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Macro Definition Documentation

◆ FRAME_DELAY_DEFAULT

#define FRAME_DELAY_DEFAULT   1000

Default delay between frames in ms.

◆ FRAME_DELAY_MAX

#define FRAME_DELAY_MAX   2000

Maximum settable frame delay, i.e., 0.5Hz.

◆ FRAME_DELAY_MIN

#define FRAME_DELAY_MIN   50

Minimum settable frame delay, i.e., 20Hz.