windows10 keras下的yolov3实现之报错处理方法

Yolov3是目前是目标检测中检测速度最快的算法之一,前作v1和v2版本版本虽然检测速度快,但是对小物体的识别不擅长,精度方面不及RCNN系列,而v3得横空出世,改进了很多问题,在精度和速度方面得到了很好的统一。

关于yolov3可以参考以下博文

yolo系列之yolo v3【深度解析】

本文参考以下博文

windows10+keras下的yolov3的快速使用及自己数据集的训练,实现了windows10+keras下的yolov3的快速使用及自己数据集的训练,具体内容大家可以直接到原文查看,这里记录一些我跟随作者脚步踩到的坑和一些错误处理方法

 

1、环境配置

环境配置最需要的注意的就是就是版本,一开始我全部用最新的,比如tensorflow2.0,keras2.2.4,发现出了一系列问题,所以后来我就把tensorflow版本设为1.14,keras版本设为2.1.5,其他的如PIL、numpy的安装就大家自己查漏补缺了,使用pip install即可,由于我使用setting的project interpreter除了点问题,我一般都是直接在pycharm的terminal中直接写指令下载的。

如果版本没装对,比如使用tensorflow2.0的话,可能会报错module 'tensorflow' has no attribute 'get_default_graph'、`get_session` is not available when using TensorFlow 2.0,反正没有模块什么的错误一般是版本问题。

其次用gpu运行的时候可能会遇到与cuda相关的错误,一般情况下直接查看NVIDIA控制面板,点击系统信息,点击组件,查看以下内容:

然后下载与之对应的CUDA Toolkit,我之前下的是10.1,后来发现版本有点高,换成了10.0。然后下载cuda 10.0对应的cuDNN,下载这个需要先注册一个帐号,填一些乱七八糟的信息,总之下载对应版本就行。

 

2、运行预测图像程序无输出

这一步是作者写错了,yolo.py运行并没有结果,需要运行的是yolo_video.py,直接右击运行会报错OSError: Couldn't open webcam or video,我寻思着应该是需要添加导入图片的路径,否则他就回到系统调用摄像头,所以正确的方法是,在pycharm控制台输入python yolo_video.py --image指令,即可成功运行。记得放一张测试图片到项目目录中,然后直接输入文件名即可。

3、LabelImg安装配置

关于生成Annotation下的文件,安装工具labelImg,原文是从github上下载的文件运行,其实有对应的exe版本,大家可以自行下载。我们说一下安装这个标注工具出现的问题。

还是那句话,版本要对应。安装这个软件需要以下工具包:pyqt5,ptqt5-sip, lxml,这边建议如果有问题,版本修改为pyqt5为5.13,ptqt5-sip为12.7.0,lxml为4.4.1,安装的时候pip install pyqt==5.13即可。这样可以解决ImportError: DLL load failed: 找不到指定的模块问题解决的错误。

Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问错误只需要更新指令中加上--user即可

到LabelImg目录中去使用pyrcc5命令的时候,可能会报错ModuleNotFoundError: No module named 'libs.resources'解决方案:将LabelImg-master中的resources.py复制到lib文件中,然后使用python labelImg.py打开改程序。

关于该标注程序LabelImg,是一个导入图片之后,我们人工圈出图中目标类别,并保存的一个东东,开头提到的文章作者也是自己建立图片集进行测试,正常情况下会用分类好的图片和模型,这里不提。

4、训练错误

开始train的时候,报错FileNotFoundError: [Errno 2] No such file or directory: 'E:\\zj_yolov3\\keras-yolo3-master/VOCdevkit/VOC2007/JPEGImages/00014.jpg,我一开始也不知道为啥,路径没问题,文件名好像,好吧,我把工程目录里的JPEG写成了JEPG,如果找不到真的是路径的问题,大家自查。在使用Keras-YOLO v3训练自己的数据集时出现了module ‘keras.backend’ has no attribute 'control_flow_ops’错误,请按照上面修改keras版本即可解决。

 

报错Resource exhausted: OOM when allocating tensor with shape[10,26,26,256] and type float on /job:localhost/replica:0/task:0/device:CPU:0 by allocator cpu,资源用完了,主要是楼主用的cpu跑的例程,可以加入os.environ['CUDA_VISIBLE_DEVICES']='2',在网上得知,出现这种错误的原因可能是显存空间不够,这有可能是使用的batch_size过大或者显卡被其他服务占用引起的。也有说可以修改cfg文件中的subdivisions,为1的时候是全部放进去训练,为2的时候是分一半,最大可以设置为batch-size。楼主设置为10,然后进行训练成功的到了h5文件,然后就是按照上面的步骤实行命令即可。

不过最后得到的自己的模型误差大的离谱,可能和上面的设置有关系,不过跑通了,可以说是还不错了。

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值