本文为PCB缺陷检测相关论文:https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/trit.2019.0019
进行环境配置遇到的一些问题,欢迎评论区交流
1、tensorflow不要用requirement里的2.5.1,一定要用1。因为不兼容,尝试过debug一下午都没法。
2、cudnn、gcc、tensorflow、cuda这四者尽量按照相关兼容性进行搭配!具体可参考我的另外一篇文章
3、不仅要修改作者Readme里的checkpoint,还要修改cfgs.py文件里的一些目录。
4、如果跑完实验发现没结果,很可能是没加载成功pcb_30000model.ckpt导致的,具体来说要么是checkpoint地址错,要么是cfgs里地址错
就我而言,我是cfgs文件里
具体来说,在build_whole_network.py里
checkpoint_path = tf.train.latest_checkpoint(os.path.join(cfgs.TRAINED_CKPT, cfgs.VERSION)
cfgs.TRAINED_CKPT = rootpath + /output/trained_weights
cfgs.VERSION = FPN_Res101_0117_OHEM#也就是说,cfgs.py里的VERSION定义决定了模型加载目录
因此需要在trained_weights里新建文件夹 FPN_Res101_0117_OHEM,然后把那些checkpoint、pcb_30000model.ckpt文件丢进去,然后记得修改checkpoint指向!
5、inference、train、test、eval是几个不同的过程
拿作者readme来说,inference是单纯推理过程,拿训练好的模型去检测输入的图片,输出是检测结果(只是图片),不需要输入annotation,也没有所谓的精度结果。
而eval和test有点类似,输入图片(如果像COCO数据集细分了测试集,需要把目录设置为测试集)和annotation,然后进行测试精度,输出的有检测结果(图片),也有各种精度指标。
因此不要拿inference的结果去评估精度,而是要拿数据集里待测试的测试集去eval