微信小程式運行TensorFlow 的Demo,程式碼與小程式「AI Pocket」不定期同步更新。
推薦系統:MacOS
NodeJS:v18.xx
微信基礎庫版本:>= 2.29.0
微信開發者工具:>= v1.06.2210310
微信開發者工具的專案配置:
appid
配置npm i
安裝依賴(有時可能需要使用npm i --force
)npm run build
編譯依賴改造tfjs-core,使TensorFlow.js 可以運作在小程式中。小程式呼叫攝影機成像,將圖片顯示在canvas
上,透過小程式的API 可以取得到canvas
的「類別ImageData」數據,再呼叫tfjs 的API 實現預測。
對實現的坎坷經歷感興趣的,可以看看博文tfjs 移植到微信小程式和TensorFlowJS 移植再次嘗試。
由於tfjs 已經優雅地實現對多平台的支持,具體表現為可以擴展platform
實現“移植”,而且微信小程式也開放了更多有利的API,目前不再採用侵入式地魔改tfjs 的方式,而是藉助tfjs 的微信插件來提供模型的載入、訓練、預測等功能。
儘管相比以前方便多了,但是由於小程式的onCameraFrame
獲取到的幀數據與所展示的不一致,而且是在不同的設備上(甚至相同設備的前後攝像頭)對原始幀數據的處理方式都不一樣,要得到準確的預測結果,真叫人頭大。
目前,我已經摸索出一套幀數據裁切方式,而且簡單測試了下,效果不錯。如果有照顧不到的機型,歡迎提Issues & PR 。
現在小程式的幀資料裁切方式在不同平台已經趨於一致。
小程式改名「AI Pocket」了,感覺還是挺有意義的,所以我打算認真做好這個小程式了。附上小程式二維碼,歡迎大家體驗& 提出改進意見!
本人在前後端開發、Docker & Swarm、持續部署、人工智慧NLP 領域都有所積累,能夠快速提供成套的解決方案,如果有機會,歡迎透過各種聯繫方式諮詢合作事宜。
另外,本專案代碼開源,歡迎各位有興趣的同學一起添磚加瓦。當然,也不限製商用,但請尊重他人的勞動成果,不要做一些「不厚道」的事。如果本項目對你有幫助,歡迎隨意打賞。
可以關注下我的個人博客,或個人微信公眾號“獵人雜貨鋪”,會經常有一些技術分享& 生活感悟,歡迎多多交流!
追蹤公眾號,留言取得「AI Pocket 交流群」的二維碼,方便交流! ~