好的,假設在你的農地旁,
有人或動物不時就發出類似卡車或是車子的聲音,
讓你的手機半夜一直發出警報,
這個時候該怎麼辦呢?
也許我們可以搭配object detection來確認是不是真的有人在偷農作物。
我建議是使用Linux或是用colab的環境來安裝使用object detection,
我曾經成功使用windows系統訓練過一次自己的模型,
但卻不想再成功一次了。
如果想挑戰看看使用windows的環境或是自己訓練辨識特定物件的模型可以參考下面的文件。
object-detection-api 文件
https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/
可以應用像是工廠辨識特殊零件損壞,以及補救維修資訊的顯現。
或是植物特殊的病蟲害資訊顯現,以及應對方法。
但這篇介紹是從已經訓練好的模型來對圖片進行物件辨識。
教學網頁:
https://www.tensorflow.org/hub/tutorials/tf2_object_detection
安裝及引入:
建立將圖片轉成numpy array的function:
可供選擇已經訓練好的object detection模型,
如果有更喜歡的可以從tf hub查找,
主要是看有辨識到哪些物件,符不符合需求。
測試圖片 及
COCO17_HUMAN_POSE_KEYPOINTS:辨識姿勢所需要的list,如果辨識之後不需要看人體姿勢,不放這個list也可以
安裝Object Detection API
載入後續需要使用到的功能:
那我們將標籤對應輸出的index號碼使用一個字典來保存:
也可以從github查看這個模型所有的標籤及對應id:
https://github.com/tensorflow/models/blob/master/research/object_detection/data/mscoco_label_map.pbtxt
用tf_hub載入模型:
將測試圖片轉成numpy array,
如果有需要的話,下面也提供了將圖片翻轉及轉灰階的方法:
進行辨識:
將推論結果作圖:
假設不想看到人體姿勢的辨識,
可以將 keypoint, keypoint_scores, keypoint_edges這三個參數拔除。