Keras深度學習——建立自定義目標檢測資料集
theme: hydrogen
持續創作,加速成長!這是我參與「掘金日新計劃 · 6 月更文挑戰」的第24天,點選檢視活動詳情
前言
我們知道,目標檢測 (object detection
) 的輸出是目標的邊界框,其中邊界框用於定點陣圖像中的目標物件。要構建演算法檢測影象中目標周圍的邊界框,就必須首先建立輸入-輸出
對映,其中輸入是影象,而輸出是給定影象中目標周圍的邊界框。
當我們檢測到邊界框時,我們需要檢測影象周圍邊界框左上角的畫素位置,以及邊界框的相應寬度和高度。要訓練能夠輸出邊界框的模型,我們需要訓練集影象以及訓練資料集影象中所有物件的相應邊界框座標和類別標籤。
建立自定義目標檢測資料集
在本節中,我們將介紹如何建立訓練資料集的方法,其中將影象作為輸入,並將相應的邊界框儲存在XML檔案中。我們將學習使用labelImg包來標註邊界框和相應目標物件的類。在不同作業系統中有不同的方式使用 labelimg
包標註影象中物件的邊界框,不同作業系統的安裝教程可以參考官方網頁。最為通用的方法是使用 pip
進行安裝,與其它第三方庫安裝方法相同:
shell
$ pip3 install labelImg
windows
通過官方連結下載 labelImg
的可執行檔案,解壓後開啟 labelImg.exe
程式,其介面如下圖所示:
在 data
資料夾的 predefined_classes.txt
檔案包含了影象中所有可能的標籤,我們需要確保每個類別都佔據單獨一行,如下所示:
單擊 “Open
” 開啟影象,然後單擊 “Create RectBox
” 為影象繪製邊界框。繪製邊界框完成後,將彈出為目標物件選擇的類別視窗,為標記的物件選擇所屬類別,如下所示:
單擊 Ok
完成此物件的標註,標註圖中所有物件後,單擊 Save
並儲存 XML
檔案:
儲存完成後,可以檢查 XML
檔案。繪製矩形邊界框後,XML
檔案的內容如下所示:
在上圖中,可以看到,bndbox
包含影象中物件相對應的 x
和 y
座標的最小值和最大值的座標,即邊界框左上角和右下角座標。此外,我們可以通過 name
提取到邊界框中物件相對應的類別標籤。
Ubuntu
在 Ubuntu
中,可以通過執行以下命令來使用 labelimg
包:
shell
$ sudo apt-get install pyqt5-dev-tools
$ sudo pip3 install -r requirements/requirements-linux-python3.txt
$ make qt5py3
$ python3 labelImg.py
可以在 GitHub 連結中找到指令碼labelImg.py。執行上述命令後,接下來使用 labelimg
包標註目標物件邊界框和類別的用法與 Windows
中相同。
MacOS
在 macOS
中,可以通過執行以下命令來使用 labelimg
包:
shell
$ brew install qt
$ brew install libxml2
$ make qt5py3
$ python3 labelImg.py
可以在 GitHub 連結中找到指令碼 labelImg.py
。執行了以上命令之後,接下來使用 labelimg
包標註目標物件邊界框和類別的用法與 Windows
中相同。
- Python 常用字串操作
- 使用 dlib 進行人臉識別
- OpenCV 人臉檢測詳解(僅需2行程式碼學會人臉檢測)
- Keras深度學習——使用fastText構建單詞向量
- Keras深度學習——使用skip-gram和CBOW模型構建單詞向量
- Keras深度學習——從零開始構建單詞向量
- Keras深度學習——生成對抗網路
- Keras深度學習——建立自定義目標檢測資料集
- PyTorch強化學習——基於值迭代的強化學習演算法
- PyTorch強化學習——模擬FrozenLake環境
- PyTorch強化學習——策略評估
- PyTorch強化學習——馬爾科夫決策過程
- Keras深度學習——DeepDream演算法生成影象
- Keras深度學習——使用對抗攻擊生成可欺騙神經網路的影象
- PyTorch強化學習——策略梯度演算法
- Keras深度學習——交通標誌識別
- Keras深度學習——面部特徵點檢測
- Keras深度學習——基於Inception v3實現性別分類
- Keras深度學習——視覺化神經網路中間層輸出
- Keras深度學習——使用預訓練VGG16模型實現性別分類