fantastic_levio
fantastic_levio
@Cumberbatch08 稍微改一下yolo_video的代码,或者可以新建一个yolo_img.py,然后把yolo_video在if __name__ == '__main__'之前的代码copy过去,然后自己写一个调用detect_img函数的脚本就行了。有需要的话留个邮箱,我可以把我改的脚本发给你。
@mayidu 首先Keras加载模型非常慢,单帧处理的速度不应该明显比tensorflow慢,相比基于C++的darknet当然要慢很多。yolo的实时性是有前提的,要看你用什么GPU以及用几块GPU。如果做工程性检测,那肯定需要用工程成本更低的实现,keras实现版本只能做算法试验用,试验通过后再到darkent上铺设。
@chenyangliu2018 这是一个很细微但不太关键的细节。yield一个batch_size长度的全零数组,可以让下层函数知道batch有多长,这样做可能是符合后面函数的接口形状。你猜测的意思大概是说,这个0代表要把loss降低到0,当作优化目标。我不是很同意,用了adam优化器,loss就默认要降低为0,不需要额外说明的。groud_truth就是y_true,没有哪个gt是为loss设置的。这个可以先放着,不会影响你对整个算法的理解的
@Cumberbatch08 yolo.py里面就有detect_video函数啊,你实例化YOLO类,然后调用detect_video就可以了。一个py文件就可以搞定。你自己试试,不行的话再说下,我把脚本发给你邮箱。
@404hasbeenfound yolo.py里面就有detect_video函数啊,你实例化YOLO类,然后调用detect_video就可以了。
@ymsamlx 这块脚本还真没写,训练函数的数据被data_generator_wrapper封装起来了,不太容易分离。如果对batch中每个图片进行Inference再总结准确率,又会导致训练速度很慢。有个建议是,准备一些测试数据,单独写个测试脚本,读取训练过程中保存的参数,以获取实时准确率。
@YYZ-rose 你要什么的脚本
@YYZ-rose 测试不起来?你也是想边训练边看测试结果吗? 我直接测试final weights的结果。自己准备了一定量的测试集,然后根据iou阈值判断是否准确,最后得出P&R。测试的时候只用把测试集inference一遍,我觉得不太难吧,你的问题在哪里呢
@Ostnie 我没有重新训练VOC。我在做一个工程项目,自己的训练集,检测特定的目标,用自己做的测试集测试。所以对于你的前两个问题,我的回答估计对你没什么帮助。对于测mAP,我是把测试集数据都inference一遍,把每张图预测结果和GT都用数组记录下来保存存成.npy文件。然后分析结果只需要分析这个npy文件就可以了,AP50,AP75,mAP等等,以及可视化结果,都可以通过这个.npy文件得到。不知道对你会不会有帮助。
@Ostnie 我做的项目里不需要mAP这种指标,我只总结了precision和recall rate,不过可以从结果中进一步分析出mAP。我想你可能需要mAP的脚本,这个coco应该提供了API,你可以去官网看看,根据mAP的公式自己写一个也不难。可以参考这个博客https://blog.csdn.net/u014734886/article/details/78831884。 我重新训练了模型,但是用自己的数据集,不过也会用原模型做一个预训练模型,原模型已经可以达到50%+的效果了,这样重训练会省时间一些。这里还算不上迁移哈哈哈