最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python基于ImageAI實(shí)現(xiàn)圖像識(shí)別詳解

 更新時(shí)間:2023年02月01日 14:46:42   作者:心隨而動(dòng)  
ImageAI是一個(gè)面向計(jì)算機(jī)視覺編程的Python庫,支持最先進(jìn)的機(jī)器學(xué)習(xí)算法。本文將利用ImageAI實(shí)現(xiàn)圖像識(shí)別功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

背景簡介

ImageAI是一個(gè)面向計(jì)算機(jī)視覺編程的Python庫,支持最先進(jìn)的機(jī)器學(xué)習(xí)算法。主要圖像預(yù)測,物體檢測,視頻對象檢測與跟蹤等多個(gè)應(yīng)用領(lǐng)域。利用ImageAI,開發(fā)人員可用很少的代碼構(gòu)建出具有包含深度學(xué)習(xí)和計(jì)算機(jī)視覺功能的應(yīng)用系統(tǒng)。

ImageAI目前支持在ImageNet數(shù)據(jù)集上對多種不同機(jī)器算法進(jìn)行圖像預(yù)測和訓(xùn)練,ImageNet數(shù)據(jù)集項(xiàng)目始于2006年,它是一項(xiàng)持續(xù)的研究工作,旨在為世界各地的研究人員提供易于訪問的圖像數(shù)據(jù)庫。 

圖像預(yù)測

算法引入

圖像預(yù)測(Image Prediction)是指利用由各種不同算法構(gòu)建而成的預(yù)測器對輸入圖像或視頻幀進(jìn)行分析解構(gòu),并返回其中所包含的物體對象名及其相應(yīng)的百分比概率(Percentage Probabilities)的過程。

ImageAI提供了4種不同算法模型進(jìn)行圖像預(yù)測,并在ImageNet數(shù)據(jù)集上進(jìn)行了訓(xùn)練。4種算法模型分別如下:

(1)由F.N.Iandola團(tuán)隊(duì)提出了SqueezeNet(預(yù)測速度最快,正確率中等)。

(2)由Microsoft公司提供的ResNet50(預(yù)測速度快,正確率較高)。

(3)由Google公司提供的InceptionV3(預(yù)測速度較慢,正確率高)。

(4)由Facebook公司提供的DenseNet121(預(yù)測速度最慢,正確率最高)。

ImageAI可對一幅圖像或者多幅圖像進(jìn)行預(yù)測。下面我們將分別用兩個(gè)簡單的示例來進(jìn)行解釋和演示。

單圖像預(yù)測

單圖像預(yù)測主要是用到ImageAI中imagePrediction類中的predictImage()方法,其主要過程如下:

(1)定義一個(gè)imagePrediction()的實(shí)例。

(2)通過setMoTypeAsResNet()設(shè)置模型類型以及通過setModePath()設(shè)置模型路徑。

(3) 調(diào)用loadModel()函數(shù)模型載入模型。

(4) 利用predictImage()函數(shù)進(jìn)行預(yù)測。該函數(shù)有兩個(gè)參數(shù),一個(gè)參數(shù)用于指定要進(jìn)行預(yù)測的文件,另一個(gè)參數(shù)result_count則用于設(shè)置我們想要預(yù)測結(jié)果的數(shù)量(該參數(shù)的值1~100可選)。函數(shù)將返回預(yù)測的對象名及其相應(yīng)的百分比概率。

在以下示例中,我們將預(yù)測對象模型類型設(shè)置為ResNet,當(dāng)然,我們也可以用其他的上幾篇的算法進(jìn)行圖像預(yù)測?;贗mageAI的單圖像預(yù)測的示例代碼:

from imageai.Prediction import ImagePrediction
import os
import time
#開始計(jì)時(shí)
start_time=time.time()
execution_path=os.getcwd()
#對ImagePrediction類進(jìn)行實(shí)例化
prediction=ImagePrediction()
#設(shè)置算法模型類型
prediction.setModelTypeAsResNet()
prediction.setModelPath(os.path.join(execution_path,'resent50_weights_tf_dim_ordering_tf_kernels.h5'))
prediction.loadModel()
predictions,probabilities=prediction.predictioImage(os.path.join(execution_path,'sample.jpg'),result_count=5)
end_time=time.time()
for eachPrediction,eachProbability in zip(predictions,probabilities):
    print(eachPrediction+":"+str(eachProbability))
