Closed yuanliangxie closed 4 years ago
非常优雅的代码!值得学习!
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
所以作者所说的在简单标签训练的结果其实包含了所有标签的!
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
也可能,还没有仔细读作者的代码,现在一直在看ultralyrics那个版本,但是在voc2007上最高也就跑到0.79了,这个据说可以到0.85以上,你现在测试过没
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
所以作者所说的在简单标签训练的结果其实包含了所有标签的!
那0.85有点过分了吧,加入difficult可以掉很多mAP
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
所以作者所说的在简单标签训练的结果其实包含了所有标签的!
那0.85有点过分了吧,加入difficult可以掉很多mAP
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
也可能,还没有仔细读作者的代码,现在一直在看ultralyrics那个版本,但是在voc2007上最高也就跑到0.79了,这个据说可以到0.85以上,你现在测试过没
ultralyrics的那个版本真的写的太乱了。。。
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
所以作者所说的在简单标签训练的结果其实包含了所有标签的!
那0.85有点过分了吧,加入difficult可以掉很多mAP
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
也可能,还没有仔细读作者的代码,现在一直在看ultralyrics那个版本,但是在voc2007上最高也就跑到0.79了,这个据说可以到0.85以上,你现在测试过没
ultralyrics的那个版本真的写的太乱了。。。
你现在在做什么项目?天池有个瑕疵品检测的比赛感兴趣不
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
所以作者所说的在简单标签训练的结果其实包含了所有标签的!
那0.85有点过分了吧,加入difficult可以掉很多mAP
加入diffcult不应该增点嘛,检测器的检测性能还是比较强的
我做的是多源信息融合,视觉只是一部分
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
所以作者所说的在简单标签训练的结果其实包含了所有标签的!
那0.85有点过分了吧,加入difficult可以掉很多mAP
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
也可能,还没有仔细读作者的代码,现在一直在看ultralyrics那个版本,但是在voc2007上最高也就跑到0.79了,这个据说可以到0.85以上,你现在测试过没
ultralyrics的那个版本真的写的太乱了。。。
你现在在做什么项目?天池有个瑕疵品检测的比赛感兴趣不
我做的是多源信息融合,视觉只是一部分,这是来自大佬的邀请吗?
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
所以作者所说的在简单标签训练的结果其实包含了所有标签的!
那0.85有点过分了吧,加入difficult可以掉很多mAP
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
也可能,还没有仔细读作者的代码,现在一直在看ultralyrics那个版本,但是在voc2007上最高也就跑到0.79了,这个据说可以到0.85以上,你现在测试过没
ultralyrics的那个版本真的写的太乱了。。。
你现在在做什么项目?天池有个瑕疵品检测的比赛感兴趣不
比赛那种不是各种cascade faster rcnn吗?
我做的是多源信息融合,视觉只是一部分
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
所以作者所说的在简单标签训练的结果其实包含了所有标签的!
那0.85有点过分了吧,加入difficult可以掉很多mAP
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
也可能,还没有仔细读作者的代码,现在一直在看ultralyrics那个版本,但是在voc2007上最高也就跑到0.79了,这个据说可以到0.85以上,你现在测试过没
ultralyrics的那个版本真的写的太乱了。。。
你现在在做什么项目?天池有个瑕疵品检测的比赛感兴趣不
我做的是多源信息融合,视觉只是一部分,这是来自大佬的邀请吗?
之前都是,但是这次复赛有时间惩罚系数,而且我现在也在做yolov3的项目,要不加个企鹅吧,623497281
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
也可能,还没有仔细读作者的代码,现在一直在看ultralyrics那个版本,但是在voc2007上最高也就跑到0.79了,这个据说可以到0.85以上,你现在测试过没
这个代码,我跑50epoch,没有对测试集做翻转和多尺度的map在82.多左右
我做的是多源信息融合,视觉只是一部分
非常优雅的代码!值得学习!
不对吧........这里的逻辑应该是:不使用difficult然后如果碰到了difficult的object,就跳过
所以作者所说的在简单标签训练的结果其实包含了所有标签的!
那0.85有点过分了吧,加入difficult可以掉很多mAP
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
也可能,还没有仔细读作者的代码,现在一直在看ultralyrics那个版本,但是在voc2007上最高也就跑到0.79了,这个据说可以到0.85以上,你现在测试过没
ultralyrics的那个版本真的写的太乱了。。。
你现在在做什么项目?天池有个瑕疵品检测的比赛感兴趣不
我做的是多源信息融合,视觉只是一部分,这是来自大佬的邀请吗?
之前都是,但是这次复赛有时间惩罚系数,而且我现在也在做yolov3的项目,要不加个企鹅吧,623497281
OKOK!
我最初以为是逻辑问题,我发现返回来的diffcult是str类型,所以需要加一个int(difficult),不然根本过滤不掉难标签
你是对的,这里有个bug
修复了voc.py的bug,用新生成的训练数据(不包含difficult)重新训练了一下,模型的版本是master分支下的不用多尺度测试与反转测试的版本(即83.2),训练效果mAP可以到84.0。如下图:
so nice work!!!
---原始邮件--- 发件人: "leon"<notifications@github.com> 发送时间: 2019年12月26日(星期四) 中午11:22 收件人: "Peterisfar/YOLOV3"<YOLOV3@noreply.github.com>; 抄送: "yuanliangxie"<214510890@qq.com>;"Author"<author@noreply.github.com>; 主题: Re: [Peterisfar/YOLOV3] 关于voc.py中的逻辑错误 (#14)
修复了voc.py的bug,用新生成的训练数据(不包含difficult)重新训练了一下,模型的版本是master分支下的不用多尺度测试与反转测试的版本(即83.2),训练效果mAP可以到84.0。如下图:
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.
我已经找到了,在yolo_head.py第39行: grid_xy = grid_xy.unsqueeze(0).unsqueeze(3).repeat(batch_size, 1, 1, 3, 1).float().to(device)改成 grid_xy = grid_xy.unsqueeze(0).unsqueeze(3).repeat(batch_size, 1, 1, 每层真实的anchor个数, 1).float().to(device) 感觉就可以了,不知是否正确? @Peterisfar
这里3需要改过来,你可以调试一下看看
不止要改这里,因为除了网络生成参数,还要有对应的GT标签才能训练啊,所以还要在dataset那里改动,因为这个代码,在训练之前就把gt分配好了。
---原始邮件--- 发件人: "Henry"<notifications@github.com> 发送时间: 2019年12月26日(星期四) 下午4:18 收件人: "Peterisfar/YOLOV3"<YOLOV3@noreply.github.com>; 抄送: "yuanliangxie"<214510890@qq.com>;"Author"<author@noreply.github.com>; 主题: Re: [Peterisfar/YOLOV3] 关于voc.py中的逻辑错误 (#14)
我已经找到了,在yolo_head.py第39行: grid_xy = grid_xy.unsqueeze(0).unsqueeze(3).repeat(batch_size, 1, 1, 3, 1).float().to(device)改成 grid_xy = grid_xy.unsqueeze(0).unsqueeze(3).repeat(batch_size, 1, 1, 每层真实的anchor个数, 1).float().to(device) 就可以了
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.
当use_difficult_bbox=False时,其中在判断的时候有逻辑错误,生成的注解文件包含有难以分辨的标签。
if (not use_difficult_bbox) and (difficult == 1): # difficult 表示是否容易识别,0表示容易,1表示困难
continue
应该更改为if ( use_difficult_bbox) and (difficult == 1): # difficult 表示是否容易识别,0表示容易,1表示困难
continue