圖像識別垃圾分類app的製做

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

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

龍蝦🦞殼是幹垃圾,龍蝦🦞肉是溼垃圾,請你分開扔,謝謝😂

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

佩琦識垃圾

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

screenshot

製做過程簡述

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

<!-- 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,並且裏面的分類標籤都是英文的:node

[{
  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,付了一美金才搞定。具體的能夠參考最後的官方文檔連接git

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

因此有不少搞笑的結果 😂: npm

啼笑皆非

在線體驗

建議用電腦在線體驗地址,加載模型就得花一分鐘:api

感興趣的能夠看github 項目地址數組

也歡迎掃碼體驗: 瀏覽器

二維碼

參考資料

tensorflowjs-models

Bing 翻譯官方文檔

Bing 翻譯官方例子

相關文章
相關標籤/搜索