如何給檢測演算法加入跟蹤

2021-10-10 07:58:49 字數 1320 閱讀 6746

問題背景:給任何有檢測框輸出的檢測演算法加上跟蹤,比如yolov3加上sort,然後遇到乙個細節沒注意,坑了自己一把,記錄一下

out_boxes, out_scores, out_classes = self.sess.run(

[self.boxes, self.scores, self.classes],

feed_dict=)

基於檢測的跟蹤演算法,肯定是應該先找到檢測演算法檢測框的輸出,這裡的out_boxes很顯然是檢測框的輸出。然後我就想當的認為裡面的每個box的座標形式是

xmin,ymin,xmax,ymax,然後接著去寫跟蹤部分,結果一直畫不出檢測框,然後除錯了一下,定位到如下圖:

可以看到它的操作,先取座標,後用pil的draw畫出矩形檢測框。

top, left, bottom, right = box

for i in range(thickness):

if predicted_class == 'person':

draw.rectangle(

[left + i, top + i, right - i, bottom - i],

outline=self.colors[c])

if predicted_class == 'person':

draw.rectangle(

[tuple(text_origin), tuple(text_origin + label_size)],

fill=self.colors[c])

draw.text(text_origin, label, fill=(0, 0, 0), font=font)

if predicted_class == 'person':

draw.rectangle(

[tuple(text_origin), tuple(text_origin + label_size)],

fill=self.colors[c])

draw.text(text_origin, label, fill=(0, 0, 0), font=font)

del draw

調整後檢測框個跟蹤框就可以都顯示出來了

調整部分**:

目標跟蹤檢測演算法(二) 檢測與跟蹤

在該階段,對已存的目標追蹤演算法出現了兩種比較公認的分類,一種是基於生成模型的方法,一種是基於判別模型的方法。在第一階段中的方法都屬於前一種,而基於判別的方法是指通過分類來做跟蹤,也叫檢測跟蹤 tracking by detection 通過機器學習方法,提取影象特徵,並訓練分類器進行分類,在下一幀...

VIBE檢測演算法

一 vibe 獲取目標 其他演算法處理 最終目標 優點 記憶體占用少,處理速度快,計算量小,檢測效果好 無引數法 可直接應用在產品中,軟硬體相容性好 效能優於混合高斯,引數化方法,sacon等 背景模型及時初始化 具有較好的抗噪能力。缺點 ghost區域 挑戰 必須適應環境的變化 比如光照的變化造成...

素數檢測演算法

因為1既不是素數也不是合數,所以下面的實現 中不考慮小於2的情況。本文以c語言進行講解,建議對著完整的原始碼看。最原始 最粗暴的方法就是從頭到尾逐個進行檢測,一旦遇到可被整除的數馬上返回false bool is prime 1 int n return true 該演算法時間複雜度為n2 n 2對...