TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3'
--input_shape=1,XXX,XXX,3 輸入的圖片大小,需要與配置文件中一致
--allow_custom_ops
在將tflite模型放進手機之前,我在python里加載tflite模型測試了一次,流程類似加載pb模型
第一步,導入模型
第二步,獲得輸入和輸出的tensor
第三步,讀取輸入圖像,feed給輸入tensor
可以采用PIL或cv2將圖像讀入,轉為numpy數組,然后賦值給input_data
第四步,運行模型
第五步, 獲得輸出
參考輸入tensor的表示方法,目標檢測的輸出有4個,具體的值可以通過output_details[0]['index']、output_details[1]['index']、output_details[2]['index']、output_details[3]['index']獲得
這里有一個我踩到的坑,驗證tflite模型時,我采用了和加載pb模型完全相同的圖片預處理步驟,輸出的結果完全不同。幾番檢查之后,發現問題出在模型轉換時。運行python tflite_買粉絲nvert.py時,輸入數組的名稱為normalized_input_image_tensor,而我訓練時采用的是未經normalized的數組。所以在模型轉換時,tensorflow內置了對input進行normalized的步驟。因此在調用tflite模型時,同樣需要在圖像預處理中加入這一步。 nomlized的方法為除以128.0再減去1,保證輸入的值在[-1,1)范圍內。