print('Total time cost:',end_time-start_time)

多圖像檢測

對于多圖像檢測,我們可以通過多次調(diào)用predictImage()函數(shù)的方式來進(jìn)行。而更簡單的方法時(shí)一次性調(diào)用predicMultipleImages()。其主要工作流程為:

(1)定義一個(gè)ImagePrediction()的實(shí)例。

(2)通過setModelTypeAsResNet()設(shè)置模型類型以及通過setModelPath()設(shè)置模型路徑。

(3)調(diào)用loadModel()函數(shù)載入模型。

(4)創(chuàng)建一個(gè)數(shù)組并將所有要預(yù)測的圖像的路徑添加到數(shù)組。

(5)通過調(diào)用predictMultiple Images()函數(shù)解析包含圖像路徑的數(shù)組并執(zhí)行圖像預(yù)測,通過分析result_count_per_image(默認(rèn)值為2)的值來設(shè)定每個(gè)圖像需要預(yù)測多少種可能。

#多圖像預(yù)測
from image.Prediction import ImagePrediction
import os
execution_path=os.getcwd()
#初始化預(yù)測器
multiple_prediction=ImagePrediction()
multiple_prediction.setModelTypeAsResNet()
#設(shè)置模型文件路徑
multiple_prediction.setModelPath(os.path.join(execution_path,'resent50_weights_tf_ordering_tf_kernels.h5'))
#加載模型
multiple_prediction.loadModel()
all_images_array=[]
all_files=os.listdir(execution_path)
for each_file in all_files:
    if(each_file.endswith('.jpg') or each_file.endswith('.png')):
        all_images_array.append(each_file)
results_array=multiple_prediction.predictMultipleImages(all_images_array,result_count_per_image=3)
for each_result in results_array:
    predictions,percentage_probanlities=each_result['predictions'],each_result['percentage_probabilities']
    for index in range(len(predictions)):
        print(predictions[index]+':'+str(percentage_probanlities[index]))
print('-----------')

目標(biāo)檢測

ImageAI提供了非常方便和強(qiáng)大的方法來對圖像執(zhí)行對象檢測并從中提取每個(gè)識(shí)別出的對象。

圖像目標(biāo)檢測

基于ImageAI的圖像目標(biāo)檢測主要是用到了ObjectDetection類中的detectObjectFromImage()方法。

示例代碼:

#目標(biāo)檢測
from imageai.Detection import ObjectDetection
import os
import time
start_time=time.time()
#execution_path=os.getcwd()#獲取當(dāng)前目錄
detector=ObjectDetection() #實(shí)例化一個(gè)ObjectDetection類
detector.setModelTypeAsRetinaNet() #設(shè)置算法模型類型為RetinaNet
#etector.setModelPath()
detector.loadModel() #加載模型
#圖像目標(biāo)檢測,百分比概率閾值設(shè)置為30可檢測出更多的物體(默認(rèn)值為30)
detections=detector.detectObjectsFromImage(input_image="D:\Image\\four.jpg",output_image_path='D:\Image\\fourr.jpg',minimum_percentage_probability=30)
end_time=time.time()
for eachObject in detections:
    print(eachObject['name'],":",eachObject['percentage_probability'],":",eachObject['box_points'])
print('Total Time cost:',end_time-start_time)

視頻目標(biāo)檢測

視頻目標(biāo)檢測應(yīng)用范圍非常廣泛,包括動(dòng)態(tài)目標(biāo)跟蹤,自動(dòng)無人體步態(tài)識(shí)別等各種場景,由于視頻中包含大量的時(shí)間和空間冗余信息,對視頻中的目標(biāo)檢測是非常消耗硬件資源的,所以博主建議使用安裝了GPU硬件和CPU版的tensorflow深度學(xué)習(xí)框架的硬件設(shè)備來執(zhí)行相關(guān)任務(wù),而在CPU設(shè)備上進(jìn)行視頻目標(biāo)檢測會(huì)很慢。

視頻目標(biāo)檢測需要用到ImageAI中VideoObjectDetection類的detectObjectsFromVideo()方法。

示例代碼如下:

