1. 程式人生 > >YOLO在ios上的實現(學習探索)

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 這兩個轉換程式碼有問題?

有待繼續研究。。。

相關推薦

YOLO在ios實現學習探索

      2017國慶節前在玩yolo,試了三種機器,mac book pro 2013(無nividia獨顯)、 ibm筆記本工作站2013(nividia k1000m)、巨集碁筆記本2014( nvidia geforce 555m),mbp跑tensorflow的

梯度下降演算法及python實現學習筆記

梯度下降(Gradient Descent)演算法是機器學習中使用非常廣泛的優化演算法。當前流行的機器學習庫或者深度學習庫都會包括梯度下降演算法的不同變種實現。 本文主要以線性迴歸演算法損失函式求極小值來說明如何使用梯度下降演算法並給出python實現。若有不正確的地方,希

JAVA8學習——Stream底層的實現學習過程

Stream底層的實現 Stream介面實現了 BaseStream 介面,我們先來看看BaseStream的定義 BaseStream BaseStream是所有流的父類介面。 對JavaDoc做一次解讀,瞭解提供的所有方法。 /** * Base interface for streams, which

Swiper實現拉重新整理和下拉載入更多學習筆記④

簡單粗暴的放碼 一個簡單的效果 分頁器效果中加下拉重新整理和上拉載入功能 HTML結構: <div class="a">標題</div> <div class="tab"> <a class="active" href="j

spring實現文件圖片解析

handle exc 所有 sub str [] sys script ota 合抱之木,生於毫末,千裏之行,始於足下,要想了解spring的文件上傳功能,首先要知道spring是通過流的方式將文件進行解析,然後上傳。那麽是不是所有需要用的文件上傳的地方都要寫一遍文件解析器

使用Unity實現VR中在黑板寫字升級篇----- 加入黑板擦

turn isequal 是什麽 true int bool float sta oca 黑板擦的功能其實和畫筆是一樣的,只是黑板擦設置的顏色是畫板最原始的顏色,而筆設置的是其他的顏色。 所以最大的不同時,當手柄握住黑板擦時和握住筆時的函數實現是不一樣的;實現這個功能之後,

接口自動化實現圖片selenium/RF

herf ict 上傳圖片 帶圖片 amp 怎麽 top .get imp 最近做自動化碰到一個問題: 就是帶圖片上傳的不知道怎麽實現自動化:整理了下實現如下: 上傳圖片postman 結果請求如下,上傳圖片後返回一個圖片地址: post請求 body 是form-da

FTP主動模式和被動模式在VRP實現實驗、報文和理論解析

理解 客戶 warning 簡述 查看 inf 要求 sep mac 嗯~點關註不迷路 1.簡述主動模式的FTP建立連接的主要步驟 圖1-19 FTP主動模式示意圖基本原理FTP(文件傳輸協議)的特殊性: 大多數的TCP服務是使用單個的連接,一般是客戶向服務器的一個周知端口

世界最好的c++ rpc實現基於cpp14

世界上最好的c++ rpc實現,基於cpp14 server: #include "buttonrpc.hpp" int foo(int age, int mm){ return age + mm; } int main() { buttonrpc server;

【機器學習】Apriori演算法——原理及程式碼實現Python版

Apriopri演算法 Apriori演算法在資料探勘中應用較為廣泛,常用來挖掘屬性與結果之間的相關程度。對於這種尋找資料內部關聯關係的做法,我們稱之為:關聯分析或者關聯規則學習。而Apriori演算法就是其中非常著名的演算法之一。關聯分析,主要是通過演算法在大規模資料集中尋找頻繁項集和關聯規則。

Hibernate的實現基於MavenHibernate學習

一、建立Maven專案 二、新增hibernate所需的包 在pom.xml檔案標籤當中新增如下依賴: <!-- 新增Hibernate依賴 --> <dependency> <group

【整理css知識點】實現審閱列表後一行消失,另一行補純css

問題1:解決給表格增加動畫後不破壞佈局問題 解決:表格display是table-cell,所以設定block即可 問題2:當表格一行被刪除,下一行自動補上 問題2補充(table下tr th,table的display是table-cell,tr的display是ta

relativelayout和LinearLayout在實現效果同等情況下選擇使用哪個?為什麼?學習筆記

首先介紹:LinearLayout是線性佈局控制元件,它包含的子控制元件將以橫向或豎向的方式排列,按照相對位置來排列所有的widgets或者其他的containers,超過邊界時,某些控制元件將缺失或消失。因此一個垂直列表的每一行只會有一個widget或者是container

JDK1.8 AbstractQueuedSynchronizer的實現分析學習筆記

lock方法會呼叫acquire方法,該方法在AQS中實現 public final void acquire(int arg) { if (!tryAcquire(arg) && acquireQ

JS簡單實現檔案無需外掛

<span class="up-btn" id="selectFile">請選擇檔案</span> <input type="file" name="fileupload" style="FILTER: alpha(opacity=0); mo

HashMap底層實現原理學習筆記

  看了一上午,原始碼看的頭疼,果斷放棄,放個連結吧 https://www.cnblogs.com/chengxiao/p/6059914.html jdk1.8原始碼解析:https://blog.csdn.net/xp2234/article/details/801

阿里oss 實現檔案前端程式碼

1.本人專案使用jquery寫的,而阿里雲oss程式碼是原生js所以有些地方會兩者共用。 2.這裡只展示前端的程式碼部分,整個流程是由後臺生成簽名–>前端點選上傳檔案的時候獲取到後臺返回的accessid、host、policy、signaturecom等引數–>請求成功並獲取到

關於APP語音播報的完整實現iOS篇

前一段時間,一個“支付寶到賬100萬”的鈴聲在網路上火了起來,其實這在APP上,特別支付類的應用裡,經常用到,今天我們談一下其實現方法,給類似這種場景的開發人員一個參考吧。首先,我們這次是基於推送+語音的方式來實現。使用sound欄位我們都知道,我們可以在進行推送的時候,指定

深度學習筆記——深度學習框架TensorFlow之DNN深度神經網路的實現十四

DNN與CNN的本質差不多,只不過CNN加上了卷積層C以及池化層。做了卷積操作,引數共享減少了網路之間的連線引數。 DNN就是去掉C之後,使用全連線層+dropout下降+relu啟用,一層一層的WX+B的網路模式。

keras面向小資料集的影象分類VGG-16基礎fine-tune實現附程式碼

參考譯文地址:http://keras-cn.readthedocs.io/en/latest/blog/image_classification_using_very_little_data/ 本文作者:Francois Chollet 概述 在本文中,將使用VGG-16模型提供一種面向小資料集(幾百