2021年4月15日 星期四

如何重新執行「CocoRobo自定義訓練代碼及簡要提示.ipynb」

 
以下是有有關如何於短時間內重新執行以上程式文件的步驟。

 

重要提示:

1.      執行這訓練模型的程式文件時,請先確保上載至Google Drive的已標記相片的資料夾是正確的,如不正確的話,無論執行多少次還是會出錯的。

2.      正常來說,真正進行模型訓練時,是不容易出錯的。因為真正進行模型訓練時的訓練次數起碼3000,而準確度的數值要低於0.06,約需時20分鐘。但課堂上測試時,沒足夠時間運行20分鐘,便有機會無法匯出相應的模型文件。有時,可能老師要作多次示範,便又沒足夠訓練次數匯出相應的模型文件。

3.      測試發現,系統似乎留下先前的數據,以致容易出現混亂。因此,要先清除數據。

 

步驟1: 選擇「編輯」-->「清除所有輸出內容」。


 步驟2: 選擇「執行階段」-->「恢復原廠設定的執行階段」。

 



步驟3: 然後再重新開啟一次「CocoRobo自定義訓練代碼及簡要提示.ipynb」程式文件便成。

 

---------------------------------------------------------------------------------------------------

提示1: 如要中斷測試模型的指令執行(即是準確度的數值已低於0.06),較方便的方法其實是按上方功能表的,「執行階段」-->「中斷執行」。

備註: 因為按指令左方的圖示很難處理。



 

提示2: 如執行以下指令時(中斷訓練後再進行測試)出現couldn’t open file的話,那不用再繼續執行其後的指令了。重新進行訓練便可以。



 提示 3: 下表顯示了短時間內(2小時內)連續測試COLAB的運作的狀況

次數

已完成訓練次數

所需時間

準確度數值

是否成功匯出KMODEL

錯誤訊息

1

40

~30

7.46

不成功

No such file

2

720

~ 5分鐘

0.93

成功

 

3

720

~ 5分鐘

0.99

成功

 

4

709

~ 5分鐘

0.93

成功

 

5

719

~ 5分鐘

0.88

成功

 

6

741

~ 5分鐘

0.90

成功

 

7

33

~30

8.5

不成功

 

8

73

~50

5.09

不成功

No such file

9

321

~ 2分鐘

5.29

成功

 

10

521

~ 4分鐘

2.97

成功

 

由以上測試可推論:

1.      準確度數值少於1的話,全部都能成功的。所以建議低於這數值才中斷訓練。

2.      準確度數值大於1時,便可能不太穩定。例如5.26成功,但5.09不成功,也不清楚是否跟訓練次數太少有關。有興趣可自行測試啦。但既然低於1時,成功率是100%,而又祇需要約5分鐘,我便不再測試了。

2021年4月9日 星期五

進行自定義物件AI模型訓練參考資源

使用Google Colaboratory

 

1. 採集數據 (圖文版參考 / 視頻參考)

2. 標記數據 (圖文版參考 / 視頻參考)

3. 模型訓練

(1) 準備工作 (圖文版參考 )

(2) 如何使用Google Colab 進行模型訓練 (圖文版參考 / 視頻參考)

4. 使用模型於CocoRobo A.I. 模組內。(圖文版參考 / 視頻參考)

 

常見問題:

1. 執行colab時出現問題,如何重新開始?  (按這裡)



如何使用LabelImg標記相片以供AI訓練模型用?

 使用軟件: LabelImg (Windows)V.

下載網站: https://tzutalin.github.io/labelImg/

V1.8

 

參考視頻: https://youtu.be/IWk1-Q-8iIk

 

[準備工作]

開始前重要步驟: 先清除LabelImg內預設的物件名稱。

 

重要提示: 如不清除的話,標記後後的txt內的數據資料會出錯的! 上載去Colab後便無法正確辨認!

 

準備工作1: 刪除predefined_classes.txt內的資料

找出Labellmg.exe所在的資料夾(這裡是下載> windows_v1.8.9 > windows_v1.8.0),這資料夾內有個data的資料夾,內裡有一個txt文件,名predefined_classes.txt,開啟這文件,會看到以下預設的類別名稱。




把這些資料完全刪掉,然後貯存文件便成,如下圖。

 




準備工作2: SD卡的資料上載至電腦內,以便進行標記。

1.      SD卡的資料夾應如下圖顯示,資料夾dataset是預設用來貯存拍照後的文件的位置,把這個資料夾複製至電腦內。



2.      其實複製至任何位置皆可以的。習慣上會把這些用作訓練的相片文件統一放在一資料夾內(這裡是myproject內,當然這個資料夾的名稱可自定。)



