使用 AlignedReID 來實現行人重識別的具體應用指南
雷鋒網按:本文為 AI 研習社編譯的技術博客,原標題為 A Practical Guide to Person Re-Identification Using AlignedReID,作者 Niruhan Viswarupan。
翻譯 | 張哥華 校對 | 餘杭 整理 | 餘杭
目前世界各地都充斥著閉路電視,而數字監控產生的大量數據對人工操作來說難以利用。機器視覺演算法的興起(同時也因為硬體提升讓我們能使用並行處理)給我們提供了其他的解決方案,演算法可以讀取監控數據並返回有意義的描述。類似於面部檢測和面部識別的圖像技術已經被應用於攝像頭和社交網路。
Facebook 可以自動識別包含了你的圖像,即使在圖片上沒有任何人把你標註出來。他們的演算法會從人為標註了你的圖片上學習到你臉部的特徵,並在新的圖片上尋找這些特徵是否存在。建立這套能適用於上億人群的系統需要嚴謹的工程技術。
這個和我們將要介紹的行人重識別技術稍微有些不同。我們不光是要通過面部特徵來從匹配一個人,也需要識別他/她的整個身體(比如衣服,身高等)。面部識別的局限是它只在人臉靠近攝像頭的時候才適用,而監控錄像往往不具備這樣的條件,人也可以用物體擋住自己的臉部。
在介紹行人重識別的代碼之前,我們先來整理下我們要討論的內容:
我把這篇博客分為 5 部分:
1.行人重識別— 定義我們遇到的問題
2.行人重識別的挑戰— 解決問題中存在的挑戰
3.行人重識別問題的變種— 我們面臨的問題會隨著輸入內容的不同而有小幅改變。關於變化的討論
4.不同的行人重識別方法— 建立行人重識別的方法論
5.AlignedReID:超過人類表現的行人重識別技術— 如何使用第三方庫 AlignedReID 對實例進行測試
1. 行人重識別
給出一個攝像頭拍攝的行人的照片或視頻,重識別技術就是在另一個的攝像頭中再次辨認出是同一個人的過程,並且兩個攝像頭不能有重疊的視角。重識別對於在多個攝像頭中建立連續標註或是在單個攝像頭中重建掉線的或遺失的追蹤是必不可少的。[2]
行人重識別就是把不同攝像頭拍攝的同一個人,或是同一個攝像頭在不同場景下拍攝的同一個人聯繫起來。換句話說就是,在多攝像設置下對同一個人分配同一個ID。通常情況下,攝像頭的重識別被限制在一個很短的時間段和很小的區域內。對人類而言,通過對他人面部、身高、身材、衣服、髮型、走路姿勢等等來辨認一個人是容易的,然而這對機器來說卻是極其艱難的。
圖 3: 重識別系統流程圖
2. 行人重識別的挑戰
我們最主要的挑戰來自於人內部的變化,即是說,在不同攝像頭下,同一個人展現出來的不同姿態。我們將在下面討論主要的一些挑戰。
圖 4: 印度總理莫迪在練習瑜伽
1. 在重識別之前系統必須要在圖片上檢測到行人並決定行人的邊框大小。正如我們在圖4看到的,人體姿態可以是非常動態可變的。捕捉這類可變的對象本身就是一個挑戰。
2. 一個重識別系統既可以輸入圖片(single-shot)也可以輸入視頻(multi-shot)。在視頻輸入時需要在檢測目標和幀畫面之間同步。這個過程被稱作追蹤。多人追蹤也是一個挑戰。
3. 光照變化。日光強度,陰影,彩色表面的反光,室內光線,都會導致同一個目標在攝像頭中展現出不同的光影和顏色。
4. 低像素。許多老式監控系統的攝像頭都是低像素,這會導致輸入信息量不足,從而讓行人重識別變得困難。
圖 5: 行人遮蔽
5. 遮蔽。在擁擠的環境中,人與人之間部分甚至是完全的遮蔽對提取行人特徵也是挑戰。
6. 統一著裝。在學校與一些工作場所,統一著裝會擾亂重識別提取衣服/外貌信息。
7. 可擴展性。公共區域往往有成百上千的攝像頭,但現有技術才剛開始解決多攝像監控問題。
3. 行人重識別:問題變種
正如我們之前提到的,系統的輸入可以是圖片也可以是視頻。當輸入的是視頻是我們可以考慮用步態分析等方法來建立重識別。
開放集重識別 vs 封閉集重識別。開放集的重識別是指,我們的數據集圖庫並不一定包含我們要檢索的ID,也即是說,在開放式環境下攝像頭檢測到新的行人,會提取新人特徵並加入到我們圖庫中。而封閉集重識別的數據集會受限。當一個可能的檢索 ID 被包含在我們圖庫 ID 中時,我們就會把檢索圖片與圖庫 ID 匹配,並輸出與檢索信息最相似的行人 ID 。
4. 不同的行人重識別方法
圖 6: 基於重識別處理分類的方法論 [2]
場景法是我們需要利用外部信息,比如攝像頭位置,角度等等,去輔助重識別。利用攝像頭位置和抓取圖像的時間等信息,我們可以減少一次檢索所需的圖庫大小。不僅如此,知道一個人進入/離開的位置,行走速度,經過的時間,我們就可以持續追蹤該人。如果多個攝像頭之間存在交疊的區域,並且沒有盲點,我們就可以在不同攝像頭中追蹤該人且不需要進行過多的重識別。
非場景法可被分為兩種 — 被動和主動。被動法不使用任何機器學習的演算法來執行描述提取與匹配,主動法則與此相反。主動法又被繼續分為如下三個部分,
1.顏色校準:對2個攝像頭之間的對象外觀變化進行建模,使用光照變化函數(brightness transfer function,BTF)。重識別被部署在外觀變化模型里。
2.特徵描述學習:在這個模型里我們試圖讓重識別對最顯著的特徵進行學習,或是學習一系列特徵中最顯著的加權權重。
3.度量學習:在此方法中,演算法專註於學習到能最大化匹配正確率的距離度量,而不是考慮外觀表達的選擇。
5. AlignedReID:超過人類表現的行人重識別技術
AlignedReID 是最近的一篇論文,聲稱演算法第一次在行人重識別上超過了人類[4]。AlignedReID 提取整體的特徵,而整體特徵又被局部特徵共同學習到。我們將使用一個第三方工具來實現 AlignedReID,github是 https://github.com/huanghoujing/AlignedReID-Re-Production-Pytorch,並基於Market 1501 數據集進行測試。關於代碼的詳細解釋、如何自定義輸入和 API 將在另一篇博客中討論。
第一步 下載代碼
下載 https://github.com/huanghoujing/AlignedReID-Re-Production-Pytorch為 zip 文件,本地解壓。
第二步 安裝所需包文件
我推薦使用 Anaconda package manager 和 Ubuntu 環境來測試實例。推薦用 Anaconda Python 2.7 的環境來安裝包。
PyTorch 0.3
opencv_python 3.2.0.7
numpy 1.11.3
scipy 0.18.1
h5py 2.6.0
TensorBoardX 0.8
TensorFlow 1.2.0
scikit-learn
......
※十年磨劍指何方?東軟睿馳接連發布L0-L1級ADAS量產產品及NeuSAR操作系統軟體平台
TAG:雷鋒網 |