亚洲全黄无码一级在线看_国产剧情久久久性色_无码av一区二区三区无码_亚洲成a×人片在线观看

當(dāng)前位置: 首頁(yè) > 社會(huì)新聞 >

Serverless 實(shí)戰(zhàn):用 20 行 Python 代碼輕松搞定圖像分

時(shí)間:2020-04-27 16:50來(lái)源:網(wǎng)絡(luò)整理 瀏覽:
圖像分類(lèi)是人工智能領(lǐng)域的一個(gè)熱門(mén)話(huà)題,通俗來(lái)講,就是根據(jù)各自在圖像信息中反映的不同特征,把不同類(lèi)別的目標(biāo)區(qū)分開(kāi)。圖像分類(lèi)利用計(jì)算機(jī)對(duì)圖像進(jìn)行

圖像分類(lèi)是人工智能領(lǐng)域的一個(gè)熱門(mén)話(huà)題,通俗來(lái)講,就是根據(jù)各自在圖像信息中反映的不同特征,把不同類(lèi)別的目標(biāo)區(qū)分開(kāi)。圖像分類(lèi)利用計(jì)算機(jī)對(duì)圖像進(jìn)行定量分析,把圖像或圖像中的每個(gè)像元或區(qū)域劃歸為若干個(gè)類(lèi)別中的某一種,代替人的視覺(jué)判讀。

在實(shí)際生活中,我們也會(huì)遇到圖像分類(lèi)的應(yīng)用場(chǎng)景,例如我們常用的通過(guò)拍照花朵來(lái)識(shí)別花朵信息,通過(guò)人臉匹對(duì)人物信息等。通常,圖像識(shí)別或分類(lèi)工具都是在客戶(hù)端進(jìn)行數(shù)據(jù)采集,在服務(wù)端進(jìn)行運(yùn)算獲得結(jié)果。因此,一般都會(huì)有專(zhuān)門(mén)的 API 來(lái)實(shí)現(xiàn)圖像識(shí)別,云廠商也會(huì)有償提供類(lèi)似的能力:

華為云圖像標(biāo)簽Serverless 實(shí)戰(zhàn):用 20 行 Python 代碼輕松搞定圖像分類(lèi)和預(yù)測(cè)

騰訊云圖像分析Serverless 實(shí)戰(zhàn):用 20 行 Python 代碼輕松搞定圖像分類(lèi)和預(yù)測(cè)

本文將嘗試通過(guò)一個(gè)有趣的 Python 庫(kù),快速將圖像分類(lèi)的功能搭建在云函數(shù)上,并且和 API 網(wǎng)關(guān)結(jié)合,對(duì)外提供 API 功能,實(shí)現(xiàn)一個(gè) Serverless 架構(gòu)的 " 圖像分類(lèi) API"。

入門(mén) ImageAI

首先,我們需要一個(gè)依賴(lài)庫(kù):ImageAI。

什么是 ImageAI 呢?其官方文檔是這樣描述的:

ImageAI 是一個(gè) python 庫(kù),旨在使開(kāi)發(fā)人員能夠使用簡(jiǎn)單的幾行代碼構(gòu)建具有包含深度學(xué)習(xí)和計(jì)算機(jī)視覺(jué)功能的應(yīng)用程序和系統(tǒng)。ImageAI 本著簡(jiǎn)潔的原則,支持最先進(jìn)的機(jī)器學(xué)習(xí)算法,用于圖像預(yù)測(cè)、自定義圖像預(yù)測(cè)、物體檢測(cè)、視頻檢測(cè)、視頻對(duì)象跟蹤和圖像預(yù)測(cè)訓(xùn)練。ImageAI 目前支持使用在 ImageNet-1000 數(shù)據(jù)集上訓(xùn)練的 4 種不同機(jī)器學(xué)習(xí)算法進(jìn)行圖像預(yù)測(cè)和訓(xùn)練。ImageAI 還支持使用在 COCO 數(shù)據(jù)集上訓(xùn)練的 RetinaNet 進(jìn)行對(duì)象檢測(cè)、視頻檢測(cè)和對(duì)象跟蹤。 最終,ImageAI 將為計(jì)算機(jī)視覺(jué)提供更廣泛和更專(zhuān)業(yè)化的支持,包括但不限于特殊環(huán)境和特殊領(lǐng)域的圖像識(shí)別。

簡(jiǎn)單理解,就是 ImageAI 依賴(lài)庫(kù)可以幫助用戶(hù)完成基本的圖像識(shí)別和視頻的目標(biāo)提取。不過(guò),ImageAI 雖然提供一些數(shù)據(jù)集和模型,但我們也可以根據(jù)自身需要對(duì)其進(jìn)行額外的訓(xùn)練,進(jìn)行定制化拓展。

其官方代碼給出了這樣一個(gè)簡(jiǎn)單的 Demo:

from imageai.Prediction import ImagePrediction
import os
execution_path = os.getcwd()
prediction = ImagePrediction()
prediction.setModelTypeAsResNet()
prediction.setModelPath(os.path.join(execution_path, "resnet50_weights_tf_dim_ordering_tf_kernels.h5"))
prediction.loadModel()
predictions, probabilities = prediction.predictImage(os.path.join(execution_path, "1.jpg"), result_count=5 )
for eachPrediction, eachProbability in zip(predictions, probabilities):
print(eachPrediction + " : " + eachProbability)

我們可以在本地進(jìn)行初步運(yùn)行,指定圖片1.jpg為下圖時(shí):

Serverless 實(shí)戰(zhàn):用 20 行 Python 代碼輕松搞定圖像分類(lèi)和預(yù)測(cè)

可以得到結(jié)果:

convertible  :  52.459537982940674
sports_car : 37.61286735534668
pickup : 3.175118938088417
car_wheel : 1.8175017088651657
minivan : 1.7487028613686562
讓 ImageAI 上云(部署到 Serverless 架構(gòu)上)

通過(guò)上面的 Demo,我們可以考慮將這個(gè)模塊部署到云函數(shù):

首先,在本地創(chuàng)建一個(gè) Python 的項(xiàng)目:mkdir imageDemo新建文件:vim index.py根據(jù)云函數(shù)的一些特殊形式,我們對(duì) Demo 進(jìn)行部分改造將初始化的代碼放在外層;將預(yù)測(cè)部分當(dāng)做觸發(fā)所需要執(zhí)行的部分,放在入口方法中(此處是 main_handler);云函數(shù)與 API 網(wǎng)關(guān)結(jié)合對(duì)二進(jìn)制文件支持并不是十分的友善,所以此處通過(guò) base64 進(jìn)行圖片傳輸;入?yún)⒍閧"picture": 圖片的 base64},出參定為:{"prediction": 圖片分類(lèi)的結(jié)果}

實(shí)現(xiàn)的代碼如下:

閱讀更多

如果你想閱讀更多相關(guān)內(nèi)容,可以點(diǎn)擊文末了解更多查看

推薦內(nèi)容