3.      這個dataset內有10個資料夾,可刪走一些沒有文件的資料夾。

由於這例子祇拍攝2種物件,祇貯存於資料夾12,其他都空的。



4.      把空的資料夾刪除,如下圖。



5.      由於SD卡的資料夾名稱預設一定是dataset的,為了方便將來再拍攝及上載資料夾,建議更改這資料夾名稱,可自定的,這裡是fsstest。最後,要於這一層資料夾新增一個純文字的文件,名叫fsstest.names。前面的fsstest要跟這資料夾同名,這名稱亦是項目(project)的名稱。於這文件內填入你要標記的物件類別名稱。這裡是supermandoraemon


 檢查一下fsstest文件夾內兩個子文件夾的內容,如下例,有5張相片。

重要提示: 實際上進行AI辨識時不應拍攝這麼少張數的,這裡僅用作學習之用。


檢查文件夾2的內容。


準備工作已完成,可以正式開始進行標記。

--------------------------------------------------------------------------------------------

正式開始進行標記相片。(建議參考以上youtube視頻,因為步驟不多,看一次便應可掌握的了) 請開啟labelImg程式。

 

步驟1: 選擇labelImg 程式。


步驟2: 開啟後,應出現以下畫面。首先把左功能下的PascalVOC改成YOLO


如下圖所示,PascalVOC已變成YOLO

備註: YOLO代表You only learn once,是人工智能識別物件其中一種算法。



步驟3: 選擇相片所在的文件夾,Open Dir



例如以下,相片所在的文件夾是於fsstest內,因此選取fsstest,按「選擇資料夾」。


步驟 4: 選取相關資料夾後,會顯示這資料夾(fsstest)內所有文件。可以開始進行標記了。


步驟5: 選取第一張,會出現相關的相片。正式進行標記,請選取上方功能表edit-->Create RectBox



步驟 6: 用滑鼠拖曵出物件四邊的範圍,如下圖。然後選取把這物件標記成甚麼名稱,如是第一次的話,需要自行輸入,例如以下superman,然後按OK提示: 第一次標記後,如發現Labellmg視窗內出現其他不相關的物件名稱,建議退出程式,然後刪除predefined_classes.txt內資料才再開啟進行標記,否則標記完後需要進行大量手動修改的步驟,非常麻煩。



步驟 7: 留意! 這是重要步驟! 不要漏掉! 按左方功能表的Save 貯存。



Save後,會出現以下畫面,按Save 便可以。系統會貯存一個同名的txt文件於相同的資料夾內。



步驟 8: 再逐一選擇其他文件,重覆以上步驟便可以。



步驟 9: 留意,如已選取到另一物件的話,步驟仍是一樣的。



但留意,由於物件名稱不同,再輸入新的物件名稱便可以,如下圖。



步驟10: 一直重複以上動作,直至全部標記完成為止。如下圖,然後可關閉LabelImg這程式。



步驟11: 之後可於相片的資料夾查看是否正確標記及貯存。



留意,於每一個資料夾(例如1)內,除了在原來的相片文件外,也應有相同數目,與相應相片名稱相同的txt文件。txt文件內,其實祇貯存了一些座標的數據。例如,以下1_0.txt是對應1_0.jpg的,由於這資料夾名叫1,這txt文件最前的數字應是0,如下圖。



如資料夾名叫2,相應txt文件最前的數字應是1,如下圖。如此類推。如不是的話,可手動改回,但要逐一開啟所有txt文件修改。



另外,每一個資料夾內應有一個名叫classes.txt的文件的,如下圖,不用修改任何資料。



資料夾1classes.txt文件內容如下,也不需要任何修改。



 

步驟12: 完成。可以把這個資料夾fsstest上載至Google Drive 進行下一階段的物件識別過程。


-----------------補充---------------

備註: 以下的相片並不是用CocoRobo A.I. 的相機組件拍攝,因此檔案的名稱不一樣。但一樣可以使用labellmg 進行標記的。

祇是必須先把不同類別的相片文件貯存於不同的資料夾內(要自己新增啦!),如下圖,把doraemon 放入資料夾1,而superman 放入資料夾2

也一樣要自行於fsstest3的資料夾內新增一個名叫fsstest3.names的文件。

重要提示: 資料夾名稱,請不要使用 _ 或大寫字母,也不要有空格。



 

 

如何第一次使用CocoRobo Pi ?

  如何第一次使用 CocoRobo Pi ?   步驟 : 1. 使用 Chrome 連結以下網站 : https://v.cocorobo.hk/   ## 留意,跟第二代的 CocoRobo AI 主板的網上平台網址不同。   2. 如第一次使用...