Open yangfei963158659 opened 4 years ago
我感觉目标检测的负样本应该不是没有目标的图片的概念吧
我有一半的数据是没有目标的。voc_annotation.py这个脚本把没有目标的样本全部过滤掉了,这种情况怎么处理?
我训练人车狗的模型,有一般的训练数据是没有人车狗的。我用yolov3训练,效果还行,现在想改用yolov4来训练,我调用你的voc_annotation.py脚本之后,发现没有目标的数据全部被过滤掉了
……目标检测的负样本不是这样来定义的吧 代码里面不有个find object=None吗,这段代码的意思很好看懂的吧
就是这行代码把所有没有目标的训练样本都过滤掉了。。你训练yolov4,难道没有加入不包括目标的训练样本吗?
……目标检测的负样本不是这样来定义的吧,你真的不看这句话吗……
可以加,但是没有必要……
是吗?我之前看很多博客,在yolov3中加不包含目标的训练样本,会使模型更加鲁棒。
是的吧,加一些背景进去呗……我还是说的是目标检测里面通常只会对框划分正负样本,而非图片 你想加也行
嗯,谢谢你
还有就是,坐标值为啥不用相对值,而选择用绝对值
我想在海思上部署yolov4。我发现yolov4使用了mesh激活函数,这个算子在海思上不支持,我想用relu替换,不知道对最后的map值有多大影响
1、因为习惯,又没差…… 2、需要重新训练
是的吧,加一些背景进去呗……我还是说的是目标检测里面通常只会对框划分正负样本,而非图片 你想加也行
大错特错,如果你负样本取景时并不包含正样本,你怎么弄?难道要把正样本抠下来贴到负样本图里?你想想这有多麻烦? 正确的就是LZ所说,负样本对应空标签,一起放进去训练!darknetAB是支持这么做的
1、这个代码支持空标签训练 2、我对目标检测的负样本理解来自于Focal Loss,即先验框的正负样本,并不来自于分类网络或者其它的网络 3、可以空标签训练,对于误检测有一定的提升效果,已测试
是的吧,加一些背景进去呗……我还是说的是目标检测里面通常只会对框划分正负样本,而非图片 你想加也行
大错特错,如果你负样本取景时并不包含正样本,你怎么弄?难道要把正样本抠下来贴到负样本图里?你想想这有多麻烦? 正确的就是LZ所说,负样本对应空标签,一起放进去训练!darknetAB是支持这么做的
顺便说一句,voc_annotation.py早就改了,不会过滤你认为的负样本(并非说你错,只是我理解的和你不一样)
Emm,你下的是最新的代码吗,我刚试了,如果故意将voc_annotation.py里面的classes设置错误,生成的2007_train.txt会有图片但没有目标信息。就像这样子。我不太理解为啥要把正样本抠出来的一个目标图,粘贴到负样本图上…不过如果你有这个编程能力的话,我觉得你voc_annotation.py的代码肯定也可以看懂,读取到任何一行都会写入txt。还是你的意思是没有空的xml,只加图片为什么不可以? D:\Study\Collection\Object_detection\Yolov4_collection\yolov4-pytorch-master/VOCdevkit/VOC2007/JPEGImages/000001.jpg D:\Study\Collection\Object_detection\Yolov4_collection\yolov4-pytorch-master/VOCdevkit/VOC2007/JPEGImages/000002.jpg D:\Study\Collection\Object_detection\Yolov4_collection\yolov4-pytorch-master/VOCdevkit/VOC2007/JPEGImages/000003.jpg
你传图我也看不见,我的网络不行,看不到github上的图……,在寝室甚至没有网,用手机流量半天登不上hub
这啥玩意这是,你是不是搞错库了,这个应该不是我上传的代码……🙄
两个方式 1、生成没有object的xml 2、生成有object的xml,但是这个object的类可以乱标,反正voc_annotation读取到不存在的类的时候会直接跳过(只是跳过该类)但是图片仍然会存在2007_train.txt文件里面去训练。我的代码是这样
也不一定所有的代码都支持无目标(我的faster rcnn的库和pytorch ssd的库就必须跳过……不然会报错),但是至少我现在上传的这个是支持的
我的这样应该可以
这啥玩意这是,你是不是搞错库了,这个应该不是我上传的代码……🙄
这是其他的训练项目,无意中看到你这里有讲添加空背景图的问题,我确定darknet确实可以这添加空背景,但是py系列的框架,比如tf,pytorch,我不确定,请教了
请问darknet 添加空背景,需要生成对应的空标签吗
是的,需要添加标签的
这啥玩意这是,你是不是搞错库了,这个应该不是我上传的代码……🙄
这是其他的训练项目,无意中看到你这里有讲添加空背景图的问题,我确定darknet确实可以这添加空背景,但是py系列的框架,比如tf,pytorch,我不确定,请教了
请问darknet 添加空背景,需要生成对应的空标签吗
当然要,darknet是根据标签来读取同路径下的样本图的
那空标签怎么生成呢,坐标全部写0吗还是说什么都不写
用labelimg生成无目标的xml
先标注再删除目标就可以了
是的吧,加一些背景进去呗……我还是说的是目标检测里面通常只会对框划分正负样本,而非图片 你想加也行
大错特错,如果你负样本取景时并不包含正样本,你怎么弄?难道要把正样本抠下来贴到负样本图里?你想想这有多麻烦? 正确的就是LZ所说,负样本对应空标签,一起放进去训练!darknetAB是支持这么做的
我也看了这个代码,没有目标的原图应该是不会训练的,直接过滤掉了,而且即使有编码loss为0不会进行反向传播梯度更新的
是的吧,加一些背景进去呗……我还是说的是目标检测里面通常只会对框划分正负样本,而非图片 你想加也行
大错特错,如果你负样本取景时并不包含正样本,你怎么弄?难道要把正样本抠下来贴到负样本图里?你想想这有多麻烦? 正确的就是LZ所说,负样本对应空标签,一起放进去训练!darknetAB是支持这么做的
我目前做的也是将正样本扣出来加入没有目标的图片去训练
是的吧,加一些背景进去呗……我还是说的是目标检测里面通常只会对框划分正负样本,而非图片 你想加也行
大错特错,如果你负样本取景时并不包含正样本,你怎么弄?难道要把正样本抠下来贴到负样本图里?你想想这有多麻烦? 正确的就是LZ所说,负样本对应空标签,一起放进去训练!darknetAB是支持这么做的
1、这个代码支持空标签训练 2、我对目标检测的负样本理解来自于Focal Loss,即先验框的正负样本,并不来自于分类网络或者其它的网络 3、可以空标签训练,对于误检测有一定的提升效果,已测试
他们提问的负样本就是没有目标的原图,而你说的负样本是anchor和gt最大iou之外的,不是一个东西
是的吧,加一些背景进去呗……我还是说的是目标检测里面通常只会对框划分正负样本,而非图片 你想加也行
大错特错,如果你负样本取景时并不包含正样本,你怎么弄?难道要把正样本抠下来贴到负样本图里?你想想这有多麻烦? 正确的就是LZ所说,负样本对应空标签,一起放进去训练!darknetAB是支持这么做的
我也看了这个代码,没有目标的原图应该是不会训练的,直接过滤掉了,而且即使有编码loss为0不会进行反向传播梯度更新的
会训练的,也会反向梯度
是的吧,加一些背景进去呗……我还是说的是目标检测里面通常只会对框划分正负样本,而非图片 你想加也行
大错特错,如果你负样本取景时并不包含正样本,你怎么弄?难道要把正样本抠下来贴到负样本图里?你想想这有多麻烦? 正确的就是LZ所说,负样本对应空标签,一起放进去训练!darknetAB是支持这么做的
1、这个代码支持空标签训练 2、我对目标检测的负样本理解来自于Focal Loss,即先验框的正负样本,并不来自于分类网络或者其它的网络 3、可以空标签训练,对于误检测有一定的提升效果,已测试
他们提问的负样本就是没有目标的原图,而你说的负样本是anchor和gt最大iou之外的,不是一个东西
会将所有的先验框当做背景训练
请问按照前面朋友的说法:对于没有待检测目标只有背景的图片,生成无object标签的xml文件(如下),是可以将这部分数据加入训练正常更新参数的对吗?
前面朋友贴出来的xml:
<annotation>
<folder>VOC2007</folder>
<filename>000003.jpg</filename>
<size>
<width>640</width>
<height>360</height>
<depth>3</depth>
</size>
</annotation>
这时运行voc_annotation.py后对于该部分数据只会生成一行路径,后续训练过程中在load data阶段对于该部分数据能正常load加入训练吗?
voc_annotation.py这个脚本把没有目标的负样本全部过滤掉了。请问你这个训练代码能不能加负样本进行训练