YOLO下一步:輸出預測boundingbox做進一步處理__電腦視覺

來源:互聯網
上載者:User

對於我們使用yolo做一下research中的其他應用而言,最終目的肯定不是看看預測boundingbox就ok了。
具體對於我而言,就需要在得到boundingbox後再找出目標的局部資訊。下面簡單介紹一下如何完成。
1.修改原始碼
在原始碼image.c中找到draw_detections()函數,print出方框的位置即可,如下:

2.記錄終端輸出到文字檔
我這裡使用的命令是| tee train_log.txt ,可參考:Linux中記錄終端(Terminal)輸出到文字檔
3.python進一步提取boundingbox並做簡單處理
先看一眼輸入資料(即上一步輸出到檔案中的資料):

可以看到有時候檢測到有時候檢測不到,這裡我為了後面方便處理(這裡我是要提取類別名為tip的box座標並進行處理),簡單處理了一下(已知每一幀有且只有一個tip,如果沒有檢測到則用相鄰幀的座標填充),並儲存到新檔案內。
代碼如下:

把‘tip’的一行資料讀入到dic中

i=0d={}with open('output_coordinate.txt') as f:    for line in f.readlines():        if 'Objects:' in line:            i=i+1                    if 'tip:' in line:            d[i]=line.strip()# print(i)# print(d)
若某一幀中沒有檢測到tip,則預設為上一幀檢測到的資料
d[1]=d[2]for k in range(1, i+1):    if not d.get(k):        d[k]=d[k-1]# print(d)
將tip資料分割為list
import refor k, v in d.items():    d[k]=re.split(r'\s+', v)# print(d)
數組重組為dict格式
frames=[]probs=[]lx=[]rx=[]ly=[]ry=[]for k, v in d.items():    frames.append(k)    probs.append(v[1])    lx.append(v[2])    rx.append(v[3])    ly.append(v[4])    ry.append(v[5])data = {'frames':frames,        'probs':probs,        'lx':lx,        'rx':rx,        'ly':ly,        'ry':ry,}
資料存放區到DataFrame
from pandas import Series, DataFrameframes_num=1590frame = DataFrame(data, columns = ['probs', 'lx', 'rx', 'ly', 'ry'], index = list(range(1, frames_num+1)))frame.index.name = 'frames'frame.columns.name = 'coordiante'frame.head()
coordiante probs lx rx ly ry
frames
1 36% 559 811 247 306
2 36% 559 811 247 306
3 37% 559 811 247 305
4 37% 558 810 246 305
5 37% 557 810 245 304

座標資料儲存到文本

with open('tip_coordinate.txt', 'w') as f:    for j in range(frames_num):        f.write(lx[j]+' '+ly[j]+' '+rx[j]+' '+ry[j]+'\n')  

最後處理的結果:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.