Openpose на изображениях с низким разрешением? - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь получить информацию о позе человека на изображениях с низким разрешением. В частности, я попробовал реализацию Keras OpenPose с помощью michalfaber , но модель, похоже, не очень хорошо работает на изображениях с низким разрешением, но довольно хорошо работает на более высоком разрешении. Я также опубликовал вопрос как проблема в репозитории GitHub, но я подумал, что попробую здесь, так как я не настроен на конкретную реализацию обнаружения человеческой позы.

Мои изображения имеют ширину и высоту 50-100 пикселей. Это пример изображения. Интересно, знает ли кто-нибудь способ изменить программу, сеть или знает сеть позы человека, которая хорошо работает на таких изображениях с низким разрешением.

enter image description here

1 Ответ

1 голос
/ 06 января 2020

Если вы ищете другую сеть для оценки позы человека, я очень рекомендую среду M xNet 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)

Например, для сравнения точности их AlphaPose с сетью Re snet 101 значительно более точна, чем OpenPose (Вы можете найти более точные критерии по ссылке выше). Однако следует понимать различие между типами этих сетей, такими как реализация подхода «снизу вверх» и «сверху вниз», поскольку это может повлиять на скорость вывода в различных сценариях ios.

Например, время выполнения нисходящий подход пропорционален количеству обнаруженных людей, это может занять много времени, если на вашем изображении есть толпа людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...