Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[chatbot + AI = 下一代操作模式][25]使用Computer Vision - 如何設定、看文件以及使用REST API測試

[chatbot + AI = 下一代操作模式][25]使用Computer Vision - 如何設定、看文件以及使用REST API測試.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([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的畫面):

  1. Name輸入可以識別的名稱即可
  2. Subscription選擇這個服務要建立在那個訂閲裡面
  3. Location這個會影響到服務的位置以及api呼叫的網址。亞洲來説East Asia(香港)或者 Southeast Asia(新加坡)最好。
  4. Pricing tier選擇費用等級。測試可以用F0即可,完全免費
  5. Resource Group放在好管理的地方即可

最後按下Create即可。

chrome_2018-08-04_19-42-30.png
建立一個Computer Vision的服務

稍等一下,等到服務建立出來之後,直接打開在Overview畫面可以看到幾個重要的資訊:

  1. Keys這個可以取得到呼叫API會用到的Keys
  2. 在這邊可以看到要使用的API Endpoint:https://southeastasia.api.cognitive.microsoft.com/vision/v1.0
  3. 對於API的參數以及使用方式可以參考Computer Vision Api reference
chrome_2018-08-04_19-49-46.png
從Overview畫面找到幾個重要的信息

點下Keys之後,可以看到兩組Key,只需要選擇其中一組即可,把這個Key記錄下來:

chrome_2018-08-04_19-51-15.png
取得Key的畫面截圖

使用Computer Vision

建立出Key之後就可以使用Computer Vision了。

所有的Cognitive Service全部都是REST API的服務,那麽瞭解REST API支援什麽參數變得非常的重要,知道了有什麽參數之後就是做測試。

拆解出來就是:

  1. Computer Vision的REST API有什麽參數
  2. 用Postman測試
  3. 使用文件裡的testing console做測試

Computer Vision的REST API有什麽參數

還記得上面建立出來的Computer Vision在Overview畫面有個Computer Vision API reference, 這個鏈接有最完整的API説明

左邊列出的是Computer Vision所有支援的服務,在這邊我們只關注OCR,因此切換到OCR的部分,整份文件有很詳細的説明,在url使用上有的參數也有介紹:

  1. 左邊可以切換到OCR的服務
  2. 在Request URL可以看到完整的網址,以及有接受的參數
chrome_2018-08-04_20-01-00.png
切換到OCR并且看有接受什麽參數

從文件上面可以發現幾個會用到的參數(這裡列出的不是全部的參數,全部請看文件):

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的部分:

Postman_2018-08-04_20-20-52.png
設定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"}
Postman_2018-08-04_20-22-29.png
設定post的body部分

接下來就可以把設定的REST Api發出去,并且可以檢視最後識別的結果,下圖上半部是Api發出去之後得到的結果,下半部則是原圖。可以發現,識別的非常正確,并且圖片右小角的浮水印也有識別出來 (雖然識別的不完整,畢竟字比較小)

chrome_2018-08-04_20-25-22.png
測試Postman呼叫圖像識別

使用文件裡的testing console做測試

如果説今天電腦裡面沒有Postman又要測試有什麽辦法呢?

在API文件其實有提供測試,只需要在文件裡面的Open API testing console打開對應的地區按鈕即可:

chrome_2018-08-04_20-30-36.png
開啓southeastasia的測試 console

接下來只需要輸入每個參數即可:

chrome_2018-08-04_20-32-44.png
輸入不同參數做測試

接下來可以在下面看到反饋内容:

chrome_2018-08-04_20-34-14.png
測試服務的結果

使用文件上面的testing console用來學習api非常的方便,因此如果有些文件説明看不懂,直接測試反而比較快。

文件上面其他的功能

文件上面還有兩個能夠輔助開發的功能:

  1. 不同語言的code samples
  2. 取得Swagger或者WADL的reference

不同語言的code samples

在頁面的最下面有列出幾個常見語言的呼叫方式,方便快速整合Computer Vision到不同的語言:

chrome_2018-08-04_20-39-42.png
Code Samples内容

取得Swagger或者WADL的reference

開發API的時候長會使用像是Swagger這種服務,而api文件有提供對應的定義檔案可以使用,位置在文件的右上角:

chrome_2018-08-04_20-41-54.png
取得swagger或者WADL定義

未來介紹的其他Cognitive Service都有一個對應的文件。因此這篇介紹的文件使用方式在其他的Cognitive Service將都適用。因此未來有些參數的取得將不會像這篇介紹的那麽詳細。

結語

這篇介紹了如何建立出Computer Vision使用上面所需要的Key。然後看了如何找到Computer Vision服務的REST API文件。并且依照了REST API文件的介紹測試了裡面的OCR服務。

相信透過了這篇對於Computer Vision的使用有了更進一步的瞭解。

下一篇([26]賦予chatbot OCR的能力 - 加入對發票的功能)將回到HotelBot程式上面,看看如何把OCR的服務整合進入到chatbot。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus