|  |  | @ -147,25 +147,24 @@ DMonitoringResult dmonitoring_eval_frame(DMonitoringModelState* s, void* stream_ | 
			
		
	
		
		
			
				
					
					|  |  |  |   double t2 = millis_since_boot(); |  |  |  |   double t2 = millis_since_boot(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   DMonitoringResult ret = {0}; |  |  |  |   DMonitoringResult ret = {0}; | 
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.face_orientation, &s->output[0], sizeof ret.face_orientation); |  |  |  |   for (int i = 0; i < 3; ++i) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.face_orientation_meta, &s->output[6], sizeof ret.face_orientation_meta); |  |  |  |     ret.face_orientation[i] = s->output[i]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.face_position, &s->output[3], sizeof ret.face_position); |  |  |  |     ret.face_orientation_meta[i] = softplus(s->output[6 + i]); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.face_position_meta, &s->output[9], sizeof ret.face_position_meta); |  |  |  |   } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.face_prob, &s->output[12], sizeof ret.face_prob); |  |  |  |   for (int i = 0; i < 2; ++i) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.left_eye_prob, &s->output[21], sizeof ret.left_eye_prob); |  |  |  |     ret.face_position[i] = s->output[3 + i]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.right_eye_prob, &s->output[30], sizeof ret.right_eye_prob); |  |  |  |     ret.face_position_meta[i] = softplus(s->output[9 + i]); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.left_blink_prob, &s->output[31], sizeof ret.right_eye_prob); |  |  |  |   } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.right_blink_prob, &s->output[32], sizeof ret.right_eye_prob); |  |  |  |   ret.face_prob = s->output[12]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.sg_prob, &s->output[33], sizeof ret.sg_prob); |  |  |  |   ret.left_eye_prob = s->output[21]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.poor_vision, &s->output[34], sizeof ret.poor_vision); |  |  |  |   ret.right_eye_prob = s->output[30]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.partial_face, &s->output[35], sizeof ret.partial_face); |  |  |  |   ret.left_blink_prob = s->output[31]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.distracted_pose, &s->output[36], sizeof ret.distracted_pose); |  |  |  |   ret.right_blink_prob = s->output[32]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   memcpy(&ret.distracted_eyes, &s->output[37], sizeof ret.distracted_eyes); |  |  |  |   ret.sg_prob = s->output[33]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   ret.face_orientation_meta[0] = softplus(ret.face_orientation_meta[0]); |  |  |  |   ret.poor_vision = s->output[34]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   ret.face_orientation_meta[1] = softplus(ret.face_orientation_meta[1]); |  |  |  |   ret.partial_face = s->output[35]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   ret.face_orientation_meta[2] = softplus(ret.face_orientation_meta[2]); |  |  |  |   ret.distracted_pose = s->output[36]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   ret.face_position_meta[0] = softplus(ret.face_position_meta[0]); |  |  |  |   ret.distracted_eyes = s->output[37]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   ret.face_position_meta[1] = softplus(ret.face_position_meta[1]); |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   ret.dsp_execution_time = (t2 - t1) / 1000.; |  |  |  |   ret.dsp_execution_time = (t2 - t1) / 1000.; | 
			
		
	
		
		
			
				
					
					|  |  |  |   return ret; |  |  |  |   return ret; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |