<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>

          人流量統(tǒng)計(jì)、特定目標(biāo)搜索+跟蹤!手把手帶你玩!

          共 8639字,需瀏覽 18分鐘

           ·

          2021-07-19 11:19

          點(diǎn)擊下方AI算法與圖像處理”,一起進(jìn)步!

          重磅干貨,第一時(shí)間送達(dá)

          環(huán)境

          • ubuntu 18.04 64位
          • yolov5
          • deepsort
          • fastreid

          前言

          基于YOLOv5和DeepSort的目標(biāo)跟蹤 介紹過針對(duì)行人的檢測與跟蹤。本文介紹另一個(gè)項(xiàng)目,結(jié)合 FastReid 來實(shí)現(xiàn)行人的檢測、跟蹤和重識(shí)別。項(xiàng)目地址: https://github.com/zengwb-lx/Yolov5-Deepsort-Fastreid,作者給出的2個(gè)主要實(shí)例,也是非常的實(shí)用,包括行人流量的統(tǒng)計(jì)、人群中特定目標(biāo)的查找與跟蹤。

          項(xiàng)目復(fù)現(xiàn)

          首先,創(chuàng)建個(gè)全新的虛擬環(huán)境

          conda create -n pytorch1.6 python=3.7
          conda activate pytorch1.6

          接著去拉取源碼

          git clone https://github.com/zengwb-lx/Yolov5-Deepsort-Fastreid.git
          cd Yolov5-Deepsort-Fastreid

          然后安裝下其它的依賴包

          # 如果沒有g(shù)pu的話,就按照requirements.txt安裝即可
          pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

          # 編輯requirements.txt,注釋掉torch和torchvision
          pip install -r requirements.txt

          # 使用cython加速
          pip install cython
          cd fast_reid/fastreid/evaluation/rank_cylib
          make all
          cd ../../../../

          先來跑個(gè)行人計(jì)數(shù)的demo

          python person_count.py

          yolov5 deepsort fastreid

          yolov5的作者分別在googleapigithub上都保存了模型文件,但是這2個(gè)yolov5s.pt是不一樣的,大家可以通過md5sum去查看一下,github上的模型文件是對(duì)的

          如果你在運(yùn)行過程中出現(xiàn)下面的錯(cuò)誤

          2021-07-13 14:22:20 [INFO]: Loading weights from ./deep_sort/deep/checkpoint/ckpt.t7... Done!
          Traceback (most recent call last):
            File "person_count.py", line 244, in <module>
              yolo_reid.deep_sort()
            File "person_count.py", line 121, in deep_sort
              bbox_xywh, cls_conf, cls_ids, xy = self.person_detect.detect(video_path, img, ori_img, vid_cap)
            File "/home/xugaoxiang/Works/Yolov5-Deepsort-Fastreid/person_detect_yolov5.py", line 95, in detect
              pred = self.model(img, augment=self.augment)[0]
            File "/home/xugaoxiang/anaconda3/envs/pytorch1.6/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
              result = self.forward(*input, **kwargs)
            File "/home/xugaoxiang/Works/Yolov5-Deepsort-Fastreid/models/yolo.py", line 111, in forward
              return self.forward_once(x, profile)  # single-scale inference, train
            File "/home/xugaoxiang/Works/Yolov5-Deepsort-Fastreid/models/yolo.py", line 131, in forward_once
              x = m(x)  # run
            File "/home/xugaoxiang/anaconda3/envs/pytorch1.6/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
              result = self.forward(*input, **kwargs)
            File "/home/xugaoxiang/Works/Yolov5-Deepsort-Fastreid/models/yolo.py", line 36, in forward
              self.training |= self.export
            File "/home/xugaoxiang/anaconda3/envs/pytorch1.6/lib/python3.7/site-packages/torch/nn/modules/module.py", line 772, in __getattr__
              type(self).__name__, name))
          torch.nn.modules.module.ModuleAttributeError: 'Detect' object has no attribute 'export'

          這個(gè)就是模型的問題,建議使用源碼中自帶的shell腳本進(jìn)行下載

          sh weights/download_weights.sh

          我們來看看這個(gè)行人流量統(tǒng)計(jì)的基本原理:

          首先,作者將yolov5的目標(biāo)檢測封裝成了一個(gè)類Person_detect,通過它的detect方法可以檢測到視頻中的每一個(gè)行人目標(biāo)

          然后,在畫面中設(shè)定一條基準(zhǔn)線,給定線條兩端的坐標(biāo)即可

          line = [(0, int(0.48 * ori_img.shape[0])), (int(ori_img.shape[1]), int(0.48 * ori_img.shape[0]))]
          cv2.line(ori_img, line[0], line[1], (0, 255, 255), 4)

          接著,創(chuàng)建跟蹤器,開始對(duì)yolov5檢測出的每一個(gè)目標(biāo)進(jìn)行跟蹤。這里以目標(biāo)預(yù)測框的中心點(diǎn)為基準(zhǔn),下圖是它的計(jì)算方法

          yolov5 deepsort fastreid

          如果前后幀的中心點(diǎn)所連成的直線和預(yù)先設(shè)定的基準(zhǔn)線相交,則判定為越線,但是這里還有個(gè)方向的問題,向上還是向下?來看另一張圖

          yolov5 deepsort fastreid

          作者利用了三角形的正切與反正切原理,使用math模塊中的degrees方法來判斷,如果這個(gè)角度 >0,說明是向上走,反之則為向下走

          def vector_angle(midpoint, previous_midpoint):
              x = midpoint[0] - previous_midpoint[0]
              y = midpoint[1] - previous_midpoint[1]
              return math.degrees(math.atan2(y, x))

          看完行人計(jì)數(shù)的示例,我們再來看看特定目標(biāo)的重識(shí)別示例

          python person_search_reid.py

          報(bào)錯(cuò)了

          Fusing layers...
          Traceback (most recent call last):
            File "person_search_reid.py", line 120, in <module>
              yolo_reid = yolo_reid(cfg, args, path=args.video_path)
            File "person_search_reid.py", line 35, in __init__
              self.deepsort = build_tracker(cfg, args.sort, use_cuda=use_cuda)
            File "/home/xugaoxiang/Works/Yolov5-Deepsort-Fastreid/deep_sort/__init__.py", line 18, in build_tracker
              max_age=cfg.DEEPSORT.MAX_AGE, n_init=cfg.DEEPSORT.N_INIT, nn_budget=cfg.DEEPSORT.NN_BUDGET, use_cuda=use_cuda)
            File "/home/xugaoxiang/Works/Yolov5-Deepsort-Fastreid/deep_sort/deep_reid.py", line 29, in __init__
              self.extractor = Reid_feature()
            File "./fast_reid/demo/demo.py", line 84, in __init__
              cfg = setup_cfg(args)
            File "./fast_reid/demo/demo.py", line 35, in setup_cfg
              cfg.merge_from_file(args.config_file)
            File "./fast_reid/fastreid/config/config.py", line 107, in merge_from_file
              cfg_filename, allow_unsafe=allow_unsafe
            File "./fast_reid/fastreid/config/config.py", line 50, in load_yaml_with_base
              with PathManager.open(filename, "r") as f:
            File "./fast_reid/fastreid/utils/file_io.py", line 357, in open
              path, mode, buffering=buffering, **kwargs
            File "./fast_reid/fastreid/utils/file_io.py", line 251, in _open
              opener=opener,
          FileNotFoundError: [Errno 2] No such file or directory: '../../kd-r34-r101_ibn/config-test.yaml'

          這是缺少配置文件,到下面的鏈接去下載

          鏈接: https://pan.baidu.com/s/1bMG3qy7npecCh6AzNO-Zyw
          提取碼: hy1m

          把這2個(gè)文件都存放在目錄kd-r34-r101_ibn下,然后修改源碼fast_reid/demo/demo.py中的第45行,將

          default='../../kd-r34-r101_ibn/config-test.yaml',

          改成

          default='kd-r34-r101_ibn/config-test.yaml',

          將第68行的

          default=['MODEL.WEIGHTS''../../kd-r34-r101_ibn/model_final.pth'],

          改成

          default=['MODEL.WEIGHTS''kd-r34-r101_ibn/model_final.pth'],

          然后再次運(yùn)行腳本person_search_reid.py,可以得到

          yolov5 deepsort fastreid

          可以看到,由于事先已經(jīng)提了2位行人(a1111111111b222222222222)的特征,所以,畫面中能夠識(shí)別出這2個(gè)人并進(jìn)行跟蹤。默認(rèn),特征文件保存在fast_reid/query

          特征提取

          如果你也想要制作一個(gè)特征文件,可以按照下面的步驟進(jìn)行

          首先,需要截取目標(biāo)人物的圖片,存放在某個(gè)以特定目標(biāo)命名的文件夾下,如我這里的xugaoxiang.com,這樣,后面進(jìn)行識(shí)別的時(shí)候,就顯示xugaoxiang.com這個(gè)名字了。把這個(gè)文件夾拷貝到fast_reid/query目錄下,目錄結(jié)構(gòu)如下

          (pytorch1.6) xugaoxiang@1070Ti:~/Works/Yolov5-Deepsort-Fastreid/fast_reid/query$ tree
          .
          ├── names.npy
          ├── query_features.npy
          └── xugaoxiang.com
              ├── 10.png
              ├── 11.png
              ├── 12.png
              ├── 13.png
              ├── 14.png
              ├── 15.png
              ├── 1.png
              ├── 2.png
              ├── 3.png
              ├── 4.png
              ├── 5.png
              ├── 6.png
              ├── 7.png
              ├── 8.png
              └── 9.png

          接下來執(zhí)行

          cd fast_reid/demo
          python person_bank.py

          執(zhí)行完畢后,query目錄下的query_features.npynames.npy就被更新了

          最后,找個(gè)包含目標(biāo)的視頻測試下效果

          yolov5 deepsort fastreid

          yolov5 deepsort fastreid

          工程下載

          最后,將包含所需文件全部打包,需要的朋友自行下載

          鏈接:https://pan.baidu.com/s/1JiFzo5_H7TKniZZPzjZK7A
          提取碼:nauu

          參考資料

          • https://github.com/zengwb-lx/Yolov5-Deepsort-Fastreid
          • https://blog.csdn.net/zengwubbb/article/details/113422048
          • https://xugaoxiang.com/2021/06/29/fastreid/

          努力分享優(yōu)質(zhì)的計(jì)算機(jī)視覺相關(guān)內(nèi)容,歡迎關(guān)注:

          個(gè)人微信(如果沒有備注不拉群!
          請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱



          下載1:何愷明頂會(huì)分享


          AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析


          下載2:終身受益的編程指南:Google編程風(fēng)格指南


          AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):c++,即可下載。歷經(jīng)十年考驗(yàn),最權(quán)威的編程規(guī)范!



          下載3 CVPR2021

          AI算法與圖像處公眾號(hào)后臺(tái)回復(fù):CVPR即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

          點(diǎn)亮 只需一秒,我卻能開心一天




          瀏覽 217
          點(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>
                  鸥美无毛人妖家庭乱伦视频 | 精品激情| 亚洲黄色视频免费看 | 天天干无码 | 亚洲无码精品电影 |