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
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus