[論文筆記]CVPR2017_Joint Detection and Identification Feature Learning for Person Search

Title:?Joint Detection and Identification Feature Learning for Person Search;

  • aXiv上該論文的第一個版本題目是 End-to-End Deep Learning for Person Search

Authors:?Tong Xiao1*?; Shuang Li1*?; Bochao Wang2?; Liang Lin2;? Xiaogang Wang1

Affilations: 1.The Chinese University of Hong Kong; 2.Sun Yat-Sen University

Paper?Code

第一遍看的時候看的是第一個版本,只簡單地掃了一眼結構圖,覺得就是對faster r-cnn做了小修,而且沒有OIM loss,覺得創新性一般。然后發現好幾篇后來的文章都用了OIM loss,回過頭來再細看文章才發現文章有很多有意思的地方。慚愧!


Motivation

person re-id問題往往是用已經cropped的行人圖像塊進行檢索,判斷query和gallary中的圖像是否是同一個identity。這里面存在幾個問題:

  ①現實中檢索都是直接從原始場景圖像中實現,而不是利用detection之后的cropped image;

  ②很多數據集都是手動標注的框,實際上detector的檢測精度以及是否存在漏檢都會對行人重識別的結果造成影響。

因此,作者提出端到端的person search思想,將detection和re-id問題融在一起。

模型

  • 網絡的輸入是整張圖像;
  • pedestrian proposal net:輸入經過ResNet-50的第一個部分(conv1-conv4_3)之后輸出1024d的feature maps(大小是原輸入的1/16);類似于RPN,該feature map先經過一個$512\times3\times3$的卷積,得到的特征每個位置的9個anchors分別送入一個softmax classifier(person/non-person)和linear layer(bbox regression);bbox經過NMS,得到128個final proposals;
  • identification net:每個proposal經過ROI pooling得到$1024\times14\times14$的特征,然后送入ResNet-50的第二個部分(conv4_4-conv5_3),經過一個GAP(global average pooling)得到一個1024維的feature map;這個1024 feature map一分為三:①softmax二分類;②linear regression位置回歸;③映射成一個256維、l2 normalized的子控件,實際上是一個FC層,得到256d的id-feat,inference階段id-feat用來計算consine similarity,training階段用來計算OIM loss。

Online Instance Matching Loss(OIM LOSS)

注意是用所有final proposals的256d id-feat計算OIM loss。

訓練集中有$L$個labeled identities,賦予他們class-id(1到$L$);也有許多unlabeled identities;還有許多背景和錯誤信息。OIM只考慮前兩種。

做法:

  • 對于labeled identities: 記mini-batch中的一個labeled identity為$x\in\mathbb{R}^D$,$D$是特征維度。線下計算和存儲一個lookup table(LUT)$V\in\mathbb{R}^{D \times L}$,里面存儲著所有labeled identities的id-feat。
    • 前向階段,用$V^Tx$計算mini-batch中的樣本和所有labeled identities之間的余弦相似性。
    • 后向階段,如果目標的class-id是$t$,那么用$v_t \leftarrow \gamma v_t+(1-\gamma)x$更新LUT的第$t$列,其中$r\in[0,1]$不明白為什么這么更新
  • 對于unlabeled identities,由于數量不等,作者用了一個循環隊列來存儲$U\in\mathbb{R}^{D \times Q}$,$Q$是隊列空間大小。同樣用$U^Tx$來計算mini-batch中樣本和隊列中unlabeled identities的余弦相似性。每次循環,將新的feature vector push,pop一個舊的,保證隊列大小不變。
  • 基于上述結構,$x$被認作class-id $i$的概率用softmax函數計算

  • 同樣,被認作第$i$個unlabeled identity的概率是

  • OIM objective是最大化log似然的期望

  • 求導是

為什么不用softmax loss直接分類?

  • 一是類別太多,而每類的正樣本太少,使得訓練很難
  • 二是無法利用unlabeled identities,因為他們沒有標簽

Dataset

作者提出了新的person search的數據集,包含street view和視頻截圖,即CUHK-SYSY

Evaluation Protocols and Metrics

person search很自然地繼承了detection和re-ID的評價指標,cumulative?matching characteristics (CMC top-K) 和mean averaged?precision (mAP)。這里要注意和person re-id中這兩個指標的異同。

CMC

原文:a matching is counted if there is at?least one of the top-K predicted bounding boxes overlaps?with the ground truths with intersection-over-union (IoU)?greater or equal to 0.5.

這里相對好理解,對于輸出的bbox,與GT的IoU>0.5的算作candidates,然后和re-id一樣計算top K中 是否包含,包含則算做匹配上。對于誤檢或者漏檢不管。

mAP

原文:(MAP)is inspired from?the object detection tasks. We follow the ILSVRC object?detection criterion [29] to judge the correctness of predicted?bounding boxes. An averaged precision (AP) is calculated?for each query based on the precision-recall curve, and then?we average the APs across all the queries to get the final?result.

這個和reid的mAP應該有較大區別;應該是對每個query相當于一類,求detection的AP

轉載于:https://www.cnblogs.com/xiaoaoran/p/11125791.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247657.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247657.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247657.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php下的原生ajax請求

瀏覽器中為我們提供了一個JS對象XMLHttpRequet,它可以幫助我們發送HTTP請求,并接受服務端的響應。 意味著我們的瀏覽器不提交,通過JS就可以請求服務器。ajax(Asynchronous Javascript And XML)其實就是通過XHR對象,執行HTTP請求。…

HBase性能優化總結

HBase性能優化方法總結(一):表的設計 1. 表的設計 1.1 Pre-Creating Regions 默認情況下,在創建HBase表的時候會自動創建一個region分區,當導入數據的時候,所有的HBase客戶端都向這一個region寫數據&#x…

