8#ifndef _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_ONNXCOMPACTMODEL_H_
9#define _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_ONNXCOMPACTMODEL_H_
13#include <ElementsKernel/Logging.h>
24template <
typename ImageType>
41 double getValue(
double,
double)
const override {
53 auto shape = model->getOutputShape();
61 logger.warn() <<
"No large enough ONNX model could be found, skipping...";
std::shared_ptr< EngineParameter > dx
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
std::shared_ptr< EngineParameter > dy
static Logging getLogger(const std::string &name="")
float samplePixel(const ModelEvaluator &model_eval, int x, int y, unsigned int subsampling) const
void renormalize(ImageType &image, double flux) const
double getMaxRadiusSqr(std::size_t size_x, std::size_t size_y, const Mat22 &transform) const
Mat22 getCombinedTransform(double pixel_scale) const
float adaptiveSamplePixel(const ModelEvaluator &model_eval, int x, int y, unsigned int max_subsampling, float threshold=1.1) const
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
std::map< std::string, std::shared_ptr< BasicParameter > > m_params
OnnxCompactModel(std::vector< std::shared_ptr< SourceXtractor::OnnxModel > > models, std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y, std::shared_ptr< BasicParameter > flux, std::map< std::string, std::shared_ptr< BasicParameter > > params, std::tuple< double, double, double, double > transform)
std::vector< std::shared_ptr< SourceXtractor::OnnxModel > > m_models
virtual ~OnnxCompactModel()=default
double getValue(double, double) const override
std::shared_ptr< BasicParameter > m_flux
static Elements::Logging logger