---
# System prepended metadata

title: Dataset Build - Roboflow
tags: [Machine Learning]

---

在研究所之後就沒有碰過 AI 影像處理的任務跟工作，近期工作需要又重新接觸，這篇主要紀錄一下 Dataset 建立的紀錄。
與之前研究所建立 Dataset 的方式相比，現在的建立方式因為工具多樣，操作跟執行上比之前方便很多。

## Roboflow

比起之前手動標記並做各種處理紀錄，Roboflow 在做影像的標記上容易上手，操作介面的相關功能也簡單，這邊就記錄目前我用過的一些功能。

註冊可以直接連動 Google
![image](https://hackmd.io/_uploads/ryt1y-25ye.png)

登入後的介面如下，後續只會針對使用到的項目解釋操作，其餘的功能可能後續持續更新
![image](https://hackmd.io/_uploads/H1vUk-hqke.png)



### Search Dataset

要自己找圖片、拍照、建立檔案、做標記等等太麻煩，如果要進行標記的物件是常見的，基本上都有相關的 Dataset 可以找的到，只是要注意有沒有什麼是標記上不適合的標記。

搜尋相關 Dataset 的位置如下，叫做 "Universe"
![image](https://hackmd.io/_uploads/Sya0yWh51x.png)

點擊後會自動跳出新的頁面，可以直接做關鍵字搜尋，我們以 "screw" 進行搜尋
![image](https://hackmd.io/_uploads/By4Ue-29ke.png)

可以看到有許多已經開源的 Dataset 可以選擇，有做過訓練的也會提供模型讓你可以進行測試。
![image](https://hackmd.io/_uploads/Sk9Kxb2qJl.png)

下方 Dataset 可以藉由使用者提供照片進行測試，讓你直觀的觀察訓練出來模型的準確度，紅框位置上傳圖片進行測試
![image](https://hackmd.io/_uploads/rkZGbZ3cJx.png)

測試的狀況如下，並不是每個都可以被模型標註到，雖然不是說預測準確度低就是 Dataset 不好，至少這個是一個比較直觀，透過已完成的模型確認效果如何。
![image](https://hackmd.io/_uploads/SkELWWn5ye.png)

點擊左方 " Images " 可以看到 Dataset 的所有標註照片以及照片中的標註，點開照片可以看到照片中的標註框以及類別名稱。
![image](https://hackmd.io/_uploads/S19WGWhqJe.png)
![image](https://hackmd.io/_uploads/rJJ4f-29yg.png)


如果檢查過該 Dataset 可以使用，要將 Dataset 進行後續處理或者調整、下載，需要將 Dataset 載入到自己的空間，點擊 "Fork Dataset"
![image](https://hackmd.io/_uploads/rkF0Gbn5yl.png)

回到 Project 可以看到每個載入的 Dataset
![image](https://hackmd.io/_uploads/SJpDmbhqyl.png)

### Dataset Check

通常載入 Dataset 後，我們需要進行更詳細的確認跟檢查，第一種情況是標記名稱並不是我們想要的名稱，可以在 Dataset >> Classes & Tags 進行更改或者刪除
![image](https://hackmd.io/_uploads/Hyuv4-h5Je.png)

如果要檢查照片跟標記，以及相關的調整可以在 Dataset 分頁進行，這個分業也會顯示每個照片被歸屬於哪種類別 ( train / valid / test )，標註是在每個照片右下角的小圖示
![image](https://hackmd.io/_uploads/SyceB-n5Je.png)


### Dataset Version

完成整體確認跟調整後，我們想要進行資料下載方便執行後續的訓練，在這個階段我們要進行相關的設定，產出訓練版本的 Dataset，這個階段還可以針對不同條件，針對影像做資料增強或者前處理等等。
介面主要分成 5 個階段，前 2 個可以看個人有沒有想要再新增照片或調整資料類別的比例 ( 通常 train / valid / test 會以 0.7：0.1：0.2 進行設定 )

![image](https://hackmd.io/_uploads/SyjgI-n5ye.png)

第 3 階段是前處理
![image](https://hackmd.io/_uploads/SyFt8-hc1e.png)

第 4 階段是資料增強
![image](https://hackmd.io/_uploads/rJraIbh5yg.png)

前面都處理設定完成，就可以產出
![image](https://hackmd.io/_uploads/Sk5yv-n91x.png)

### Dataset Download

完成後的版本會在左方，可以點擊下載將 Dataset 下載到本機端
![image](https://hackmd.io/_uploads/SJwXw-35ke.png)

下載的相關設定主要看目的，如果你要用現有的模型，他可以根據你選擇的模型下載對應的格式，這個功能倒是蠻方便的
下載前記得要注意相關的勾選，最下面項目會在下載時也訓練一個模型，因為使用免費會員所以會有扣打的限制
![image](https://hackmd.io/_uploads/BySjDW2q1l.png)

下載後的壓縮檔案內會有包含原始照片、標記資料，最方便的是有提供可以直接餵入模型的 .yaml 檔案
![image](https://hackmd.io/_uploads/SJXUubn9Je.png)

### Conclusion

Roboflow 確實在資料開源跟標記上方便很多，也提供資料增強、標記檔案設定的功能，讓後續訓練模型、調整資料內容提供一個簡單、方便、快速的操作。
需要注意的是，使用免費會員的問題在於 Dataset 都需要進行開源，所以對於機密資料無法使用，後續可能針對這部分找找有沒有其他解決方案。

整體而言如果只是要進行通俗物件非機密資料的標記跟建立 Dataset，使用 Roboflow 快速且簡單。