#視頻目標(biāo)檢測
from imageai.Detection import VideoObjectDetection
import os
import time
start_time=time.time()
detector=VideoObjectDetection() #初始化視頻檢測類
detector.setModelTypeAsRetinaNet()
#detector.setModelPath('D:\Image:\haha.mp4')
detector.loadModel() #加載模型
video_path=detector.detectObjectsFromVideo(input_file_path='D:\Image\haha.mp4',output_file_path='D:Image:\hahaha.mp4',frames_per_second=20,log_progress=True)
print(video_path)
end_time=time.time()
print('Total time cost:',end_time-start_time)

以上就是Python基于ImageAI實(shí)現(xiàn)圖像識(shí)別詳解的詳細(xì)內(nèi)容,更多關(guān)于Python ImageAI圖像識(shí)別的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實(shí)現(xiàn)滑雪小游戲

    Python實(shí)現(xiàn)滑雪小游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)滑雪小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vc6編寫python擴(kuò)展的方法分享

    vc6編寫python擴(kuò)展的方法分享

    有些C/C++的代碼要在Python中要用到,又不想轉(zhuǎn)成python,所以就寫成python的擴(kuò)展來調(diào)用,以下是我嘗試后,在VC6下編寫python擴(kuò)展的過程
    2014-01-01
  • Python sklearn分類決策樹方法詳解

    Python sklearn分類決策樹方法詳解

    決策樹(Decision Tree)是在已知各種情況發(fā)生概率的基礎(chǔ)上,通過構(gòu)成決策樹來求取凈現(xiàn)值的期望值大于等于零的概率,評價(jià)項(xiàng)目風(fēng)險(xiǎn),判斷其可行性的決策分析方法,是直觀運(yùn)用概率分析的一種圖解法
    2022-09-09
  • Python優(yōu)先隊(duì)列實(shí)現(xiàn)方法示例

    Python優(yōu)先隊(duì)列實(shí)現(xiàn)方法示例

    這篇文章主要介紹了Python優(yōu)先隊(duì)列實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python優(yōu)先隊(duì)列的具體定義與使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2017-09-09
  • Python 自由定制表格的實(shí)現(xiàn)示例

    Python 自由定制表格的實(shí)現(xiàn)示例

    這篇文章主要介紹了Python 自由定制表格的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python如何通過閉包實(shí)現(xiàn)計(jì)算器的功能

    python如何通過閉包實(shí)現(xiàn)計(jì)算器的功能

    這篇文章主要介紹了python如何通過閉包實(shí)現(xiàn)計(jì)算器的功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • PyTorch與PyTorch?Geometric的安裝過程

    PyTorch與PyTorch?Geometric的安裝過程

    這篇文章主要介紹了PyTorch與PyTorch?Geometric的安裝,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • 采用python實(shí)現(xiàn)簡單QQ單用戶機(jī)器人的方法

    采用python實(shí)現(xiàn)簡單QQ單用戶機(jī)器人的方法

    這篇文章主要介紹了采用python實(shí)現(xiàn)簡單QQ單用戶機(jī)器人的方法,需要的朋友可以參考下
    2014-07-07
  • 請不要重復(fù)犯我在學(xué)習(xí)Python和Linux系統(tǒng)上的錯(cuò)誤

    請不要重復(fù)犯我在學(xué)習(xí)Python和Linux系統(tǒng)上的錯(cuò)誤

    本人已經(jīng)在運(yùn)維行業(yè)工作了將近十年,我最早接觸Linux是在大二的樣子,那時(shí)候只追求易懂,所以就選擇了Ubuntu作為學(xué)習(xí)、使用的對象,它簡單、易用、好操作、界面絢麗,對于想接觸Linux的新手來說是非常不錯(cuò)的
    2016-12-12
  • python內(nèi)置函數(shù)delattr()與dict()舉例詳解

    python內(nèi)置函數(shù)delattr()與dict()舉例詳解

    這篇文章主要介紹了關(guān)于python內(nèi)置函數(shù)delattr()與dict()的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評論

洛隆县| 枞阳县| 甘孜| 成都市| 青铜峡市| 呼伦贝尔市| 呼图壁县| 武山县| 图片| 波密县| 南丹县| 祁连县| 荔波县| 兴宁市| 恩平市| 贡觉县| 邹平县| 东光县| 湄潭县| 正安县| 临沭县| 玛纳斯县| 金堂县| 繁峙县| 九龙县| 盱眙县| 顺平县| 安宁市| 东乌珠穆沁旗| 普兰县| 郎溪县| 锦屏县| 高平市| 栖霞市| 荔波县| 灵寿县| 九台市| 民权县| 达拉特旗| 邓州市| 云安县|