• 如果觉得本站的内容有帮助,可以考虑打赏博主哦!

  • 感谢大家访问本站,希望本站的内容可以帮助到大家!

  • 工资「喂饱肚子」,副业「养活灵魂」!

  • 本站会放置Google广告用于维持域名以及网站服务器费用。

  • 问题反馈可发送邮件到stubbornhuang@qq.com

  • 欢迎大家交换友链,可在https://www.stubbornhuang.com/申请友情链接进行友链交换申请!

  • 在本站开通年度VIP,无限制下载本站资源和阅读本站文章

  • 本站由于前段时间遭受到大量临时和国外邮箱注册,所以对可注册的邮箱类型进行了限制!

  • 计算机图形学与计算几何经典必备书单整理,下载链接可参考:https://www.stubbornhuang.com/1256/

Alphapose – 在Alphapose中使用yolov3-tiny检测器大幅提升检测性能

姿态估计 发布于2021-08-02 阅读 6,216次 3次评论 0次点赞 本文共3876个字,阅读需要10分钟。

1 Alphapose中使用yolov3-tiny检测器的应用场景

Alphapose的官方仓库中默认使用的是yolov3-spp,根据官网公布的数据,其mAP为60.6,FPS能到20FPS。但是如果我们面临的是一个不复杂的场景,场景中人数较少,而我们有需要其性能够好,实时性能达到应用的要求或者更好,那我们为什么不使用yolov3-tiny检测器,由于简化了网络结构,根据官网的公布的数据,其FPS能达到220FPS,而mAP也有33.1,对于普通场景这种精度完全够用。

Alphapose - 在Alphapose中使用yolov3-tiny检测器大幅提升检测性能-第0张图片

2 在Alphapose中使用yolov3-tiny

2.1 下载yolov3-tiny的权重和配置文件

官网地址:https://pjreddie.com/darknet/yolo/

在官网分别下载weights和cfg文件

Alphapose - 在Alphapose中使用yolov3-tiny检测器大幅提升检测性能-第1张图片

将权重文件yolov3-tiny.weights放置到Alphapose的AlphaPose\detector\yolo\data文件夹下;
将配置文件yolov3-tiny.cfg放置到Alphapose的AlphaPose\detector\yolo\cfg文件夹下;

2.2 修改Alphapose的yolo_cfg文件

将AlphaPose\detector\yolo_cfg.py文件中的:

cfg.CONFIG = 'detector/yolo/cfg/yolov3-spp.cfg'
cfg.WEIGHTS = 'detector/yolo/data/yolov3-spp.weights'

修改为

cfg.CONFIG = 'detector/yolo/cfg/yolov3-tiny.cfg'
cfg.WEIGHTS = 'detector/yolo/data/yolov3-tiny.weights'

附上yolo_cfg.py的全部内容:

from easydict import EasyDict as edict

cfg = edict()

cfg.CONFIG = 'detector/yolo/cfg/yolov3-tiny.cfg'
cfg.WEIGHTS = 'detector/yolo/data/yolov3-tiny.weights'

cfg.INP_DIM =  320
cfg.NMS_THRES =  0.45
cfg.CONFIDENCE = 0.6
cfg.NUM_CLASSES = 80

2.3 yolov3-tiny.cfg的修改

好了,在我们进行了上述配置之后,就可以信心满满的运行Alphapose,试一试Alphapose的速度了!!!

但是,出现了以下错误:

Traceback (most recent call last):
  File "G:\ProgramData\Anaconda3\envs\Alphapose\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "G:\ProgramData\Anaconda3\envs\Alphapose\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "F:\下载目录\Github项目\Machine Learning And Deep Learning\AlphaPose\alphapose\utils\detector.py", line 223, in image_detection
    dets = self.detector.images_detection(imgs, im_dim_list)
  File "F:\下载目录\Github项目\Machine Learning And Deep Learning\AlphaPose\detector\yolo_api.py", line 99, in images_detection
    prediction = self.model(imgs, args=args)
  File "G:\ProgramData\Anaconda3\envs\Alphapose\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl
    result = self.forward(*input, **kwargs)
  File "F:\下载目录\Github项目\Machine Learning And Deep Learning\AlphaPose\detector\yolo\darknet.py", line 353, in forward
    x = torch.cat((map1, map2), 1)
