# 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(我有幫你們建好),裡面放著所有類別的名字(一行放一個類別,如下圖所示)。   2. 在命令提示字元輸入`labelImg class_file {classes.txt的路徑}`如果成功開啟labelImg,代表成功安裝。 **classes.txt的路徑記得改成自己的**  3. 成功開啟的話會顯示如下圖的視窗  4. 左方的調整工具列可以調整位置,使用拖曳的方式。 >我是都習慣放上面啦,所以下面的教學也都是用這個版型。  # ## 三. 使用labelImg標記YOLO格式label 1. **切換至YOLO格式** >先確定格式顯示為YOLO  >如果不是,直接按下去直到變成YOLO為止  2. **先點選Open Dir。** >點選Open Dir  >假設剛剛有改過格式,應該會跳出警告視窗,按Yes就可以了。 > 2. **選擇想畫標記的圖片所在的資料夾。**  3. **畫面上會顯示這個資料夾的第一張圖片。** > 上圖因為這張圖片`5.jpg`已經有同名的txt檔`5.txt`存在同一個資料夾,所以程式會讀取`5.txt`內的資料,自動幫我們畫上讀取到的框框。 4. **點選Change Save Dir**  >選擇與圖片資料夾同一個資料夾  5. **開始label囉~** >點選Create RectBox或按下快捷鍵`W`可以開啟畫框框模式。  *左下角那個人還沒被標記到,所以將滑鼠移到它的位置,用壓下 左鍵並拖曳的方式畫一個能夠完全包覆住目標的bounding box,放開左鍵後會出現要你選擇這個bounding box的label,這邊因為這個框起來的物件類別是person,因此選擇person這個類別。* >而因為一開始在開啟labelImg時有先將自訂的classes.txt做連接(就是二之2的那個指令),所以可以在要你選擇類別的框框裡看到classes.txt裡的類別,就可以直接選取不用輸入。  6. **儲存** >點選Save或是用快捷鍵`Ctrl + S`,因為前面有先設定儲存 的路徑,所以會直接儲存在剛剛選擇的資料夾裡。  >儲存之後可以在資料夾內看到剛剛儲存的txt檔,會與圖片檔同名,以這張圖為例,圖片名為`5.jpg`,就會儲存`5.txt`的檔案,`5.txt`裡存著bounding box的資訊。  >第一個為類別編號,person是第一種類別,所以編號為0。 第二個為bounding box的中心點的x軸。 第三個為bounding box的中心點的y軸。 第四個為bounding box的width (寬度)。 第五個為bounding box的height(高度)。 有幾行就是有幾個框框。  數值會都在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來回到上一張。  8. **Auto Save** 如果怕每次標記完會忘記按Save,那可以開啟自動存檔,開啟Auto Save mode後,每次標記完後只要按下Next Image,程式就會幫你自動存檔。 >**點選上方的View。**  >**點選Auto Save mode。**  >**有打勾代表現在程式為Auto Save mode。**  # ## 四. 其他功能 1. **File List** 右下角有個File List的視窗,裡放的是該資料夾內的所有圖片,於該視窗點擊左鍵兩下即可將視窗彈出,在點擊兩下可以放回去。 >FileList視窗會顯示你目前在哪張圖片,也可以透過點擊兩下來直接跳到點擊的圖片。  ## 結束 有錯誤可以留言回報,謝謝。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up