본문 바로가기
ML | DL/Pose estimation

PoseNet keypoint로 신체 각도 구하기

by Leeys 2022. 3. 17.
반응형

해당 코드를 사용하기 위해서는 Pose Estimation model을 통하여 포즈의 좌표를 추출한 다음
원하는 신체 부위의 값을 입력해야 한다.

posenet으로 예를 들어 왼쪽어깨의 각도를 추출하고 싶으면 p1 - left shoulder, p2 - left elbow, p3 - left hip
이처럼 변수에 좌표 xy값을 입력한다.

angle_vec의 True, False 여부로 시계방향, 반시계방향으로 각도를 얻을 수 있다.

def get_angle(p1 : list, p2 : list ,p3 : list, angle_vec : bool) -> float:
    """ 
        세점 사이의 끼인 각도 구하기
    """
    rad = np.arctan2(p3[1] - p1[1], p3[0] - p1[0]) - np.arctan2(p2[1] - p1[1], p2[0] - p1[0])
    deg = rad * (180 / np.pi)
    if angle_vec:
        deg = 360-abs(deg)
    return abs(deg)
반응형

댓글