23 lines
770 B
C++
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);
|
|
}
|