前言
刀劍神域是2015年開始風靡至今的人氣動畫。有趣的是在該年有數名網友在論壇上爭論該作品的優劣,進而聚集眾多看熱鬧的網友將刀劍神域中的角色做成梗圖以諷刺不接受批評的粉絲,至今與刀劍神域相關的改圖統稱為「星爆圖」(以主角著名招式得名),由於其具有一定程度的幽默,因此已成為8年級生間的網路文化。
本專題的最終目的是自動識別並從圖片中裁剪出不同星爆元素的ROI(Range of interest),以便後續建立訓練資料集。 (
以上來自我的期末報告![](https://i2.bahamut.com.tw/editor/emotion/29.gif)
)
一樣在
個人網站上觀看程式碼會比較方便喔
![](https://i2.bahamut.com.tw/editor/emotion/30.gif)
。
Detctron2是由FB開發的物件偵測框架,主要繼承於Mask Rcnn,並提供多種網路架構與pretrained model供使用。Detctron2 架構由Head與Backbone組成,Backbone負責提取圖片特徵,Head則負責判斷與輸出。例如在它的
model zoo中可以看到 R50-FPN模型,表backbone使用ResNet 50、head為FPN模型。
Rcnn家族
R代表Region(區域),主要概念是將圖片切成好幾個區塊,再分別對區塊做CNN。
RCNN (2013) [2]
將圖片切成約2~3千個小Region,對各個Region做CNN後使用SVM做分類。
Faster RCNN (2015)[3]
與其將每個區塊當成獨立的影像作處理,Faster RCNN使用錨點(Anchor)的概念,讓各個區塊用來定位自己在原圖上的位置,方便我們將特徵投影在同一個影像上一次做處理,大大改善了RCNN的處理速度。
![](https://jhui.github.io/assets/rcnn/spp3.png)
來源:
Fast R-CNN:ディープラーニングによる一般物體検出手法 | NegativeMindException
Mask RCNN [4]
Mask Rcnn簡單來說是Faster Rcnn後再做個基於像素的分類。Faster Rcnn輸出 lable與bounding box參數;Mask Rcnn輸出label, bounding box與 mask。
另外需注意是由於Faster Rcnn有做Region pooling等操作,特徵的位置可能會跑掉,因此Mask Rcnn需處理RoI align的問題。
製作Label
新建專案後在Add Label names打上label,以本專案為例,取名規則為:
- sw_dp :逐案者
- sw_hge: 闡釋者
- sw_ns: 夜空之劍
- kt_face: 桐人臉.....
點選標籤直接在畫面上拖拉即可。
選擇CoCo格式輸出,可得到一個json檔與對應名稱的圖片。
讀取資料
Detectron2的資料集使用"註冊"的概念,"name"作為資料集的key,不可重複。
取得資料可使用:
[範例] 隨機採樣並標註Ground Truth
結果:
DatasetCatalog 與 register_coco_instances差別[5]
由於detectron2在幫我們讀進資料的時候會自動將image id當成該圖片的父資料夾路徑,因此要碼再寫個腳本處理圖片位置,要碼自訂義讀取資料的mapper。 (有研究精神的我們一定選擇後者(?))
要自訂義mapper得先了解資料集註冊的流程。在
官方文件中看到它使用DatasetCatalog 進行註冊。
查看內碼可發現register_coco_instances內部也是使用DatasetCatalog註冊資料。
複寫資料Mapper
由於找不太到單獨修改目前pipeline的DataLoader的方法,因此另一個的方法是創建預設的Trainer,並複寫它的loader方法。[7]
訓練模型
設定config
建立Trainer
訓練
使用模型
訓練後可得到一個權重檔 (本範例命名為"model_final.pth"),將它套用在predictor的config上。
輸入預測圖片
- 最近有一個月忙到忘了檢查社群軟體,謝謝七七贊助了10本書
![](https://bmc-dev.s3.us-east-2.amazonaws.com/assets/icons/bmc_icon_black.png)
![](https://bmc-dev.s3.us-east-2.amazonaws.com/assets/icons/bmc_icon_black.png)
>///< 我會繼續多看多分享的(′▽`???)
- 下一篇應該是講Shader的吧(?
![](https://i2.bahamut.com.tw/editor/emotion/29.gif)