一場棒球比賽中,最精彩的就是投手與打擊者的對決,當投手投出球後,我 們緊張的是打擊者會不會看穿球路、敲出安打,還是通過好球帶、被捕手接住,
而關鍵就在於能不能掌握棒球的落點。
在本研究中,我們提出一個創新的演算法,藉由結合飛蛾撲火的原理與拋體 運動的公式計算,在投手投出球的瞬間,能一次到位預測出棒球的飛行落點,並 在棒球飛行過程中,持續以飛蛾撲火之角度校正方式,持續微調並獲得準確的預 測落點。本研究的目的即是希望藉由模仿模仿模仿飛蛾撲火模仿飛蛾撲火飛蛾撲火原理的飛蛾撲火原理的原理的預測原理的預測預測預測演算法演算法演算法演算法,有效提升 機器視覺與飛行物體落點預測的能力,在投手投球的瞬間,就能立刻得知棒球的 落點。
本研究的主要內容是先透過 3D 電腦視覺及影像處理的技術,以兩台攝影機 拍攝棒球的飛行畫面,在系統啟動時先進行攝影機校正,再對影像作即時的三相 背景相減法,運用連通法和特徵濾波有效消除雜訊,並取得左右攝影機各別的飛 行球體 2D 座標。之後透過座標轉換,將 3D 座標資訊代入拋體運動公式以及飛 蛾撲火原理的演算法,預測出棒球的最後落點。
圖一、 機器視覺捕手概念圖。
1.2. 研究動機與 研究動機與 研究動機與 研究動機與創意來源 創意來源 創意來源 創意來源 1.2.1.
研究動機研究動機研究動機研究動機在機器人感知技術的發展中,機器人視覺已有豐碩的研究成果。目前較具挑 戰性的課題是以視覺追蹤快速移動的物體,其中棒球飛行的預測更是大家努力的 目標。這類相關的研究大多採用卡曼濾波器(Kalman Filter)估測球體的動向,
但實際結合機械手臂進行擊球或接球卻出現極大的挑戰。Frese 和 Bauml 等學者 在機器人視覺的領域已有長年的研究成果,2001 年他們使用雙攝影機,以延伸 式卡曼濾波器(Extended Kalman Filter)估測球體的落點,並驅動 7 軸機器手臂 接球,成功率約為 66%[1]。2011 年 Frese 和 Bauml 等學者展示了他們最新的研
究,他們設計了一個藍色雙手臂機器人,能同時控制兩隻機械手臂接住兩顆飛 球,接球成功率約 80%[2]。C. Y. Lin 和 Y. P. Chiu 等學者[3]也以雙攝影機估測球 之位置,並控制雙軸機器手臂接球,接球成功率約為 65%。黃志誠[4]以單眼攝 影機估測球體位置,控制雙軸機械手臂擊球,打擊命中成功率約為 43%。
1.2.2.
創意來源創意來源創意來源創意來源由於卡曼濾波器(Kalman Filter)需持續的追蹤目標動向,才能預測目標的 未來座標,當棒球飛進好球帶的前一刻,才計算出棒球落點,對於一個機器捕手 而言,機器反應速度是一個非常大的挑戰。Frese 和 Bauml 等學者[1, 2]針對機械 手臂的機構設計進行改良,經過十年的研究,設計出一個藍色雙手臂機器人(如 圖二),將接球成功率從 66%提升到 80%。但我們可以明顯發現,花費龐大金費 將硬體機構發展到極限,最後的接球準確率僅改善至 80%,顯然預測演算法仍有 發展空間,於是我們開始思考是否有更好的預測方式。
圖二、 Bauml 等學者展示的藍色機器人[2]。 圖三、 飛蛾飛向電燈的軌跡記錄圖[5]。
某天晚上,看見路燈有許多飛蛾圍繞,便自問飛蛾為何會撲火,如果路燈會 移動,那飛蛾會不會追著路燈呢?學生將此想法整理成一份簡易又準確的演算 法。與老師討論後,決定將此想法結合物理拋體運動公式,在投手投出球的瞬間,
就能立刻計算出棒球落點,最後透過電腦視覺與影像處理技術實現演算法,以提 升飛行物體落點預測和追蹤的能力。
圖四、 飛蛾撲火演算法概念圖。
1.3. 文獻回顧與探討 文獻回顧與探討 文獻回顧與探討 文獻回顧與探討
飛蛾撲火,源自《梁書·到溉傳》:「如飛蛾之赴火,豈焚身之可吝」。原是讚
賞獻身精神的意思。後來用來比喻自取滅亡。其實飛蛾撲火的行為並非自取滅 亡,更沒有犧牲奉獻的意思。著名的學者Frank[6]在1988年論述了夜晚的燈光是 如何影響飛蛾的,飛蛾具有一種特殊的羅盤導航系統,它們利用月光和星光進行 飛行方向的判定。Longcore和Rich[7]廣泛探討了人造夜間照明對各種昆蟲的影響 與危害,Hecht[8]所著的光學聖經詳盡講解了波動的知識,如波動方程和各種波 前的特徵,由於月光、星光來自非常遙遠的地方,其光波的波前由球面波轉變為 平面波,飛蛾飛行時會與平面波維持固定角度,進行直線飛行。我們將在第二章 第四節詳細剖析飛蛾撲火的原理及演算法設計。
在本研究中的棒球飛行畫面擷取和落點計算,需要透過電腦視覺及影像處 理,以多台攝影機進行參數校正,再同步進行影像中的移動物體偵測。攝影機校 正技術是電腦視覺與量測的基礎,1987年Tsai[9]率先提出第一個攝影機參數的校 正技術。1999年在Zhang[10]所提出的技術報告中表示,攝影機校正方法可以分 為攝影量測校正和自主式校正兩種。在本專題中,我們以OpenCV進行攝影機量 測校正,我們設計了一個平面棋盤格作為三維校正模型,經過計算取得攝影機內 外參數。而Zhang所提到的自主式校正是透過攝影機本身的移動和影像資訊取得 參數,完全不需依靠校正模型,但目前自主式校正法的技術並不成熟,無法獲得 準確的參數。
棒球的軌跡重建和球路偵測是目前移動物體偵測研究領域中,相當新穎有趣 的主題。Black和Ellis[13]發展以多相機系統監控和追蹤多目標物,使用卡曼濾波 器(Kalman Filter)追蹤線性移動的目標物,並利用多相機取得各部分環境影像,
建立3D環境結合多重視點。林尚志[14]則是以兩台電腦進行非同步雙攝影機的棒 球三維軌跡重建,由於移動物體在靠近捕手時不易拍攝和偵測,因此再透過卡曼 濾波器預測出落點,整體平均誤差值為4.32%。Olsen和Brill [15]介紹了一種更通 用的運動物體檢測,在室內使用移動偵測來偵測移動的物體,並預測追蹤跟辨識 行為。
二 二 二
二、 、 、研究方法 、 研究方法 研究方法及步驟 研究方法 及步驟 及步驟 及步驟
本系統架構可分為四大部分: 雙部攝影機的同步視訊輸入、攝影機內外參數 的校正與三維座標轉換、移動球體的偵測與球心座標取得,及落點預測演算法,
系統流程如圖五所示,詳細步驟分述如后。
圖五、 系統流程圖。
2.1. 雙部攝影機的同步視訊輸 雙部攝影機的同步視訊輸 雙部攝影機的同步視訊輸 雙部攝影機的同步視訊輸入 入 入 入
在本系統架構的最初端,需要以兩部攝影機擷取同一瞬間移動球體於兩個視 角的影像畫面,多部攝影機經常受到外在因素如影像擷取卡、資料傳輸協定以及 作業系統中Process排程的影響,使得電腦可能存取到不同時間的影像。
本研究採用OpenCV提供的函式庫cvcam.h,它具有控制多視訊裝置的相關副 程式,也提供AVI檔的存取和播放功能。此外它支援HWND,能夠結合各種視窗 介面的程式設計。在函式庫cvcam.h中的cvcamSetProperty()能夠設定兩部視訊的 同步播放,但是需使用相同廠商的視訊裝置,否則會造成無法同步播放的問題。
2.2. 攝影機內外部參數的校正與三維座標轉換 攝影機內外部參數的校正與三維座標轉換 攝影機內外部參數的校正與三維座標轉換 攝影機內外部參數的校正與三維座標轉換
圖六、 雙攝影機校正示意圖。
為了進行三維空間的量測,首先須透過雙部攝影機,以攝影機校正技術取得 攝影機本身的內、外部參數[10],再利用內、外部參數計算出該部攝影機的投影
矩陣。獲得兩台攝影機各自的投影矩陣後,即可將擷取到的二維影像座標轉換成
圖七、 以wxWidgets自行撰寫的雙攝影機校正程式之動作畫面。
(a) 為左攝影機校正畫面。(b)為右攝影機校正畫面。
T
其中T 即為平移矩陣(Translation Matrix)。
如圖九所示,根據相機成像原理,可以將三維座標點(X,Y,Z)和該點投影在
假設我們兩台攝影機的投影矩陣分別為 M1、 M2,在影像中欲轉換的點分
為了能夠取得快速移動的球體飛行畫面,背景相減法(Temporal Difference Method)具有執行快速的優勢,為一較適用的偵測方法,當攝影機所擷取的影
圖十一、 球體偵測與座標取得流程圖。
在本專題中,我們採用改良式的三相背景相減法(Three Frame Temporal Difference Method),以三張連續的影像,前兩張與後兩張影像先各自進行 EXCLUSIVE OR 邏輯計算,最後將兩輸出結果進行 AND 邏輯運算。三相背景 相減法對於環境的改變適應性較佳,對於快速移動的物體而言,能有效消除畫面 中的殘影,獲得較佳的球體偵測結果。
由於我們使用連續影像相減(Temporal Differencing)進行移動偵測,偵測 出的球體可能會有內部破碎的問題,為了使偵測物件的形狀保持完整,我們透過 形態學(Morphology)的方式,先以侵蝕(Erosion)消除雜訊,再以膨脹(Dilation)
連接破碎的偵測區塊,獲得較完整、實心的物件區塊。
擷取到球體後,利用連通法取得影像連通區域,透過程式以遞迴的方式檢驗 球體移動畫面,如果目標像素有值,則以遞迴方式檢驗周圍像素是否有值,如果 有值則給予相同的標籤號碼(Label)。接著再進一步將取得的連通區塊,以目標特 徵長寬比進行篩選,由於偵測目標為球體,故連通區塊不可能過扁或過長,藉由 此方式可以有效去除雜訊,並快速取得球心座標。
(a) (b) (c)
(d) (e)
圖十二、 球體快速降落時,偵測到多個區塊:
圖(a)為Tn−2拍攝畫面。圖(b)為Tn−1拍攝畫面。圖(c)為Tn拍攝畫面。
圖(d)為(a)和(b)相減,(b)和(c)相減,再將兩結果相乘的畫面。圖(e)為球體擷取結果。
如圖十二(d)所示,當棒球快速降落時,容易產生多個破碎殘影,導致一張 畫面有多個連通區塊。由於棒球降落時,畫面中的所有球體殘影,只有最下方的 殘影位置與現實球體位置最接近,所以我們在乎的是最下方的連通區塊,因此我 們檢查區塊的高度,如果高度較低,則記錄該區塊的高度座標,否則將該區塊視 為雜訊,減少移動偵測系統的工作量以加速二維座標的取得,如圖十二(e)所示,
此方法能在多個物件區塊中,擷取正確的球體位置。圖十三為球體偵測的實作結
此方法能在多個物件區塊中,擷取正確的球體位置。圖十三為球體偵測的實作結