iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0

經過一系列的學習,我們從了解概念、程式練習到昨天的論文導讀,我們似乎已經把深度學習的基礎概念完整的Round過一遍,如今就是我們正式上戰場,檢視自己的學習狀況,我挑選的案例是Aidea上的議題,雖然這個競賽已經截止了,但Aidea也有將它放在練習場讓大家去練習,所以大家還是可以下載到資料集,網址我放在下面(規則會跟已下架的比賽不同,練習場的評分標準為準確度)
Aidea人工智慧共創平台-AOI瑕疵檢測(練習場)
Aidea人工智慧共創平台-AOI瑕疵檢測(原比賽網址)

主題介紹

自動光學檢查(Automated Optical Inspection,簡稱 AOI),為高速高精度光學影像檢測系統,運用機器視覺做為檢測標準技術,可改良傳統上以人力使用光學儀器進行檢測的缺點,應用層面包括從高科技產業之研發、製造品管,以至國防、民生、醫療、環保、電力…等領域。工研院電光所投入軟性電子顯示器之研發多年,在試量產過程中,希望藉由 AOI 技術提升生產品質。本次邀請各界資料科學家共襄盛舉,針對所提供的 AOI 影像資料,來判讀瑕疵的分類,藉以提升透過數據科學來加強 AOI 判讀之效能。

競賽環境

此議題主要是要測試對嵌入式開發平台 (NVIDIA Jetson Nano) 的能力,Jetson Nano 是一台邊緣運算機,內含CPU與GPU的微型電腦,可同時執行多個神經網路工作,適合應用於圖像辨識(ImageClassification)、物件偵測(Object Detection)、語意分割(Instance Segmentation)…。

評分標準

模型準確度(60%)、推論速度(30%)、模型載入速度(10%)

資料集介紹

競賽平台提供了2528影像,包含了六種類別(正常類別+5種瑕疵類別),我們的任務為在指定的環境中(有一些套件的使用限制),訓練出一個快、小、準的模型來預測圖片。

使用工具

這邊我們要介紹一個新的使用工具,因為在進行神經網路的訓練時,其實是非常消耗記憶體的,若我們的電腦沒有GPU,或是CPU不夠強,訓練時就會花上非常久的時間,因此我們需要借助別的工具來幫我們完成這個任務。
Colaboratory是Google提供的一種雲計算平台,我們可以在瀏覽器上使用它來撰寫Python,且具備了以下優點:

  • 不必進行任何設定
  • 免費使用 GPU
  • 輕鬆共用

更詳細介紹的連結我放在這邊:Google Colaboratory

使用Google Colaboratory

至我們的雲端硬碟中-右鍵新增-更多-開啟Google Colaboratory
https://ithelp.ithome.com.tw/upload/images/20210914/20140427ORj0AUWC16.jpg
可以看到它其實長得跟Jupyter Notebook蠻像的,運作方式也雷同,可以一行一行的Key程式同時察看結果,我們在這邊也可以import許多套件且不用下載,省去很多版本的問題。

取得權限來匯入資料

在訓練時我們需要匯入一些圖片資料或匯出模型,需要先執行一些程式碼來掛載我們的雲端硬碟。

輸入以下程式碼

# 雲端執行須執行這行,取得權限
from google.colab import drive
drive.mount('/content/drive')

執行後會看到一段連結跟輸入格

https://ithelp.ithome.com.tw/upload/images/20210914/20140427Y4ArVBvgTE.jpg

點入連結並選取欲使用的雲端硬碟帳戶,會看到一段驗證碼

https://ithelp.ithome.com.tw/upload/images/20210914/20140427ROVjp6PgiS.jpg

將這段亂碼複製後貼上輸入格中,即完成掛載

https://ithelp.ithome.com.tw/upload/images/20210914/20140427HZbbKNGJKx.jpg

接著再輸入以下程式變更環境路徑

# 雲端執行須執行這行,變更環境路徑
os.chdir("//content/drive/MyDrive/AOI") #這邊輸入欲使用的資料夾路徑
os.getcwd()

這樣一來我們就可以開始使用Colab了,接著教大家如何使用Google的GPU資源。

至上方工具欄位中點選"執行階段"-"變更執行階段類型",將硬體加速器由"None"改為"GPU"並儲存

https://ithelp.ithome.com.tw/upload/images/20210914/20140427wmfFKu71Ij.jpg
最後我們做個檢查,輸入以下程式:

import tensorflow as tf
tf.config.list_physical_devices('GPU')

https://ithelp.ithome.com.tw/upload/images/20210914/20140427l3e4DH1qad.jpg
看到這邊代表我們成功啟動了GPU的功能,在訓練網路的時候就會自動使用GPU來加速,這邊要特別注意的是,Google有限制使用者每天的使用量,所以沒在用的時候記得要Kill掉,才不會浪費。


以上就是我們專案實作的第一部分的內容啦!先大概把主題還有使用工具介紹了一下,下一篇就會開始實做了,大家再會囉!


上一篇
DAY25 輕量級模型-MobileNets
下一篇
DAY27 Aidea專案實作-AOI瑕疵檢測(2/4)
系列文
學資料科學的小孩不會變壞- 從入門到實戰全攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
s951080603
iT邦新手 5 級 ‧ 2021-12-15 22:41:47

您好,
小弟在練習相同資料集的處理時,
遇到了類似的問題,
想請教您關於資料不均勻這部分的處理方式是否有確切的名稱呢?
因為根據您的文章中:
「上圖我們發現資料分布好像不是很平均,2類跟4類的樣本數有點偏少,這邊我使用的方法是增加較重懲罰職權重給樣本數少的類別,讓訓練的時候模型會更加注重這些樣本,藉此來達到平衡的目的。」,
懲罰職權重這個部份去爬文查不太到這部分的資訊,
網路上大部分所爬到的都是採取最高或最低樣本去做處理,
在這邊像您請教~

啊!這部分應該是在part2,
不小心留錯篇了,
再麻煩您!

我要留言

立即登入留言