Files
vision-anti-pinch/include/door_zone.hpp
T

23 lines
770 B
C++

#pragma once
#include "door_risk.hpp"
#include <deque>
#include <unordered_map>
namespace cms {
class DoorZoneAssigner {
public:
explicit DoorZoneAssigner(std::filesystem::path const& configuration);
Json update(int frame, Json const& record, cv::Size size);
private:
std::string classify(double probability) const;
Json features_;
double frontMin_{},rearMax_{},minimumHeight_{};
int minimumPoseFeatures_{},historyFrames_{},staleFrames_{};
std::unordered_map<int,std::deque<double>> history_;
std::unordered_map<int,int> lastSeen_;
};
struct DoorDecisions { Json doors; Json selected; };
DoorDecisions buildDoorRisks(Json const& raw, Json const& assignments,
std::string const& activeDoor, bool canValid);
}