Chapter 2 實驗架設與影像分析
2.2 影像分析
2.2.3 追蹤每一顆金屬珠的運動
我所使用的是 Matlab-R2014b 版本中所提供的函數(imfindcircle)來找出影像中 的圓形區域,其結果如圖 2-8 所示,在高空間解析度的拍攝條件下,利用 Circular Hough Transform 的演算法找出影像畫面中的所有圓形區域,並以此追蹤每一顆金 屬珠的質心位置。圖上的藍色虛線圓圈為程式判定找到的圓形區域,紅色十字為 各自的圓形區域其圓心位質。如此就可以追蹤每一顆金屬珠隨底板振動的運動。
而我們使用此分析方式所進行影像的擷取時,每一顆金屬珠的直徑為 20~150 個像 素點,高速攝影機每秒拍攝 500~2500 張影像。
Circular Hough Transform 的演算法是先找出影像中的區域邊界,給定偵測的圓 形半徑範圍之後,沿著區域的邊界對每一個像素點以半徑 r 畫圓,如(b)的左圖所 示,若區域邊界上的所有像素點以半徑 r 畫圓的時候,都可以交於一點上,因此就 可以將這個區域的影像判定為半徑 r 的圓形區域,如(b)的右圖所示。所使用的程 式及流程請見圖 2-11,程式檔案(Matlab)和輸出範例(txt)請見線上附錄。
圖 2-1
圖 2-1 實驗架設的示意圖
(a) 實驗架設的側視圖,我們使用的是一般市售的金屬製串珠,用顆數 N 來表示珠 鍊長度,此外架設兩道壓克力製的牆壁以限制珠鍊的移動方向只能在一維的通道 上,牆壁之間的寬度略大於金屬珠直徑 d,下方的振動台則提供垂直式地振動。定 義和重力加速度平行的方向為 Z 軸、向上為正,而沿著通道的方向為 X 軸。
(b) 實驗架設的上視圖,珠鍊被限制在兩片壓克力牆之間的通道,而壓克力牆之間 的寬度為 3mm,略大於金屬珠直徑 d (2.4mm),其中一道牆壁後方架設背光板提供 均勻的平行光源,另一側則架設攝影機由側邊觀察珠鍊在 X-Z 平面上隨底板的運 動。
(b)
(a)
圖 2-2
圖 2-2 研究的珠鍊照片以及結構示意圖 (a) 我們所研究的金屬製串珠照片。
(b) 珠鍊的結構示意圖,每一顆金屬珠的直徑 d~2.4mm,在每一顆金屬珠之間由短 棒連接,而短棒的連接方式使串珠具有可伸縮的性質。令金屬珠之間的距離為 s,
則金屬珠之間可伸長的最大距離𝑠𝑚𝑎𝑥~0.23𝑑。
(a)
(b)
圖 2-3
圖 2-3 珠鍊軌道結構的示意圖
(a) 將通道設計成圓環狀,圓環軌道的直徑為 224.6mm、通道寬度為 3mm,目的 在於讓珠鍊處在於近似無限長的水平軌道上,因此珠鍊就可以在通道內自由進行 水平方向的移動。此外架設兩台位置彼此正交的高速攝影機,如此就可以從側邊 捕捉到珠鍊在圓環型軌道上的所有位置。
(b) 沿著通道的方向上為圓弧形的結構,而圓弧的曲率半徑為 200mm、整個通道 的全長為 80mm,目的在於讓珠鍊沿著通道的方向上被限制在一定範圍之內。當珠 鍊爬行至靠近通道的兩端時,會因為坡度的影響而回到中央區域,通道最外側的 坡度α~ tan−1(0.10)。
(a)
(b)
圖 2-4
圖 2-4 振動系統的照片
(a) 振儀科技 VS-1000VH (大振動台),此振動台內部為電磁式馬達,其可操作的位 移範圍為-12.5~12.5mm、可操作的頻率範圍為 1~2400Hz,此振動台主要是架設圓 環型軌道時所使用的振動系統。
(b) 振儀科技三十公斤級振動台(小振動台):如圖 2-4(b)所示,此振動台內部為電 磁式馬達,此振動台主要是架設短弧形軌道時所使用的振動系統。
(a) (b)
)
圖 2-5
圖 2-5 影像擷取系統的照片
(a) Phantom High Speed Cameras V7.3 的照片。
(b) Photron Fastcam Mini UX50 的照片。
(a)
(b)
圖 2-6
圖 2-6 藉由多項式函數擬合珠鍊的形狀並定義珠鍊的彎曲程度∆𝒛𝟐
使用高速攝影機由側邊拍攝珠鍊在每一瞬間的形狀,使用多項式函數的曲線來擬 合珠鍊的形狀,分析的方式如下:先沿著 X 軸找到對應在 Z 方向的中心位置,之 後進行多項式函數的擬合來表示珠鍊的形狀,擬合使用的階級等同於珠鍊顆數 N:
p(𝑥) = 𝑝𝑁∙ 𝑥𝑁+ 𝑝𝑁−1∙ 𝑥𝑁−1+ ⋯ ⋯ ⋯ + 𝑝𝑜∙ 𝑥𝑜
擬合後的多項式函數如圖上的紅色曲線所示。之後再一次沿著 X 軸將擬合後的多 項式函數 z 位置和 Z 方向質心位質𝑍𝑐的高度差平方的平均值定義為Δz2,並以Δz2 表示為珠鍊的彎曲程度。
圖 2-7
圖 2-7 藉由簡化的方式判定不同的運動型態
(a) 先分析珠鍊中間顆數的金屬珠質心在 Z 方向的位置,若珠鍊顆數 N 為奇數就 只找正中間的單顆金屬珠為代表,但若是珠鍊顆數 N 為偶數就找正中間的兩顆金 屬為代表,求出其 Z 方向的質心後並定義此高度為𝑍𝑚𝑖𝑑,如圖上的藍色虛線所示。
同時也分析珠鍊兩個端點的金屬珠質心在 Z 方向的位置,並分別定義為𝑍1和𝑍𝑁, 兩個端點相對於中間的高度差分別為∆ℎ1 = 𝑍1 − 𝑍𝑚𝑖𝑑以及∆ℎ𝑁= 𝑍𝑁− 𝑍𝑚𝑖𝑑,如圖 上的綠色箭頭所示。此外給定一個門檻為ℎ𝑐𝑢𝑡,若是∆ℎ𝑖 ≥ ℎ𝑐𝑢𝑡 (𝑖 = 1, 𝑁),就將此 端點視為是「抬頭」,所以簡化將珠鍊的運動形態分為以下三種:兩個端點皆未發 生抬頭為「Mode 0」、只有其中一個端點有發生抬頭為「Mode 1」、兩個端點都有 發生抬頭為「Mode 2」。(b)、(c)、(d) 分別為「Mode 0」、「Mode 1」、「Mode 2」的 實際照片,圖中的紅色十字標示為𝑍1和𝑍𝑁,淺藍色的水平虛線為(𝑍𝑚𝑖𝑑+ ℎ𝑐𝑢𝑡),此 處的ℎ𝑐𝑢𝑡 = 𝑑 4⁄ 。亦即若紅色十字在藍色虛線以上的端點即視為發生「抬頭」,中 央綠色的垂直虛線為珠鍊在 X 方向的質心位質、兩條黃色的垂直虛線表示為珠鍊 影像最兩端的位置。
(a)
(b) (c) (d)
圖 2-8
圖 2-8 追蹤每一顆金屬珠的運動
(a) 在高空間解析度的拍攝條件下,利用 Circular Hough Transform 的演算法找出 影像畫面中的所有圓形區域,並以此追蹤每一顆金屬珠的質心位置。圖上的藍色 虛線圓圈為程式判定找到的圓形區域,紅色十字為各自的圓形區域其圓心位質。
如此就可以追蹤每一顆金屬珠隨底板振動的運動。
(b) Circular Hough Transform 的演算法是先找出影像中的區域邊界,給定偵測的圓 形半徑範圍之後,沿著區域的邊界對每一個像素點以半徑 r 畫圓,如(b)的左圖所 示。若區域邊界上的所有像素點以半徑 r 畫圓的時候,都可以交於一點上,因此就
(b)
(a)
圖 2-9
圖 2-9 藉由多項式函數擬合珠鍊的形狀∆𝒛𝟐的程式流程圖
Movie(.avi)
input
GPT8_tracking_polyfit_generator_Sun20140801.m
由影片的檔名抓取實驗參數的資訊(Data Id、N、Г、Hz、fps) 使用侵蝕的方式去除背景雜訊,只留下金屬珠的影像
計算𝑍𝑐和∆𝑧2的值
GPT8_tracking_polyfit_main_code_Sun20140801.
各項參數的設定
沿著 X 軸找出在 Z 方向的平均位置 使用多項式函數擬合珠鍊的影像
批次化執行
輸出 tab 分隔的文件檔(.txt) 𝑍𝑐 、 ∆𝑧2 、……
圖 2-10
圖 2-10 藉由簡化的方式判定不同的運動型態的程式流程圖
Front View Movie(.avi)
Left View Movie(.avi)
input
GPT10_tracking_divide_modes_generator_Sun20150206.m 各項參數的設定
由影片的檔名抓取實驗參數的資訊(Data Id、N、Г、Hz、fps)
找出珠鍊的兩個端點所對應的 X 軸位置(X1、XN) GPT10_tracking_divide_modes_main_code_Sun20150206.m
整合兩台攝影機看到的影像,判定珠鍊在圓環軌道上的位置 由比較靠近畫面中央的影像所判定的運動型態為準
同步兩台攝影機的影像編號
批次化執行
扣掉背景影像,只留下珠鍊的影像
找出珠鍊的頭尾區塊以及中央所對應的 Z 軸位置(Z1、ZN、Zmid) 判定珠鍊的型態(Mode 0、Mode 1、Mode 2)
輸出 tab 分隔的文件檔(.txt)
(F)X1、(F)XN、 (L)X1、(L)XN、Mode、……
圖 2-11
圖 2-11 追蹤每一顆金屬珠的運動的程式流程圖
Movie(.avi)
input
GPT8_tracking_shape_and_Nbeads_generator_Sun20150113.m
由影片的檔名抓取實驗參數的資訊(Data Id、N、Г、Hz、fps) 偵測影像中的圓形區域,找出其質心位置(X1、Z1、……) GPT8_tracking_shape_and_Nbeads_main_code_Sun20150113.
各項參數的設定
批次化執行
輸出 tab 分隔的文件檔(.txt) X1、Z1、……、 XN、ZN、Zref
找出底板在 Z 方向的位置(Zref)