DM: track RHD predictions (#24947)

* driverview

* auto choose

* useless

* remove

* modeld not use toggle

* remove from params

* Revert "remove from params"

This reverts commit a08df0b492.

* Revert "modeld not use toggle"

This reverts commit 2730bf8f57.

* Revert "remove"

This reverts commit 21f7cfaaee.

* Revert "driverview"

This reverts commit 222d129711.

* semi revert
pull/24802/head
ZwX1616 3 years ago committed by GitHub
parent 1908b89e29
commit a0c114b8b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      selfdrive/modeld/models/dmonitoring.cc
  2. 1
      selfdrive/modeld/models/dmonitoring.h
  3. 21
      selfdrive/monitoring/driver_monitor.py

@ -20,7 +20,6 @@ static inline T *get_buffer(std::vector<T> &buf, const size_t size) {
} }
void dmonitoring_init(DMonitoringModelState* s) { void dmonitoring_init(DMonitoringModelState* s) {
s->is_rhd = Params().getBool("IsRHD");
#ifdef USE_ONNX_MODEL #ifdef USE_ONNX_MODEL
s->m = new ONNXModel("models/dmonitoring_model.onnx", &s->output[0], OUTPUT_SIZE, USE_DSP_RUNTIME, false, true); s->m = new ONNXModel("models/dmonitoring_model.onnx", &s->output[0], OUTPUT_SIZE, USE_DSP_RUNTIME, false, true);

@ -38,7 +38,6 @@ typedef struct DMonitoringModelResult {
typedef struct DMonitoringModelState { typedef struct DMonitoringModelState {
RunModel *m; RunModel *m;
bool is_rhd;
float output[OUTPUT_SIZE]; float output[OUTPUT_SIZE];
std::vector<uint8_t> net_input_buf; std::vector<uint8_t> net_input_buf;
float calib[CALIB_LEN]; float calib[CALIB_LEN];

@ -120,7 +120,7 @@ class DriverStatus():
self.settings = settings self.settings = settings
# init driver status # init driver status
# self.wheelpos_learner = RunningStatFilter() self.wheelpos_learner = RunningStatFilter()
self.pose = DriverPose(self.settings._POSE_OFFSET_MAX_COUNT) self.pose = DriverPose(self.settings._POSE_OFFSET_MAX_COUNT)
self.pose_calibrated = False self.pose_calibrated = False
self.blink = DriverBlink() self.blink = DriverBlink()
@ -137,7 +137,8 @@ class DriverStatus():
self.distracted_types = [] self.distracted_types = []
self.driver_distracted = False self.driver_distracted = False
self.driver_distraction_filter = FirstOrderFilter(0., self.settings._DISTRACTED_FILTER_TS, self.settings._DT_DMON) self.driver_distraction_filter = FirstOrderFilter(0., self.settings._DISTRACTED_FILTER_TS, self.settings._DT_DMON)
self.wheel_on_right = rhd self.wheel_on_right = False
self.rhd_toggled = rhd
self.face_detected = False self.face_detected = False
self.terminal_alert_cnt = 0 self.terminal_alert_cnt = 0
self.terminal_time = 0 self.terminal_time = 0
@ -225,14 +226,14 @@ class DriverStatus():
self.settings._POSE_YAW_THRESHOLD_STRICT]) / self.settings._POSE_YAW_THRESHOLD self.settings._POSE_YAW_THRESHOLD_STRICT]) / self.settings._POSE_YAW_THRESHOLD
def update_states(self, driver_state, cal_rpy, car_speed, op_engaged): def update_states(self, driver_state, cal_rpy, car_speed, op_engaged):
# rhd_pred = driver_state.wheelOnRightProb rhd_pred = driver_state.wheelOnRightProb
# if car_speed > 0.01: if car_speed > 0.01:
# self.wheelpos_learner.push_and_update(rhd_pred) self.wheelpos_learner.push_and_update(rhd_pred)
# if self.wheelpos_learner.filtered_stat.n > self.settings._WHEELPOS_FILTER_MIN_COUNT: if self.wheelpos_learner.filtered_stat.n > self.settings._WHEELPOS_FILTER_MIN_COUNT:
# self.wheel_on_right = self.wheelpos_learner.filtered_stat.M > self.settings._WHEELPOS_THRESHOLD self.wheel_on_right = self.wheelpos_learner.filtered_stat.M > self.settings._WHEELPOS_THRESHOLD
# else: else:
# self.wheel_on_right = rhd_pred > self.settings._WHEELPOS_THRESHOLD self.wheel_on_right = rhd_pred > self.settings._WHEELPOS_THRESHOLD
driver_data = driver_state.rightDriverData if self.wheel_on_right else driver_state.leftDriverData driver_data = driver_state.rightDriverData if self.rhd_toggled else driver_state.leftDriverData
if not all(len(x) > 0 for x in (driver_data.faceOrientation, driver_data.facePosition, if not all(len(x) > 0 for x in (driver_data.faceOrientation, driver_data.facePosition,
driver_data.faceOrientationStd, driver_data.facePositionStd, driver_data.faceOrientationStd, driver_data.facePositionStd,
driver_data.readyProb, driver_data.notReadyProb)): driver_data.readyProb, driver_data.notReadyProb)):

Loading…
Cancel
Save