Github 項目推薦 | 使用TensorFlow進行實時目標檢測的 API

這是一個基於遷移學習的目標檢測API,可檢測圖像、視頻或實時網絡攝像頭中的所有目標。SSD模型和Faster R-CNN模型連同Tensorflow中的標籤圖一起在Mobile Net COCO數據集上進行了預訓練。這些模型用於檢測圖像、視頻或實時網絡攝像頭中捕獲的目標。OpenCV用於流目標和預處理。

Github​項目地址

//github.com/kaushikjadhav01/Real-Time-Object-Detection-API-using-TensorFlow

一些測試截圖

使用SSD模型進行圖像目標檢測的輸出結果

使用SSD模型進行視頻目標檢測的輸出結果

使用SSD模型進行網絡攝像頭目標檢測的輸出結果

使用Faster R-CNN模型進行圖像目標檢測的輸出結果

使用Faster R-CNN模型進行視頻目標檢測的輸出結果

使用Faster R-CNN模型進行網絡攝像頭目標檢測的輸出結果

技術概念

Faster RCNN:
是由Ross Girshick, Shaoqing Ren, Kaiming He和 Jian Sun 在2015年提出的目標檢測架構,並且是使用卷積神經網絡(如YOLO(You Look Only Once,僅看一次)和SSD(Single Shot Detector,單幀檢測器))的著名目標檢測架構之一。
更多信息可以查看://towardsdatascience.com/faster-rcnn-object-detection-f865e5ed7fc4

Single Shot Detector(SSD):
像YOLO一樣,僅需使用一張照片即可使用多框檢測圖像中存在的多個物體。它在速度和高精度目標檢測算法方面明顯更快。
更多信息可以查看://towardsdatascience.com/ssd-single-shot-detector-for-object-detection-using-multibox-1818603644ca

標籤映射:
是一種將文本與映射符號合理放置在映射上的技術,共同代表現實世界的特徵和屬性。有效地使用文字可以創建清晰、信息豐富且有吸引力的映射。TensorFlow需要標籤映射,即將每個使用的標籤映射為整數值。訓練和檢測過程都使用此映射圖。
更多信息可以查看://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html

推理圖:
推理圖是一個命題圖,其中某些弧和某些反弧都增加了信息可以通過其流動的通道,這意味着推理圖既是知識的表示,又是對知識進行推論的方法。Channels 有兩種形式。第一種類型,即 i-channels,被添加到反向先行弧中,之所以這樣命名,是因為它們承載的消息報告從先前節點到規則節點的「我是真實的」或「我被否定」。Channels 也可以被添加到隨後的弧中,稱為 u-channels,因為它們將消息傳遞給結果,從而報告「您是真實的」或「您被否定的」。規則通過共享子表達式連接。
更多信息可以查看://www.cogsys.org/papers/2013poster15.pdf

協議緩衝區(Protobuf):
是一種序列化結構化數據的方法。在開發程序之間通過導線相互通信或存儲數據時非常有用。該方法涉及描述某些數據結構的界面描述語言和從該描述生成源代碼的程序,該程序用於生成或解析表示結構化數據的位元組流。
更多信息可以查看://www.cogsys.org/papers/2013poster15.pdf

使用的技術

  • TensorFlow
  • Keras
  • OpenCV
  • IPWebcam
  • Python

如何安裝使用

  1. 按照說明安裝TensorFlow API :
    //github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md

  2. 下載我的倉庫並將倉庫的jupyter notebook文件放在 Tensorflow API 的 models/research/object_detection 文件夾中

  3. 如果要使用智能手機攝像頭代替筆記本電腦網絡攝像頭,請從應用程序商店上安裝IPWebcam應用程序。打開應用程序,然後點擊Start Server

  4. 將我的jupyter筆記本中的IP地址替換為智能手機上IPWebcam應用程序中顯示的IP地址,然後運行jupyter notebook

項目作者

Kaushik Jadhav