訓練自己的物體檢測模型

2021-09-19 10:14:55 字數 2329 閱讀 6785

資料集**一般有兩個:使用labelimg自己標註,或者使用網上開源的資料集。本文使用的是開源的voc 2007,總共有20個分類。資料集包括5001張,以及對應的.xml檔案,分別存放在imageannotation資料夾中。

本文通過.csv檔案生成.record檔案,如果習慣直接使用.xml檔案生成.record檔案,可以跳過這一步。轉換程式xml_to_csv.py已準備好,直接執行即可在當前路徑下生成labels.csv,順便說一下,本專案的.py程式都配備了乙個同名的.bat啟動程式,直接雙擊後者也可以,轉換效果如圖:

注意:在準備資料階段,可以同步準備測試集。在xml_to_csv.py中需要修改如下兩個引數,對應測試集的.xml路徑和輸出的.csv檔名:

生成.record檔案:

程式也已準備好:generate_tfrecord.pygenerate_tfrecord.bat,我們只需要指定.bat檔案中的三個引數即可執行。分別是:

csv_input:標籤檔案csv

images_dir:存放路徑

output_path:輸出的檔案

注意:generate_tfrecord.py有一段**將20個類別轉換為數字,如果改變資料集,這裡是需要做相應調整的:

準備.pbtxt檔案

這個檔案用來解碼數字和類別,要和之前generate_tfrecord.py中的對應關係一致:

設定配置檔案

./object_detection/samples/configs/下有很多配置檔案,對應各個模型,此處我們選擇ssd_mobilenet_v1_coco.config,將其複製到當前路徑,然後修改幾個引數:

num_classes: 20

batch_size: 16 # 計算力強的話可以增大

num_steps: 2500 # 訓練步數,達到就停止,即使再次執行

fine_tune_checkpoint: 「./training/model.ckpt」

執行train.bat,第乙個引數固定,第二個是配置檔案,第三個是模型輸出路徑

執行結果

此時,我們還可以改大配置檔案中的num_steps,繼續訓練

我們之前輸出的是.ckpt模型,為了方便**,我們可以先把模型轉化為.pb格式,執行generate_tfrecord.bat,第乙個引數固定,第二個是配置檔案,第三個是選擇要轉化的模型,第四個是新模型的輸出路徑

**的程式和之前的一樣,只刪掉了現在模型的部分,直接用我們自己的模型

平面物體檢測

這個教程的目標是學習如何使用 features2d 和 calib3d 模組來檢測場景中的已知平面物體。測試資料 資料影象檔案,比如 box.png 或者 box in scene.png 等。建立新的控制台 console 專案。讀入兩個輸入影象。mat img1 imread argv 1 cv...

DPM物體檢測相關

deformable parts model dpm 簡介 dpm deformable part model 模型結構初解 關於dpmv5 deformable part model 演算法中model結構的解釋 把訓練出來的模型檔案.mat格式轉為.txt格式的 hog 用於人體檢測的梯度方向直...

物體檢測網路概述

yolo 實時快速目標檢測 yolo詳解 傳統目標檢測系統採用deformable parts models dpm 方法,通過滑動框方法提出目標區域,然後採用分類器來實現識別。近期的r cnn類方法採用region proposal methods,首先生成潛在的bounding boxes,然後...