Yolo V3識別顏色及長短袖

 

一、實現功能:識別長短袖衣服及長短褲子的顏色(分類爲黑、白、彩)

 

二、運行環境

1. Ubuntu16.04

2. TensorFlow-gpu 1.8.0

3. Keras 2.1.5

4. GPU rtx2060

三、創建數據集

1. 使用VOC2007數據集的文件結構:

  文件結構如下圖,可以自己創建,也可以下載VOC2007數據集後刪除文件內容。

 

 

2. 標註圖片:

  使用LabelImg(https://github.com/tzutalin/labelImg)對訓練圖片進行標註生成標籤,然後將所有圖片放在 JPEGImages 文件夾下,將所有標籤(.xml)放在 Annotations 文件夾下。

3. 劃分數據集:

  python test.py  70%爲訓練集(train.txt), 15%爲測試集(test.txt), 15%爲評估數據集(val.txt)。txt文件保存在 ImageSets/Main 下。

4. 轉換標籤格式:

  python voc_annotation.py, 在執行之前,需要根據數據集的實際類別,修改voc_annotation.py中的classes(與標註時的class名字一樣)。執行之後,將會得到train.txt、test.txt、val.txt,文本內容是:

  img_path、box位置(top left bottom right)、類別索引(0 1 2 ...),類似這種:

5. 使用kmeans生成anchors

    python kmeans.py 執行前確定class(類別)爲自己所期望的,執行後會在model_data文件夾下生成 yolo_anchors.txt文件。

四、準備訓練

1.修改yolo3的網絡結構:打開yolo3.cfg,搜索"yolo",如下圖所示,需要修改filters、classes、random,一共可搜索到三處yolo,每處都需要修改。

 

  filters = 3x(5+len(classes))

  classes = len(classes)

  random:默認是1,顯存小改爲0

2. 確認相關依賴文件:

  a. model_data/voc_classes.txt:與你的class一致,一般需要手動修改;

  b. model_data/yolo_anchors.txt:確認存在即可;

  c. model_data/yolo_weights.h5:由 yolov3.weights 轉換得到,需要先下載yolov3.weights,然後 python convert.py yolov3.cfg yolov3.weights model_data/yolo_weights.h5

  d. 存在logs文件夾

3. 開始訓練:python train.py

 

五、 各模型測試精度及標註圖片數量

各模型測試所用圖片爲40張左右

Clothe_color_recognized:

成果:

  1. 訓練loss爲17.570,測試loss爲val_loss15.265
  2. 標註圖片數量爲546張
  3. 準確率爲90.67%,召回率爲24.67%,MAP精度爲31.5%

 

Clothe_ShortOrLong_recognized:

成果:

  1. 訓練loss爲17.429,測試loss爲val_loss19.134.h5
  2. 標註圖片數量爲538張
  3. 準確率爲82.5%,召回率爲55.0%,MAP精度爲56.87%

 

Jeans_color_recognized:

成果:

  1. 訓練loss爲12.735,測試loss爲val_loss14.830
  2. 標註圖片數量爲618張
  3. 準確率爲90.33%,召回率爲77.0%,MAP精度爲74.32%

 

Jeans_ShortOrLong_recognized:

成果:

  1. 訓練loss爲12.406,測試loss爲val_loss12.808
  2. 標註圖片數量爲427張
  3. 準確率爲96.5%,召回率爲95.0%,MAP精度爲95.85%

注:經測試在使用GPU RTX2060(6GB)的條件下, 1秒鐘可測試15張圖片左右

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章