|
本帖最后由 ylc123 于 2020-6-3 14:58 编辑
自己已使用这个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的代码为如下代码
- pb=np.reshape(pb,(len(pb),1))
- with open("./priorbox_mobilenetssd.txt",'w') as f:
- f.write("")
- with open("./priorbox_mobilenetssd.txt",'a') as f:
- for line in pb:
- f.write("".join(map(str,line))+"\n")
|
|