RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

我們最新的一個開源項目:SimpleDet

nlfO_thejiangme ? 來源:lq ? 2019-02-13 14:04 ? 次閱讀

今天很開心給大家介紹我們最新的一個開源項目:SimpleDet。

SimpleDet是一套簡單通用的目標檢測與物體識別的框架。整套框架基于MXNet的原生API完成。這篇文章不僅僅想介紹一下這樣一個新的框架有什么與眾不同的feature,更想去介紹一下我們?yōu)槭裁礇Q定做這么一件事情以及我們的初衷是什么。

為什么還要再造一次錘子?

這個問題其實也是我們在開始這個項目之前自問了很多次的問題。如果大家有心留意下的話,Ross在產(chǎn)出RCNN和Fast RCNN的那兩三年,每年都會去參加一下ImageNet比賽。其實當初很不解,為什么要去這么做,尤其是基本都是很裸的方法,一定不可能拿到好的名次。后來有機會去抓住Kaiming問了一下這個問題,Kaiming給我的答案是,Ross其實并不關(guān)系這個名次,Ross關(guān)心的是借這個機會宣傳他更好用的錘子給大家。

其實不同于很多人認為的那樣,模型fancy,結(jié)果好才是一個好工作的體現(xiàn)。恰恰相反,簡單可靠,越多的paper愿意以這個方法作為baseline,就越說明這個方法的經(jīng)典。其實對我自己而言,我從讀PhD開始就一直愿意去做這樣的baseline和這樣的錘子。從當年用HOG+LR超越絕大多數(shù)paper的Tracking到參與MXNet項目再到后來用5行代碼做domain adaptation的AdaBN。雖然開始的時候都遭受了很多人包括reviewer的質(zhì)疑,但是時間都證明了這些工作的價值。

對于目標檢測和識別領(lǐng)域,今天我們發(fā)現(xiàn)了同樣的問題。雖有很多開源的代碼和框架,但是目前看下來仍有很大進步的空間。一方面現(xiàn)有的開源框架雖有各種冠軍頭銜加持,但因為各種各樣的原因,復現(xiàn)出真正SOTA的結(jié)果仍然不是一件輕松的事情;另一方面,一些性能還不錯的開源代碼(如SNIP和SNIPER)卻難以拓展和維護。所導致的結(jié)果就是目前仍然有很多論文仍然在一個很低的baseline上進行改進,就算取得了性能的提升也很難說明方法的有效性。我們建立SimpleDet就是為了對于Instance Recognition這一系列問題提供一個更好的baseline和更好的錘子。

如果去問一個同學你需要一個什么樣的目標檢測和識別框架,我相信性能好,速度快,好用這三個關(guān)鍵詞可以覆蓋99%的需求,下面我們一一展開來看看SimpleDet在這些方面的優(yōu)勢和與其他開源框架的區(qū)別。

什么叫性能好?

