Toybrick

rk3399pro板子上跑YOLOV3画面右侧区域出现box不匹配现象

appleUncle

中级会员

积分
440
楼主
发表于 2019-12-27 15:11:36    查看: 6823|回复: 4 | [复制链接]    打印 | 只看该作者
本帖最后由 appleUncle 于 2019-12-27 16:08 编辑

按照大佬的教程人工智能开发系列(3) YOLOV3开发与实现成功在3399pro板子上跑了起来,效果很不错,但是发现一个奇怪的现象,在画面的右侧,大概是画面宽度的2/3之后的区域,出现box中心和宽度不匹配,高度是匹配的。情况如下图:更详细的可以看看这个输出视频

可以明显看到最右侧的行人,box有问题。经过多次实验,发现画面的其他地方都没问题,只有右侧2/3左右之后的区域检测到目标,box就会出现上述情况。用的是c接口的demo,320,416,608  3个版本均是如此。
另外模型转换的量化和预编译开关都试过,问题依旧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

troy

版主

积分
2352
沙发
发表于 2019-12-27 16:56:39 | 只看该作者
因为视频图片在预测前会被resize成416x416,正常情况显示的应该是resize后的图像,但是代码中为了显示效果,显示的是resize前的图片;两种改进方法,第一,原视频长宽比例1:1,第二,修改代码,显示的图像为resize后的
回复

使用道具 举报

appleUncle

中级会员

积分
440
板凳
 楼主| 发表于 2019-12-30 08:32:52 | 只看该作者
troy 发表于 2019-12-27 16:56
因为视频图片在预测前会被resize成416x416,正常情况显示的应该是resize后的图像,但是代码中为了显示效果, ...

感谢解答!
回复

使用道具 举报

appleUncle

中级会员

积分
440
地板
 楼主| 发表于 2019-12-30 10:04:00 | 只看该作者
经检查,是给的demo代码有误,
在draw_img函数中:
  1. if(x1  < 0) x1  = 0;
  2. if(x2> img.cols-1) x2 = img.cols-1;
  3. if(y1 < 0) y1 = 0;
  4. if(x2 > img.rows-1) x2 = img.rows-1;
复制代码
应改为:
  1. if(x1  < 0) x1  = 0;
  2. if(x2> img.cols-1) x2 = img.cols-1;
  3. if(y1 < 0) y1 = 0;
  4. if(y2 > img.rows-1) y2 = img.rows-1;
复制代码
然后在run_process函数中将outputs_transform(outputs, net_width, net_height, dets);的net_width, net_height改成输出图片的宽高即可。
回复

使用道具 举报

troy

版主

积分
2352
5#
发表于 2020-1-7 09:12:42 | 只看该作者
appleUncle 发表于 2019-12-30 10:04
经检查,是给的demo代码有误,
在draw_img函数中:
应改为:然后在run_process函数中将outputs_transform(o ...

回复

使用道具 举报

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

本版积分规则

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


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