1. 程式人生 > >【影象處理】工業相機原理詳述 (轉載)

【影象處理】工業相機原理詳述 (轉載)

轉自:  https://blog.csdn.net/HelloZEX/article/details/80905095

工業相機是機器視覺系統中的一個關鍵元件,其最本質的功能就是將光訊號轉變成有序的電訊號。選擇合適的相機也是機器視覺系統設計中的重要環節,相機的選擇不僅直接決定所採集到的影象解析度、影象質量等,同時也與整個系統的執行模式直接相關。

歡迎關注微信公眾號“智慧演算法”!
一. 相機的晶片型別: 一般情況下,工業相機按照晶片型別可以分為CCD相機和CMOS相機,當然也有一些其他的晶片,比如富士公司生產的Super CCD晶片。這裡我們只討論市場主流的CCD相機和CMOS相機的工作原理。數碼相機的CCD和CMOS都深藏於相機內部,就算您有機會看到它們的樣子,也很難進行區分。 CCD晶片相機:
CCD晶片工作原理,如圖所示: 在感光像點接受光照之後,感光元件產生對應的電流,電流大小與光強對應,因此感光元件直接輸出的電訊號是模擬的。在CCD感測器中,每一個感光元件都不對此作進一步的處理,而是將它直接輸出到垂直暫存器 傳到水平暫存器中,最後 才能形成統一的輸出。由於感光元件生成的電訊號實在太微弱了加上在此過程中會產生大量電壓損耗 ,無法直接進行模數轉換工作,因此這些輸出資料必須做統一的放大處理—這項任務是由CCD感測器中的放大器專門負責,經放大器處理之後,每個像點的電訊號強度都獲得同樣幅度的增大;因訊號只通過一個放大器進行放大,所以產生的噪點較少。 但由於CCD本身無法將模擬訊號直接轉換為數字訊號,因此還需要一個專門的模數轉換晶片進行處理,最終以二進位制數字影象矩陣的形式輸出給專門的DSP處理晶片。
CMOS晶片相機: CMOS工作原理,如圖所示: 而對於CMOS感測器,上述工作流程就完全不適用了。CMOS感測器中每一個感光元件都直接整合了放大器和模數轉換邏輯,當感光二極體接受光照、產生模擬的電訊號之後,電訊號首先被該感光元件中的放大器放大,然後直接轉換成對應的數字訊號。換句話說,在CMOS感測器中,每一個感光元件都可產生最終的數字輸出,所得數字訊號合併之後被直接送交DSP晶片處理,問題恰恰是發生在這裡,CMOS感光元件中的放大器屬於模擬器件,無法保證每個像點的放大率都保持嚴格一致,致使放大後的影象資料無法代表拍攝物體的原貌—體現在最終的輸出結果上,就是影象中出現大量的噪聲,品質明顯低於CCD感測器,
不過目前這方面的技術已大幅改善。
二. 黑白相機成像原理: 以CCD原理為例,CCD原理並不複雜。我們可以把它想象成一個頂部被開啟的記憶晶片。因此光束可以射到記憶單元中。根據"光電效應”,這些光束在記憶單元中產生負電荷(下圖中右上部分)。 曝光後,這些電荷被讀出,進而被相機處理單元進行預處理。從相機處理單元輸出的就是一幅數字影象。
三. 彩色彩色成像原理: CCD晶片將光子轉換為電子,在這一過程當中,光子數目與電子數目互成比例。但光子還有另外一個特徵值——波長(波長決定顏色),而這條資訊卻沒有在這個過程中被轉換為電子。因此,從這個意義上說,CCD晶片都可以被稱為色盲。所以彩色相機的成像稍微複雜些,目前主要有兩種方式:三稜鏡方式和濾光片方式,下面分別介紹: 三稜鏡方式: 為了獲取光線的顏色資訊,我們很容易想到用三稜鏡將光束分成單色光,然後分別成像,對,三稜鏡方式就是這個原理,如下圖: 它將從鏡頭射入的光分成三束,每束光都由不同的內建光柵來過濾出某一種三原色,然後使用三塊CCD分別感光。這些圖象再合成出一個高解析度、色彩精確的圖象。如300萬畫素的相機就是由三塊300萬畫素的CCD來感光。也就是可以做到同點合成,因此拍攝的照片清晰度相當高。該方法的主要困難在於其中包含的資料太多。在你照下一張照片前,必須將儲存在相機的緩衝區內的資料清除並存盤。因此這類相機對其他部件的要求非常高,其價格自然也非常昂貴。 濾光片方式: 當然,為了獲取光線的顏色資訊,我們很容易想到用濾光片來實現,原理圖如下: 在該圖中,每個感光元件對應影象感測器中的一個像點,由於感光元件只能感應光的強度,無法捕獲色彩資訊,因此必須在感光元件上方覆蓋彩色濾光片。在這方面,不同的感測器廠商有不同的解決方案,最常用的做法是覆蓋RGB紅綠藍三色濾光片,以1:2:1的構成由四個像點構成一個彩色畫素(即紅藍濾光片分別覆蓋一個像點,剩下的兩個像點都覆蓋綠色濾光片),採取這種比例的原因是人眼對綠色較為敏感。而索尼的四色CCD技術則將其中的一個綠色濾光片換為翡翠綠色(英文Emerald,有些媒體稱為E通道),由此組成新的R、G、B、E四色方案。不管是哪一種技術方案,都要四個像點才能夠構成一個彩色畫素。 從上圖我們看到,經過相機處理單元之後,上圖右上角中的空白值,被補上了255,這裡牽涉到色彩插值,詳見下: 色彩插值: 一開始我們將使用在用於成像與測量的單CCD相機(測量)一節中介紹過的數字原始影象。為了簡單起見,該數字原始影象、它的源圖及拜爾濾光片都被列於下圖。 這裡介紹兩種簡單的插值方式: 複製臨近畫素法: 填補缺失的色彩值的最簡單方法就是從臨近畫素中獲取色彩值。讓我們以第二行第一個綠色畫素(來自拜爾濾光片)為例(如下圖中被加粗黑框之畫素所示)。 在源影象中該點實際是紅色,但經拜爾濾光片綠色畫素過濾後色彩值變為零。我們只需要把臨近紅藍畫素中的紅色與藍色值(見上圖)複製到該畫素中,就能獲得其RGB值(255,0,0)。就上圖所示例子而言,插值法產生了正確的RGB值。但在實際應用當中,對於靜止影象,這種簡單的插值法所生成的結果是不可接受的。但由於它並不耗費多少時間,我們可以將其用於對質量標準要求不高的視訊資料流中(例如視訊預覽)。 臨近畫素均值法(雙線性插值): 我們可以對“複製插值法”作出的第一個改進就是使用若干臨近畫素的均值。如圖所示,這種方法同樣可以得到正確的RGB值(255,0,0)。但第二個例子指出了均值法的一個重大缺陷:均值法有低通特性,並由此將清晰的邊界鈍化。RGB值本應是(255,0,0),但實際上變成了(255,128,64),因此該點變成了棕橙色。 今天相機中所使用的插值法的效能要大大高於前面介紹的這兩種基本方法。A Study of Spatial Color Interpolation Algorithms for Single-Detector Digital Cameras一文 對這些演算法做了很好的介紹和比較。
四. 相機介面型別: GIGE千兆網介面: 千兆網協議穩定,該介面的工業相機是近幾年市場應用的重點。使用方便,連線到千兆網絡卡上,即能正常工作。 在千兆網絡卡的屬性中,也有與1394中的Packet Size類似的巨幀。設定好此引數,可以達到更理想的效果。 傳輸距離遠,可傳輸100米。可多臺同時使用,CPU佔用率小。 USB2.0介面: 所有電腦都配置有USB2.0介面,方便連線,不需要採集卡。 USB2.0介面的相機,是最早應用的數字介面之一,開發週期短,成本低廉,是目前最為普通的型別,缺點是其傳輸速率較慢,理論速度只有480Mb(60MB)。 在傳輸過程中CPU參與管理,佔用及消耗資源較大。USB2.0介面不穩定,相機通常沒有堅固螺絲,因此在經常運動的裝置上,可能會有鬆動的危險。傳輸距離近,訊號容易衰減。 USB3.0介面: USB 3.0的設計在USB 2.0的基礎上新增了兩組資料匯流排,為了保證向下相容,USB 3.0保留了USB 2.0的一組傳輸匯流排。 在傳輸協議方面,USB 3.0除了支援傳統的BOT協議,新增了USB Attached SCSI Protocol (USAP),可以完全發揮出5Gbps的高速頻寬優勢。 由於匯流排標準是近幾年才釋出,所以協議的穩定性同樣讓人擔心。傳輸距離問題,依然沒有得到解決。 Camera Link介面: 需要單獨的Camera Link介面,不便攜,導致成本過高。傳輸速度是目前的工業相機中最快的一種匯流排型別。 一般用於高解析度高速面陣相機,或者是線陣相機上。 傳輸距離近,可傳輸距離為10米。 1394(火線): 1394介面,在工業領域中,應用還是非常廣泛的。協議、編碼方式都非常不錯,傳輸速度也比較穩定,只不過由於早期蘋果的壟斷,造成其沒有被廣泛應用。 1394介面,特別是1394B口,都有堅固的螺絲。1394介面不太方便的地方是其未能普及,因此電腦上通常不包含其介面,因此需要額外的採集卡,傳輸距離僅為4.5米。 佔用CPU資源少,可多臺同時使用,但由於介面的普及率不高,已慢慢被市場淘汰。
五. 線陣和麵陣相機: 面陣: 上面我們所說的相機均屬於面陣相機,相機畫素是指這個相機總共有多少個感光晶片,通常用萬個為單位表示,以矩陣排列,例如3百萬畫素、2百萬畫素、百萬畫素、40萬畫素。百萬畫素相機的畫素矩陣為W*H=1000*1000。相機解析度,指一個畫素表示實際物體的大小,用um*um表示。數值越小,解析度越高。 線陣: 線陣相機是一類特殊的視覺機器。與面陣相機相比,它的感測器只有一行感光元素,因此使高掃描頻率和高解析度成為可能。線陣相機的典型應用領域是檢測連續的材料,例如金屬、塑料、紙和纖維等。被檢測的物體通常勻速運動 , 利用一臺或多臺相機對其逐行連續掃描 , 以達到對其整個表面均勻檢測。可以對其圖象一行一行進行處理 , 或者對由多行組成的面陣圖象進行處理。另外線陣相機非常適合測量場合,這要歸功於感測器的高解析度 。
六. 相機常見引數介紹: 1. 解析度(Resolution) :相機每次採集影象的畫素點數(Pixels),對於工業數字相機一般是直接與光電感測器的像元數對應的,對於工業數字模擬相機則是取決於視訊制式,PAL製為768*576,NTSC製為640*480。 2. 畫素深度(Pixel Depth) :即每畫素資料的位數,一般常用的是8Bit,對於工業數字數字相機一般還會有10Bit、12Bit等。 3. 最大幀率(Frame Rate)/行頻(Line Rate) :相機採集傳輸影象的速率,對於面陣相機一般為每秒採集的幀數(Frames/Sec.),對於線陣相機機為每秒採集的行數(Hz)。 4. 曝光方式(Exposure)和快門速度(Shutter) :對於工業線陣相機都是逐行曝光的方式,可以選擇固定行頻和外觸發同步的採集方式,曝光時間可以與行週期一致,也可以設定一個固定的時間;面陣相機有幀曝光、場曝光和滾動行曝光等幾種常見方式,工業數字相機一般都提供外觸發採圖的功能。快門速度一般可到10微秒,高速相機還可以更快。 5. 像元尺寸(Pixel Size) :像元大小和像元數(解析度)共同決定了相機靶面的大小。目前工業數字相機像元尺寸一般為3μm-10μm,一般像元尺寸越小,製造難度越大,影象質量也越不容易提高。 6. 光譜響應特性(Spectral Range) :是指該像元感測器對不同光波的敏感特性,一般響應範圍是350nm-1000nm,一些相機在靶面前加了一個濾鏡,濾除紅外光線,如果系統需要對紅外感光時可去掉該濾鏡。