iT邦幫忙

1

如何判斷圖片是否有某物品?

ai
  • 分享至 

  • xImage

請問想要判斷圖片的盒子是否有放白色墊子,如下圖

放白色墊子的殼子
image

沒放白色墊子
image

任何語言、工具都可以,感謝!

看更多先前的討論...收起先前的討論...
https://www.google.com/search?q=AOI
???
這挑戰難度太大了@@"
咖咖拉 iT邦好手 1 級 ‧ 2022-03-22 12:04:32 檢舉
用電子秤 量物理重量
不然就偵測中心點有沒有反光
有反光就是沒放到 沒反光就是正常
XD
五十男 iT邦研究生 5 級 ‧ 2022-03-23 08:21:08 檢舉
直接中央區塊取 RGB 判斷,
這是 AOI 入門題,情況是這樣...
可以用 OpenCV 串 CCD ,如果求快0.001秒下判斷,應該找其他方式
這個案我自己不用 OpenCV,
常被所學誤導,繞圈子。
正一 iT邦新手 5 級 ‧ 2022-03-26 05:11:07 檢舉
感謝大神們!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
5
not
iT邦新手 4 級 ‧ 2022-03-23 23:25:50
最佳解答

前言

我覺得這篇很有趣,用 Azure 自訂視覺 Custom Vision AI 來做,大概花了 1.5小時搞定,完全沒寫程式碼,寫了一篇完整操作步驟,也把內容貼過來給大家參考看看
https://hackmd.io/@Not/AzureComputerVisionApiExample

因為有點長,所以先放一張最後拿來測試AI的樣本,讓大家有興趣看下去怎麼做的

事前評估

我想嘗試用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專案

要進去的話,在自訂視覺介紹這一頁往下捲可以看到 登入自訂視覺入口網站 就是了

或是直接進到自訂視覺入口網站,進去後裡面都還是空的,先選 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

石頭 iT邦研究生 4 級 ‧ 2022-03-25 13:17:22 檢舉

連google都認可了童顏巨乳了 0.0_b

你怎麼這麼佛心

5
alanotmt
iT邦新手 4 級 ‧ 2022-03-22 13:27:01

https://ithelp.ithome.com.tw/upload/images/20220322/20106033YiTxswBbEz.png
以上為有圓 青綠色為圓形的連通區域

https://ithelp.ithome.com.tw/upload/images/20220322/20106033XdpxnvAE5u.png
以上為沒圓

  1. 環境能固定
  2. 用opencv去做,找關鍵字二值化/連通區域/擴張/侵蝕
  3. 找圓形的filter去掃就能去掉那些雜訊
  4. 剩一個圓,剩下只要判斷這圖的陣列還有沒有大於多少的數值就能判斷有沒有圓。

3 and 4 就要靠自己去設定了,我只能幫到這了。

石頭 iT邦研究生 4 級 ‧ 2022-03-22 17:07:09 檢舉

opencv 抓那個圓 去判斷相似度也可以辦到 不過我想樓主應該是比較想要現成的

Machine Learning

正一 iT邦新手 5 級 ‧ 2022-03-26 05:12:32 檢舉

感謝您!

0
純真的人
iT邦大師 1 級 ‧ 2022-03-22 13:27:15

你可以參考看看
圖片中的物品偵測
https://ithelp.ithome.com.tw/articles/10192950

0
Maso的萬事屋
iT邦新手 4 級 ‧ 2022-03-23 04:08:34

OPENCV讀圖之後,抓取墊子中心的座標,然後切下一個矩形區域(小於墊子大小)作為ROI,然後讀取ROI的數值平均,基本上只有黑色跟白色兩個狀況的話,可以用127作為閾值,判斷是否有墊子。

2
I code so I am
iT邦高手 1 級 ‧ 2022-03-23 10:44:22

用簡單的神經網路加上 Data Augmentation 就可以搞定。
請參閱

  1. Day 03:撰寫第一支完整的 Keras 程式
  2. Day 12:影像資料增補(Data Augmentation)
正一 iT邦新手 5 級 ‧ 2022-03-26 05:13:15 檢舉

感謝您!

0
Wilion
iT邦新手 3 級 ‧ 2022-03-24 02:10:23

我也推薦一個不用coding就可以實作的平台。
訓練完也可輸出模型,後續看你要如何應用。
Teachable Machine_google

0
五十男
iT邦研究生 5 級 ‧ 2022-03-24 08:46:18

原本想當路人,不過越來越,,,,

如此程式也沒幾行,(超過五萬張零失敗)。

但不是要說這個,用光電晶體幾十元台幣搞定的事,說這我都,,,

為了貼圖,在回答區說

正一 iT邦新手 5 級 ‧ 2022-03-26 05:13:03 檢舉

感謝您!

我要發表回答

立即登入回答