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

          使用Python+OpenCV+detectorn2實(shí)現(xiàn)社交距離檢測(cè)

          共 4165字,需瀏覽 9分鐘

           ·

          2021-12-14 20:59

          點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

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

          介紹
          美國和歐洲的許多城市現(xiàn)在都在謹(jǐn)慎地重新開放。人們被要求在外出時(shí)保持安全距離。但是人們照著做嗎?城市對(duì)人們的安全距離是否符合規(guī)則進(jìn)行評(píng)估并采取相應(yīng)的行動(dòng)是很重要的。如果大多數(shù)人都遵守疫情期間的命令,那么就可以安全地開放更多的公共場(chǎng)合。
          然而,如果出現(xiàn)了太多違規(guī)行為,那么關(guān)閉這些場(chǎng)合可能更安全。
          這正是邁阿密海灘公園發(fā)生的事。公園于四月底開放,但由于太多人藐視與戴口罩和社交安全距離有關(guān)的規(guī)定,公園在一周內(nèi)就關(guān)閉了。該市通過警員監(jiān)控公園并發(fā)出警告。但人類監(jiān)測(cè)可能不是一個(gè)切實(shí)可行的解決辦法。
          我們?nèi)绾问褂萌斯ぶ悄芎蜋C(jī)器學(xué)習(xí)來檢測(cè)人們是否遵循社交距離規(guī)則?大多數(shù)城市已經(jīng)在公共場(chǎng)所安裝了攝像頭,這些攝像頭正好可以用于此目的。
          在這個(gè)博客中,我展示了如何使用行人跟蹤算法來監(jiān)控違規(guī)行為。我也在我的Github上開源了代碼。請(qǐng)參閱下面的模型。
          • 我的Github
            • https://github.com/priya-dwivedi/Deep-Learning/tree/master/detecting_social_distancing_violation
          社會(huì)距離違規(guī)檢測(cè)和計(jì)數(shù):
          在深度學(xué)習(xí)分析中,我們非常熱衷于使用數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)來解決問題。原稿全文刊登在我們的網(wǎng)站上:
          • https://deeplearninganalytics.org/using-ai-to-detect-social-distancing-violations/


          行人跟蹤

          數(shù)據(jù)

          我們首先需要視頻數(shù)據(jù)來構(gòu)建和測(cè)試我們的模型。我使用了開放的MOT數(shù)據(jù)集(https://motchallenge.net/) 。
          MOT數(shù)據(jù)集是計(jì)算機(jī)視覺行人跟蹤的標(biāo)準(zhǔn)數(shù)據(jù)集。許多最先進(jìn)的算法都是在該數(shù)據(jù)上訓(xùn)練和測(cè)試的。這個(gè)數(shù)據(jù)集有許多開源的剪輯片段顯示在不同的相機(jī)角度下人的運(yùn)動(dòng)。我選擇了一個(gè)固定高度的攝像機(jī)拍攝到的一個(gè)小片段,它的位置是在德國的城鎮(zhèn)中心。
          你可以從這里(http://www.robots.ox.ac.uk/ActiveVision/Research/Projects/2009bbenfold_headpose/project.html#datasets) 下載這個(gè)剪輯片段。請(qǐng)看下面這個(gè)剪輯片段中的一個(gè)幀。

          使用深度排序進(jìn)行行人跟蹤

          在計(jì)算機(jī)視覺中,行人跟蹤是指給一個(gè)人一個(gè)ID,在他出現(xiàn)的每一幀中檢測(cè)出他,并將他的ID轉(zhuǎn)發(fā)出去;一旦他離開了這個(gè)ID,我們就不會(huì)重復(fù)使用他的ID;如果一個(gè)新的人進(jìn)入,他就會(huì)被一個(gè)新的ID初始化。
          跟蹤往往是一項(xiàng)困難的任務(wù),因?yàn)槿藗兛赡芸雌饋砗芟嗨疲瑢?dǎo)致模型切換ID。人們可能會(huì)被另一個(gè)人或物體擋住,當(dāng)他們出現(xiàn)時(shí)會(huì)被分配一個(gè)新的ID。近年來,深度學(xué)習(xí)技術(shù)在多目標(biāo)跟蹤基準(zhǔn)(https://motchallenge.net/results/MOT16/) 上的性能有了顯著提高。目前多目標(biāo)跟蹤技術(shù)的精度是62.0
          你可以在我的博客中閱讀更多關(guān)于深度學(xué)習(xí)行人跟蹤的內(nèi)容。
          • https://towardsdatascience.com/people-tracking-using-deep-learning-5c90d43774be?gi=7af825362a53
          為什么我們需要進(jìn)行行人跟蹤?
          原因是我們想找出違反社會(huì)距離規(guī)則的人數(shù)量。在沒有跟蹤器的情況下,如果兩個(gè)人走得很近,那么他們?cè)诿恳粠卸紩?huì)被視為違規(guī),但是如果我們使用跟蹤器,那么我們可以將其視為一次違規(guī)事件。
          在這個(gè)博客中,我使用了深度排序模型(https://arxiv.org/abs/1703.07402) 進(jìn)行跟蹤。
          這個(gè)模型的代碼在作者的GitHub(https://github.com/nwojke/deep_sort) 上公開發(fā)布。
          深度排序模型使用人的位置和外觀來跟蹤。位置信息通過Kalman濾波器捕獲,Kalman濾波器預(yù)測(cè)盒子的下一個(gè)可能位置,而外觀信息是使用生成嵌入的深度學(xué)習(xí)模型生成的。
          若要在此視頻上運(yùn)行代碼,需要將原始圖像和包含所有邊界框位置的檢測(cè)文件傳遞給跟蹤器;然后,跟蹤器使用這些信息為每幀中的每個(gè)人分配一個(gè)ID。deep sort博客上詳細(xì)解釋了這一點(diǎn)。請(qǐng)參見下面對(duì)此剪輯執(zhí)行跟蹤的結(jié)果。正如你所看到的,每個(gè)人都被分配了一個(gè)ID,這個(gè)ID被成功地轉(zhuǎn)入下一幀。跟蹤器還輸出一個(gè)csv,其中包含軌跡的詳細(xì)信息。
          我已經(jīng)在Github上(https://github.com/priya-dwivedi/Deep-Learning/tree/master/detecting_social_distancing_violation) 共享了這個(gè)文件,我們將在代碼的下一部分使用它。
          使用深度排序模型進(jìn)行行人跟蹤:
          現(xiàn)違反社交距離的行為
          為了檢測(cè)社會(huì)距離違規(guī)行為,我們?cè)诳蚣苤羞x取每個(gè)軌道,并測(cè)量其與框架中其他軌道的距離。每個(gè)軌跡基本上都是一個(gè)帶ID的邊界框,因此可以使用它們之間的歐氏距離將邊界框與另一個(gè)邊界框進(jìn)行比較。代碼如下所示。
          def?distance_boxes?(boxA,?boxB):
          ????import?math
          ????center_boxA?=?[(boxA[0]?+?boxA[2])/?2.0,?(boxA[1]?+?boxA[3])/2.0]
          ????center_boxB?=?[(boxB[0]?+?boxB[2])/?2.0,?(boxB[1]?+?boxB[3])/2.0]
          ????pixel_distance??=?math.sqrt(?((center_boxA[0]-center_boxB[0])**2)+((center_boxA[1]-center_boxB[1])**2)?)
          ????return?pixel_distance
          現(xiàn)在我們開始建模。其代碼在下面共享。這與我的Github中的代碼相同。
          • https://github.com/priya-dwivedi/Deep-Learning/blob/master/detecting_social_distancing_violation/Social%20Distancing%20Violation.ipynb
          對(duì)每個(gè)幀運(yùn)行的主要步驟是:
          1. 比較每個(gè)軌跡和其他軌跡之間的像素距離
          2. 如果距離小于接近距離閾值,則兩人距離太近。因此,將 safe=1 放在兩個(gè)邊界框的數(shù)據(jù)框中。變量“safe”稍后用于可視化
          3. 我們還計(jì)算每個(gè)ID的總違規(guī)次數(shù)。這是計(jì)算與它們太接近的其他ID。因此,只要距離小于接近距離閾值,我們都會(huì)在字典中維護(hù)一個(gè)過于接近的軌跡列表
          代碼運(yùn)行得很慢,因?yàn)樗枰獙⒚總€(gè)軌道與其他軌道進(jìn)行比較,并在600幀以上執(zhí)行此操作。這些計(jì)算中有許多是重復(fù)的,因?yàn)樗鼘⒎謩e測(cè)量軌道1與軌道2之間的距離,然后測(cè)量軌道2與軌道1之間的距離。
          為了節(jié)省時(shí)間,我將兩次計(jì)算的結(jié)果存儲(chǔ)在一次傳遞中。因此,當(dāng)比較track1和track2時(shí),結(jié)果將寫入數(shù)據(jù)幀各自的行中,這樣可以將運(yùn)行時(shí)間減少一半。
          我發(fā)現(xiàn),像素距離為70對(duì)于檢測(cè)那些“似乎”走得太近的人來說是相當(dāng)合理的。代碼的可視化模塊會(huì)在框太近時(shí)亮顯紅色框,并顯示每個(gè)框的違規(guī)計(jì)數(shù)。帶有結(jié)果的示例框架如下所示。
          實(shí)際部署
          如果要部署它,需要考慮一些事情。
          1. 攝像機(jī)需要注冊(cè),這樣我們就可以正確地將像素距離映射到現(xiàn)實(shí)世界中的距離
          2. 如果存在連續(xù)的攝像機(jī)陣列,那么我們可能需要添加行人重識(shí)別功能,以幫助跟蹤器在攝像機(jī)之間轉(zhuǎn)發(fā)ID和違規(guī)計(jì)數(shù)。在過去的幾年里,人們對(duì)行人重識(shí)別(https://arxiv.org/abs/2001.04193) 進(jìn)行了大量的研究
          3. 這里的代碼是輕量級(jí)的,可以在與攝像機(jī)綁定的Jetson TX2(https://developer.nvidia.com/embedded/jetson-tx2) 之類的嵌入式設(shè)備上運(yùn)行。
          結(jié)論
          跟蹤是計(jì)算機(jī)視覺中的一個(gè)重要問題,有著廣泛的應(yīng)用,其中一個(gè)應(yīng)用程序就是檢測(cè)社交距離違規(guī)行為,這可以幫助城市評(píng)估公共衛(wèi)生風(fēng)險(xiǎn),并在較安全的情況下重新開放公共場(chǎng)合。
          我希望你能嘗試一下代碼,并嘗試一下在更改接近標(biāo)準(zhǔn)距離時(shí)會(huì)發(fā)生什么。
          參考文獻(xiàn)
          1. MOT挑戰(zhàn)
            • https://motchallenge.net/
          2. 深度排序算法
            • https://arxiv.org/abs/1703.07402
          原文鏈接:https://medium.com/swlh/using-ai-to-detect-social-distancing-violations-4707301844be


          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 89
          點(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>
                  操逼视频网站网址 | 欧美色图亚洲色 | 精品国产制服丝袜高跟 | 天美传媒69成人影片 | 琪琪在线视频 |