在我的研究專案實驗設定中,我正在使用ArUco標記物來跟蹤兩個點。一個標記在機器人的底座上,另一個標記在機器人的頂端。錄像是用OpenCV以40FPS的速度記錄的,整個實驗持續了72秒。這意味著我希望看到每個坐標值(x、y、z;我不需要旋轉)有大約2880個資料點,但是當頂端的標記在運動時,我就會失去分數。有什么辦法可以放慢視頻的播放速度或放慢OpenCV對視頻的處理速度,以便我可以得到這些丟失的點?我附上了一個機器人的GIF圖,它是一個大致的弧形軌跡。謝謝你。

編輯:下面我添加了我的函式,在那里我得到了我的兩個ArUco標記的姿勢。
kernel = np.ones((5,5), np.uint8)
def get_aruco_pose(im):
global rvec, tvec
im = cv.dilate(im, kernel, iterations=1)
corners, ids, rejectedCandidates = cv.aruco.detectMarkers(im.DICT, i.e.)
DICT,
引數=PARAM)
transf = None
if len(corners) > 0:
#扁平化ArUco的IDs串列
ids = ids.flatten()
#在檢測到的ArUCo角上回圈播放
for (markerCorner, markerID) in zip(corners, ids):
rvec, tvec, _ = cv.ruco.improvedPoseSingleMarkers(markerCorner, ARUCO_LENGTH_MM, CAMERA_MATRIX, DIST_COEFF)
# 繪制Aruco
show_aruco(im, markerCorner, markerID) # 取消注釋以在視頻中顯示標記物
rmat, _ = cv.Rodrigues(rvec)
tvec = tvec.reshape(3, 1)
transf = np.concatenate((rmat, tvec), axis = 1)
如果markerID == 3:
tvec_bs.append(tvec)
如果markerID == 4:
tvec_fs.append(tvec)
回傳 tvec
uj5u.com熱心網友回復:
事實上,這個問題與軟體無關,而是與硬體有關。因為你的系統有一個速度,它會導致你的影像出現運動模糊。在你的代碼回圈中,它已經檢查了每一幀來檢測Aruco,但由于運動模糊,它似乎沒有成功。
你的相機有一個引數,我們稱之為曝光時間。這是你捕捉每張影像的時間限制。曝光時間與目標物件的速度有關。沒有一個恒定的配比不會得到模糊的影像,但你只能根據你的經驗選擇可用的相機。
因此,你可以做什么來解決這個問題:
你可以做什么來解決這個問題?
- 你可以換一個更高幀數的相機 。
- 你可以降低平臺的速度以減少運動模糊 。
uj5u.com熱心網友回復:
這個問題在所附的圖片中很明顯。解決這個問題的另一個方法是認識到這個問題。你現在在視覺上有不同的標記,但你知道它們在運動和旋轉中代表同一個標記。所以你可以認出它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/311687.html
標籤:
上一篇:以固定的fps值提取幀數

