Android:上海垃圾分類必備,圖像識別垃圾分類app的製做

隨着6月結束,7月開始,最近上海最火的話題是垃圾分類無疑了。。上海人民是天天遲早兩小時定時定點扔垃圾。npm

Ps:小編好幾個上海朋友都已經請假回老家了2333api

乾溼垃圾要分開,把溼垃圾從垃圾袋裏倒進桶裏,再把垃圾袋扔進幹垃圾桶數組

龍蝦 殼是幹垃圾,龍蝦 肉是溼垃圾,請你分開扔,謝謝瀏覽器

豬能吃的是溼垃圾,不能吃的是幹垃圾,吃了會死的是有毒垃圾,賣了能買豬的是可回收垃圾bash

看完是否是要崩潰了?!別擔憂,本人週末花一下午精心製做的 看圖識垃圾 app,主要依賴 tensorflow coco-ssd 來識別照片中的多物體,而後找了個不知名的api,返回垃圾的分類。例如:架構

製做過程簡述

首先,網上已經有不少能夠輸入文字查詢垃圾分類的網站了,我靈光一閃:要是能夠直接經過圖像垃圾分類豈不更好。而後找到了tensorflow.js 的官方指南:app

<!-- Load TensorFlow.js. This is required to use coco-ssd model. -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"> </script>
<!-- Load the coco-ssd model. -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/coco-ssd"> </script>
<img id="img" src="cat.jpg"/>
<script>
  // Notice there is no 'import' statement. 'cocoSsd' and 'tf' is
  // available on the index-page because of the script tag above.
  const img = document.getElementById('img');
  // Load the model. 在瀏覽器裏fetch和加載模型到內存可能要花1分鐘以上
  cocoSsd.load().then(model => {
    // detect objects in the image.
    model.detect(img).then(predictions => {
      console.log('Predictions: ', predictions);
    });
  });
</script>
複製代碼

可見,Google tensorflow 已經把經常使用的機器學習模型作到開箱即用的水平,很是方便。固然,這個多物體檢測的函數返回的是個數組,包含了對象在圖中的bbox,並且裏面的分類標籤都是英文的:機器學習

[{
  bbox: [x, y, width, height],
  class: "person",
  score: 0.8380282521247864
}, {
  bbox: [x, y, width, height],
  class: "kite",
  score: 0.74644153267145157
}]
複製代碼

那麼問題來了:網上的垃圾分類api 都是要求輸入中文的!!我第一時間想到了 Bing Translate API 把英文翻譯成中文再去查詢分類。因此又去申請了個Azure 的免費帳號,還好我有master card,付了一美金才搞定。具體的能夠參考最後的官方文檔連接函數

通過一頓折騰,終於搞定,就是識別率很低。畢竟沒有專門訓練垃圾分類的模型,只是用現成的物體檢測模型。學習

因此有不少搞笑的結果:

————————分割線————————

若是你看到了這裏,以爲文章寫得不錯就給個唄?若是你以爲那裏值得改進的,請給我留言。必定會認真查詢,修正不足。謝謝。

爲何某些人會一直比你優秀,是由於他自己就很優秀還一直在持續努力變得更優秀,而你是否是還在知足於現狀心裏在竊喜!但願讀到這的您能點個小贊關注下我,之後還會更新技術乾貨,謝謝您的支持!

轉發分享+關注,天天獲取更多資料

Android架構師之路很漫長,一塊兒共勉吧!

相關文章
相關標籤/搜索