.NetCore如何使用ImageSharp進行圖片的生成

ImageSharp是對NetCore平臺擴展的一個圖像處理方案,以往網上的案例多以生成文字及畫出簡單圖形、驗證碼等方式進行探討和實踐。 今天我分享一下所在公司項目的實際應用案例,導出微信二維碼圖片,圓形頭像等等。 一、源碼獲取 Git項目地址&…

vue2工程

vue當然可以使用script標簽引入,不需任何依賴即可按照vue的語法進行使用。但中大型商用項目中,還是建議使用工程化方式使用vue,vue提供了官方腳手架vue-cli,可以快速構建vue項目,腳手架會幫助開發者創建好建議的工程目…

flutte的第一個hello world程序

用命令行創建項目: flutter create flutterdemo VSCode或者AS連接手機后 輸入 flutter run 編譯后就可以將默認的代碼顯示在手機上了 開始寫hello world 代碼,這段代碼寫在根目錄\lib\main.dart文件中,也是Flutter主文件。 整個代碼如下 impo…

Ajax 設置Access-Control-Allow-Origin實現跨域訪問

之前遇到的問題整理 ajax跨域訪問是一個老問題了,解決方法很多,比較常用的是JSONP方法,JSONP方法是一種非官方方法,而且這種方法只支持GET方式,不如POST方式安全。 即使使用jquery的jsonp方法,type設為POST…

vue工程webpack模板配置說明

vue工程webpack模板下的配置文件非常多,只能在實際開發過程中反復熟悉,才能漸漸體會官方將配置文件拆分細化的合理性。 主要配置文件中代碼的作用從網上摘錄了比較全的一份注釋,做下記錄。 dev-server.js 開發服務端配置 require(./check-v…

目錄的拼接

找到被拼接文件所在的目錄,然后進行拼接 import os 獲取當前目錄: os.path.dirname(__file__) 如下,被拼接文件所在目錄與當前目錄的上級目錄在同一文件夾下: os.path.join(os.path.dirname(os.path.dirname(__file__)),‘文件夾路…

vue-resource 攔截器(interceptor)的使用

攔截器-interceptor 在現代的一些前端框架上,攔截器基本上是很基礎但很重要的一環,比如Angular原生就支持攔截器配置,VUE的Axios模塊也給我們提供了攔截器配置,那么攔截器到底是什么,它有什么用?攔截器能幫…

【GamePlay】入門篇

【GamePlay】入門篇 游戲性編程是指通過一系列游戲系統將游戲想法變成現實的過程。 本次的簡例以NPC設計為主。 通常在進行腳本設計前,對NPC的屬性進行基本的添加和設定,諸如動畫系統、物理系統等等。 1.動畫系統 添加Animator組件,綁定骨骼。…

vue axios POST請求中參數以form data和request payload形式的原因

HTTP請求中,如果是get請求,那么表單參數以namevalue&name1value1的形式附到url的后面,如果是post請求,那么表單參數是在請求體中,也是以namevalue&name1value1的形式在請求體中。通過chrome的開發者工具可以看…

vue-resource使用

vue-resource是一個http請求插件,遵循promise,類似jquery中ajax操作。 vue-resource已不被官方推薦,官方推薦axios插件來操作http協議。 vue-resource中提供的方法 get(url, [options]) head(url, [options]) delete(url, [options]) jso…

HttpHttps

http協議與https Http 客戶端發送一個HTTP請求到服務器的請求消息包括以下格式: **請求行(request line)、請求頭部(header)、空行 和請求數據四個部分組成。** Get請求例子,使用Charles抓取的request&…

vue2使用axios post跳坑,封裝成模塊

終于將vue-resource替換成axios了,其中像application/x-www-form-urlencoded發送的頭信息以及返回的response結果這兩點都需要注意一下。 其實https://github.com/mzabriskie/axios也有說明的。因為我在vue-resource中使用了Vue.http.options.emulateJSON true;&am…

axios使用

axios和vue-resource一樣,是一個vue中操作http的插件,遵循promise,vue官方也推薦使用axios。 安裝axios npm i axios -S axios也是在運行時需要的,所以要保存在dependencies中。 引入axios import axios from axios Vue.proto…

jQuery length 和 size()區別

jQuery length和size()區別總結如下: 1.length是屬性,size()是方法。 2.如果你只是想獲取元素的個數,兩者效果一樣既 $("img").length 和 $("img").size() 獲取的值是一樣的;但是如果是獲取字符串的長…

一些關于自己的未來的東西

2019.7.4 自己大一建立對編程的基礎認識,確實培養了一些興趣,入了個門,不過沒有接觸到本質。大二加入到了學校的網站開發團隊,對網站開發后端進行了學習,對后臺開發也有了基礎的學習吧,哈哈可能以后就是要走…

Javascript面向對象編程:構造函數的繼承

今天要介紹的是,對象之間的"繼承"的五種方法。 比如,現在有一個"動物"對象的構造函數。 function Animal(){ this.species "動物"; } 還有一個"貓"對象的構造函數。 function Cat(name,color){ this.name nam…

并發與多線程

并發 并發(concurrency)是指CPU在某個時間段內交替處理多任務的能力。每個CPU不可能只顧著執行某個進程,而讓其他進程一直等待被執行。所以,CPU把可執行時間均分成若干份,每個進程執行一份或多份時間后,記錄…

有沒有朋友可以幫我解釋一下貼水是什么意思?

通俗易懂的講:貼水便宜,升水貴 當前,螺紋鋼05合約就是貼水01合約 翻譯,螺紋鋼05合約就是比01合約便宜 升水同理 轉載于:https://www.cnblogs.com/luoluo-123/p/11142229.html