由于七段數(shù)碼管顯示數(shù)字和字符比較直觀、清晰、響應(yīng)速度快,所以它被廣泛應(yīng)用在現(xiàn)場儀器儀表中。通過攝像頭獲取數(shù)碼管數(shù)字圖片,也可以根據(jù)數(shù)碼管編碼方式比較容易識別出其中的數(shù)字。
?
計(jì)數(shù)器、頻率計(jì)上的數(shù)碼管顯示動(dòng)態(tài)變化的數(shù)字
根據(jù)不同的顯示原理,七段數(shù)碼管可以使用 LED、LCD、OLED、場致發(fā)光管等制作,顏色也有很多種類。其中紅色 LED 的數(shù)碼管比較常見。
?
紅色七段數(shù)碼管 0~9 顯示的圖片
數(shù)碼管的七個(gè)筆畫根據(jù)不同的點(diǎn)亮組合,可以形成不同的數(shù)字、字母以及字符。理論上可以總共有 127(2^7-1)個(gè)不同的編碼組合。下面的表示是常見的字符、數(shù)字編碼方式。在不同的場合,下面的編碼會(huì)有略微調(diào)整。
七段數(shù)碼管顯示不同數(shù)字和字符
識別數(shù)碼管的數(shù)字、字母,只要根據(jù)圖片的灰度信息即可。根據(jù)每個(gè)筆畫段的亮度,判斷對應(yīng)的 LED 段是否點(diǎn)亮,進(jìn)而可以確定所對應(yīng)的數(shù)字或者字母。
有的時(shí)候數(shù)碼管的右下角還有一個(gè)小數(shù)點(diǎn)位,用于顯示數(shù)字的小數(shù)點(diǎn)的位置。它也可以配合字符、數(shù)字來表達(dá)其他的含義。
?
七段數(shù)碼管灰度圖像
相比于漢字、英文字符的印刷體,七段數(shù)碼管的字體并沒有太多的變化。它會(huì)在尺寸、比例、筆畫的粗細(xì)、字體的傾角方面有差異。
如果已知數(shù)碼管的字體,可以比較方便在歸一化之后的圖像中確定下每個(gè)筆畫段所占具的圖像位置。
下圖顯示了常見到的七段數(shù)碼段各個(gè)筆畫對應(yīng)的序列位置,以及 0~9 數(shù)字對應(yīng)的七段點(diǎn)亮編碼。
?
七段數(shù)碼管 0~9 數(shù)字編碼
根據(jù)數(shù)碼管灰度圖像的亮度統(tǒng)計(jì)直方圖,可以確定下背景和點(diǎn)亮字段所對應(yīng)的亮度值。根據(jù)這兩個(gè)是數(shù)字可以確定下一個(gè)閾值,用于確定筆畫是否被點(diǎn)亮。
下圖顯示了 0~9 個(gè)數(shù)字對應(yīng)的圖像灰度圖的直方圖統(tǒng)計(jì),他們大體呈現(xiàn)相似的分布。
0~9 數(shù)字圖片亮度值的直方圖
通過灰度圖上每個(gè)筆畫段的平均亮度,求出數(shù)碼管的筆畫編碼,在通過查表可以確定圖片中數(shù)碼管所對應(yīng)的數(shù)字。
通過每個(gè)筆畫段亮度來確定數(shù)碼管的編碼
對于靜態(tài)圖像,利用先驗(yàn)知識來講數(shù)字進(jìn)行定位、分割,形成歸一化之后的灰度數(shù)字圖像。通過上面的方法可以簡便快速確定下每個(gè)數(shù)碼管所對應(yīng)的數(shù)字,進(jìn)而可以獲得儀表所顯示的數(shù)值。
這種方法所需要的計(jì)算量比較小。當(dāng)圖像比較清晰的時(shí)候,識別的準(zhǔn)確性非常高。
?
計(jì)數(shù)器對脈沖計(jì)數(shù),動(dòng)態(tài)顯示技術(shù)結(jié)果
在有些場景下,數(shù)碼管顯示內(nèi)容是動(dòng)態(tài)變化的,由于設(shè)備更新數(shù)字與攝像頭沒有同步,所以拍攝到的圖像中可能包含有數(shù)碼管在前后兩個(gè)數(shù)字變化的過度圖像,即前后兩個(gè)數(shù)字的疊加狀態(tài)。此時(shí),就會(huì)對上面識別方法造成干擾。
使用一臺計(jì)數(shù)器,對于不同頻率的脈沖進(jìn)行計(jì)數(shù)。數(shù)碼管動(dòng)態(tài)變化,使用攝像頭獲得序列圖像之后,利用上面的方法所識別的數(shù)字序列如下圖所示:
?
六組不同頻率脈沖信號計(jì)數(shù)結(jié)果曲線
由于是對不同頻率的脈沖信號進(jìn)行計(jì)數(shù),所得的序列原則上應(yīng)該是一個(gè)直線。直線的斜率與脈沖的頻率成正比。
但是上面所顯示的六組不同頻率的脈沖技術(shù)結(jié)果中,可以看到存在著一些數(shù)據(jù)的跳動(dòng)值。這說明前面算法對于出現(xiàn)疊加狀態(tài)的數(shù)字識別存在錯(cuò)誤。
下面是另外一組時(shí)間,計(jì)數(shù)器對蓋革管輸出的放射性檢測脈沖計(jì)數(shù)。結(jié)果應(yīng)該是一個(gè)單調(diào)遞增的曲線。其中仍然存在著數(shù)據(jù)的抖動(dòng)。
計(jì)數(shù)器對蓋革管脈沖計(jì)數(shù),圖像識別后的數(shù)據(jù)曲線
對于前面實(shí)驗(yàn)結(jié)果中,識別錯(cuò)誤的圖像進(jìn)行分析,可以看到這些錯(cuò)誤都是由于攝像頭所拍攝到的數(shù)碼管在前后過渡過程所形成的錯(cuò)誤圖像引起的。
下圖顯示了一些識別錯(cuò)誤時(shí),所采集到數(shù)碼管圖像序列連續(xù)三幀所對應(yīng)的數(shù)字最后一位數(shù)字圖像。圖片下面數(shù)字對應(yīng)的圖像識別的結(jié)果。
識別錯(cuò)誤時(shí),連續(xù)三幀圖片對應(yīng)的數(shù)碼管的圖像
由于數(shù)碼管本身發(fā)光的亮度與驅(qū)動(dòng)電流之間不是線性關(guān)系,所以過渡過程的圖片并不是兩個(gè)數(shù)字簡單的線性疊加,因此獲得過渡過程的數(shù)碼管的識別具有一定的難度。
解決圖片中數(shù)碼管圖像識別錯(cuò)誤的問題,可以通過以下三個(gè)方面來解決:
(1)盡可能縮小攝像頭的曝光時(shí)間,這樣可以大大減少所獲得圖片中存在前后兩個(gè)數(shù)字疊加的情形。但這樣會(huì)造成圖像亮度減低,從而增加所獲得圖像的噪聲;
?
計(jì)數(shù)器在記錄蓋革管輸出的脈沖信號
(2)對所獲得數(shù)據(jù)進(jìn)行濾波,比如使用中值濾波這種非線性濾波方法,可以有效將數(shù)據(jù)序列中的抖動(dòng)噪聲消除。也可以利用所測量數(shù)據(jù)的本身特性,來對錯(cuò)誤數(shù)據(jù)進(jìn)行提出,比如脈沖計(jì)數(shù)應(yīng)該是對應(yīng)遞增的序列;
(3)利用所獲得圖像前后相鄰的序列信息,直接訓(xùn)練一個(gè)動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò),來識別過渡圖像中的數(shù)字信息。這對于在一個(gè)曝光時(shí)間內(nèi),數(shù)碼管僅僅跳動(dòng)一次的情況是有效果的。如果在攝像頭一個(gè)曝光時(shí)間內(nèi),數(shù)碼管的是誰出跳動(dòng)兩次以上,則大大增加了過渡圖片空間的復(fù)雜性,對于機(jī)器學(xué)習(xí)所需要的網(wǎng)絡(luò)模型和訓(xùn)練數(shù)據(jù)都提出了更高的要求。
由于攝像頭對于數(shù)碼管是離散時(shí)間圖片采樣,并存在一個(gè)采樣時(shí)間,因此上存在著一個(gè)最高變化速率。當(dāng)數(shù)碼管的跳動(dòng)高于這個(gè)速率的時(shí)候,是無法從圖片中準(zhǔn)確獲得數(shù)碼管數(shù)字信息的。