人工智能在最近兩年一直是很火的話題,我們也越來越多的在實際生活場景中能感受到 AI 所帶來的便利,比如:自動售貨機購物已經可以使用支付寶人臉支付;進行一些與财務相關的 APP 注冊的時候 APP 已經可以自動進行活體人臉檢測;小區的物業、門禁系統支援身份證/駕駛證/車牌号的自動身份識别等等。這些應用所用到的核心 AI 基礎能力是一樣的,如人臉人體檢測、卡證識别等。目前阿裡雲視覺智能開放平台以 API 的方式向開發者提供了 100 多項 AI 能力,作為産品以及應用的開發者,我們可以越來越簡單的使用這些 AI 能力,更加聚焦于業務。
在實際的産品或應用中,這些圖檔識别的 API 往往是作為一個處理流程的某個步驟。比如:
在使用者 APP 注冊的過程中,
上傳身份證照片->身份證照片識别,提取關鍵資訊->記錄關鍵資訊,進行業務處理->傳回注冊結果
就是一個典型的圖檔處理流程。這類場景使用 Serverless 工作流來進行處理是十分合适的。
為适應使用者的需求,Serverless 工作流對阿裡雲視覺智能開放平台提供的 AI 能力進行了內建(已支援的 API 能力詳見
清單),豐富了使用者的體驗,降低了使用者在工作流中使用 AI 能力的成本。在內建視覺智能平台之前,使用者需要手動編寫 API 調用的處理邏輯,并處理 API 調用的各種異常,現在可以直接将視覺智能 API 調用作為流程中的一個步驟進行處理,并将結果資料傳遞到後續的流程中。這種使用方式将極大簡化使用者的處理邏輯,降低開發成本。
下面我們将以上述 APP 注冊場景作為示例,詳細解釋如何在 Serverless 工作流中編排視覺智能 API。
在流程中內建身份證識别能力
在上述 APP 注冊場景中,身份識别(如使用者身份認證、卡證資訊錄入、身份資訊采集等)可以抽象為一個獨立的流程,為不同的 APP 複用。在這個流程中,我們使用視覺智能開放平台所提供的身份證識别
RecognizeIdentityCard能力進行圖檔識别。整個流程定義如下:
version: v1beta1
type: flow
steps:
- type: task
name: APIRecognizeIdentityCard
action: ocr:RecognizeIdentityCard
inputMappings:
- target: image
source: $input.imageUrl
- target: cardSide
source: face
outputMappings:
- target: name
source: $local.Data.FrontResult.Name
- target: gender
source: $local.Data.FrontResult.Gender
- target: idNumber
source: $local.Data.FrontResult.IDNumber
serviceParams:
ImageURL: $.image
Side: $.cardSide
retry: # 針對系統内部錯誤進行重試
- errors:
- ocr.ServiceUnavailable
- ocr.InternalError
- ocr.Timeout
- ocr.InvalidResult
- ocr.InvalidImage.Download
intervalSeconds: 10
maxAttempts: 2
multiplier: 2
完成該流程的定義後,即可在您的業務流程中使用 Serverless 工作流所提供的 SDK,傳入不同的
imageUrl
對流程進行調用。
流程詳解
步驟定義
為使用 API 編排功能,我們需要定義
任務步驟。根據
使用示例,在
action
下指定
serviceName
及
apiName
分别為
action: ocr:RecognizeIdentityCard
;
輸入及輸出
輸入輸出參數可參考
RecognizeIdentityCard文檔。在
ServiceParams
中我們将 API 所需的 imageUrl 定義為輸入,這樣可以做到在執行時指定不同的圖檔作為流程的輸入進而達到識别不同身份證的目的。
輸出
outputMappings
與普通的任務步驟一緻,對于 API 的傳回,我們隻關心姓名、性别及身份證号,是以在這裡我們隻将這些結果作為輸出。
錯誤處理
在錯誤處理方面,本流程主要需要考慮對服務内部錯誤進行重試。API 的所有錯誤碼見
文檔,需要額外注意的是在工作流中使用這些錯誤碼需要添加服務名稱作為字首,即
ocr.xxx
。
注:該應用已上線應用中心,您可以一鍵
嘗鮮更多資訊
阿裡雲視覺智能開放平台目前已開放 100 + AI API 。Serverless 工作流已內建其中的大部分能力,具體詳見
阿裡雲視覺智能開放平台 API歡迎大家加入官網客戶群,提出您的使用建議或疑問。