在SimpleDet中,最值得關(guān)注的一個算法是我們的TridentNet(不知道TridentNet的同學歡迎猛戳:https://zhuanlan.zhihu.com/p/54334986)。我們公布了在各個setting下的模型和訓練代碼。這也是目前已知的COCO上單模型最高的算法。除了一個干凈的模型(testdev mAP=42.7)之外,我們還提供了一個加上了全部大禮包的setting(testdev mAP=48.4),包括Sync BN,multi-scale training/testing,deformable conv和softer NMS。雖然這些都是在很多paper和比賽中大家已經(jīng)常用的技術(shù)了,但是仍然很難把所有的方法都直接正確打開。我們在SimpleDet中提供了一套開箱即用的方案,希望借此降低復現(xiàn)SOTA的門檻,從而提升下整個領(lǐng)域中baseline的水平。除此之外,為了方便大家進一步拓展,我們還提供了一些經(jīng)典模型和算法,例如Mask(Faster) RCNN,F(xiàn)PN,RetinaNet,CascadeRCNN等。這個算法的結(jié)果都已經(jīng)經(jīng)過驗證,能達到論文中和已有開源代碼的結(jié)果。我們后續(xù)還會進一步補充一些經(jīng)典和重要的工作,也歡迎大家積極貢獻。

什么叫速度快?

首先針對速度這個問題,我們一個獨特的feature是FP16 training,F(xiàn)P16不僅可以節(jié)省一半的顯存,在最新支持TensorCore的Volta和Turing系列GPU上還可以有一倍甚至更多的速度提升。如下左圖,從1080Ti的30img/s可以提升到75img/s,展現(xiàn)了非常顯著的提升。其次,對有不同資源的同學來說,對于速度的需求也是不同的。我們著重考慮了三種典型的用戶:

1. 入門用戶:這類用戶可能由于實驗室資源限制,或者單純是因為個人興趣,只能負擔起小于4塊GPU。針對這類用戶,能夠盡量復現(xiàn)出更多資源下的結(jié)果是第一優(yōu)先級。核心的問題在于使用大的batchsize和BN batchsize。在這樣的setting下,SimpleDet提供了Inplace ABN[1] (To be announced),結(jié)合上MXNet本身提供的memonger功能,再加上FP16,極限狀態(tài)下訓練的單卡batchsize可以達到8到16。雖然損失了一定的速度,但是在兩到四卡上就能達到正常八卡訓練的batchsize。

2.普通用戶:這類用戶應(yīng)該占據(jù)絕大多數(shù),可以獨占一臺8卡機器進行訓練。這類用戶對于速度會有著更高的需求,可以在入門用戶的基礎(chǔ)上關(guān)掉memonger這種對速度有一些影響的組件,以得到更好的訓練速度。

3.土豪用戶:手里有多臺8卡機器,希望充分利用機器快速迭代模型。針對這部分用戶,依托于MXNet優(yōu)秀的分布式設(shè)計以及阿里云更進一步優(yōu)化的Perseus通信框架,如下右圖所示,我們在4機32卡的情況下可以做到線性加速(沒有資源進行更大的測試了,更強大的土豪可以贊助點機器。。。)。這對于打比賽或者對模型迭代速度有很高要求的應(yīng)用來說,無疑是個福音。

我們希望每一類用戶都能各取所需,在SimpleDet中找到最適合自己資源的setting,極大化產(chǎn)出。

什么叫做好用?

雖然每個用戶心里都會有一個好用的定義(心疼產(chǎn)品經(jīng)理1s...),除了前面的性能和速度之外,我們認為是否容易拓展和方便清晰調(diào)參也會是兩個重要的因素。我們針對一些常見需求,進行了高度模塊化的設(shè)計,一個核心思想便是盡量抽象和隔離核心操作,使各種不同算法盡量復用,在這些核心操作之上拓展而無需修改。例如,我們抽象出了一整套干凈通用的配置系統(tǒng),除了可以配置所有常見參數(shù)之外,還將常用的預(yù)處理和數(shù)據(jù)擴充操作也都抽象出來。針對這些常見的變更,用戶不需要修改核心代碼即可完成調(diào)優(yōu)。再比如,修改一個detection算法可能會遇到最復雜的邏輯就是在于data loader和pre-process,但是往往一個欠佳的實現(xiàn)會導致loader的效率大幅度下降,從而成為整個訓練中的瓶頸,使得GPU利用率降低。在SimpleDet中,我們提取出了一個通用的多線程loader框架,并抽象出了在預(yù)處理中常見的操作。后續(xù)新算法的拓展可以很容易在這些通用工具的基礎(chǔ)上同時保持簡潔性和效率。更多的設(shè)計歡迎大家直接閱讀源碼,我們也給出了一個簡單的對Faster RCNN和TridentNet代碼結(jié)構(gòu)的分析供大家參考。

以上便是SimpleDet的一個簡要介紹,歡迎大家積極試用,提出寶貴意見。也歡迎大家一起來捉bug,貢獻新的算法和feature,共同把SimpleDet打造成一套目標檢測與物體識別的前沿試驗平臺。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    403

    瀏覽量

    17475
  • 機器
    +關(guān)注

    關(guān)注

    0

    文章

    780

    瀏覽量

    40711
  • 開源框架
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    9412

原文標題:SimpleDet: 一套簡單通用的目標檢測與物體識別框架

文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    一個DIY開源項目——帶收音功能的插卡式移動小音箱制作

    一個DIY開源項目——帶收音功能的插卡式移動小音箱制作 (1)小弟剛?cè)胄校锁B,為了準備鍛煉自己的毅力和提高單片機技術(shù)水平,準備動
    發(fā)表于 01-12 22:37

    2013 年最不可思議的 10 硬件開源項目

    頒發(fā)的最激動人心的開源項目,它讓我們相信開源硬件不只是另一個硬件開發(fā)的項目,而是
    發(fā)表于 03-14 11:13

    C語言開源項目

    值得學習的C語言開源項目- 1. WebbenchWebbench是在linux下使用的非常簡單的網(wǎng)站壓測工具。它使用fork()模擬多個客戶端同時訪問
    發(fā)表于 08-20 06:15

    分享些高星開源項目

    關(guān)于GitHub,可能很多人都誤以為這是互聯(lián)網(wǎng)人的專屬,其實并不是,那上面嵌入式相關(guān)的開源項目是有很多的?,F(xiàn)分享些高星開源項目(像RT-T
    發(fā)表于 02-28 08:13

    開源匯總】精選開源硬件項目匯總

    XR32項目簡介:本項目使用全志官方支持的FreeRTOS系統(tǒng),適配自己做的開發(fā)板,代碼全部開源。項目計劃
    發(fā)表于 04-29 18:45

    11機器學習開源項目

    隨著機器學習越來越受到開發(fā)者關(guān)注,出現(xiàn)了很多機器學習的開源項目,在本文列舉的11機器學習開源項目中,無論你是Java愛好者還是Python
    發(fā)表于 02-14 14:25 ?2818次閱讀

    騰訊10大開源項目有哪些?

    騰訊開源了許多非常有價值的項目,下面我們起來看看騰訊10大開源項目有哪些?
    的頭像 發(fā)表于 03-29 10:16 ?1.1w次閱讀
    騰訊10大<b class='flag-5'>開源</b><b class='flag-5'>項目</b>有哪些?

    精選10Python開源項目

    過去一個月里,我們對近 250 Python 開源項目進行了排名,并挑選出熱度前 10 的項目
    的頭像 發(fā)表于 11-12 09:47 ?6321次閱讀

    名為“LeetCodeAnimation”的開源項目

    ?今天,營長要特別為大家介紹名為“LeetCodeAnimation”的開源項目。在這個項目中,文字解讀并不是主要的,作者把
    的頭像 發(fā)表于 12-17 09:09 ?4568次閱讀

    優(yōu)秀的 Verilog/FPGA開源項目介紹(

    優(yōu)秀的 Verilog/FPGA開源項目介紹()-PCIe通信 今天開始會陸續(xù)介紹些優(yōu)秀的開源項目
    的頭像 發(fā)表于 10-11 15:31 ?9283次閱讀
    優(yōu)秀的 Verilog/FPGA<b class='flag-5'>開源</b><b class='flag-5'>項目</b>介紹(<b class='flag-5'>一</b>)

    超棒的stm32的開源usb-can項目,canable及PCAN固件

    超棒的stm32的開源usb-can項目,canable及PCAN固件
    發(fā)表于 12-20 18:55 ?36次下載
    扒<b class='flag-5'>一</b><b class='flag-5'>個</b>超棒的stm32的<b class='flag-5'>開源</b>usb-can<b class='flag-5'>項目</b>,canable及PCAN固件

    簡單的反射游戲開源項目

    電子發(fā)燒友網(wǎng)站提供《簡單的反射游戲開源項目.zip》資料免費下載
    發(fā)表于 11-02 10:52 ?0次下載
    <b class='flag-5'>一</b><b class='flag-5'>個</b>簡單的反射游戲<b class='flag-5'>開源</b><b class='flag-5'>項目</b>

    ChatGPT了的七開源項目

    就推出了很多。估計,現(xiàn)在還有不少同學苦于不知道該如何體驗chatGPT。   chatGPT火了,圍繞chatGPT盡心二次擴展的開源項目最近也涌現(xiàn)出很多,今天就來給大家介紹幾個最近發(fā)現(xiàn)的不錯的開源
    發(fā)表于 02-15 09:26 ?3次下載
    ChatGPT了的七<b class='flag-5'>個</b><b class='flag-5'>開源</b><b class='flag-5'>項目</b>

    開放原子開源基金會與20開源項目舉行捐贈簽約儀式

    開放原子開源基金會“立足中國、面向世界”,堅持科技、公益、普惠屬性,廣泛匯聚開發(fā)者,培育開源項目。6月11日,在2023開放原子全球開源峰會上,開放原子
    的頭像 發(fā)表于 06-11 18:35 ?1525次閱讀

    介紹使用FPGA做的開源示波器

    其實用FPGA做的示波器有很多,開源的相對較少,我們今天就簡單介紹使用FPGA做的開源示波器:
    發(fā)表于 08-14 09:03 ?1212次閱讀
    RM新时代网站-首页