onmywei
onmywei
yolov3-spp该怎么实现呢,如果直接用yolov3-spp.cfg和yolov3-spp.weights解出来的yolov3-spp.h5的网络结构能否用train_bottleneck.py来直接训练呢?如果训练好一个yolov3-spp-trained.h5,如果要进行detection的话是不是要修改yolo.py的代码啊?
@leviome 我的呢我的呢?
Your message doesn't show any errors, you should post a detailed error message
在通过evaluate()进行评估的时候,根据output创建coco_dt的时候,没有对结果进行NMS,因此会将所有结果跟coco_gt进行评估。导致COCOeval在进行evaluate的时候产生大量运算。举个例子,如果输入input的尺寸大小为1×3×608×608,输出outputs中boxes的大小为1×22743×1×4,一张图片要22743次计算,其中大部分box的置信度要低于阈值的,可能只有一两个box是我们实际想要的。因此,如果你设置的input尺寸偏大,并且你的验证集数量较多的时候,会进行长时间的运算。 只是个人理解和推测,有什么不对的可以指正。
> 非常感谢你的回复,另外我用很小的数据量测试时(例如,至少200张),opencv会报错,数据量增加后(大于600张)就没有问题 > `cv2.error: OpenCV(4.4.0) /tmp/pip-req-build-nzyrw1vf/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor' ` > 这个算法对训练集和测试集有最小数据量要求吗? 你的这个错误看起来可能是图片或者路径的问题,opencv的imread如果路径错误是不会报错的只会返回一个None,建议使用dataloader加载一下测试集,检查是否有空数据。
> 在train.py的418行模型加载的权重始终是cfg.pretrained,而不是最新训练的结果,此处代码是否有问题呢? > `eval_model = Yolov4(cfg.pretrained, n_classes=cfg.classes, inference=True)` > 例如mAP始终为0的问题。 这个加载的只是模型结构,下边的eval_model.load_state_dict(model.state_dict())是将正在训练中的model的参数变量加载进来,所以这段代码没问题。至于AP为0的问题,猜测可能也是因为NMS的问题,但是没有验证只是个猜测。