guodong's blog

master@zhejiang university
   

Self-Supervised Learning of 3D Human Pose using Multi-view Geometry论文阅读以及源码阅读

1、总的来说,使用自监督的方法,多视角(两视角)作为输入,使用比较容易获得2D标签和相机内参,通过epipolar geometry的方法生成3D标签,对模型监督。缺点是需要知道相机内参,同时不能对图片进行任何裁剪或缩放操作

2、关键代码解析

def gen_trans_from_patch_cv(c_x, c_y, src_width, src_height, dst_width, dst_height, scale, rot, inv=False):
    """
    得到仿射变换的转换矩阵. 不需要传入图像数据,只需要各处图像中心,最下边中点,以及最右边中点 这三个点的转换就行了
    :param c_x: center_x
    :param c_y: center_y
    :param src_width: 原图片宽度
    :param src_height: 原图片高度
    :param dst_width: 目标宽度
    :param dst_height:目标高度
    :param scale: 缩放因子,是针对原图片的缩放。
    :param rot: 旋转因子,是针对原图片的旋转,而不是原图片通过旋转得到目标图片
    :param inv: 是否翻转目标和源
    :return: 转换矩阵
    """
    # augment size with scale
    src_w = src_width * scale
    src_h = src_height * scale
    src_center = np.zeros(2)
    src_center[0] = c_x
    src_center[1] = c_y  # np.array([c_x, c_y], dtype=np.float32)
    # augment rotation
    rot_rad = np.pi * rot / 180
    src_downdir = rotate_2d(np.array([0, src_h * 0.5], dtype=np.float32), rot_rad)  # 对这个点进行旋转,至于这个点为什么命名为
    # dowm 那是因为后面有个和center相加的操作
    src_rightdir = rotate_2d(np.array([src_w * 0.5, 0], dtype=np.float32), rot_rad)  # 对这个点进行旋转

    dst_w = dst_width
    dst_h = dst_height
    dst_center = np.array([dst_w * 0.5, dst_h * 0.5], dtype=np.float32)  # 目标宽度中心
    dst_downdir = np.array([0, dst_h * 0.5], dtype=np.float32)  # 同上。对齐,但是不进行旋转
    dst_rightdir = np.array([dst_w * 0.5, 0], dtype=np.float32)

    src = np.zeros((3, 2), dtype=np.float32)  # 三个点,一个是center,一个是
    src[0, :] = src_center
    src[1, :] = src_center + src_downdir
    src[2, :] = src_center + src_rightdir

    dst = np.zeros((3, 2), dtype=np.float32)
    dst[0, :] = dst_center
    dst[1, :] = dst_center + dst_downdir
    dst[2, :] = dst_center + dst_rightdir

    if inv:  # 是否将源和目标的位置对调
        trans = cv2.getAffineTransform(np.float32(dst), np.float32(src))
    else:
        trans = cv2.getAffineTransform(np.float32(src), np.float32(dst))

    return trans



上一篇:
下一篇:

头像

guodong

没有评论


你先离开吧:)



发表评论

电子邮件地址不会被公开。 必填项已用*标注