# Azue Computer Vision Api AI 影像辨識使用範例
## 需求
在it邦幫忙看到[一篇問題](https://ithelp.ithome.com.tw/questions/10207835?sc=nl.daily)
要怎麼判斷圖片的盒子是否有放白色墊子,不限語言不限方法
* 放白色墊子的殼子

* 沒放白色墊子

---
## 事前評估
我想嘗試用AzureAI判斷,可以使用 Azure 的 自訂視覺
https://azure.microsoft.com/zh-tw/services/cognitive-services/custom-vision-service/#overview
價格 (免費版)
最多 2 個專案
免費 2 TPS
每月最多 1 小時的訓練
每專案 5,000 個免費訓練影像
每月 10,000 個預測
免費的拿來當教學,這個輛應該是撐得住,不用真的花我的錢
---
## 蒐集圖片資料
AI需要準備一些訓練樣本,於是用Google智慧鏡頭找有放白色墊子的圖(訓練樣本)

一樣用Google智慧鏡頭找沒有放白色墊子的圖,但是看了一下感覺不是我們要的

改用google圖片搜尋 **黑色方粉餅盒** 總算有比較像的東西了

## 樣本蒐集完畢
上面是有東西(白or沒那麼白)的粉餅盒
下面是沒有的粉餅盒,甚至有透明、鏡子或圓形的進來鬧場

---
## 建立自訂視覺AI專案
要進去的話,在[自訂視覺介紹](https://azure.microsoft.com/zh-tw/services/cognitive-services/custom-vision-service/#overview)這一頁往下捲可以看到 登入自訂視覺入口網站 就是了

或是直接進到[自訂視覺入口網站](https://www.customvision.ai/projects),進去後裡面都還是空的,先選 New Project 開專案

## 進到完整的開專案畫面
選資源比較詳細寫在下面,這邊關鍵是
* 選分類類型,一張圖只有一個tag標記(有白色墊子or沒有白色墊子)
* 圖片適用的AI類型,不知道盒子算什麼,就選第一個General(A2)省事

## 開 Resource 的畫面,選 create new 會有這個新視窗要選
關鍵是 Kind 服務類型選 Training,地點選 中南美洲 才有 F0 免費的可以用,選 S0 要錢請有心理準備

## 沒有 resource group (資源群組) 隨便開一個
記得一樣選中南美洲,免得跨區傳送資料要錢

---
## 專案開好後
---
## 進到專案裡面,準備來分析圖片
通常這種顏色比較亮的按鈕大概會是主要功能,從這幾個開始用

## 把Y的圖全部傳進去(之後準備加tag標記)

## 像這樣打上Tag

## 一堆圖標好tag了,換N的再來一次,但是 Add image 換位置了

## YN 都有了,來train訓練模型了

## 快速或進階,才幾筆而已就快速吧

## 等待訓練中

## 等待訓練過程來準備測試樣本
測試樣本就不從YN裡面找了,再去挖幾個出來
這裡使用的概念是 2個比較相近的+2個也符合有放東西但樣子有點奇怪的的來干擾AI

## 準備無效樣本
為了避免AI亂分,要再找一些很明顯不是Y也不是N,請AI不要把這些不相關的混進去
於是找了
* 空的黑便當盒
* 有料的白便當盒
* 很彩色的米白便當盒
* 童顏巨乳 (為了學術用途)

## AI訓練完成,開心的測試時間

## 預期 N 的,除了一個來干擾的圓形粉餅盒,其餘都有90%以上的信心程度

## 預期 Y 的,全部都有97%以上的信心程度

## 預期來干擾的,只有黑色便當盒被分到N(沒有圓形粉餅)其他都不到90%的信心程度

## 結論
本次花費人工時間,含搜尋樣本約1.5小時 (寫這篇的時間)
得知使用 自訂視覺 Customvision.AI Azure Vision AI,若設定有白色圓形粉餅的信心程度,可以使用 90% Y有粉餅作為分水嶺,AI可自動判斷
但 **純黑方形的空便當盒** 或 **偏粉白色的童顏巨乳** 可能會造成AI有機會誤判
以上結論供各位參考,然後AI為了避免持續付費已經砍了,就不開放各位demo使用了
但是訓練用的圖片可以開放給各位使用,請參考以下網址
https://imgur.com/a/qboUrju