blob

圖像中的連通區域

BLOB (binary large object),二進位大對象,是一個可以存儲二進位文件的容器。在計算機中,BLOB常常是資料庫中用來存儲二進位文件的欄位類型。BLOB是一個大文件,典型的BLOB是一張圖片或一個聲音文件,由於它們的尺寸,必須使用特殊的方式來處理(例如:上傳、下載或者存放到一個資料庫)。根據Eric Raymond的說法,處理BLOB的主要思想就是讓文件處理器(如資料庫管理器)不去理會文件是什麼,而是關心如何去處理它。但也有專家強調,這種處理大數據對象的方法是把雙刃劍,它有可能引發一些問題,如存儲的二進位文件過大,會使資料庫的性能下降。在資料庫中存放體積較大的多媒體對象就是應用程序處理BLOB的典型例子。

MySQL中,BLOB是個類型系列,包括TinyBlob、Blob等。

背景


目標跟蹤計算機視覺中的一項重要研究任務,應用場景廣泛。它要解決的是:對運動目標在圖像平面上的軌跡進行估計的問題。跟蹤器需要在視頻序列的不同幀中,將一個唯一的標籤分配給特定的跟蹤目標。此外,根據跟蹤結果還可以提供與運動目標相關的信息,如目標的一些形狀外貌、運動狀態以及統計信息等。

簡介

計算機視覺中的Blob是指圖像中的一塊連通區域,Blob分析就是對前景/背景分離后的二值圖像,進行連通域提取和標記。標記完成的每一個Blob都代表一個前景目標,然後就可以計算Blob的一些相關特徵,如:面積、質心、外接矩形等幾何特徵,還可以計算Blob的顏色、紋理特徵,這些特徵都可以作為跟蹤的依據。
基於Blob的跟蹤屬於基於區域的跟蹤,該演演算法在多篇文獻中被研究過。有學者將Blob用於車輛的跟蹤,首先用特徵檢測來提取目標Blob並計算Blob的幾何特徵,在進行Blob跟蹤的時候,將Blob面積重疊率在50%以上作為匹配標準。有學者將Blob用於移動機器人的視覺跟蹤系統中,在該系統中,首先用滑鼠標記目標,然後對目標進行顏色學習,形成目標表面顏色的RGB向量集。在目標跟蹤的過程中遍歷圖像,通過將所有像素點與目標RGB向量集作對比來尋找目標色塊,再提取色塊的特徵用於後續跟蹤。有學者提出基於Blob的Mean-shift跟蹤,考慮到目標在移動過程中,可能會發生形變,所以在Blob周圍不斷調整搜索窗口大小,然後在窗口區域和目標之間作特徵匹配以此來跟蹤目標。有學者提出的多目標跟蹤演演算法中,採用Blob標記法來對前景目標進行聚集和生長。有學者在車輛跟蹤系統中,先檢測車輛Blob,然後進行學習,形成屬於車輛的特徵類。有學者在提取目標過程中將Blob匹配與混合高斯演演算法相結合,然後與混合高斯演演算法結果對比,實驗結果表明該文獻演演算法提取出的目標更加完整。

核心思想

Blob演演算法的核心思想,就是在一塊區域內,將出現”灰度突變”的範圍找出來。確定其大小、形狀及面積等。演演算法從邊緣尋找中的”卷積演演算法”,例如”卷積演演算法”的矩陣設定為2*4掃描從左向右從上至下進行的。矩陣每移動一步,演演算法計算矩陣中前半部(列1及列2)的灰度值總和,與矩陣中後半部(列3及列4)的灰度值總和的差。假如矩陣中這塊圖像的顏色為相同,也就是說矩陣中的8個像素的灰度極接近的話,那麼,這個矩陣前部與後部灰度值總和差應該是趨近0的。程序一步步運行,矩陣前部與後部的灰度值總和差一直接近0。如果矩陣掃描到了一塊前景的邊緣,這時矩陣前部與後部灰度值總和差突變了,灰度值不再接近,則是到了一個Blob。當演演算法掃描完整的時候,系統就記錄了全部發生這種突變情況的點的坐標。之後再對這些邊緣點進行一系列的分析,便可以得到這個Blob的大小、形狀及面積等信息。

分析方法

Blob分析的重要一個步驟是連通區域的確定。按照處理方式的不同Blob分析基本上分成兩種:基於像素掃描的處理方法和基於遊程編碼(RLE)的處理方法。前者代表性的方法有遞歸法與兩次掃描法;基於遊程編碼的方法是對於二值圖像有一種編碼方法RLE,其基本思想是對連在一起的黑色或者白色像素數(遊程)用不同的碼字來編碼。其方法:計算連續出現的數據長度來進行壓縮。例如:對於數據AAAAABBBBAA而言,RLE的結果是5A4B2A。這樣對圖像逐行進行RLE,並將相連的像素塊合併;最終提取出多個連通區域,得到每個連通區域的鏈碼錶和線性表。獲得鏈碼錶就可以計算出區域邊界輪廓長度和周長;線性表則可以計算面積和重心等參數。

特點

缺點
目前的Blob演演算法有幾個缺點:
1、速度過慢,要整個區域作逐點掃描。
2、Blob分析難度大。這是一純幾何學上的問題,一個不規則的形狀,如何計算它的面積、大小沒有簡單易行的演演算法,太過複雜,運算時間就長,速度就更慢了。另外,實際應用中,沒有單純的表面檢測,在一個場景中通常要檢測幾個區域塊,表面檢測只是其中一項。這就使Blob分析演演算法的局限性更為明顯。比如,我們做一個印刷品的檢測:一是檢測印刷品上印上去的字是否清楚;二是檢測印刷品表面有沒有划痕。於是,Blob演演算法就要能區別出哪個是文字,哪個是划痕。
3、實際應用。Blob演演算法在實際應用中,非常依賴光源。幾乎可以說,Blob演演算法如果離開了一個可靠的光源設計,則完全不起作用。場景中有各種不同的顏色,這些顏色上的差異,在黑白相機下來看,就是灰度值的變化,因為顏色的表現跟光源有很大的關係,所以一個穩定的光源是必須的。
優點
Blob在目標跟蹤的優勢有:
(1)通過Blob提取,可以獲得相關區域的信息,這些信息可以作為邊緣監測器或者角點檢測器的補充信息。在目標識別中,Blob可以提供局部的統計信息和外貌信息,這些信息能夠為目標識別和跟蹤提供依據;
(2)可以利用Blob對直方圖進行峰值檢測;
(3)Blob還可以作為紋理分析和紋理識別的基元;
(4)通過Blob分析,可以得到目標的個數及其所在區域,在進行目標匹配時,不需要對全局圖像進行搜索。