|
from microprograms.errors.angles_micro_programs import applyPositionTightnessError |
|
from models.pose_estimator.pose_estimator_model_setup import get_pose_estimation |
|
from microprograms.errors.distance_from_springboard_micro_program import board_end |
|
|
|
from microprograms.errors.distance_from_springboard_micro_program import find_which_side_board_on |
|
from models.detectron2.platform_detector_setup import get_platform_detector |
|
import cv2 |
|
import numpy as np |
|
|
|
def twist_microprogram_one_frame(filepath, on_board, expected_twists, petal_count, expected_som, half_som_count, pose_pred=None, diver_detector=None, pose_model=None): |
|
if on_board: |
|
return 0 |
|
if expected_twists <= petal_count or expected_som <= half_som_count: |
|
return 0 |
|
angle = applyPositionTightnessError(filepath, pose_pred=pose_pred, diver_detector=diver_detector, pose_model=pose_model) |
|
if angle is None: |
|
return 0 |
|
if angle > 80: |
|
return 1 |
|
else: |
|
return 0 |