RuntimeError: Sizes of tensors must match except in dimension 2. Got 20 and 18 (The offending index is 0)

好吧,从错误上以及调试的结果来看估计是yolov3-tiny.cfg网络结果有点问题,可是官方的配置文件为啥有问题啊!

不管了,经过我的不懈测试,终于发现了问题所在的地方,yolov3-tiny.cfg的157行:

[route]
layers = -1, 8

将其修改为:

[route]
layers = -1, 19

即可。

附上修改后的yolov3-tiny.cfg全部内容:

[net]
# Testing
batch=1
subdivisions=1
# Training
# batch=64
# subdivisions=2
width=416
height=416
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1

learning_rate=0.001
burn_in=1000
max_batches = 500200
policy=steps
steps=400000,450000
scales=.1,.1

[convolutional]
batch_normalize=1
filters=16
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=2

[convolutional]
batch_normalize=1
filters=32
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=2

[convolutional]
batch_normalize=1
filters=64
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=2

[convolutional]
batch_normalize=1
filters=128
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=2

[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=2

[convolutional]
batch_normalize=1
filters=512
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=1

[convolutional]
batch_normalize=1
filters=1024
size=3
stride=1
pad=1
activation=leaky

###########

[convolutional]
batch_normalize=1
filters=256
size=1
stride=1
pad=1
activation=leaky

[convolutional]
batch_normalize=1
filters=512
size=3
stride=1
pad=1
activation=leaky

[convolutional]
size=1
stride=1
pad=1
filters=255
activation=linear



[yolo]
mask = 3,4,5
anchors = 10,14,  23,27,  37,58,  81,82,  135,169,  344,319
classes=80
num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1

[route]
layers = -4

[convolutional]
batch_normalize=1
filters=128
size=1
stride=1
pad=1
activation=leaky

[upsample]
stride=2

[route]
#layers = -1, 8
layers = -1, 19

[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky

[convolutional]
size=1
stride=1
pad=1
filters=255
activation=linear

[yolo]
mask = 0,1,2
anchors = 10,14,  23,27,  37,58,  81,82,  135,169,  344,319
classes=80
num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1

修改完之后,就放肆跑吧!!!速度有很大提升!

欢迎扫码关注我的微信公众号,及时获取文章更新

微信公众号二维码

本文作者:StubbornHuang

版权声明:本文为站长原创文章,如果转载请注明原文链接!

原文标题:Alphapose – 在Alphapose中使用yolov3-tiny检测器大幅提升检测性能

原文链接:https://www.stubbornhuang.com/1486/

发布于:2021年08月02日 10:25:14

修改于:2023年06月26日 21:24:20

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章末尾
上一篇
资源分享 - OpenGL Programming Guide, Eighth Edition OpenGL红宝书英文第8版 英文PDF下载
计算几何与计算机图形学资源
下一篇
资源分享 – OpenGL Programming Guide, Ninth Edition OpenGL红宝书英文第9版 英文PDF下载
计算几何与计算机图形学资源
当前分类随机文章推荐

发表评论

您必须 [ 登录 ] 才能发表留言!

全部评论:3条

加载中...
  1. StubbornHuang Blog-StubbornHuang头像
    StubbornHuang 站长 2022-05-01 23:18 来自天朝的朋友 谷歌浏览器 Windows 10 湖南省邵阳市 移动

    啊?还有这个错误吗? :xiaoku:

    • StubbornHuang Blog-StubbornHuang头像
      StubbornHuang 站长 2022-05-01 23:21 来自天朝的朋友 谷歌浏览器 Windows 10 湖南省邵阳市 移动

      其实我建议可以试一试YOLOv5,我现在用的YOLOv5感觉速度还好,你其实可以试一试,将YOLOv5移到Alphapose中替换目标检测部分

    • StubbornHuang Blog-StubbornHuang头像
      StubbornHuang 站长 2022-05-01 23:22 来自天朝的朋友 谷歌浏览器 Windows 10 湖南省邵阳市 移动

      我用的应该也是老的版本 不是最近更新的那个

关注我们的公众号

微信公众号