當前位置:
首頁 > 最新 > 使用TensorFlow對象檢測介面標註數據集

使用TensorFlow對象檢測介面標註數據集

AiTechYun

編輯:yuxiangyu

當為機器學習對象檢測和識別模型構建數據集時,為數據集中的所有圖像生成標註非常耗時。而這些標註是訓練和測試模型所必需的,並且標註必須是準確的。因此,數據集中的所有圖像都需要人為監督。不過,這並不意味著機器學習模型不能提供幫助。

在僅包含60個圖像的小數據集上訓練之後,檢測賽車

因為,檢查和糾正大多數標註都正確的圖像通常比所有的標註都由人完成省時。在處理包含數千個圖像的數據集時,即使每個圖像節省幾秒鐘,也可以最終節省數小時的工作時間。

本文的目的是要證明,對於不需要高精度的物體識別和檢測任務,小的數據集和「開箱即用」的模型就可以提供不錯的結果。

以圖像中的賽車檢測為例,本文將通過以下步驟進行指導:

1. 在小數據集中標註圖像。

2. 從這個數據集中訓練一個簡單的模型。

3. 使用這個簡單的模型來預測新數據集圖像的標註。

代碼和數據請訪問下方鏈接。本文假設你已經安裝了TensorFlow Object Detection API。

GitHub:https://github.com/AndrewCarterUK/tf-example-object-detection-api-race-cars


PASCAL VOC文件格式是用於圖像標註的格式。這是Image Net使用的XML文件格式。而LabelImg程序可以用來生成和修改這種格式的標註。

範例庫中的數據目錄顯示了使用此方法生成的標註(如下鏈接)。這種標記的映射文件需要手動創建,因為它不是由LabelImg產生。

https://github.com/AndrewCarterUK/tf-example-object-detection-api-race-cars/tree/master/data

該TensorFlow目標檢測介面提供了關於調整和利用現有模型的自定義數據集的詳細文檔。

訓練模型的基本過程是:

1. 將PASCAL VOC原始數據集轉換為TFRecord文件。範例庫提供了一個可用於執行此操作的Python腳本。

2. 創建一個對象檢測管道。該項目提供有關如何執行此操作的官方文檔,並且在代碼庫中有一個示例。存儲庫中的示例基於ssd_mobilenet_v1_coco檢查點,需要更多檢查點可從官方文檔下載。

3. 訓練模型。可以在本地或在Google雲平台上完成。取得這篇文章中的結果大約迭代1萬次。

4. 將最後一個檢查點導出到推理圖(inference graph)。

這個過程的最終結果將是一個名為frozen_inference_graph.pb的文件。它可以用來預測標註的模型。


可以使用pascal- vocwriter庫生成在PASCAL VOC文件格式的標註。它有個非常好用的介面,下面的代碼展示了向圖像添加「cat」標註的示例:

範例庫中的annotate.py文件使用這個庫來調整官方文檔中的推理示例,以創建PASCAL VOC標註文件而不是進行圖像可視化。

可以根據數據集和操作符的需要優化生成注釋的閾值。合適的閾值應該在錯誤率與錯過率之間找到平衡點。如果刪除錯誤標註對於操作員而言比標註遺漏容易,那麼應該使用較低的閾值。

下面是來自簡易模型的三個預測。儘管數據集非常小,訓練次數也不多,但模型依然做出了不錯的預測,可以節省標註這些圖像的時間。

在這個例子中,兩個標註正確,一個錯過。在最遠的車中建議標註的可能性數值稍有下降。

這些圖像需要很長時間手動標註。模型在縮減大部分工作量方面做了不錯的貢獻。對於一些模糊的汽車來說,它也在努力辨認,但是這些模糊的汽車人類也很難辨別。

兩輛車都被識別出來,但是紅的那個邊界框太寬了。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 ATYUN訂閱號 的精彩文章:

繼在中國開設AI中心兩個月後 Google這次又將一個重大研究項目轉向法國
Facebook的新演算法可以預測出你的貧富階級

TAG:ATYUN訂閱號 |