Python中如何實現(xiàn)圖像識別,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、崇信ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的崇信網(wǎng)站制作公司
(如果您已經(jīng)安裝了Python 3.5.1或更高版本,請?zhí)^本節(jié))
https://www.python.org/downloads/
- Tensorflow
pip3 install --upgrade tensorflow
- Numpy
pip3 install numpy
- SciPy
pip3 install scipy
- OpenCV
pip3 install opencv-python
- Matplotlib
pip3 install matplotlib
- h6py
pip3 install h6py
- Keras
pip3 install keras
pip3 install https://github.com/OlafenwaMoses/ImageAI/raw/master/dist/imageai-1.0.2-py3-none-any.whl
https://github.com/fchollet/deep-learning-models/releases/download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h6
from imageai.Prediction import ImagePrediction import os execution_path = os.getcwd() prediction = ImagePrediction() prediction.setModelTypeAsResNet() prediction.setModelPath( execution_path + " esnet50_weights_tf_dim_ordering_tf_kernels.h6") prediction.loadModel() predictions, percentage_probabilities = prediction.predictImage("C:UsersMyUserDownloadssample.jpg", result_count=5) for index in range(len(predictions)): print(predictions[index] + " : " + percentage_probabilities[index])
sample.jpg
代碼結(jié)果:
sports_car : 90.61029553413391 car_wheel : 5.9294357895851135 racer : 0.9972884319722652 convertible : 0.8457873947918415 grille : 0.581052340567112
現(xiàn)在讓我們分解代碼,以便了解它是如何工作的。上面的代碼工作如下:
from imageai.Prediction import ImagePrediction import os
上面的代碼導(dǎo)入了ImageAI ImagePrediction類和python os類。
execution_path = os.getcwd()
上面的代碼創(chuàng)建一個變量,它保存對包含python文件(在本例中為FirstPrediction.py)和ResNet模型文件的路徑的引用。
prediction = ImagePrediction() prediction.setModelTypeAsResNet() prediction.setModelPath(execution_path +“ resnet50_weights_tf_dim_ordering_tf_kernels.h6”)
在上面的代碼中,我們在***行創(chuàng)建了一個ImagePrediction()類的實例,然后通過在第二行中調(diào)用.setModelTypeAsResNet(),將預(yù)測對象的模型類型設(shè)置為ResNet ,然后設(shè)置模型路徑將預(yù)測對象復(fù)制到模型文件(resnet50_weights_tf_dim_ordering_tf_kernels.h6)的路徑中,并將其復(fù)制到第三行的項目文件夾文件夾中。
predictions, percentage_probabilities = prediction.predictImage("C:UsersMyUserDownloadssample.jpg", result_count=5)
在上面的行中,我們定義了2個變量,它等于被調(diào)用來預(yù)測圖像的函數(shù),這個函數(shù)是 .predictImage()函數(shù),我們在其中解析了圖像的路徑,并且還指出了我們想要的預(yù)測結(jié)果的數(shù)量有(從1到1000的值)解析result_count = 5 。所述 .predictImage()函數(shù)將返回與所述***(2級陣列的對象的預(yù)測)是預(yù)測和所述第二(陣列percentage_probabilities)是相應(yīng)的百分比概率為每個預(yù)測的陣列。
for index in range(len(predictions)): print(predictions[index] + " : " + percentage_probabilities[index])
上述行獲取中的每個對象的預(yù)測陣列,并且還獲得從相應(yīng)百分比概率percentage_probabilities,***打印二者的結(jié)果到控制臺。
該 .predictImage()函數(shù)將在路徑中的圖像,也可以說明我們預(yù)計函數(shù)返回預(yù)測的數(shù)量(可選,默認(rèn)為5)。ImageNet-1000數(shù)據(jù)集中有1000個項目,ResNet模型在該數(shù)據(jù)集上進行了訓(xùn)練,這意味著 .predictImage函數(shù)將返回1000個可能的預(yù)測值,并按其概率排列。
借助ImageAI,您可以輕松方便地將圖像預(yù)測代碼集成到您在python中構(gòu)建的任何應(yīng)用程序,網(wǎng)站或系統(tǒng)中。ImageAI庫支持其他算法和模型類型,其中一些針對速度進行了優(yōu)化,另一些針對精度進行了優(yōu)化。借助ImageAI,我們希望支持計算機視覺的更多專業(yè)方面,包括但不限于特殊環(huán)境和特殊領(lǐng)域的圖像識別以及自定義圖像預(yù)測。
關(guān)于Python中如何實現(xiàn)圖像識別問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。