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

          技巧 | OpenCV程序執(zhí)行時間計算

          共 4546字,需瀏覽 10分鐘

           ·

          2021-07-14 17:04

          點擊上方小白學視覺”,選擇加"星標"或“置頂

          重磅干貨,第一時間送達


          01

          引言

          大家用OpenCV做開發(fā),經常需要調試算法,打印出算法的執(zhí)行時間,OpenCV中沒有直接獲取時間戳的函數,但是有兩個根據CPU時鐘可以精準計算算法每個步驟執(zhí)行時間的函數,通過它們可以計算一行或者多行代碼的執(zhí)行時間,視頻處理的FPS等性能指標。

          計算執(zhí)行時間

          cv.getTickCount,

          返回CPU執(zhí)行的時間周期數,

          cv.getTickFrequency

          每秒CPU時間周期總數


          計算一段算法處理執(zhí)行的時間秒數,代碼結構如下:

          e1 = cv.getTickCount()# your code executione2 = cv.getTickCount()time = (e2 - e1)/ cv.getTickFrequency()

          time是以秒位單位。


          計算秒/毫秒/FPS

          在算法執(zhí)行階段,有三個經常使用的速度性能計量指標分別是秒、毫秒、FPS(每秒多少幀),根據上面的cv.getTickCount與cv.getTickFrequency兩個函數,這三個指標的計算代碼如下:

          e1 = cv.getTickCount()
          # your code execution
          e2 = cv.getTickCount()
          ## 計算秒
          time = (e2 - e1)/ cv.getTickFrequency()


          ## 計算毫秒
          mt =((e2 - e1)/ cv.getTickFrequency())*1000


          ## 計算FPS
          fps = cv.getTickFrequency() / (e2 - e1)


          網絡模型推理執(zhí)行時間計算

          OpenCV中還提供了網絡模型推理執(zhí)行時間得計算函數,完成一次深度學習模型推理的時間,可以從模型的getPerfProfile函數中獲取,轉換為毫秒數,相關的計算代碼如下:

          # Put efficiency information.t, _ = net.getPerfProfile()label = 'Inference time: %.2f ms' % (t * 1000.0 / cv.getTickFrequency())

          人臉檢測模型與代碼執(zhí)行時間計算

          下面的代碼演示了實時視頻人臉檢測模型推理時間毫秒數與計算執(zhí)行時間FPS

          # 人臉檢測
          while True:
              e1 = cv.getTickCount()
              ret, frame = capture.read()
              if ret is not True:
                  break
              h, w, c = frame.shape
              blobImage = cv.dnn.blobFromImage(frame, 1.0, (300300), (104.0177.0123.0), FalseFalse);
              net.setInput(blobImage)
              cvOut = net.forward()

              # Put efficiency information.
              t, _ = net.getPerfProfile()
              label = 'Inference time: %.2f ms' % (t * 1000.0 / cv.getTickFrequency())

              # 繪制檢測矩形
              for detection in cvOut[0,0,:,:]:
                  score = float(detection[2])
                  objIndex = int(detection[1])
                  if score > 0.5:
                      left = detection[3]*w
                      top = detection[4]*h
                      right = detection[5]*w
                      bottom = detection[6]*h

                      # 繪制
                      cv.rectangle(frame, (int(left), int(top)), (int(right), int(bottom)), (25500), thickness=2)
                      cv.putText(frame, "score:%.2f"%score, (int(left), int(top)), cv.FONT_HERSHEY_SIMPLEX, 0.5, (00255), 1)
              e2 = cv.getTickCount()
              fps = cv.getTickFrequency() / (e2 - e1)
              cv.putText(frame, label + (" FPS: %.2f"%fps), (1050), cv.FONT_HERSHEY_SIMPLEX, 1.0, (00255), 2)
              cv.imshow('face-detection-demo', frame)
              cv.waitKey(1)

          此外,OpenCV還有兩個函數可以決定程序執(zhí)行時間,默認情況下OpenCV會自動編譯優(yōu)化代碼,檢測是否啟用自動化,它們分別是:

          cv.useOptimized() ## 檢查是否使用優(yōu)化cv.setUseOptimized() ### 設置優(yōu)化

          默認情況下,OpenCV都是自動啟動優(yōu)化,根據CPU支持不同,可以啟動SSE/AVX等底層指令集優(yōu)化!


          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學視覺」公眾號后臺回復:擴展模塊中文教程,即可下載全網第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內容。

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

          下載3:OpenCV實戰(zhàn)項目20講
          小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現20個實戰(zhàn)項目,實現OpenCV學習進階。

          交流群


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


          瀏覽 44
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  国产av理论片 | 午夜福利爱爱视频 | 色色五月天婷婷 | 天天好逼成人网 | 91视频福利网 |