我在尝试获取低分辨率图像中的人体姿势信息。特别是,我尝试了michalfaber的Keras OpenPose实现,但该模型在低分辨率图像上似乎表现不佳,而在高分辨率图像上表现得相当好。我也在GitHub repo上以issue的身份发布了一个问题,但我认为我应该在这里尝试一下,因为我不打算实现特定的人体姿势检测。
我的图片宽度和高度都在50-100像素左右。这是该图像的一个示例。我想知道是否有人知道修改程序、网络的方法,或者知道在这种低分辨率图像上表现良好的人体姿势网络。

发布于 2020-01-07 01:37:22
如果您正在寻找不同的人体姿势估计网络,我强烈推荐MxNet GluonCV框架(https://gluon-cv.mxnet.io/model_zoo/pose.html)。它非常容易使用,还包含许多不同的姿态估计网络,您可以尝试比较精度和速度之间的折衷。例如,要使用它,您可以这样做(取自教程页面):
from matplotlib import pyplot as plt
from gluoncv import model_zoo, data, utils
from gluoncv.data.transforms.pose import detector_to_alpha_pose, heatmap_to_coord_alpha_pose
detector = model_zoo.get_model('yolo3_mobilenet1.0_coco', pretrained=True)
pose_net = model_zoo.get_model('alpha_pose_resnet101_v1b_coco', pretrained=True)
# Note that we can reset the classes of the detector to only include
# human, so that the NMS process is faster.
detector.reset_class(["person"], reuse_weights=['person'])
im_fname = utils.download('https://github.com/dmlc/web-data/blob/master/' +
'gluoncv/pose/soccer.png?raw=true',
path='soccer.png')
x, img = data.transforms.presets.yolo.load_test(im_fname, short=512)
print('Shape of pre-processed image:', x.shape)
class_IDs, scores, bounding_boxs = detector(x)
pose_input, upscale_bbox = detector_to_alpha_pose(img, class_IDs, scores, bounding_boxs)
predicted_heatmap = pose_net(pose_input)
pred_coords, confidence = heatmap_to_coord_alpha_pose(predicted_heatmap, upscale_bbox)例如,为了进行精度比较,他们与ResNET101网络的AlphaPose比OpenPose的精度要高得多(您可以从上面的链接中找到更多精度基准)。但是,需要注意的是,要了解这些网络类型之间的差异,例如实现自下而上和自上而下的方法,因为它会影响不同场景下的推理速度。
例如,自顶向下方法的运行时间与检测到的人的数量成正比,如果您的图像中有一大群人,这可能会很耗时。
https://stackoverflow.com/questions/59615768
复制相似问题