最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

使用Python中的ImageAI進(jìn)行對象檢測

2021-02-23 13:36 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=8578

?

介紹

對象檢測是一種屬于計算機(jī)視覺領(lǐng)域的技術(shù)。它處理識別和跟蹤圖像和視頻中存在的對象。物體檢測具有多種應(yīng)用,例如面部檢測,車輛檢測,行人計數(shù),自動駕駛汽車,安全系統(tǒng)等。

對象檢測的兩個主要目標(biāo)包括:

  • 識別圖像中存在的所有對象

  • 篩選出關(guān)注的對象

在本文中,您將看到如何在Python中執(zhí)行對象檢測。

用于對象檢測的深度學(xué)習(xí)

深度學(xué)習(xí)技術(shù)已被證明可解決各種物體檢測問題。

我們將了解ImageAI的確切含義以及如何使用它執(zhí)行對象檢測。

圖像AI

ImageAI是一個Python庫,旨在使開發(fā)人員能夠使用幾行簡單的代碼來構(gòu)建具有獨(dú)立的深度學(xué)習(xí)和計算機(jī)視覺功能的應(yīng)用程序和系統(tǒng)。ImageAI包含Python實現(xiàn)的幾乎所有最新的深度學(xué)習(xí)算法,例如TinyYOLOv3。

ImageAI利用了幾種脫機(jī)工作的API-它具有對象檢測,視頻檢測和對象跟蹤API,無需訪問互聯(lián)網(wǎng)即可調(diào)用它們。ImageAI利用了預(yù)先訓(xùn)練的模型,可以輕松地進(jìn)行定制。

設(shè)置環(huán)境

要使用ImageAI,您需要安裝一些依賴項。第一步是在計算機(jī)上安裝Python。

TensorFlow

$ pip install tensorflow

OpenCV

$ pip install opencv-python$ pip install keras$ pip install imageAI

現(xiàn)在下載TinyYOLOv3模型文件,該文件包含將用于對象檢測的分類模型。

使用ImageAI執(zhí)行對象檢測

現(xiàn)在,讓我們看看如何實際使用ImageAI庫。我將逐步解釋如何使用ImageAI構(gòu)建第一個對象檢測模型。

第1步

我們的第一個任務(wù)是創(chuàng)建必要的文件夾。對于本教程,我們需要以下文件夾:

  • 對象檢測:根文件夾

  • 模型:存儲預(yù)先訓(xùn)練的模型

  • 輸入:存儲要在其上執(zhí)行對象檢測的圖像文件

  • 輸出:存儲帶有檢測到的對象的圖像文件

創(chuàng)建文件夾后,Object detection文件夾應(yīng)包含以下子文件夾:

  1. ├── input

  2. ├── models

  3. └── output

  4. 3 directories, 0 files

第2步

打開用于編寫Python代碼的首選文本編輯器,然后創(chuàng)建一個新文件detector.py。

第三步

ObjectDetection從ImageAI庫導(dǎo)入類。

from imageai.Detection import ObjectDetection

第四步

現(xiàn)在,您已經(jīng)導(dǎo)入了imageAI庫和ObjectDetection該類,下一步是創(chuàng)建該類的實例ObjectDetection,如下所示:

detector = ObjectDetection()

第5步

讓我們從輸入圖像,輸出圖像和模型指定路徑。

  1. model_path = "./models/yolo-tiny.h5"

  2. input_path = "./input/test45.jpg"

  3. output_path = "./output/newimage.jpg"

第6步

我們現(xiàn)在可以從該類中調(diào)用各種函數(shù)。該類包含以下功能調(diào)用預(yù)先訓(xùn)練模式:setModelTypeAsRetinaNet(),setModelTypeAsYOLOv3(),和setModelTypeAsTinyYOLOv3()

就本教程而言,我將使用預(yù)訓(xùn)練的TinyYOLOv3模型,因此,我們將使用該setModelTypeAsTinyYOLOv3()函數(shù)加載模型。

detector.setModelTypeAsTinyYOLOv3()

步驟7

接下來,我們將調(diào)用函數(shù)setModelPath()。此函數(shù)接受一個字符串,其中包含預(yù)訓(xùn)練模型的路徑:

detector.setModelPath(model_path)

步驟8

此步驟loadModel()detector實例中調(diào)用函數(shù)。它使用setModelPath()類方法從上面指定的路徑加載模型。

detector.loadModel()

步驟9

要檢測圖像中的對象,我們需要detectObjectsFromImage使用detector在上一節(jié)中創(chuàng)建的對象來調(diào)用函數(shù)。

此函數(shù)需要兩個參數(shù):input_imageoutput_image_path。input_image是我們正在檢測的圖像所在的路徑,而output_image_path參數(shù)是將圖像與檢測到的對象一起存儲的路徑。此函數(shù)返回一個字典,其中包含圖像中檢測到的所有對象的名稱和百分比概率。

detection = detector.detectObjectsFromImage(input_image=input_path, output_image_path=output_path)

第10步

可以通過遍歷字典中的每個項目來訪問字典項目。

  1. for eachItem in detection:

  2. print(eachItem["name"] , " : ", eachItem["percentage_probability"])

?

在輸出中,您可以看到每個檢測到的對象的名稱及其百分比概率,如下所示:
輸出

  1. car ?: ?54.72719073295593

  2. car ?: ?58.94589424133301

  3. car ?: ?62.59384751319885

  4. car ?: ?74.07448291778564

  5. car ?: ?91.10507369041443

  6. car ?: ?97.26507663726807

  7. car ?: ?97.55765795707703

  8. person ?: ?53.6459743976593

  9. person ?: ?56.59831762313843

  10. person ?: ?72.28181958198547

原始圖片:

原始圖像“ test45”如下所示:

?

帶有對象檢測的圖像:

檢測到對象后,生成的圖像如下所示:

?

可以看到ImageAI在圖像中成功識別了汽車和人員。

結(jié)論

對象檢測是最常見的計算機(jī)視覺任務(wù)之一。本文通過示例說明如何使用ImageAI庫在Python中執(zhí)行對象檢測。

?

參考文獻(xiàn)

1.使用opencv在python中進(jìn)行圖像處理的簡介

2.matlab中的偏最小二乘回歸(plsr)和主成分回歸(pcr)

3.matlab中使用vmd變分模態(tài)分解

4.matlab使用hampel濾波去除異常值

5.matlab使用經(jīng)驗?zāi)J椒纸鈋md-對信號進(jìn)行去噪

6.matlab中的偏最小二乘回歸(plsr)和主成分回歸(pcr)

7.matlab使用copula仿真優(yōu)化市場風(fēng)險

8.r語言高級圖像處理

9.matlab實現(xiàn)mcmc的馬爾可夫切換arma-garch模型估計


使用Python中的ImageAI進(jìn)行對象檢測的評論 (共 條)

分享到微博請遵守國家法律
成都市| 乐安县| 内黄县| 金阳县| 平江县| 抚顺县| 鹰潭市| 贡山| 红桥区| 海门市| 新晃| 格尔木市| 门源| 称多县| 吉木乃县| 龙陵县| 漳平市| 油尖旺区| 高雄县| 西宁市| 三穗县| 木兰县| 延川县| 芜湖县| 布拖县| 皋兰县| 达拉特旗| 贵德县| 江津市| 乐东| 博白县| 无锡市| 文登市| 开鲁县| 若尔盖县| 塔城市| 长垣县| 桦南县| 德安县| 扶沟县| 武川县|