遇到的问题:
①安装tensorflow时,不知具体步骤
②运行代码时,发现tensorflow版本与代码不符合
解决过程:
①作者通过查询及实验,总结出较为便捷的安装方式:先安装Anaconda,然后通过Anaconda安装tensorflow
作者已将Anaconda上传百度网盘,有兴趣的可以自行下载:链接:https://pan.baidu.com/s/1WPjGi63SvY535uMUHZuhTA
提取码:al3d (由于文件较大,也可以在网上自行下载)
②在Anaconda中修改已安装的Anaconda版本(一般为当前最新版本)
如图点击红色箭头标记处
再点击如图点击红色箭头标记处
选择Not installed,在右侧搜索框中输入tensorflow,勾选后,进行下载。
点击上一步红色箭头标记处,点击进入installed,搜索tensorflow并点击,然后点击下图所示红色箭头处,选择tensorflow版本
本文作者第一次进行目标检测,选定目标为人(hunman)和鱼(fish)的识别,因为是新手,所以选定目标较为简单。从网上下载了图片之后,进行下一步。
在数据集中,选择的图片应该清晰,有极少数图片像素点少,不清晰的,需要剔除。因为像素点少的图片不利于模型训练或模型测试,所以用python代码选出部分图片文件。
遇到的问题:代码报错,没有找到相应文件夹 。报错代码:get_some_qualified_images(‘n01440764’, 100, ‘selected_images’)
解决方法:get_some_qualified_images(‘n01440764’, 100, ‘selected_images’)这句代码中第一个元素为获取原图片文件夹名称,第二个元素为筛选图片的数量,第三个元素为筛选后图片存放文件夹名称
在jupyter notebook中新建代码文件,运行后图片经过PIL库打开再保存,保持图片质量的情况下,能够缩小图片文件大小3倍左右。
使用打标签工具LabelImg。链接:https://pan.baidu.com/s/1-XemcsCgydZ0ixh1u0dslA 提取码:fy8k
把压缩文件放到目标文件中,选择解压到当前文件夹。
LabelImg程序在文件夹中。选择labelImg.py以python运行(pycharm等IDE中运行也可以)。
在打开的软件界面,点击Open Dir按钮,选中缩小图片文件夹,进行打标签
遇到的问题:不会使用代码打标签
解决方法:“W”为打标签快捷方式
xml转csv的意思是,将xml文件中的信息整合到csv文件中。本文作者将函数train_test_split的参数random_state的值设为1,这样每次划分的训练集和测试集总是相同。如果不设置此参数,则每次划分的训练集和测试集不同。
在目标文件夹中启动cmd,输入jupyter notebook,新建代码文件xml_to_csv.ipynb,输入相应代码并运行。
csv转tfrecord的意思是,将csv文件中的信息和图片数据整合到tfrecord文件中。
下载文件object_detection.zip
链接:https://pan.baidu.com/s/1JSpLmf7j-6ZG_wNBiBTaaw 提取码:tpna 。将其移动到目标文件夹,选择提取到"object_detection"
如下图所示
遇到的问题:在运行代码时没有找到相应文件,如object_detection
解决方法:在目标文件夹中打开cmd,即在路径中输入cmd后按Enter键运行。在cmd中输入以下代码并运行
python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr
运行结果会报错。
进入windows的环境变量编辑界面,新建一个系统变量,变量名为:PYTHONPATH;变量值为:目标文件路径。如下图
图中两处红色方框内容一致即可
在桌面的目标检测文件夹中新建代码文件csv_to_tfrecord.ipynb,上面一段代码运行完成后,目标文件夹中会产生一个文件夹training,其中有两个文件,如下图
在目标文件夹中的training文件夹中,创建文本文件my_label.pbtxt。
复制下面一段内容到文本文件my_label.pbtxt中。
item {
name : "fish"
id : 1
}
item {
name : "human"
id : 2
}
每一个item为一个标签,name为标签内容,id为标签序列。
保存后,training文件夹中有三个文件。
方法:修改原生配置文件
可以在object_detection文件夹中的samples/config路径下,找到原生配置文件ssdlite_mobilenet_v2_coco.config,如下图红色箭头标记处所示。
原生配置文件ssdlite_mobilenet_v2_coco.config先复制1份到桌面文件目标检测的文件夹training中。
原生配置文件中的需要修改的部分:
修改配置文件ssdlite_mobilenet_v2_coco.config并保存后,此时文件夹training中有4个文件。
遇到的问题:在按步骤完成后,cmd中运行时报错。
解决方法:次错误在于没有删除159、159这两行代码,导致冲突。同时希望读者在寻找目标文件时看清名称,避免出错。
解决方法(适用于windows):首先下载Microsoft C++ build 14.0
链接:https://pan.baidu.com/s/1INlWLq28MgFWvCiuy_b0zg 提取码:r759
读者也可自行下载(文件较小,大概只有3、4M)
打开安装文件visualcppbuildtools.exe,初始化安装程序,安装类型选择自定义,然后点击下一步,如下图红色箭头标记处所示
选择功能只勾选Windows 10 SDK 10.0.10240,然后点击下一步。点击安装按钮,则开始安装。完成安装后,关闭即可。
链接:https://pan.baidu.com/s/1Fdqj0NHKIYLd-qpPJzInew 提取码:m1lg
或者打开git页面,链接:https://github.com/philferriere/cocoapi
下载按钮的位置如下图所示,点击Download ZIP即可开始下载。如下图
对压缩文件cocoapi-master.zip选择解压到当前文件夹。进入文件夹cocoapi-master中的文件夹PythonAPI,在此文件夹下打开cmd,在cmd中运行命令:python setup.py build_ext install
遇到的问题:本文作者推荐如果要进行目标检测, 最少也需要配备版本为GTX 1060_显存6G的显卡,否则会出现显存不足。模型成功调用显卡后会开始训练,但是训练经过一段时间后会报错。
解决方法:修改工程文件夹object_detection中的代码文件model_lib.py
如下图所示,找到第418行,将category_index.values()修改为list(category_index.values())
修改代码文件model_lib.py完成后,则可以在cmd中重新输入命令开启模型训练。
作者第一次目标检测是基于《目标检测实践_tensorflow版SSD数据准备》,链接:https://www.jianshu.com/p/3d9436b4cb66 以及《目标检测实践_tensorflow版SSD训练自己的数据》
链接:https://www.jianshu.com/p/0e5f9df4686a 完成,中间自己遇到很多的问题解,都已解决,希望对大家有所帮助。第一次写博客,不足之处望谅解,谢谢。