裝機環境:Win10+Python3.5
一、LabelImg是什麼?
LabelImg 是一個圖形圖像注釋工具,采用 Python 編寫而成,并使用 Qt 作為其圖形界面
二、前提準備工作
0.在這裡,我預設你已經安裝好了Python以及確定帶有Pip(Python3.0以上一般都會自帶)
1.安裝PyQt5.
pip install PyQt5
這裡還是多說一句吧,由于網絡原因等等吧,上述指令不一定會執行成功。結局辦法:手動下載下傳whl檔案。在執行上述腳本的之後,pip會根據你目前電腦環境版本自動尋找一個最适合你下載下傳的庫。比如:

可以看到,我這裡pip自動為我尋找的PyQt5的版本是PyQt5-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl。諸如此類問題吧,都可以這樣手動解決,下面附上一個下載下傳位址:
https://pypi.org/project/
2.安裝安裝PyQt5-tools
pip install pyqt5-tools
安裝不了參考上面的解決辦法
3.安裝lxml
pip install lxml
4. 最重要的,LabelImg下載下傳Dowmload
三、安裝
編譯pyrcc編譯源檔案
進入到labelImg的安裝根目錄,執行
pyrcc5 -o resources.py resources.qrc
python labelImg.py
不出意外地話,會彈出一個視窗:
貼一下Github上關于labelimg的安裝說名:
至此,安裝工作完成。
四、實驗
資料集不大,模型沒有意義。
1.資料标注流程:
(1)打開labelImg之後,點選Open Dir選擇要處理的圖檔所在的檔案夾
(2)點選Create RectBox建立标注區域,并命名
(3)點選Save,NextImage。以此類推。
在完成所有的資料樣本的标注之後,我們可以得到下面成果,每一張圖檔後面都有一個與其名字相同的xml檔案。
!!!!!!!!圖檔先欠着。
2.XML轉TXT
YOLO需要的是TXT格式,是以我們需要轉換~
打開一個XML檔案先檢視裡面的格式和内容
解釋幾個重點節點:
<width>:圖檔的寬度
<height>:圖檔的高度
<name>:圖檔的類别的名字
<!--------------------------------------->
<xmin>:标注框左上角的x坐标
<ymin>:标注框左上角的y坐标
<xmax>:标注框右上角的x坐标
<ymax>:标注框右上角的y坐标
而TXT要求的格式:
<object-class> <x_center> <y_center> <width> <height>
<!--------------------------------------------------->
<object-class>該圖檔所擁有的類别,在車牌檢測中就是車牌代表
的數字,因為隻有檢測車牌即隻有1類,是以是0
<!--------------------------------------------------->
<x_center> 中心點橫坐标:這裡的坐标并不是絕對坐标(真實坐标),
而是相對于圖檔寬度的相對坐标,轉換公式為:
<x_center> = <absolute_x> / <image_width>,這裡的absolute_x是名額注框中心的橫坐标,即(xmin+xmax)/2
<!--------------------------------------------------->
<y_center> 中心的縱坐标:這裡的坐标并不是絕對坐标(真實坐标),
而是相對于圖檔高度的相對坐标,轉換公式為:
<y_center> = <absolute_y> / <image_height>,這裡的absolute_y是名額注框中心的橫坐标,即(ymin+ymax)/2
<!--------------------------------------------------->
<width> 标注框寬度:這裡的寬度并不是絕對寬度(真實寬度),而是相對于圖檔寬度的相對寬度,轉換公式為<width> = <absolute_width> / <image_width>,即(xmax-xmin) / <image_width>
<height> 标注框寬度:這裡的寬度并不是絕對寬度(真實寬度),而是相對于圖檔寬度的相對高度,轉換公式為<height> = <absolute_height> / <image_height>,即(ymax-ymin) / <image_height>