Toybrick

标题: SSD相对于tensorflow模型精度很低 [打印本页]

作者: xiaqing10    时间: 2019-7-9 15:37
标题: SSD相对于tensorflow模型精度很低
RT, (ubuntu:16.04 , rknn v0.99)

采用的backbone是inception-v2. 前后处理参数完全一致(min_score = 0.5, nms_score = 0.35)
下面列出对于同一张图片的输出,分别是rknn和tensorflow pb的输出.

rknn:
class:
[ 10.097731  -10.567392  -11.741548  -10.802223  -11.506717  -11.271885
-11.271885  -11.271885  -10.567392  -11.037054  -11.271885   11.271885 ]
box:
[ 0.7268028   0.         -2.1804085  -3.2302346  -0.16151173  0.7268028
-2.3419201  -0.7268028   1.2920939   0.08075587  0.         -2.6649437 ]

pb:
class:
[ 10.310827  -10.911581  -12.130562  -11.300155  -12.018924  -11.87126
-11.132574  -10.914707  -10.862275  -11.390712  -11.598831   12.325917 ]
box:
[ 0.14211771 -0.30928105 -1.067803   -2.5659282   1.2492366   1.1612065
-0.98545104 -0.9886693   0.40972435  0.62647974 -1.2862402  -1.8050051 ]


可以看出,class的数值差别不大, 但是box的值差别很大, 请问这个有改进的方法么?



作者: jefferyzhang    时间: 2019-7-23 12:02
量化了么,量化需要大量图片进行量化来提高精度,可以无限接近于原模型,
不量化的话精度和原模型是一样的,但是会牺牲速度。

如果你说的是rknn的那个demo,那没办法保证精度,量化就用了一张图片而已,只是个demo,让大家了解如何转换模型和部署的,并非产品化模型。
作者: xiaqing10    时间: 2019-7-23 15:57
本帖最后由 xiaqing10 于 2019-7-23 16:00 编辑
jefferyzhang 发表于 2019-7-23 12:02
量化了么,量化需要大量图片进行量化来提高精度,可以无限接近于原模型,
不量化的话精度和原模型是一样的 ...

多谢回答. 后面我用yolov2解决了这个精度问题,发现rknn对于yolo貌似没什么精度损失.

首先,我是量化了的,(图片有几十张,这样看来可能不够)
我用了原生的ssd_inception_v2(91分类),测试,发现pb模型比rknn精度高,下面贴出对比图.
然后用了训练了一把ssd_inception_v2(10分类),测试,发现pb模型精度95%,而rknn模型精度50%不到.


作者: jefferyzhang    时间: 2019-7-23 16:37
我知道我一些算法公司的客户,量化都是用10w+以上的图片进行的,量化运行都要半个多小时,一点点的图片进行量化精度损失是肯定很大的。
量化的学问挺大的,要好好研究下,我们有客户用rknn混合量化机制能做到接近0精度的损失。
作者: xiaqing10    时间: 2019-7-23 17:00
jefferyzhang 发表于 2019-7-23 16:37
我知道我一些算法公司的客户,量化都是用10w+以上的图片进行的,量化运行都要半个多小时,一点点的图片进行 ...

ok .好的~
多谢多谢
作者: wang    时间: 2019-10-10 15:22
你好,问一下,如何使用ssd_inception_v2的rknn模型,我使用python接口调用转换了模型后,输出['concat','concat_1'], 其中concat跟正常的概率值出入较大(加了sigmod转换),求告知如何解决?




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3