利用ImageAI庫(kù)只需幾行python代碼實(shí)現(xiàn)目標(biāo)檢測(cè)-創(chuàng)新互聯(lián)

什么是目標(biāo)檢測(cè)

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專(zhuān)注于成都定制網(wǎng)站,高端網(wǎng)頁(yè)制作,對(duì)成都廣告制作等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專(zhuān)業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專(zhuān)業(yè)網(wǎng)站推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

目標(biāo)檢測(cè)關(guān)注圖像中特定的物體目標(biāo),需要同時(shí)解決解決定位(localization) + 識(shí)別(Recognition)。相比分類(lèi),檢測(cè)給出的是對(duì)圖片前景和背景的理解,我們需要從背景中分離出感興趣的目標(biāo),并確定這一目標(biāo)的描述(類(lèi)別和位置),因此檢測(cè)模型的輸出是一個(gè)列表,列表的每一項(xiàng)使用一個(gè)數(shù)組給出檢出目標(biāo)的類(lèi)別和位置(常用矩形檢測(cè)框的坐標(biāo)表示)。

通俗的說(shuō),Object Detection的目的是在目標(biāo)圖中將目標(biāo)用一個(gè)框框出來(lái),并且識(shí)別出這個(gè)框中的是啥,而且最好的話是能夠?qū)D片的所有物體都框出來(lái)。

目標(biāo)檢測(cè)算法

目前目標(biāo)檢測(cè)領(lǐng)域的深度學(xué)習(xí)方法主要分為兩類(lèi):兩階段(Two Stages)的目標(biāo)檢測(cè)算法;一階段(One Stage)目標(biāo)檢測(cè)算法。

Two Stages

首先由算法(algorithm)生成一系列作為樣本的候選框,再通過(guò)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行樣本(Sample)分類(lèi)。也稱(chēng)為基于候選區(qū)域(Region Proposal)的算法。常見(jiàn)的算法有R-CNN、Fast R-CNN、Faster R-CNN等等。

One Stage

不需要產(chǎn)生候選框,直接將目標(biāo)框定位的問(wèn)題轉(zhuǎn)化為回歸(Regression)問(wèn)題處理,也稱(chēng)為基于端到端(End-to-End)的算法。常見(jiàn)的算法有YOLO、SSD等等。

python實(shí)現(xiàn)

本文主要講述如何實(shí)現(xiàn)目標(biāo)檢測(cè),至于背后的原理不過(guò)多贅述,可以去看相關(guān)的論文。

ImageAI是一個(gè)簡(jiǎn)單易用的計(jì)算機(jī)視覺(jué)Python庫(kù),使得開(kāi)發(fā)者可以輕松的將最新的最先進(jìn)的人工智能功能整合進(jìn)他們的應(yīng)用。

ImageAI本著簡(jiǎn)潔的原則,支持最先進(jìn)的機(jī)器學(xué)習(xí)算法,用于圖像預(yù)測(cè),自定義圖像預(yù)測(cè),物體檢測(cè),視頻檢測(cè),視頻對(duì)象跟蹤和圖像預(yù)測(cè)訓(xùn)練。

依賴(lài)

•Python 3.5.1(及更高版本)
•pip3
•Tensorflow 1.4.0(及更高版本)
•Numpy 1.13.1(及更高版本)
•SciPy 0.19.1(及更高版本)
•OpenCV
•pillow
•Matplotlib
•h6py
•Keras 2.x

安裝

•命令行安裝


pip3 install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.1/imageai-2.0.1-py3-none-any.whl


•下載imageai-2.1.0-py3-none-any.whl 安裝文件并在命令行中指定安裝文件的路徑


pip3 install .\imageai-2.1.0-py3-none-any.whl

使用

Image支持的深度學(xué)習(xí)的算法有RetinaNet,YOLOv3,TinyYoLOv3。ImageAI已經(jīng)在COCO數(shù)據(jù)集上預(yù)先訓(xùn)練好了對(duì)應(yīng)的三個(gè)模型,根據(jù)需要可以選擇不同的模型。可以通過(guò)下面的鏈接進(jìn)行下載使用:


•Download RetinaNet Model - resnet50_coco_best_v2.0.1.h6
•Download YOLOv3 Model - yolo.h6
•Download TinyYOLOv3 Model - yolo-tiny.h6

以上模型可以檢測(cè)并識(shí)別以下80種不同的目標(biāo):


person,   bicycle,   car,   motorcycle,   airplane,
bus,   train,   truck,   boat,   traffic light,   fire hydrant, stop_sign,
parking meter,   bench,   bird,   cat,   dog,   horse,   sheep, cow,
elephant,   bear,   zebra,   giraffe,   backpack,   umbrella,
handbag,   tie,   suitcase, frisbee,   skis,   snowboard,
sports ball,   kite,   baseball bat,   baseball glove,   skateboard,
surfboard,   tennis racket,   bottle,   wine glass,   cup,   fork,   knife,
spoon,   bowl, banana,   apple,   sandwich,   orange,   broccoli,   carrot,
hot dog,   pizza,   donot,   cake,   chair,   couch,   potted plant,   bed,
dining table,   toilet,   tv,   laptop,   mouse,   remote,   keyboard,
cell phone,   microwave,   oven,   toaster,   sink,   refrigerator,
book,   clock,   vase,   scissors,   teddy bear,   hair dryer,
toothbrush

先來(lái)看看完整的代碼,使用YOLOv3算法對(duì)13張照片進(jìn)行目標(biāo)識(shí)別。


from imageai.Detection import ObjectDetection
import os

detector = ObjectDetection()
detector.setModelTypeAsYOLOv3()
detector.setModelPath("./model/yolo.h6")
detector.loadModel()

path = os.getcwd()
input_image_list = os.listdir(path+"\pic\input")
input_image_list = sorted(input_image_list, key = lambda i:len(i),reverse = False)
size = len(input_image_list)
for i in range(size):
 input_image_path = os.path.join(path+"\pic\input", input_image_list[i])
 output_image_path = os.path.join(path+"\pic\output", input_image_list[i])
 detections, extract_detected_objects = detector.detectObjectsFromImage(input_image=input_image_path,
             output_image_path=output_image_path,
             extract_detected_objects=True)
 print('------------------- %d -------------------' % int(i + 1))
 for eachObject in detections:
  print(eachObject["name"], " : ", eachObject["percentage_probability"], " : ", eachObject["box_points"])
 print('------------------- %d -------------------' % int(i + 1))

當(dāng)前題目:利用ImageAI庫(kù)只需幾行python代碼實(shí)現(xiàn)目標(biāo)檢測(cè)-創(chuàng)新互聯(lián)
URL分享:http://www.muchs.cn/article32/dgiipc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)定制網(wǎng)站、云服務(wù)器、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管