開發基于相機的檢測系統需要不斷迭代、理解采樣和清晰度對圖像質量的影響,并使用數據集來評估系統性能。
由于使用低成本和資源受限的體系結構等要求, 使得基于嵌入式相機的檢測系統的設計工作變得更加復雜。因此,在啟動算法開發工作時,就要充分考慮視覺系統涉及的方方面面。
從視覺系統開始很重要,原因有兩個。首先,算法性能受限于視覺系統生成的圖像質量。雖然可以提升算法的能力,但在某些時候,算法的性能受到圖像質量的限制。其次,視覺系統較為復雜,多個組件之間存在許多交互參數,因此如果在開發周期后期再更改參數的話,將會導致高昂的開發成本。
在本文中,基于相機的檢測系統由圖1所示的以下組件構成:場景中的感興趣目標;場景成像的環境;視覺系統(圖像傳感器、鏡頭和光源);捕獲的數字化場景,要包括感興趣目標;以及識別場景內感興趣目標的算法。
圖1:在本文中,基于相機的檢測系統由以下組件構成:場景中的感興趣目標;場景成像的環境;視覺系統(圖像傳感器、鏡頭和光源);捕獲的數字化場景,要包括感興趣目標;以及識別場景內感興趣目標的算法。
開發方法:構建-測量-學習
在開發之初,通常存在“雞或蛋”的問題:檢測算法的能力將對視覺系統提出要求,而視覺系統產生的圖像質量也將對檢測算法提出要求。成功的設計是:要保持視覺系統和檢測算法的功能協調一致,從而滿足商業目標。在開發過程中,必須要同時考慮算法和視覺系統。為了做好這一點,需要有效的迭代。
一種稱為“構建-測量-學習循環”的靈活迭代方法,基于精益啟動原則,通過集中學習提供有效迭代框架。要使用這種方法,請在每次迭代開始時提出以下三個問題:
1. 我們需要學習什么?這應該建立在以前的學習基礎上。
2. 為了學習目標,我們需要測量什么?
3. 為了實現測量,我們需要構建什么?
然后,僅構建學習所需要的東西。
例如,我們將構建-測量-學習循環方法應用于設計基于相機的低成本線性條形碼閱讀器,這種閱讀器可以在單一圖像捕獲中,以大視場解碼盡可能多的條形碼。想象一下,在一個高度動態的環境中,條形碼閱讀器可以在任何方向快速移動的場景。不同尺寸的條形碼在整個環境中處于隨機位置,并且與條形碼閱讀器之間的角度和距離也都是隨機的。
使用構建-測量-學習循環的方法,第一步是確定圖像傳感器和鏡頭所需的“類”,這將設置一個基礎的硬件成本目標(見圖2)。為此,需要測量基礎相機生成圖像質量的能力,使用解碼精度作為測量基準。為了進行測量,我們使用現成的鏡頭和圖像傳感器開發套件構建相機系統。收集一個小數據集,并使用現成的塊開發算法的第一個版本。
圖2:實際使用中的構建-測量-學習循環方法,顯示了設計基于相機的低成本線性條形碼閱讀器的例子。
第一次迭代學習產生的不僅僅是所需的圖像傳感器和鏡頭,還有基礎相機的成本估算。我們還學習到運動模糊是限制檢測精度的主要噪聲源。
我們將這些學習結果帶入迭代二,并關注于解決運動模糊問題。為了學習這一點,我們測量了相機在快速運動場景中生成高質量圖像的能力。利用迭代一的學習結果,我們利用短曝光時間和全局快門圖像傳感器,設計了一種減少運動模糊的方法。使用現成的組件和全局快門傳感器,就構建了一臺新相機。收集另一個數據集,修改算法,評估圖像質量和算法性能。
迭代二的關鍵學習是全局快門工作方法,以及進一步提高算法能力,使得能夠使用更低成本的圖像傳感器。隨著繼續進行更多次迭代,更多的學習將指導“如何利用現成的鏡頭、全局快門圖像傳感器和功能強大的算法,構建定制視覺系統的”成功設計決策。使用這種構建-測量-學習循環方法,有助于將重點聚焦在下一個重要的學習上,并減少非增值調查。它提高了迭代的有效性,并使設計滿足商業目標,其中視覺系統的能力與算法的能力相輔相成。
設計起點:采樣與清晰度
空間分辨率可以說是最具影響力的圖像質量特征,因此在設計基于相機的檢測系統時,空間分辨率是一個合乎邏輯的起點。空間分辨率定義了可以在圖像中檢測到的最小特征或目標的尺寸,可以分為兩個部分:采樣和清晰度。
采樣是一個給定區域內的像素數,通常以每英寸像素數或每毫米像素數表示。由于它是光學系統放大倍數的函數,因此隨物距而變化。采樣不足將減少鑒別細節并增加了混疊偽影。為了確定系統的采樣要求,必須要知道需要鑒別的特征的物理尺寸、最大檢測距離和精確檢測所需要的像素數。
為了適應具有挑戰性的應用情況,在最大檢測距離處(在放大率最低的區域內)開始,此處區別特征的像素數為4-5像素。通常,在開始的時候不清楚鑒別特征是什么,特別是在應用機器學習或深度學習時。開始時,最好采用冗余采樣,因為在軟件中減少采樣比增加采用更容易,允許使用算法進行實驗以確定所需要的最小采樣。
使用薄透鏡方程,可以輕松地根據采樣要求推導出視覺系統參數。對于具有最小失真的光學疊加尤其如此。最終,采樣要求將決定圖像傳感器的像素數、圖像傳感器的像素尺寸和鏡頭焦距。關于薄透鏡方程,最令人興奮的是,在購買圖像傳感器或透鏡組件之前,可以在紙上計算和評估這些參數。Twisthink公司使用這些薄透鏡方程創建了一個Excel工作表(見圖3),用于快速選擇圖像傳感器和鏡頭產品,工作表可以從http://bit.ly/VSD-TWI下載。
圖3:Twisthink公司使用這些薄透鏡方程創建了一個Excel工作表,用于快速選擇圖像傳感器和鏡頭產品,工作表可以從http://bit.ly/VSD-TWI下載。
如果光學系統具有大約5%或更大的失真,則薄透鏡方程不能精確地對系統建模。這時候通過采樣確定視覺系統參數變得更具挑戰性。
清晰度是圖像空間頻率的測量。通常區分細節將具有很高的空間頻率。在評估影響清晰度的視覺系統參數時,最簡單的方法是從兩種不同的場景來看:靜止狀態和運動狀態。
在靜止狀態下,清晰度的三大影響因素分別是環境、鏡頭和圖像傳感器:
· 環境中的霧、灰塵和微粒會引發圖像模糊,因此在系統設計中需要考慮這些因素。
· 低質量鏡頭和鏡頭在圖像傳感器上的聚焦,會引發圖像模糊。其他因素包括溫度和制造——由于制造差異,模糊程度隨溫度變化,而且每個鏡頭可能情況都不一樣。
· 圖像傳感器因像素串擾引入圖像模糊。這種模糊情況隨光譜波長而變化,大多數圖像傳感器供應商會根據要求提供此類信息。
在運動狀態下,運動速度與曝光時間共同決定了圖像的模糊程度。為了減少模糊,可以限制最大運動速度和/或將曝光時間降到最短,當然這將影響許多其他的視覺系統參數,如圖像亮度、照明強度等等。
評估系統的性能
構建完系統后,評估系統性能的一個好方法就是使用數據集。數據集用于訓練機器學習和深度學習算法。利用數據集,還可以頻繁有效地評估系統的性能,并且可以為“判斷解決方案是否符合預期”給出有價值的參考。
Twisthink使用一種稱為算法開發框架的工具來收集數據、管理和處理數據,并有效地開發和評估。該框架包括五個部分,分別為視覺系統、數據集收集、標定的真實數據或標簽、算法開發和性能評估,如圖4所示。
圖4:Twisthink使用一種稱為算法開發框架的工具來收集數據、管理和處理數據,并有效地開發和評估。
為了實現準確的系統評估,必須在代表性環境中使用代表性視覺系統收集數據集。理想情況下,應使用視覺系統的最終版本來收集數據集。如果無法做到這一點,請在設計視覺系統時收集含代表性部分的小的初步數據集。
得到算法與數據集應產生的答案是評估的關鍵。這稱為真實數據或標簽。通常,真實數據需要人工解釋,這通常是一個昂貴的步驟。具有真實數據的數據集可以成為支持產品開發的專有資產。
一旦開發出算法,就可以用數據集和真實數據來評估系統的性能。性能評估需要定義一個基準來測量系統的性能。使用預先記錄的數據集來評估系統性能,可以加速開發,但是,解決方案的可信度是由數據集的內容決定的。因此,設計表征應用空間的數據集非常重要。
使用數據集評估系統性能,就像軟件世界中的黑盒測試一樣。但是,有時必須執行較低級別的“單元”測試。一種方法是通過對信號路徑建模來理解噪聲源及其對圖像質量的影響。圖5顯示了基于相機的檢測系統的主要組成部分。每個部分都受到不同噪聲源的影響,每個噪聲源都會影響捕獲的圖像質量。在每個部分中不同傳輸功能或噪聲源,將影響初始信號。
圖5:信號路徑建模有助于開發人員理解噪聲源及其對圖像質量的影響。
對信號路徑建模可以深入了解不明顯的噪聲源以及它們是否具有合適的解決方案。它還可以幫助確定哪些噪聲源需要進一步研究或實驗。最后,可以幫助理解組件之間的相互作用,并通過優先考慮“容易實現的目標”來指導開發。
當您設計基于嵌入式相機的檢測系統時,一定記得在開始算法開發的時候就要充分考慮視覺系統的方方面面。并且請記住使用迭代開發方法,從最高圖像質量特征(采樣和清晰度)開始,并使用數據集來評估系統性能。
審核編輯 :李倩
-
圖像傳感器
+關注
關注
68文章
1897瀏覽量
129529 -
算法
+關注
關注
23文章
4607瀏覽量
92841 -
視覺系統
+關注
關注
3文章
334瀏覽量
30697 -
數據集
+關注
關注
4文章
1208瀏覽量
24690
原文標題:啟動視覺系統算法開發工作需要考慮的因素
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論