由於這一段時間從事目標檢測相關工作,因而接觸到yolov3,進行目標檢測,具體原理大家可以參考大神的博客目標檢測(九)--YOLO v1,v2,v3,我就不細講了,直接進入正題,如何利用深度學習框架PyTorch對自己的數據進行訓練以及最後的預測。
一、數據集
首先我們要對自己的數據進行標註,標註的工具LabelImg,如果是windows用戶的話,可以直接下載可執行文件,labelImg的下載地址以及使用,可以參考博客windows下使用labelImg標註圖像,使用的圖示如下
得到標註後的xml文件
<annotation>
<folder>Desktop</folder>
<filename>BloodImage_00000.jpg</filename>
<path>/Users/xxx/Desktop/BloodImage_00000.jpg</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>640</width>
<height>480</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>cell</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>200</xmin>
<ymin>337</ymin>
<xmax>304</xmax>
<ymax>446</ymax>
</bndbox>
</object>
</annotation>
我們本次訓練的數據集是進行細胞的檢測,已經標註好的數據鏈接細胞檢測,主要分兩部分圖像和標註。
二、訓練代碼
由於本次不採用官網的代碼,使用PyTorch框架,這裏我們採用github上https://github.com/ultralytics/yolov3,clone下來,目錄如下
注:makeTxt.py和voc_label.py文件是後面添加到。
三、數據預處理
爲了能夠用clone下來的工程進行訓練和預測,我們需要對數據進行處理,以適應相應的接口。
1.將細胞數據Annotations和JPEGImages放入data目錄下,並新建文件ImageSets,labels,複製JPEGImages,重命名images,