mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-27 20:23:57 +08:00
* c3 is straightforward
* c2 transform
* c3 preview
* alpha model
* Revert "alpha model": wrong quantization data
This reverts commit b50e5739735b30d960aca22bcf3cbe23b0121e13.
* yuv looks good
* a55b
* const int
* block top deadzone
* new box alpha curve
* update k
* fix debug
* rhd use same offset
* box shift for rhd
* 7e3e
* set new thresh
* update ref
* explain
* remove e2e
* same metric thresh
* process isocc
* model
* cancel extra policy
* update numbers
* new model
* update cereal
* up cereal
Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 8574e79fec
47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <vector>
|
|
|
|
#include "cereal/messaging/messaging.h"
|
|
#include "selfdrive/common/util.h"
|
|
#include "selfdrive/modeld/models/commonmodel.h"
|
|
#include "selfdrive/modeld/runners/run.h"
|
|
|
|
#define OUTPUT_SIZE 39
|
|
|
|
typedef struct DMonitoringResult {
|
|
float face_orientation[3];
|
|
float face_orientation_meta[3];
|
|
float face_position[2];
|
|
float face_position_meta[2];
|
|
float face_prob;
|
|
float left_eye_prob;
|
|
float right_eye_prob;
|
|
float left_blink_prob;
|
|
float right_blink_prob;
|
|
float sg_prob;
|
|
float poor_vision;
|
|
float partial_face;
|
|
float distracted_pose;
|
|
float distracted_eyes;
|
|
float occluded_prob;
|
|
float dsp_execution_time;
|
|
} DMonitoringResult;
|
|
|
|
typedef struct DMonitoringModelState {
|
|
RunModel *m;
|
|
bool is_rhd;
|
|
float output[OUTPUT_SIZE];
|
|
std::vector<uint8_t> resized_buf;
|
|
std::vector<uint8_t> cropped_buf;
|
|
std::vector<uint8_t> premirror_cropped_buf;
|
|
std::vector<float> net_input_buf;
|
|
float tensor[UINT8_MAX + 1];
|
|
} DMonitoringModelState;
|
|
|
|
void dmonitoring_init(DMonitoringModelState* s);
|
|
DMonitoringResult dmonitoring_eval_frame(DMonitoringModelState* s, void* stream_buf, int width, int height);
|
|
void dmonitoring_publish(PubMaster &pm, uint32_t frame_id, const DMonitoringResult &res, float execution_time, kj::ArrayPtr<const float> raw_pred);
|
|
void dmonitoring_free(DMonitoringModelState* s);
|
|
|