YOLO在ios上的實現(學習探索)
2017國慶節前在玩yolo,試了三種機器,mac book pro 2013(無nividia獨顯)、 ibm筆記本工作站2013(nividia k1000m)、巨集碁筆記本2014( nvidia geforce 555m),mbp跑tensorflow的object detection api demo能達到FPS 3.5(本地編譯優化tensorflow後),ibm筆記本的k1000m跑gpu模式的yolo2只能達到1.x FPS,555m跑gpu模式的yolo2也只能達到5.x FPS(tiny模型能達到9.x);
猶豫心動了好久是否買一個新的遊戲本來搞dl+cv,配1080N卡,titan x還沒有筆記本的,後來看nividia黃教主每年產品升級很快,那個jet啥的一張信用卡大小的卡集成了N多能力很強大,這花1.5萬RMB買個本本過兩年也就落伍了,猶豫沒動;也看了阿里雲上的gpu server,還沒下決心;
國慶節期間,發現國外大神Matthijs Hollemans已經在ios上用了三種ML框架實現了yolo:Forge、CoreML、MPS NN graph,後兩者是apple新發布的api:
https://github.com/hollance
經過測試,iphone7上實時物體檢測FPS能達到17, ipad pro上能達到29!
目前遇到的問題是,他只用了tiny模型,只能檢測20種物體,我用yad2k轉換yolo-coco模型(80種)到keras模型(h5)後能轉換成功、測試靜態圖片識別成功,但是轉換為coreml和nngraph模型時,都告失敗:
ValueError: bad marshal data (unknown type code)
Hollemans在https://github.com/hollance/YOLO-CoreML-MPSNNGraph/issues/12答覆說目前只支援tiny模型,不支援full模型,但是為何
python3 test_yolo.py model_data/tiny-yolo-voc.h5 -a model_data/tiny-yolo-voc_anchors.txt -c model_data/pascal_classes.txt
能成功識別,能否說明還是coreml.py和nngraph.py
這兩個轉換程式碼有問題?
有待繼續研究。。。