新聞中心
ImageAI是一個(gè) python 庫(kù),旨在使開(kāi)發(fā)人員能夠使用簡(jiǎn)單的幾行代碼構(gòu)建具有包含深度學(xué)習(xí)和計(jì)算機(jī)視覺(jué)功能的應(yīng)用程序和系統(tǒng),下面將使用ImageAI為大家分享一下如何通過(guò)10行代碼完成圖像識(shí)別。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都做網(wǎng)站、青縣網(wǎng)絡(luò)推廣、微信小程序、青縣網(wǎng)絡(luò)營(yíng)銷、青縣企業(yè)策劃、青縣品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供青縣建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
ImageAI安裝工作
要使用ImageAI執(zhí)行對(duì)象檢測(cè),您需要做的就是:
在計(jì)算機(jī)系統(tǒng)上安裝Python 安裝ImageAI及其依賴項(xiàng) 下載對(duì)象檢測(cè)模型文件 運(yùn)行示例代碼(只有10行) 那么我們現(xiàn)在開(kāi)始:
從官方Python語(yǔ)言網(wǎng)站下載并安裝Python 3。 通過(guò)pip安裝:TensorFlow,OpenCV, Keras, ImageAI
pip3 install tensorflow
pip3 install opencv-python
pip3 install keras
pip3 install imageai --upgrade
3)通過(guò)此文章中的鏈接下載用于對(duì)象檢測(cè)的RetinaNet模型文件:
https://towardsdatascience.com/object-detection-with-10-lines-of-code-d6cb4d86f606
運(yùn)行程序
太好了。我們現(xiàn)在已經(jīng)安裝了依賴項(xiàng),可以編寫第一個(gè)對(duì)象檢測(cè)代碼了。創(chuàng)建一個(gè)Python文件并給它起一個(gè)名字(例如,F(xiàn)irstDetection.py),然后將下面的代碼寫進(jìn)去。將要檢測(cè)的RetinaNet模型文件圖像復(fù)制到包含python文件的文件夾中。
from imageai.Detection import ObjectDetection
import os
execution_path =os.getcwd()
detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5"))
detector.loadModel()
detections = detector.detectObjectsFromImage( input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"))
for eachObject in detections:
print(eachObject["name"] , " : " ,
eachObject["percentage_probability"] )
需要注意的是,如果你在運(yùn)行遇到這個(gè)錯(cuò)誤:
ValueError: Unable to import backend : theano python mymodel.py
那么你可以嘗試:
import osos.environ['KERAS_BACKEND'] = 'tensorflow'from
imageai.Detection import ObjectDetection
然后運(yùn)行代碼并等待結(jié)果打印在控制臺(tái)中。一旦結(jié)果打印到控制臺(tái)中,轉(zhuǎn)到您的FirstDetection.py所在的文件夾,您將發(fā)現(xiàn)保存了一個(gè)新圖像??纯聪旅娴膬蓚€(gè)圖像樣本和檢測(cè)后保存的新圖像。
檢測(cè)前: 如何用10行代碼完成目標(biāo)檢測(cè) 檢測(cè)后: 如何用10行代碼完成目標(biāo)檢測(cè) 數(shù)據(jù)結(jié)果
我們可以看到程序會(huì)打印輸出一些各個(gè)物體的概率數(shù)據(jù):
person : 55.8402955532074
person : 53.21805477142334
person : 69.25139427185059
person : 76.41745209693909
bicycle : 80.30363917350769
person : 83.58567953109741
person : 89.06581997871399
truck : 63.10953497886658
person : 69.82483863830566
person : 77.11606621742249
bus : 98.00949096679688
truck : 84.02870297431946
car : 71.98476791381836
可以看出來(lái)程序可以對(duì)圖片中的以下目標(biāo)進(jìn)行檢測(cè):
人,自行車,卡車,汽車,公交車。
大家可以直接將自己希望檢測(cè)的照片放到程序里面運(yùn)行看看效果。
原理解釋
現(xiàn)在讓我們解釋一下10行代碼是如何工作的。
from imageai.Detection import ObjectDetectionimport osexecution_path
= os.getcwd()
在上面的3行代碼中,我們?cè)诘谝恍袑?dǎo)入了ImageAI對(duì)象檢測(cè)類,在第二行導(dǎo)入了python os類,并定義了一個(gè)變量來(lái)保存python文件、RetinaNet模型文件和圖像所在的文件夾的路徑。
detector = ObjectDetection()detector.setModelTypeAsRetinaNet()detector.setModelP
ath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5"))detector.loadModel()detections =
detector.detectObjectsFromImage(input_image=os.path.join(execution_pa
th , "image.jpg"), output_image_path=os.path.join(execution_path ,
"imagenew.jpg"))
在上面的代碼中,我們定義對(duì)象檢測(cè)類在第一線,將模型類型設(shè)置為RetinaNet在第二行,設(shè)置模型路徑的路徑在第三行RetinaNet模型,該模型加載到對(duì)象檢測(cè)類在第四行,然后我們稱為檢測(cè)函數(shù),解析輸入圖像的路徑和輸出圖像路徑在第五行。
for eachObject in detections: print(eachObject["name"] , " : "
, eachObject["percentage_probability"] )
在上面的代碼中,我們?cè)诘谝恍械薲etector.detectObjectsFromImage函數(shù)返回的所有結(jié)果,然后在第二行打印出圖像中檢測(cè)到的每個(gè)對(duì)象的模型名稱和百分比概率。
網(wǎng)頁(yè)標(biāo)題:如何通過(guò)10行代碼完成圖像識(shí)別
網(wǎng)站地址:http://www.dlmjj.cn/article/dpiieog.html


咨詢
建站咨詢
