在上一篇([24]圖像識別的服務 - Computer Vision概觀介紹)看完了Cognitive Service 裡面和 Vision 有關的服務,以及Computer Vision的一些簡單的功能介紹了之後,在這一篇將來看看實際上怎麽使用Computer Vision。
這篇將會先介紹如何建立Computer Vision需要的Key,再來用Postman呼叫OCR服務的REST API作爲測試。
建立Computer Vision的Key
和其他的Cognitive Service一樣,要使用Computer Vision都需要有Key,而key的建立要透過從Azure上面建立出來。
首先進入Azure Portal,可以透過搜索的方式開啓建立Computer Vision
的畫面
(也可以用這個鏈接直接開啓建立Computer Vision的畫面):
- Name輸入可以識別的名稱即可
- Subscription選擇這個服務要建立在那個訂閲裡面
- Location這個會影響到服務的位置以及api呼叫的網址。亞洲來説East Asia(香港)或者 Southeast Asia(新加坡)最好。
- Pricing tier選擇費用等級。測試可以用F0即可,完全免費
- Resource Group放在好管理的地方即可
最後按下Create
即可。
稍等一下,等到服務建立出來之後,直接打開在Overview畫面可以看到幾個重要的資訊:
- Keys這個可以取得到呼叫API會用到的Keys
- 在這邊可以看到要使用的API Endpoint:
https://southeastasia.api.cognitive.microsoft.com/vision/v1.0
- 對於API的參數以及使用方式可以參考Computer Vision Api reference
點下Keys
之後,可以看到兩組Key,只需要選擇其中一組即可,把這個Key記錄下來:
使用Computer Vision
建立出Key之後就可以使用Computer Vision了。
所有的Cognitive Service全部都是REST API的服務,那麽瞭解REST API支援什麽參數變得非常的重要,知道了有什麽參數之後就是做測試。
拆解出來就是:
- Computer Vision的REST API有什麽參數
- 用Postman測試
- 使用文件裡的testing console做測試
Computer Vision的REST API有什麽參數
還記得上面建立出來的Computer Vision在Overview畫面有個Computer Vision API reference, 這個鏈接有最完整的API説明
左邊列出的是Computer Vision所有支援的服務,在這邊我們只關注OCR,因此切換到OCR的部分,整份文件有很詳細的説明,在url使用上有的參數也有介紹:
- 左邊可以切換到OCR的服務
- 在Request URL可以看到完整的網址,以及有接受的參數
從文件上面可以發現幾個會用到的參數(這裡列出的不是全部的參數,全部請看文件):
- url參數language
-
可以設定辨識的語言。預設是unk意思是由系統自己辨識語言。如果確定圖片語言,可以在這個參數指定。以中文來説有:
zh-Hans
:簡體中文zh-Hant
:繁體中文
-
header:
Ocp-Apim-Subscription-Key
- 這個用來設定使用服務的Key。
- Request Body
- 可以直接傳入一張照片的URL,或者直接傳送圖片的Binary資料。
依照上面的發現,最後的Endpoint可以得出是:https://southeastasia.api.cognitive.microsoft.com/vision/v1.0/ocr?language=zh-Hant
。
用Postman測試
瞭解了API的用法了之後,接下來可以用一些REST Api的client做測試,這類工具裡面Postman非常的好用,因此將用Postman做測試。
首先是設定Endpoint以及Header的部分:
再來是Post出去的内容,這邊將用上一篇部落格的文章首圖作爲測試:
{"url":"https://d33wubrfki0l68.cloudfront.net/944305e40cdc6a07a988bf3970ec07e33d3d3b01/d047f/posts/2018/08/2018-08-03-bot-framework-with-ai-cognitive-service-24-cognitive-service-vision-intro-computer-vision-overview/c3bab906-b2db-44db-8f76-e6cb39d255b3.jpg"}
接下來就可以把設定的REST Api發出去,并且可以檢視最後識別的結果,下圖上半部是Api發出去之後得到的結果,下半部則是原圖。可以發現,識別的非常正確,并且圖片右小角的浮水印也有識別出來 (雖然識別的不完整,畢竟字比較小)
使用文件裡的testing console做測試
如果説今天電腦裡面沒有Postman又要測試有什麽辦法呢?
在API文件其實有提供測試,只需要在文件裡面的Open API testing console打開對應的地區按鈕即可:
接下來只需要輸入每個參數即可:
接下來可以在下面看到反饋内容:
使用文件上面的testing console用來學習api非常的方便,因此如果有些文件説明看不懂,直接測試反而比較快。
文件上面其他的功能
文件上面還有兩個能夠輔助開發的功能:
- 不同語言的code samples
- 取得Swagger或者WADL的reference
不同語言的code samples
在頁面的最下面有列出幾個常見語言的呼叫方式,方便快速整合Computer Vision到不同的語言:
取得Swagger或者WADL的reference
開發API的時候長會使用像是Swagger這種服務,而api文件有提供對應的定義檔案可以使用,位置在文件的右上角:
結語
這篇介紹了如何建立出Computer Vision使用上面所需要的Key。然後看了如何找到Computer Vision服務的REST API文件。并且依照了REST API文件的介紹測試了裡面的OCR服務。
相信透過了這篇對於Computer Vision的使用有了更進一步的瞭解。
下一篇([26]賦予chatbot OCR的能力 - 加入對發票的功能)將回到HotelBot程式上面,看看如何把OCR的服務整合進入到chatbot。