Contents ...
udn網路城邦
實在說不上來的演算法!
2019/10/16 07:14
瀏覽740
迴響0
推薦6
引用0

我們經過一個系統整合商,下包了一個化工廠實驗室中塑膠片標本裂變辨識的案子。就是標本會長時間被泡在有腐蝕性的溶液中,到了一定程度就會開始產生裂痕,撐得越久表示耐腐蝕力越好!原本當然是請實驗室人員監看的,現在希望用影像辨識持續觀測,發生裂變時要記錄下來或通知後端系統。

這個辨識困難之處是裂變的過程是漸進的,從無到有,剛開始裂時,可能有些人看得到,有些人還看不到!這和多數的影像辨識是辨識環境中「較明顯」目標的前提是很不一樣的!在此,目標其實是整個影像中「最不明顯」的現象!所以不管是用我們的既有影像辨識技術,或是我們想套用外面取得的公式,都是無濟於事的!

如上圖的右邊是被泡製塑膠片的原始影像,中間橫向的淡淡陰影就是實驗室認定的裂變開始的現象,圖左側是我們經過影像處理增強對比之後的影像,裂變陰影就明顯多了,也可以證實原始影像中的極淡陰影不是我們的錯覺,裂變的現象是真的!其實這個原始影像中的差異,用我的老花眼根本看不清楚,年輕的RD還勉強可以。

接下來就是盡量「量化」這個變化,當陰影與背景差異達到某個程度時,我們的辨識核心就要做裂變事件發生的報告!經過一段時間的努力終於做得差不多了,接近結案時刻,上包廠商要寫報告了,開始詢問我們是用了甚麼演算法製作這個辨識核心的?

上包廠商承辦人員應該是略懂影像辨識的,和我的RD討論此事時,順口提了幾個較流行的影像辨識演算法名詞,但是我的RD對那些多半毫無概念!雖然我們的東西每一步驟都是她實作的,她也非常清楚自己在幹甚麼!但是要她簡單說出是用「何種演算法?」她也不會講了!所以求救於我,我也無法說出單一的名詞來說明,就寫了這麼一段:

塑膠片裂變辨識演算法簡介:

辨識目標:塑膠片經過長時間特定溶液泡製產生裂變的起始裂痕。

1.  以色階等化(Equalization)等演算法,增強待辨識標本影像之對比度。

2.  因裂變方向以橫向為主,先對標本區塊內各X位置之一維影像做垂直方向的亮度微分處理。

3.  疊加(Stacking)標本區塊內各X位置之亮度微分剖面,假設裂變位置為模糊,但Y座標固定之訊號,疊加之後可有效增強此模糊訊號。

4.  以上述疊加完成之一維增強訊號,作為判斷有無裂變產生之依據。若某Y值之訊號強度高於門檻值則判定發生裂變。

5.  裂變事件判定的強度門檻值,以目視產生裂變與否之案例加以調整。

其實當我指導RD這些做法時,腦袋裡面的畫面大概是這樣的:

這是我讀研究所時學會的震測原理,將震波打入地下或水下,用很多接收器收到很多時間序列的資料,其實每一筆資料中我們想看的地層反射都很不清楚,除了個別增強對比之外,就是將很多模糊的訊號疊加,真實重複的訊號會被增強,隨機的背景雜訊則不會,訊號與雜訊比(S/N ratio)就提高了!

其實我相信在其他科學領域也會有類似的演算法來增強模糊的訊號,只是我剛好學過震測原理,所以套用上去了!但是如果有人硬是要我說出是用「影像辨識領域中已知的哪種演算法做的?」我就會像我的RD一樣說不出來了!因為我真的想不出來既有的影像辨識主流演算法中有這麼針對這個問題的演算流程?

很微妙的!這確實是一個影像辨識的問題,我卻用了好像是很外來概念的怪招?如果我真的先考慮使用所有可能的主流影像辨識技術,譬如Yolo(如下圖)或我自己的車牌辨識流程,那RD的工作時間至少多出一個月!

但是我一開始就想到這些既有演算法的前提都是「辨識圖中較明顯」的目標,我們要辨識的卻是最「不明顯」的目標,前提不一樣的演算法根本連嘗試都不必嘗試,只是浪費時間而已!所以直接切入主題,為此辨識目的量身訂做一個針對性的演算法,實際設計辨識核心包括實驗的工期也不過一個月左右!

這就是我們做事的方式,我們研發辨識核心的收費比別家公司便宜很多,但是並不會真的賠錢,原因只是我們沒有窠臼,每一個辨識問題都就事論事,直指問題核心,用最簡捷的物理與數學觀念分析問題,也會用任何簡單的影像辨識基本方法實作,不會拘泥於一定要用那些複雜的方法論。如果喝水就能解渴,何必一定要去找瓊漿玉液來喝呢?

有誰推薦more

限會員,要發表迴響,請先登入