<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          全面升級(jí)!FastReID V1.0正式開(kāi)源:Beyond reID

          共 5672字,需瀏覽 12分鐘

           ·

          2021-01-22 22:17

          ↑ 點(diǎn)擊藍(lán)字?關(guān)注極市平臺(tái)

          作者丨Sherlock@知乎(已授權(quán))
          來(lái)源丨h(huán)ttps://zhuanlan.zhihu.com/p/345252131
          編輯丨極市平臺(tái)

          極市導(dǎo)讀

          ?

          FastReID V1.0于1月18日發(fā)布,本次更新最大的特點(diǎn)是將 FastReID 擴(kuò)展到了更多的任務(wù)上,并在這些任務(wù)上均達(dá)到了 SOTA 結(jié)果。本文介紹了其在知識(shí)蒸餾、自動(dòng)超參搜索任務(wù)支持方面的改進(jìn)。?>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺(jué)的最前沿

          FastReID 從20年6月發(fā)布以來(lái),收到了很多用戶(hù)的反饋,當(dāng)初的 V0.1 版本存在大量需要優(yōu)化的部分。經(jīng)過(guò)了最近半年的持續(xù)優(yōu)化,終于在 21年1月18日低調(diào)地發(fā)布了 FastReID V1.0。這次更新包括非常多的方面,最大的特點(diǎn)是將 FastReID 擴(kuò)展到了更多的任務(wù)上,并在這些任務(wù)上均達(dá)到了 SOTA 結(jié)果。

          tldr: 經(jīng)過(guò)對(duì)各個(gè)模塊的優(yōu)化,我們更新了FastReID V1.0 版本,不僅實(shí)現(xiàn)了更快的分布式訓(xùn)練和測(cè)試,提供模型一鍵轉(zhuǎn)碼(模型一鍵導(dǎo)出 caffe/onnx/tensorRT)等功能外,而且還實(shí)現(xiàn)了模型蒸餾,自動(dòng)超參搜索以及更多任務(wù)的擴(kuò)展,比如人臉識(shí)別,細(xì)粒度檢索等等。

          下面簡(jiǎn)單介紹一下 FastReID V1.0 的各項(xiàng)改進(jìn)。

          Embedding 知識(shí)蒸餾

          深度神經(jīng)網(wǎng)絡(luò)一般有較多的信息冗余,同時(shí)大模型會(huì)導(dǎo)致模型的推理速度變慢,會(huì)消耗更多計(jì)算資源,并且降低整個(gè)系統(tǒng)的響應(yīng)速度。所以在模型部署的時(shí)候需要考慮模型壓縮,減小模型的參數(shù)量。目前有較多的壓縮方式,比如剪枝,量化和蒸餾等。其中蒸餾是一種比較流行的范式,可以保證模型不需要進(jìn)行結(jié)構(gòu)修改的情況下,得到較大的性能提升。為此,我們?cè)贔astReID中支持了模型蒸餾,可以時(shí)小模型部署獲得更大的精度提升。

          雖然蒸餾發(fā)展了數(shù)十年,我們通過(guò)大量的實(shí)驗(yàn)發(fā)現(xiàn) Hinton 的 Distilling the Knowledge in a Neural Network[1](https://arxiv.org/abs/1503.02531) 還是最 solid 的選擇。同時(shí)將原本的蒸餾 loss 優(yōu)化為具有對(duì)稱(chēng)性的 JS Div loss,最后修改蒸餾的 soft label 生成方式。

          不同于 softmax 分類(lèi) loss,在 embedding 任務(wù)中通常會(huì)使用效果更好的 margin-based softmax,比如 arcface 等等, 這時(shí)直接使用基于 margin 的 logits 生成 soft label 效果很不好,所以將 soft label 修改為去掉 margin 的 logits 輸出。

          除了可以對(duì) label 進(jìn)行蒸餾之外,也可以對(duì) feature 進(jìn)行蒸餾。通過(guò)實(shí)驗(yàn)了一大堆不 work 的特征蒸餾方法之后,發(fā)現(xiàn) overhaul-distillation[2](https://github.com/clovaai/overhaul-distillation) 可以在 loss 蒸餾的基礎(chǔ)上進(jìn)一步對(duì)網(wǎng)絡(luò)進(jìn)行提升,所以也將該方法加入到了 FastReID 中。由于overhaul需要對(duì) backbone 進(jìn)行一些修改,獲得 relu 之前的 feature,為此,構(gòu)建了一個(gè)新的 project 而不是直接去 FastReID 里面修改 backbone。

          最后我們?cè)?dukeMTMC[3] 上進(jìn)行實(shí)驗(yàn),使用 r101_ibn 作為 teacher model, r34 作為 student model,可以獲得如下的效果提升。

          蒸餾的使用也非常簡(jiǎn)單,只需要首先按照正常的方式訓(xùn)練一個(gè) teacher model,如果只想使用 loss 蒸餾,可以使用 Distiller 作為 meta_arch。如果希望加上 overhaul,也只需要使用 DistillerOverhaul作為 meta_arch 就可以。最后再指定 teacher model 的配置文件和訓(xùn)好的 weights 就可以了。

          下面用 R101_ibn 作為 teacher model,R34 作為 student model 舉一個(gè)例子

          # teacher model training
          python3 projects/FastDistill/train_net.py \
          --config-file projects/FastDistill/configs/sbs_r101ibn.yml \
          --num-gpus 4

          # loss distillation
          python3 projects/FastDistill/train_net.py \
          --config-file projects/FastDistill/configs/kd-sbs_r101ibn-sbs_r34.yaml \
          --num-gpus 4 \
          MODEL.META_ARCHITECTURE Distiller
          KD.MODEL_CONFIG projects/FastDistill/logs/dukemtmc/r101_ibn/config.yaml \
          KD.MODEL_WEIGHTS projects/FastDistill/logs/dukemtmc/r101_ibn/model_best.pth

          # loss+overhaul distillation
          python3 projects/FastDistill/train_net.py \
          --config-file projects/FastDistill/configs/kd-sbs_r101ibn-sbs_r34.yaml \
          --num-gpus 4 \
          MODEL.META_ARCHITECTURE DistillerOverhaul
          KD.MODEL_CONFIG projects/FastDistill/logs/dukemtmc/r101_ibn/config.yaml \
          KD.MODEL_WEIGHTS projects/FastDistill/logs/dukemtmc/r101_ibn/model_best.pth


          自動(dòng)超參搜索

          煉丹一直困擾著各位調(diào)參俠,特別是每次遇到新的場(chǎng)景,就需要重新調(diào)參來(lái)適應(yīng)新的數(shù)據(jù)分布,非常浪費(fèi)時(shí)間。所以決定在 FastReID 中加入了自動(dòng)超參搜索的功能來(lái)解放各位調(diào)參俠的雙手,讓大家可以更好的劃水。

          通過(guò)一系列調(diào)研,最后決定使用 ray-tune[4] (https://docs.ray.io/en/master/tune/index.html)這個(gè)超參搜索的庫(kù)。在集成到 FastReID 中間也遇到了非常多的坑,不過(guò)最后成功地在 FastReID 中實(shí)現(xiàn)了自動(dòng)超參搜索的功能。

          使用方式非常簡(jiǎn)單,如果你想用 Bayesian 超參搜索跑 12 組試驗(yàn),可以使用下面的代碼就可以開(kāi)始自動(dòng)分布式訓(xùn)練,如果有4張卡,那么可以4個(gè)試驗(yàn)同步一起跑

          python3 projects/FastTune/tune_net.py \
          --config-file projects/FastTune/configs/search_trial.yml \
          --num-trials 12 --srch-alog "bohb"

          另外需要搜索的超參空間需要在 projects/FastTune/tune_net.py 中進(jìn)行配置,更具體的使用方式可以參考 tutorial(https://github.com/JDAI-CV/fast-reid/issues/293)。

          唯一不足的是還不能用pytorch的分布式數(shù)據(jù)并行,后續(xù)有時(shí)間會(huì)進(jìn)一步優(yōu)化,希望這能夠成為大家打比賽刷分,做業(yè)務(wù)的利器。

          最多最全的任務(wù)支持

          我們剛剛發(fā)布 FastReID V0.1 時(shí),它只是作為一個(gè)目標(biāo)重識(shí)別的 toolbox,支持重識(shí)別的業(yè)務(wù)模型和 research。

          后面考慮到各種識(shí)別任務(wù)的模型結(jié)構(gòu)都長(zhǎng)得差不多,所以希望 FastReID 只需要稍微 customize 就能夠支持各種不同的任務(wù)。

          但是每種任務(wù)都有自己的一些特殊性,把這些特殊性全部往 FastReID 里面塞肯定是不現(xiàn)實(shí)的。為了不引入冗余性,通過(guò)對(duì)每種 task 單獨(dú)構(gòu)建 project 的方式對(duì) FastReID 進(jìn)行擴(kuò)展,同時(shí)也相當(dāng)于提供了一些擴(kuò)展任務(wù)的參考寫(xiě)法和 example,畢竟文檔一直沒(méi)有時(shí)間寫(xiě)(逃~)。

          最后呈現(xiàn)在 FastReID 的 projects 中一共可以支持 image classification (FastCls), attribute recognition (FastAttr), face recognition (FastFace) 和 fine-grained image retrieval (FastRetri) 4 種比較常見(jiàn)的識(shí)別任務(wù),同時(shí)我們也分別跑了幾個(gè) benchmark 以保證代碼的實(shí)現(xiàn)是正確的。

          FastClshttps://github.com/JDAI-CV/fast-reid/tree/master/projects/FastCls
          FastAttrhttps://github.com/JDAI-CV/fast-reid/tree/master/projects/FastAttr
          FastFace:https://github.com/JDAI-CV/fast-reid/tree/master/projects/FastFace
          FastRetrihttps://github.com/JDAI-CV/fast-reid/tree/master/projects/FastRetri

          Image Retrieval

          Face Recognition

          同時(shí)大家在 customize 自己的 project 時(shí),也可以將這些 projects 中的東西進(jìn)行排列組合來(lái)實(shí)現(xiàn)新的功能,比如將 FastDistill 和 FastFace 組合在一起,就可以實(shí)現(xiàn)人臉識(shí)別中的模型蒸餾。

          總結(jié)

          一套好的 codebase 對(duì)于大家做實(shí)驗(yàn)和做業(yè)務(wù)都起著事半功倍的效果,大家也越來(lái)越發(fā)現(xiàn)代碼的工程質(zhì)量不僅影響業(yè)務(wù)模型的研發(fā)效率和性能,同時(shí)還對(duì)研究工作有著影響。

          FastReID 不僅僅希望能給 ReID 社區(qū)提供穩(wěn)定高效的代碼實(shí)現(xiàn),同時(shí)也希望大家能夠基于 FastReID 去做算法研究,同時(shí)擴(kuò)展到更多其他任務(wù)上。

          也希望大家能夠踴躍地在 GitHub 上提 issue 和 PR,讓我們一起把 FastReID 越做越好。

          在此感謝 JD AI 的同事和老師的支持,正是因?yàn)榇蠹业呐ψ?FastReID 變得更好,科研項(xiàng)目也都在 FastReID 上取得了更好的性能。

          JDAI-CV/fast-reidgithub.com

          也歡迎大家關(guān)注 JDAI-CV 中的其他項(xiàng)目

          JDAI-CV/centerXgithub.com

          JDAI-CV/FaceX-Zoogithub.com

          JDAI-CV/Partial-Person-ReIDgithub.com

          Reference

          [1] Geoffrey Hinton, Oriol Vinyals, Jeff Dean. Distilling the Knowledge in a Neural Network.
          [2] Heo, Byeongho and Kim, Jeesoo and Yun, Sangdoo and Park, Hyojin and Kwak, Nojun and Choi, Jin Young. A Comprehensive Overhaul of Feature Distillation
          [3] Ergys Ristani, Francesco Solera, Roger Zou, Rita Cucchiara, and Carlo Tomasi. Performance measures and a data set for multi-target, multi-camera tracking.
          [4] Liaw, Richard and Liang, Eric and Nishihara, Robert and Moritz, Philipp and Gonzalez, Joseph E and Stoica, Ion. Tune: A Research Platform for Distributed Model Selection and Training


          推薦閱讀



          添加極市小助手微信(ID : cvmart2),備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測(cè)-深圳),即可申請(qǐng)加入極市目標(biāo)檢測(cè)/圖像分割/工業(yè)檢測(cè)/人臉/醫(yī)學(xué)影像/3D/SLAM/自動(dòng)駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群:月大咖直播分享、真實(shí)項(xiàng)目需求對(duì)接、求職內(nèi)推、算法競(jìng)賽、干貨資訊匯總、與?10000+來(lái)自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺(jué)開(kāi)發(fā)者互動(dòng)交流~
          △長(zhǎng)按添加極市小助手

          △長(zhǎng)按關(guān)注極市平臺(tái),獲取最新CV干貨

          覺(jué)得有用麻煩給個(gè)在看啦~??
          瀏覽 97
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕人乱码中文字的预防方法 | 无遮挡一区二区 | 小蔡头喵喵喵-新年小奶牛 | 丁香五月天导航 | 亚洲黄色毛片 |