网上一篇五行代码实现图像识别的博文(先顶一下,但是坑很多):https://blog.csdn.net/yidunmarket/article/details/84946784
新手参照上一篇博文用imageai来实现图像识别的话一次性的成功率非常低,需要踩的坑非常多,本篇文章主要教大家如何搭建imageai的训练环境,基本可以一次性通过,至于五行代码实现图像识别就是噱头,当然文章最后还是用了文章的五行代码^_^!
工具介绍:
一、python3.7.6
1.下载地址:https://www.python.org/downloads/
2.下拉到最下面看到Files,图下图点击下载即可
3.安装python3.7.6,设置环境变量,如下图红色框内设置python的环境变量
二、安装imageai工具依赖包可参见官网,如下图
链接:https://imageai-cn.readthedocs.io/zh_CN/latest/ImageAI.html#
1.用pip工具安装依赖之前,国内的用户最好使用国内镜像
参考链接如下:https://blog.csdn.net/cumtwys/article/details/104204102
2.安装tensorflow,这个地方有个坑,官网也没有地方讲用tensorflow什么版本的,只是说1.4以后,结果装了2.0版本以后发现用不了,最后在github上看到了目前imageai还不支持tensorflow2,这里通过pip指定tensorflow版本是1.15.2
pip install tensorflow==1.15.2 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
如果你的测试电脑的显卡比较好,我的是GTX1070TI,则可以下载tensorflow-gpu版本,这样训练的速度至少提高好几倍(貌似都不止),后面需要将安装显卡驱动,需要下载cuda toolkit还有cunnsdk等,在下面有讲到。
pip install tensorflow-gpu==1.15.2 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
3.安装numpy
pip install numpy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
4.安装Scipy
pip install scipy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
5.安装opencv-python
pip install opencv-python -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
6.安装pillow(python下的图形库,用途很广泛)
pip install pillow -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
7.安装matplotlib
pip install matplotlib -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
8.安装h5py
pip install h5py -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
9.安装keras
pip install keras -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
10.最后安装imageai
github地址:https://github.com/OlafenwaMoses/ImageAI
点击release,如下图
使用pip3安装imageai,命令如下:
pip3 install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.1.0/imageai-2.1.0-py3-none-any.whl -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
三、安装tensorflow的依赖
1.如果参照文章开头的博文你会发现很多坑,根本无法正常运行五行代码,缺少很多dll库等,这里给个链接,可以参考文章进行安装:https://github.com/tensorflow/tensorflow/issues/36111
2.tensorflow官网的gpu相关说明链接:https://www.tensorflow.org/install/gpu
3.如果前两步不想看英文可以直接参照下图下载相关软件即可,红框内TensorRT可选的我没有安装:
4.更新驱动、安装cuda toolkit之后需要重启电脑(这个地方也是个坑,否则训练过程中老是死掉),切记!!!
5.传送门,已经下载好的cuda toolkit好几个版本:
链接:https://pan.baidu.com/s/1kDL7Xz2XS3Hy5xJHZ5dpkg
提取码:hs93
四、下载训练数据集
1.点击github链接内的release进行下载
链接:https://github.com/OlafenwaMoses/IdenProf
2.下载完解压后文件目录如下图:
五、上五行代码
1.在解压后的训练集目录内新建一个py文件,代码如下:
from imageai.Prediction.Custom import ModelTraining
model_trainer = ModelTraining()
model_trainer.setModelTypeAsResNet()
model_trainer.setDataDirectory("idenprof")
model_trainer.trainModel(num_objects=10, num_experiments=200, enhance_data=True, batch_size=32, show_network_summary=True)
2.在终端运行py文件,如下图:
正在训练了。。。
六、训练完成后,使用训练结果来进行测试
1.训练完成在models目录下:(model_ex-XXX_acc-YYY,XXX是训练批次,YYY是本批次的测试准确率)
2.从百度随便下载图片来进行测试,我下载了“医生”,如下图中红色框框框住的卡通医生,来试试准确率
3.上代码进行测试(准备一个空的python文件,将从百度下载的测试图片放到该文件的同级目录下,也可以随便放但是python需要能找到该文件),用编辑器把如下代码写入python文件内,注意里面涉及到的目录都是使用相对路径
第六行代码:使用models目录内准确率最高的h5文件
第七行代码:json文件为训练的职业类型,这个在第五大步中会自动创建
第九行代码:加载下载的图片,我下载的图片命名为“dt.jpg”
from imageai.Prediction.Custom import CustomImagePrediction
import os
execution_path = os.getcwd()
prediction = CustomImagePrediction()
prediction.setModelTypeAsResNet()
prediction.setModelPath("./idenprof/models/model_ex-148_acc-0.858871.h5")
prediction.setJsonPath("./idenprof/json/model_class.json")
prediction.loadModel(num_objects=10)
predictions, probabilities = prediction.predictImage("./dt.jpg", result_count=3)
for eachPrediction, eachProbability in zip(predictions, probabilities):
print(eachPrediction , " : " , eachProbability)
4.在终端运行python文件
python confirm.py
验证的结果如下:doctor为100%,准确率还是蛮高的O(∩_∩)O哈哈~!!!
七、如有疑问请指正!!!