Toybrick

求分享mobilenet-ssd的priorbox.txt的生成代码

ylc123

注册会员

积分
146
楼主
发表于 2020-6-2 14:32:05 | 显示全部楼层
本帖最后由 ylc123 于 2020-6-3 14:58 编辑
Devin 发表于 2020-2-24 14:48
谢谢!我参考了https://github.com/Pinnh/NPU_CaffeSSD获取了center_x, center_y, w, h并保存下来,结果 ...
       自己已使用这个github作者提供的方法在rknn官方vgg ssd和自己裁剪后的mobilenet ssd上运行成功。
        我这边使用了https://github.com/Pinnh/NPU_CaffeSSD的方法,
(1)提取了vgg ssd(官方的caffe模型需要自己下载,使用了rknn中的去掉detectionout的prototxt)的pribox.txt,然后和官方对比结果是一致的;
(2)使用rknn的测试代码运行后,保存的result.jpg结果也是一致的。
(3)如果测试自己的模型,要留意rknn官方给的测试脚本中的归一化是否和自己的一致,否则不会输出结果。
         不过,这个github的代码有以下几个问题需要注意,
(1)只适用于检测一个目标的,如果你检测的不是一个目标,需要修改npu_ssd_det.py中的
        a)   conf        = [[x/(x+y),y/(x+y)] for x,y in np.exp(conf)]
        b)   score      = conf[1]    github作者是检测一个目标,所以是[1],如果你是多个目标,这里就得注意一下了
        c)   outlen     =  这个值一般为你的pribox个数*4
        d)   classnum =  这个是你的检测目标个数+1
        这几个地方的代码。
(2)rknn官方的pribox.txt是一个数据一行的,如果要完全按照这个格式,你需要修改这个github代码中pribox.py中的第二个保存txt的代码为如下代码

  1.    pb=np.reshape(pb,(len(pb),1))
  2.     with open("./priorbox_mobilenetssd.txt",'w') as f:
  3.          f.write("")
  4.     with open("./priorbox_mobilenetssd.txt",'a') as f:
  5.          for line in pb:
  6.              f.write("".join(map(str,line))+"\n")
复制代码



回复

使用道具 举报

ylc123

注册会员

积分
146
沙发
发表于 2020-6-8 11:52:43 | 显示全部楼层
loi666 发表于 2020-6-4 16:23
就是我也用的这个仓库的代码,根据他的实例,然后生成的priorbox为什么有负数存在呀,求解答呀 ...

官方的里面也有啊
你有测试效果吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表