1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        基于OpenCV實(shí)戰(zhàn):動(dòng)態(tài)物體檢測(cè)

        共 2432字,需瀏覽 5分鐘

         ·

        2021-05-01 02:23

        最近,閉路電視安全系統(tǒng)運(yùn)行著多種算法來(lái)確保安全,例如面部識(shí)別,物體檢測(cè),盜竊檢測(cè),火災(zāi)警報(bào)等。我們?cè)谶\(yùn)動(dòng)檢測(cè)的基礎(chǔ)上實(shí)現(xiàn)了許多算法,因?yàn)樵诳臻e幀上運(yùn)行所有這些進(jìn)程沒(méi)有任何意義。在本文中,我們將討論實(shí)現(xiàn)基于運(yùn)動(dòng)檢測(cè)的視頻保存。


        安裝依賴庫(kù)
        OpenCV:pip install opencv-python


        基本動(dòng)作檢測(cè)

        在這里,我們將討論代碼和對(duì)如何在后臺(tái)工作的基本理解。在計(jì)算機(jī)視覺(jué)中,我們把運(yùn)動(dòng)看作是環(huán)境的變化。為了計(jì)算轉(zhuǎn)換,我們必須有一個(gè)背景圖像來(lái)比較。所以,我們?cè)诔绦虻拈_頭保存第一個(gè)圖像。

        # Converting the image to GrayScalegray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)gray = cv2.GaussianBlur(gray,(21,21),0)# Saving the First Frameif first_frame is None:    first_frame = gray    continue

        然后,我們將后續(xù)幀與保存的第一幀進(jìn)行比較,以觀察差異。計(jì)算完差異后,我們可以應(yīng)用閾值將其轉(zhuǎn)換為黑白圖像。

        #Calculates difference to detect motiondelta_frame = cv2.absdiff(first_frame, gray)#Applies Threshold and converts it to black & white imagethresh_delta = cv2.threshold(delta_frame, 30, 255, cv2.THRESH_BINARY)[1]thresh_delta = cv2.dilate(thresh_delta, None, iterations=0)#finding contours on the white portion(made by the threshold)cnts,_ = cv2.findContours(thresh_delta.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

        最后一個(gè)命令在該黑白圖像中查找輪廓,并給出用于創(chuàng)建邊界框的坐標(biāo),如上面的視頻所示。使用運(yùn)動(dòng)檢測(cè)的好處:

        1. 它不會(huì)保存無(wú)用的空閑鏡頭。因此,減少了其他算法的工作量,因?yàn)椴粫?huì)保存空閑幀進(jìn)行處理。

        2. 它需要較少的計(jì)算,并且適合實(shí)時(shí)實(shí)施。


        阻礙與解決方案


        給定的因素導(dǎo)致輪廓檢測(cè)不理想,運(yùn)動(dòng)檢測(cè)的幼稚方法會(huì)在執(zhí)行開始時(shí)為所有比較保存第一幀。不好有幾個(gè)原因:

        • 白天的照明條件可能會(huì)改變。

        • 天氣變化。

        • 執(zhí)行時(shí)相機(jī)被遮擋。

        解決方案:在沒(méi)有運(yùn)動(dòng)的情況下,可以通過(guò)定期定期更新保存的幀來(lái)輕松解決此問(wèn)題。

        # Number of idle frames to pass before changing the saved frame # for further comparisionsFRAMES_TO_PERSIST = 1000

        然后將其放在while循環(huán)中:

        #increment delay counter for every idle framedelay_counter += 1#Update the saved first frameif delay_counter > FRAMES_TO_PERSIST:    delay_counter = 0    first_frame = next_frame


        當(dāng)檢測(cè)到運(yùn)動(dòng)時(shí),將delay_counter設(shè)置為零,微小的物體(例如蜜蜂和昆蟲)和通常不必要的輕微不必要的運(yùn)動(dòng)被存儲(chǔ)起來(lái)。解決方案:如片段所示,我們應(yīng)該在該區(qū)域設(shè)置一個(gè)閾值。

        # Minimum boxed area(in pixels) for a detected motion to count as actual motion# Use to filter out noise or small objectsMIN_SIZE_FOR_MOVEMENT = 2000

        然后在while循環(huán)中放置一個(gè)if語(yǔ)句:

        #Checks if the area is big enough to be considered as motion.if cv2.contourArea(c) > MIN_SIZE_FOR_MOVEMENT:    #Your code


        各種平臺(tái)上的基準(zhǔn):


        所有這些都是針對(duì)同一視頻(30-fps,1280x720)計(jì)算的。

        Raspberry Pi 2:

        • 規(guī)格
        • 1.5 GHz處理器
        • 1 GB內(nèi)存
        • 沒(méi)有GPU
        • FPS:每秒8.08幀

        Jetson Nano:

        • 規(guī)格
        • 四核ARM處理器1.43Ghz
        • 2 Gb內(nèi)存
        • GPU:128核心Nvidia Maxwell
        • FPS:每秒33幀

        個(gè)人電腦 :

        • 規(guī)格
        • i7第八代處理器
        • 16 GB內(nèi)存
        • GTX 1060 6 GB GPU
        • FPS:每秒37幀


        潛在應(yīng)用:

        智能鈴:

        如果有人站在您家門口,它將自動(dòng)觸發(fā)鈴聲,并向您發(fā)送提示。


        潛在威脅警報(bào):

        如果有人站在您家門前的時(shí)間長(zhǎng)于正常時(shí)間,它將提醒您。


        結(jié)論


        在本文中,我們實(shí)現(xiàn)了一個(gè)非?;镜匾乃惴ǎ捎糜谟行н\(yùn)行所有其他算法。可以對(duì)該運(yùn)動(dòng)檢測(cè)算法進(jìn)行更多修改,以使其更加健壯。


        ?------------------------------------------------


        雙一流高校研究生團(tuán)隊(duì)創(chuàng)建 ↓

        專注于計(jì)算機(jī)視覺(jué)原創(chuàng)并分享相關(guān)知識(shí) ?

        聞道有先后,術(shù)業(yè)有專攻,如是而已 ╮(╯_╰)╭


        瀏覽 80
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            黑人久久久 | 日韩精品一区二区三区中文字幕 | 男人桶女人爽30分钟 | 亚洲骚屄 | 熟女人妻在线 | 国产无码电影 | 国产大屌操逼 | 超碰国产在线 | 啊灬啊灬轻点第一次和外国人 | 我与公的激情乱浪 |