---
# System prepended metadata

title: labelImg 的祈佑小教室

---

# labelImg 的祈佑小教室
* **目錄**
[**零. 建立Python環境**](https://hackmd.io/@zxcasd89525/Syw8BypDi#%E9%9B%B6-%E5%BB%BA%E7%AB%8BPython%E7%92%B0%E5%A2%83)
[**一. 安裝labelImg**](https://hackmd.io/@zxcasd89525/Syw8BypDi#%E4%B8%80-%E5%AE%89%E8%A3%9DlabelImg)
[**二. 啟動labelImg**](https://hackmd.io/@zxcasd89525/Syw8BypDi#%E4%BA%8C-%E5%95%9F%E5%8B%95labelImg)
[**三. 使用labelImg標記YOLO格式label**](https://hackmd.io/@zxcasd89525/Syw8BypDi#%E4%B8%89-%E4%BD%BF%E7%94%A8labelImg%E6%A8%99%E8%A8%98YOLO%E6%A0%BC%E5%BC%8Flabel)
[**四. 其他功能**](https://hackmd.io/@zxcasd89525/Syw8BypDi#%E5%9B%9B%E5%85%B6%E4%BB%96%E5%8A%9F%E8%83%BD)

#
## 零. 建立Python環境
**待完成，先自己想辦法，Python版本請低於3.10(比如說3.9.10)，3.10會有未知錯誤。**

#
## 一. 安裝labelImg

1. **開啟終端機**
於window的搜尋框輸入"CMD"，並開啟命令提示字元。
2. **安裝labelImg**
於命令提示字元輸入`pip install labelImg`

#
## 二. 啟動labelImg
1. 在儲存圖片的資料夾裡先建立classes.txt(我有幫你們建好)，裡面放著所有類別的名字(一行放一個類別，如下圖所示)。
![](https://i.imgur.com/1qdFFOo.png)
![](https://i.imgur.com/oVoxgXY.png)


2. 在命令提示字元輸入`labelImg class_file {classes.txt的路徑}`如果成功開啟labelImg，代表成功安裝。
**classes.txt的路徑記得改成自己的**
![](https://i.imgur.com/2D8x23Z.png)
3. 成功開啟的話會顯示如下圖的視窗
![](https://i.imgur.com/JIDGpSz.png)

4. 左方的調整工具列可以調整位置，使用拖曳的方式。
    >我是都習慣放上面啦，所以下面的教學也都是用這個版型。
    ![](https://i.imgur.com/CL2MrfG.gif)




#
## 三. 使用labelImg標記YOLO格式label
1. **切換至YOLO格式**
    >先確定格式顯示為YOLO
    ![](https://i.imgur.com/7AT33cV.png)
    
    >如果不是，直接按下去直到變成YOLO為止
    ![](https://i.imgur.com/LfnrETs.gif)

    
2. **先點選Open Dir。**
    >點選Open Dir
    ![](https://i.imgur.com/UPZLjMv.png)
    
    >假設剛剛有改過格式，應該會跳出警告視窗，按Yes就可以了。
    >![](https://i.imgur.com/zxVfRq6.png)


2. **選擇想畫標記的圖片所在的資料夾。**
    
    ![](https://i.imgur.com/zqXbAR1.png)

3. **畫面上會顯示這個資料夾的第一張圖片。**
    
    >![](https://i.imgur.com/CMhtQXL.png)
    上圖因為這張圖片`5.jpg`已經有同名的txt檔`5.txt`存在同一個資料夾，所以程式會讀取`5.txt`內的資料，自動幫我們畫上讀取到的框框。

4. **點選Change Save Dir**

    ![](https://i.imgur.com/W5Ig4Cu.png)

    >選擇與圖片資料夾同一個資料夾
    ![](https://i.imgur.com/zqXbAR1.png)

5. **開始label囉~**
    
    >點選Create RectBox或按下快捷鍵`W`可以開啟畫框框模式。
    ![](https://i.imgur.com/gBK6Dj9.gif)
    *左下角那個人還沒被標記到，所以將滑鼠移到它的位置，用壓下     左鍵並拖曳的方式畫一個能夠完全包覆住目標的bounding   box，放開左鍵後會出現要你選擇這個bounding box的label，這邊因為這個框起來的物件類別是person，因此選擇person這個類別。*
    
    >而因為一開始在開啟labelImg時有先將自訂的classes.txt做連接(就是二之2的那個指令)，所以可以在要你選擇類別的框框裡看到classes.txt裡的類別，就可以直接選取不用輸入。
    ![](https://i.imgur.com/7HdyN1T.png)
6. **儲存**

    >點選Save或是用快捷鍵`Ctrl + S`，因為前面有先設定儲存 的路徑，所以會直接儲存在剛剛選擇的資料夾裡。
    ![](https://i.imgur.com/RUJNLcC.png)
    
    >儲存之後可以在資料夾內看到剛剛儲存的txt檔，會與圖片檔同名，以這張圖為例，圖片名為`5.jpg`，就會儲存`5.txt`的檔案，`5.txt`裡存著bounding box的資訊。
![](https://i.imgur.com/Jn1qZlv.png)

    
    >第一個為類別編號，person是第一種類別，所以編號為0。
    第二個為bounding box的中心點的x軸。
    第三個為bounding box的中心點的y軸。
    第四個為bounding box的width (寬度)。
    第五個為bounding box的height(高度)。
    有幾行就是有幾個框框。
    ![](https://i.imgur.com/GPA9I9I.png)
    
    數值會都在0到1之間是因為程式會自動做正規化處理，舉例來說假設圖片寬度與高度為`640*640`，而bounding box 的資訊為
    `x = 150`
    `y = 300`
    `width = 50`
    `height = 200`
    那就會將x與width除以圖片寬度，y與height除以圖片長度
    `x = 150/640`
    `y = 300/640`
    `width = 50/640`
    `height = 200/640`
    正規化後的數據為
    `x = 0.234375`
    `y = 0.46875`
    `width = 0.078125`
    `height = 0.3125`
7. **切換圖片**

    如果這張圖片都想標記的物件都標記完了，並且也Save了，按下Next Image即可換下一張圖片，如果按下了卻發現上一張有需要修改的部分，也可以按下Prev Image來回到上一張。
![](https://i.imgur.com/3mzb5CB.png)

8. **Auto Save**

    如果怕每次標記完會忘記按Save，那可以開啟自動存檔，開啟Auto Save mode後，每次標記完後只要按下Next Image，程式就會幫你自動存檔。
    
    >**點選上方的View。**
        ![](https://i.imgur.com/3XUFpRA.png)

    >**點選Auto Save mode。**
        ![](https://i.imgur.com/97UL7GN.png)

    >**有打勾代表現在程式為Auto Save mode。**
        ![](https://i.imgur.com/U5SeSyZ.png)
#
## 四. 其他功能

1. **File List**

    右下角有個File List的視窗，裡放的是該資料夾內的所有圖片，於該視窗點擊左鍵兩下即可將視窗彈出，在點擊兩下可以放回去。
    >FileList視窗會顯示你目前在哪張圖片，也可以透過點擊兩下來直接跳到點擊的圖片。
![](https://i.imgur.com/nxIf8Dv.gif)

## 結束
有錯誤可以留言回報，謝謝。





