1 #ifndef VISUALUPDATEPARTICLES_H 2 #define VISUALUPDATEPARTICLES_H 6 #include <condition_variable> 10 #include <BayesFilters/PFVisualCorrection.h> 11 #include <opencv2/core/cuda.hpp> 12 #include <opencv2/cudaobjdetect.hpp> 13 #include <opencv2/objdetect/objdetect.hpp> 21 VisualUpdateParticles(std::unique_ptr<VisualProprioception> observation_model,
const double likelihood_gain) noexcept;
23 VisualUpdateParticles(std::unique_ptr<VisualProprioception> observation_model,
const double likelihood_gain,
const int num_cuda_stream) noexcept;
27 void innovation(
const Eigen::Ref<const Eigen::MatrixXf>& pred_states, cv::InputArray measurements, Eigen::Ref<Eigen::MatrixXf> innovations)
override;
29 double likelihood(
const Eigen::Ref<const Eigen::MatrixXf>& innovations)
override;
36 void correctStep(
const Eigen::Ref<const Eigen::MatrixXf>& pred_states,
const Eigen::Ref<const Eigen::VectorXf>& pred_weights, cv::InputArray measurements,
37 Eigen::Ref<Eigen::MatrixXf> cor_states, Eigen::Ref<Eigen::VectorXf> cor_weights)
override;
void innovation(const Eigen::Ref< const Eigen::MatrixXf > &pred_states, cv::InputArray measurements, Eigen::Ref< Eigen::MatrixXf > innovations) override
const int num_img_stream_
VisualUpdateParticles(std::unique_ptr< VisualProprioception > observation_model) noexcept
std::vector< cv::Mat > cpu_descriptors_
~VisualUpdateParticles() noexcept
std::vector< cv::cuda::Stream > cuda_stream_
void correctStep(const Eigen::Ref< const Eigen::MatrixXf > &pred_states, const Eigen::Ref< const Eigen::VectorXf > &pred_weights, cv::InputArray measurements, Eigen::Ref< Eigen::MatrixXf > cor_states, Eigen::Ref< Eigen::VectorXf > cor_weights) override
cv::Ptr< cv::cuda::HOG > cuda_hog_
void setVisualObservationModel(std::unique_ptr< bfl::VisualObservationModel > visual_observation_model) override
const int num_cuda_stream_
std::vector< cv::Mat > hand_rendered_
std::vector< cv::cuda::GpuMat > cuda_descriptors_
std::unique_ptr< VisualProprioception > observation_model_
std::vector< cv::cuda::GpuMat > cuda_img_
std::vector< cv::cuda::GpuMat > cuda_img_alpha_
double likelihood(const Eigen::Ref< const Eigen::MatrixXf > &innovations) override
bfl::VisualObservationModel & getVisualObservationModel() override