1、boosting tracker
和haar cascades(adaboost)背後所用的機器學習演算法相同,但是距其誕生已有十多年了。這一追蹤器速度較慢,並且表現不好,但是作為元老還是有必要提及的。(最低支援opencv 3.0.0)
2、mil tracker
比上乙個追蹤器更精確,但是失敗率比較高。(最低支援opencv 3.0.0)
3、kcf tracker
比boosting和mil都快,但是在有遮擋的情況下表現不佳。(最低支援opencv 3.1.0)
4、csrt tracker
比kcf稍精確,但速度不如後者。(最低支援opencv 3.4.2)
5、medianflow tracker
在報錯方面表現得很好,但是對於快速跳動或快速移動的物體,模型會失效。(最低支援opencv 3.0.0)
6、tld tracker
我不確定是不是opencv和tld有什麼不相容的問題,但是tld的誤報非常多,所以不推薦。(最低支援opencv 3.0.0)
7、mosse tracker
速度真心快,但是不如csrt和kcf的準確率那麼高,如果追求速度選它準沒錯。(最低支援opencv 3.4.1)
8、goturn tracker
這是opencv中唯一一深度學習為基礎的目標檢測器。它需要額外的模型才能執行,本文不詳細講解。(最低支援opencv 3.2.0)
我個人的建議:
如果追求高準確度,又能忍受慢一些的速度,那麼就用csrt
如果對準確度的要求不苛刻,想追求速度,那麼就選kcf
純粹想節省時間就用mosse
從opencv 3開始,目標檢測器得到了快速發展,下表總結了不同版本的opencv中可適用的追蹤器:
想要用opencv進行目標追蹤,首先開啟乙個新檔案,將它命名為opencv_object_tracker.py,然後插入以下**:
#import the necessary packages
from imutils.video import videostream
from imutils.video import fps
import argparse
import imutils
import time
import cv2
然後開始分析命令列引數:
ap = argparse.argumentparser()
ap.add_argument("-v", "--video",type=str,
help="path to input video file")
ap.add_argument("-t", "--tracker",type=str,default="kcf",
help="opencv object tracker type")
args = vars(ap.parse_args())
我們的命令列引數包括: OpenCV中八種不同的目標追蹤演算法
這八種工具包括 boosti ng tracker 和haar cascades adaboost 背後所用的機器學習演算法相同,但是距其誕生已有十多年了。這一追蹤器速度較慢,並且表現不好,但是作為元老還是有必要提及的。最低支援opencv 3.0.0 kcf tracker 比boosting和m...
用OpenCV實現目標追蹤的八種方法
目標跟蹤作為機器學習的乙個重要分支,加之其在日常生活 軍事行動中的廣泛應用,很多國內外學者都對此頗有研究。本文將討論opencv上八種不同的目標追蹤演算法。所以,我們想應用一種一次性的目標檢測方法,然後在之後的幀上都能進行目標追蹤,使這一任務更加快速 更高效。這裡的問題是 opencv能幫我們達到這...
八皇后12種本質不同的解
在八皇后的92種解中有大量的解是本質重複的 可以通過左右對稱,上下對稱,對角線對稱,旋轉來互相轉化 只有十二種解是本質不同的。include int w 1 intcheck int m void put void intcheck3 void intcheck2 void void firstdi...