攝像頭 + TensorFlow,讓人工智能來檢測臟亂房間!

2019年07月23日 作者:suc1247

項目說明:

本指南將引導您完成創建和使用TensorFlow機器學習模型的步驟,以檢測潔凈室與雜亂室。

在實驗的房子里,將這種模式與家庭自動化系統結合起來,如果孩子們沒有保持房間干凈,就阻止他們使用電視進行視頻游戲。

請注意,這個過程實際上可以用于創建一個模型來識別圖像中的任何類型的對象/場景,而不僅僅是一個干凈或雜亂的房間。

步驟1-收集各種培訓數據(房間圖像)

以下是培訓數據的一些指導原則:

  1. 嘗試收集每種類型的至少100個圖像(干凈、雜亂);
  2. 圖像應盡可能“多樣化”,例如不同類型的混亂、不同的照明等;
  3. 盡量不要復制訓練數據中非常相似的圖像;
  4. 給模型提供的訓練數據越多,它就越精確(可以從一組較小的圖像開始,然后隨著您獲得的更多而重新訓練)

 

對于我們的用例,我設置了我的安全攝像頭,以一個小時的間隔將房間(男孩房間、廚房、樓上的游戲室)的照片存檔。然后我會瀏覽并刪除任何看起來太相似的圖片,然后對剩余的照片進行排序,以便對模型進行培訓。

下面是一個定時cronjob的例子,它每小時拍攝一次照片:

對于本次的使用案例,首先設置安全攝像頭,以一小時的間隔存檔房間的照片(男孩房間,廚房,樓上游戲室)。 然后刪除看起來太相似的任何內容,然后對剩余的照片進行排序以訓練模型。

以下是按小時照片拍攝的預定cronjob示例:

修剪和整理照片后,應將它們組織成文件/文件夾結構,如下所示:

在您能夠積累足夠的多樣性和數量來培訓有效模型之前,可能需要幾周時間才能收集照片。

 

步驟2-安裝TensorFlow和下載幫助程序腳本

使用Python的pip實用程序可以輕松安裝TensorFlow。 此外,您需要從TensorFlow github獲取兩個python腳本。

如果您在上述步驟中遇到任何奇怪的錯誤,請嘗試在搜索引擎上搜索錯誤消息。

 

步驟3-訓練龍模型

現在可以發出必要的TensorFlow命令來獲取現有的深度學習模型,并“重新訓練”它以識別圖像(也稱為轉移學習)。

以下命令將使用在ImageNet上預訓練的Inception V3神經網絡架構:

培訓過程需要15-60分鐘,具體取決于您的處理器。 它會緩存它生成的一些數據; 因此,如果您使用某些相同的圖像重新訓練,它將比第一次更快。

新生成的文件rooms.pb和rooms.txt表示將用于將圖像(房間)識別為雜亂或干凈的模型和標簽。

 

步驟4- 識別圖像

在步驟2中下載的label_image.py腳本現在可用于使用在步驟3中訓練的模型“評分”(識別/分類/標記)新圖像:

如果一切正常,您應該會看到一堆調試信息,最后以“分數”結束,這表示模型對照片分類的0到1的信心:

上面的例子表明,該模型89%的人相信所提供的圖像是一個凌亂的房間(只有11%的人相信它是干凈的)。

如上概述所述,您可以使用步驟1-4創建除干凈/凌亂房間之外的許多分類;這將導致更長的列表,例如:

 

步驟5-集成并使模型工作

既然有了一個工作模型,那么就由您來將它與自己的工作流程和需求相集成。

在該項目的例子中,Jarvis使用以下命令來獲得潔凈室的%置信度,然后相應地采取行動:

注意

  1. 從訓練集中“保留”幾個圖像是一個很好的做法,然后可以使用它們在訓練后測試模型。
  2. 在上面的教程中,使用了Inception V3神經網絡模塊。還有許多其他模塊提供不同的性能與精度組合。有些特別適合移動應用。
  3. 如果您有一個NVIDIA GPU,您可以安裝'tesorflow-gpu'而不是常規的'tensorflow',這將利用您的視頻卡進行培訓 - 因此速度更快。但是,您必須首先配置所有先決條件。
  4. 在訓練期間可以使用隨機分散來提高模型的準確性。但是,它們需要更長的時間,并且應該僅在使用GPU進行處理時嘗試。

 

來源:hackaday.io

相關文章

tracer ?? 广西快乐十分即时开奖