五行代码实现图像识别(深入版)
? ? 網(wǎng)上一篇五行代碼實現(xiàn)圖像識別的博文(先頂一下,但是坑很多):https://blog.csdn.net/yidunmarket/article/details/84946784
? ? 新手參照上一篇博文用imageai來實現(xiàn)圖像識別的話一次性的成功率非常低,需要踩的坑非常多,本篇文章主要教大家如何搭建imageai的訓練環(huán)境,基本可以一次性通過,至于五行代碼實現(xiàn)圖像識別就是噱頭,當然文章最后還是用了文章的五行代碼^_^!
工具介紹:
一、python3.7.6
? ? 1.下載地址:https://www.python.org/downloads/
? ? 2.下拉到最下面看到Files,圖下圖點擊下載即可
3.安裝python3.7.6,設(shè)置環(huán)境變量,如下圖紅色框內(nèi)設(shè)置python的環(huán)境變量
二、安裝imageai工具依賴包可參見官網(wǎng),如下圖
? ? 鏈接:https://imageai-cn.readthedocs.io/zh_CN/latest/ImageAI.html#
? ??
? ? 1.用pip工具安裝依賴之前,國內(nèi)的用戶最好使用國內(nèi)鏡像
? ? 參考鏈接如下:https://blog.csdn.net/cumtwys/article/details/104204102
? ? 2.安裝tensorflow,這個地方有個坑,官網(wǎng)也沒有地方講用tensorflow什么版本的,只是說1.4以后,結(jié)果裝了2.0版本以后發(fā)現(xiàn)用不了,最后在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版本,這樣訓練的速度至少提高好幾倍(貌似都不止),后面需要將安裝顯卡驅(qū)動,需要下載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.如果參照文章開頭的博文你會發(fā)現(xiàn)很多坑,根本無法正常運行五行代碼,缺少很多dll庫等,這里給個鏈接,可以參考文章進行安裝:https://github.com/tensorflow/tensorflow/issues/36111
? ? 2.tensorflow官網(wǎng)的gpu相關(guān)說明鏈接:https://www.tensorflow.org/install/gpu
? ? 3.如果前兩步不想看英文可以直接參照下圖下載相關(guān)軟件即可,紅框內(nèi)TensorRT可選的我沒有安裝:
? ? 4.更新驅(qū)動、安裝cuda toolkit之后需要重啟電腦(這個地方也是個坑,否則訓練過程中老是死掉),切記!!!
? ? 5.傳送門,已經(jīng)下載好的cuda toolkit好幾個版本:
? ? ? 鏈接:https://pan.baidu.com/s/1kDL7Xz2XS3Hy5xJHZ5dpkg?
? ? ? 提取碼:hs93
四、下載訓練數(shù)據(jù)集
? ? 1.點擊github鏈接內(nèi)的release進行下載
? ? 鏈接:https://github.com/OlafenwaMoses/IdenProf
? ? 2.下載完解壓后文件目錄如下圖:
五、上五行代碼
? ? 1.在解壓后的訓練集目錄內(nèi)新建一個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文件,如下圖:
正在訓練了。。。
六、訓練完成后,使用訓練結(jié)果來進行測試
? ? 1.訓練完成在models目錄下:(model_ex-XXX_acc-YYY,XXX是訓練批次,YYY是本批次的測試準確率)
? ? 2.從百度隨便下載圖片來進行測試,我下載了“醫(yī)生”,如下圖中紅色框框框住的卡通醫(yī)生,來試試準確率
? ? 3.上代碼進行測試(準備一個空的python文件,將從百度下載的測試圖片放到該文件的同級目錄下,也可以隨便放但是python需要能找到該文件),用編輯器把如下代碼寫入python文件內(nèi),注意里面涉及到的目錄都是使用相對路徑
? ? 第六行代碼:使用models目錄內(nèi)準確率最高的h5文件
? ? 第七行代碼:json文件為訓練的職業(yè)類型,這個在第五大步中會自動創(chuàng)建
? ? 第九行代碼:加載下載的圖片,我下載的圖片命名為“dt.jpg”
from imageai.Prediction.Custom import CustomImagePrediction import osexecution_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? ? 驗證的結(jié)果如下:doctor為100%,準確率還是蠻高的O(∩_∩)O哈哈~!!!
七、如有疑問請指正!!!
總結(jié)
以上是生活随笔為你收集整理的五行代码实现图像识别(深入版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Auto.js Pro安卓免ROOT引流
- 下一篇: iOS 苹果官方Demo