假定我們正在運行某個應(yīng)用程序,此應(yīng)用程序需要用戶在應(yīng)用程序中提交大量圖片文件,那么對于系統(tǒng)管理員來說手動審核這些圖片是很消耗時間的,并且對于圖片的審核也許并不是即時的。為了解決這一問題,這篇文章將向大家演示如何使用Azure Function和Cognitive Services來對上傳到應(yīng)用程序的圖片進行自動化審核。
再正式開始今天的實驗之前我們先帶大家了解一下本次實驗所有到的一些Azure功能:
l Azure Function:Azure Functions是一種無服務(wù)器計算服務(wù),使您可以按需運行代碼,而無需顯式配置或管理基礎(chǔ)結(jié)構(gòu)。使用Azure Functions運行腳本或代碼片段以響應(yīng)各種事件
l Cognitive Services:Azure Cognitive Services是API,SDK和服務(wù),可幫助開發(fā)人員構(gòu)建智能應(yīng)用程序,而無需直接的AI或數(shù)據(jù)科學(xué)技能或知識。Azure認知服務(wù)擴展了微軟不斷發(fā)展的機器學(xué)習(xí)API產(chǎn)品組合,使開發(fā)人員能夠輕松添加認知功能 - 例如情感和視頻檢測; 面部,語言和視覺識別; 和語言和語言理解 - 進入他們的應(yīng)用程序
l Content Moderator:Azure Content Moderator API是一種認知服務(wù),可檢查文本,圖像和視頻內(nèi)容,查找可能具有***性,風(fēng)險或其他不良內(nèi)容的材料。找到此類材料后,該服務(wù)會對內(nèi)容應(yīng)用適當?shù)臉撕灒擞洠?。然后,您的?yīng)用可以處理已標記的內(nèi)容,以符合法規(guī)或維護用戶的預(yù)期環(huán)境。
l Azure Blob Storage:Azure Blob存儲是Microsoft針對云的對象存儲解決方案。Blob存儲優(yōu)化用于存儲大量非結(jié)構(gòu)化數(shù)據(jù)。非結(jié)構(gòu)化數(shù)據(jù)是不遵循特定數(shù)據(jù)模型或定義的數(shù)據(jù),例如文本或二進制數(shù)據(jù)。
下面是我們今天實驗的基本拓撲:
創(chuàng)建Content Moderator
點擊“新建”—“Content Moderator”—“創(chuàng)建”:
輸入相關(guān)信息,點擊創(chuàng)建:
創(chuàng)建完成,如下圖所示,我們點擊“Show access keys并將此值記錄下來”:
創(chuàng)建Function App和Storage
創(chuàng)建Function App
點擊“新建”—“計算”—“Function App”:
輸入如下參數(shù),點擊創(chuàng)建:
創(chuàng)建成功,如下圖所示:
點擊“新建Function”:
在此選擇“自定義Function”:
選擇“Blob trigger”—“C#”:
修改名稱和路徑,點擊創(chuàng)建:
創(chuàng)建成功,如下圖所示:
點擊“集成”—“+新建輸出”:
選擇“Azure Blob存儲”:
將路徑修改為“Container1/{name}”,點擊保存:
配置Storage
創(chuàng)建container1和container2,如下圖所示:
配置Function + Cognitive Services實現(xiàn)圖片自動審核:
打開我們之前創(chuàng)建的Function,點擊“ImageAnalysis”:
將之前創(chuàng)建Content Moderator時所保存的Key替換到如下位置:
點擊保存:
測試功能
測試“無效“圖片:
上傳“無效“圖片到Container1,如下圖所示:
圖片上傳完成,我們可以看到如下Log:
上傳“有效“圖片
上傳“有效“圖片到Container1:
上傳成功可以看到如下Log:
同時我們的圖片會被添加水印并存儲再Container2:
添加水印的圖片如下圖所示: