【毕业设计】深度学习实现行人重识别 - python opencv yolo Reid
文章目錄
- 0 前言
- 1 課題背景
- 2 效果展示
- 3 行人檢測
- 4 行人重識別
- 5 其他工具
- 6 最后
0 前言
🔥 這兩年開始畢業設計和畢業答辯的要求和難度不斷提升,傳統的畢設題目缺少創新和亮點,往往達不到畢業答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統達不到老師的要求。
為了大家能夠順利以及最少的精力通過畢設,學長分享優質畢業設計項目,今天要分享的是
🚩 **基于深度學習的行人重識別算法研究與實現 **
🥇學長這里給一個題目綜合評分(每項滿分5分)
- 難度系數:3分
- 工作量:3分
- 創新點:5分
🧿 選題指導, 項目分享:
https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md
1 課題背景
行人重識別是計算機視覺領域的研究熱點之一,旨在研究不重疊的多個攝像區域間對于特定行人的匹配準確率,是圖像檢索的子問題,多應用于安防和刑偵。我國實現的視頻監控“天網”,就是通過在人流量大的公共區域密集安裝監控設備來實現“平安城市”建設。盡管部分攝像頭可轉動,但仍存在監控盲區和死角等局限性問題,Re-ID技術彌補了攝像設備的視覺局限性。然而,在實際應用中異時異地相同行人的圖像數據,在姿勢、前景背景、光線視角以及成像分辨率等方面差異大,使得Re-ID研究具有挑戰性。
行人重識別展示
2 效果展示
手動標記
檢測結果
3 行人檢測
本項目實現了基于 yolo框架的行人目標檢測算法,并將該目標檢測算法應用在圖像和視頻的識別檢測之中。
簡介
下圖所示為 YOLOv5 的網絡結構圖,分為輸入端,Backbone,Neck 和 Prediction 四個部分。其中,
輸入端包括 Mosaic 數據增強、自適應圖片縮放、自適應錨框計算,Backbone 包括 Focus 結構、CSP
結 構,Neck 包 括 FPN+PAN 結 構,Prediction 包 括GIOU_Loss 結構。
Head輸出層
輸出層的錨框機制與YOLOv4相同,主要改進的是訓練時的損失函數GIOU_Loss,以及預測框篩選的DIOU_nms。
對于Head部分,可以看到三個紫色箭頭處的特征圖是40×40、20×20、10×10。以及最后Prediction中用于預測的3個特征圖:
①==>40×40×255②==>20×20×255③==>10×10×255
相關代碼
4 行人重識別
簡介
行人重識別(Person re-identification)也稱行人再識別, 被廣泛認為是一個圖像檢索的子問題, 是利用計算機視覺技術判斷圖像或者視頻中是否存在特定行人的技術, 即給定一個監控行人圖像檢索跨設備下的該行人圖像。行人重識別技術可以彌補目前固定攝像頭的視覺局限, 并可與行人檢測、行人跟蹤技術相結合, 應用于視頻監控、智能安防等領域。
行人重識別系統
行人檢測
主要用于檢測視頻中出現的人像,作為一個行人重識別首先要做到的就是能夠將圖片中的行人識別出來,稱為Gallery輸入。當然,在學術研究領域,行人重識別主要還是關注的下面這個部分,而對于行人檢測這部分多選擇采用目前已經設計好的框架。
行人重識別
這一部分就是對上面的Probe以及Gallery進行特征提取,當然提取的方式可以是手工提取,也可以使用卷積神經網絡進行提取。然后呢,就是對圖片的相似度進行度量,根據相似圖進行排序。
針對行人重識別系統從細節來說,包括下面幾個部分:
- 特征提取(feature Extraction):學習能夠應對在不同攝像頭下行人變化的特征。
- 度量學習(Metric Learning) :將學習到的特征映射到新的空間使相同的人更近不同的人更遠。
- 圖像檢索(Matching):根據圖片特征之間的距離進行排序,返回檢索結果
Reid提取特征
行人重識別和人臉識別是類似的,剛開始接觸的可以認為就是人臉換成行人的識別。
截取需要識別的行人底庫
保存行人特征,方便進行特征比對
相關代碼
# features:reid模型輸出512dim特征 person_cossim = cosine_similarity(features, self.query_feat) max_idx = np.argmax(person_cossim, axis=1) maximum = np.max(person_cossim, axis=1) max_idx[maximum < 0.6] = -1 score = maximum reid_results = max_idx draw_person(ori_img, xy, reid_results, self.names) # draw_person name5 其他工具
OpenCV
是一個跨平臺的計算機視覺處理開源軟件庫,是由Intel公司俄羅斯團隊發起并參與和維護,支持與計算機視覺和機器學習相關的眾多算法。
本項目中利用opencv進行相關標記工作,相關代碼:
6 最后
總結
以上是生活随笔為你收集整理的【毕业设计】深度学习实现行人重识别 - python opencv yolo Reid的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 研究Win32 GUI中SetActiv
- 下一篇: python有什么游戏可以开发-主流游戏