[筆記] [ToY] Android相機程序:把Android變成Kinect第一步

幾個月前看到了PoseEstimation的論文,大喜;人的姿勢可以用tensorflow學習一下就搞定啦!
那多年來想用手機實現一個kinect的願望不就已經基本達成了麼,一看模型大小,400多MB,而且FPS也不是很高;再見…
不過先寫一個實時抓相機圖像的Android應用吧,隨時準備把pose estimation接上去,這樣寫個restful server以後用手勢就可以控制電腦了,綁定成鼠標事件,就能把Android變成Kinect。
目前的代碼就是實現調用了兩套相機API,一套Camera v1的,一套v2的兼容儘量廣的平臺。個人用起來v1的速度比v2感覺要快不少,燃餓,華爲的Android竟然直接kill了v1,只有小米還支持v1…

代碼敬上: https://github.com/stallpool/OpenEyes

代碼都是七拼八湊從網上搜刮來的,這裏就把它當成一個template,當以後寫camera程序seed,最近還把它轉成kotlin了。v1沒什麼好說的,就是參照官方的例子就好了;到了v2竟然沒有好的例子!關鍵是我的實現不是直接顯示surface,而是要抓到相機得到的圖片,然後draw出來,這樣方便加濾鏡。在顏色編碼上弄了N久,最後還是stackoverflow的大神解決了yuv420轉N21轉RGB的方法。

當然,除了直接顯示相機設備實時抓到的圖片,這個template還實現了簡單的濾鏡,比如直方圖均衡器,3*3卷積核濾鏡,Sobel邊緣檢測算子(就是提取圖片中的邊緣)。只是那個邊緣檢測算子FPS不夠,還需要繼續優化。暫時還不想把OpenCV直接編譯進去,雖然會快很多。不過至少可以把tensorflow中mobile版的圖像中對象識別拉進去玩了。
Toy完成。繼續開發。Enjoy.

J.Y.Liu
2018.04.20

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章