于 蕾,張 宇,柳守一,汲清波
(哈爾濱工程大學(xué)信息與通信工程學(xué)院,哈爾濱 150001)
“機器視覺”[1]作為一門綜合性創(chuàng)新實驗課程,綜合了光學(xué)[2]、機械自動化、電子信息、計算機軟硬件[3]等課程。涵蓋專業(yè)知識廣泛:包括信號處理、計算機視覺、計算機工程等專業(yè)知識。“機器視覺”實驗課程,有利于將知識融會貫通并應(yīng)用于實際工程中。
本文針對實驗課程實例——“八音盒視頻處理”,設(shè)計了基于圖像處理[4]的視頻關(guān)鍵特征檢測[5]實驗方案。實驗實例對象為18 音階機械八音盒,其運行視頻的截圖如圖1 所示。實驗方案,將對實例對象八音盒的運行視頻,通過數(shù)字圖像處理、提取特征等方式,完成樂譜特征提取,將識別到的音符特征表征出來并演奏。
圖1 實例對象——八音盒
八音盒核心部件有(見圖1):①滾軸部、②音板、③儲能彈簧。針對給定的八音盒視頻,以提取并恢復(fù)相應(yīng)音符信息為目標進行設(shè)計。八音盒是由滾軸旋轉(zhuǎn),滾軸上的凸起撥動音板發(fā)聲的,包含音符信息的位置集中在2 個區(qū)域:②銀色不同長度的音板部分和③滾軸上不同位置的凸起。在音符信息變化過程中,音板的明暗變化較弱,易受光源不均勻等外界因素干擾,滾軸部分雖存在明顯噪聲干擾,卻包含更明確的音符特征信息。設(shè)計實驗針對滾軸部分凸起進行圖像處理提取特征,并結(jié)合音頻頻率分析對提取到的音符特征進行恢復(fù)。
實驗設(shè)計的原理包括數(shù)字圖像處理、信號時域頻域分析、樂器數(shù)字接口(Musical Instrument Digital Interface,MIDI)編程等技術(shù)[6]。
圖像形態(tài)學(xué)[7-8]也被稱作數(shù)字形態(tài)學(xué),以形態(tài)結(jié)構(gòu)單元為工具對圖像進行處理。形態(tài)學(xué)通過不同大小、不同形狀存放不同權(quán)重的基礎(chǔ)結(jié)構(gòu)單元,對整幅圖像做平移不變性的計算處理,以達到提取特征、消除噪聲、圖像映射變換等目的。圖像形態(tài)學(xué)一般對灰度圖像或者二值圖像進行處理。一類典型的應(yīng)用是通過形態(tài)學(xué)運算降低圖像干擾噪聲,在很大程度上保留圖像本身的必要特征[9]。圖像形態(tài)學(xué)的基本運算包括:形態(tài)學(xué)開操作、形態(tài)學(xué)閉操作、形態(tài)學(xué)膨脹和形態(tài)學(xué)腐蝕[10]。
(1)二值形態(tài)學(xué)。結(jié)構(gòu)元素是形態(tài)學(xué)操作中最重要的基本單元,不同的基本單元對圖像進行處理會產(chǎn)生截然不同的結(jié)果。常用的結(jié)構(gòu)元素形狀包括矩形和十字形等。在進行形態(tài)學(xué)操作時,其基本結(jié)構(gòu)單元被稱作形態(tài)學(xué)算子。形態(tài)學(xué)算子直接決定了形態(tài)學(xué)處理的結(jié)果。形態(tài)學(xué)運算的本質(zhì)是形態(tài)學(xué)算子在圖像上的平移不變性運算,類似于加窗?;镜男螒B(tài)運算包括腐蝕和膨脹。
(2)形態(tài)學(xué)腐蝕。形態(tài)學(xué)腐蝕是一種常用的形態(tài)學(xué)圖像處理手段,通過腐蝕操作,可在一定程度上保留目標特征而消除部分噪聲干擾。常常與形態(tài)學(xué)膨脹同時使用。假設(shè)用B(x)代表結(jié)構(gòu)元素,對工作空間E中的每一點x,形態(tài)學(xué)腐蝕運算結(jié)果
式中,“⊙”為腐蝕運算符。形態(tài)學(xué)腐蝕如圖2 所示。
圖2 形態(tài)學(xué)腐蝕
(3)形態(tài)學(xué)膨脹。與形態(tài)學(xué)腐蝕相反,形態(tài)學(xué)膨脹如圖3 所示,膨脹運算結(jié)果
圖3 形態(tài)學(xué)膨脹
式中:“⊕”為膨脹運算符;B(y)為點y位置對應(yīng)的原素結(jié)構(gòu);?為空集。
傅里葉變換在解決信號時頻問題時具有很大的局限性,為解決傅里葉變換不能區(qū)分時間尺度上不同頻率信息,提出短時傅里葉變換(Short Time Fourier Transform,STFT)[12-13]。其本質(zhì)是對目標信號與窗函數(shù)相乘,分析一段時間內(nèi)的頻譜特性,將窗函數(shù)按時間順序平移計算下一個窗口的頻譜特性。在進行STFT的過程中:首先假定一個非平穩(wěn)信號在窗口內(nèi)是平穩(wěn)的,將目標信號x(t)與有限窗函數(shù)h(t)相乘再進行傅里葉變換,即可得到窗口時間內(nèi)頻譜,對h(t)在時間軸x上的移動,對信號進行逐段分析得到信號的一組頻譜。信號x(t)的STFT定義[14]為
式中,h(τ-t)為h(t)在時間軸τ 上的被動得到的有限窗函數(shù)[15]。分別截取小時間段內(nèi)的短信號做快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)變換,即可得到信號x(t)的時域頻域分析結(jié)果。
MIDI[16-17]是桌面系統(tǒng)底層封裝的應(yīng)用程序接口(Application Programming Interface,API),通過調(diào)用API接口可實現(xiàn)驅(qū)動聲卡發(fā)聲,常用于音樂相關(guān)項目的開發(fā)。不但可播放本地文件,還可通過鏈接庫實現(xiàn)不同音階的音符播放。
系統(tǒng)總體流程如圖4 所示,將八音盒運行視頻分為2 個部分:視頻圖像信息和音頻信息;圖像信息經(jīng)過右路圖像處理部分獲取圖像特征。音頻信息經(jīng)過左路得到時域頻域分析結(jié)果,將視頻圖像特征與音頻的時域頻域分析結(jié)果在時間上匹配,獲得不同時刻圖像上特征所代表的具體音符(頻率)信息,通過MIDI 編程將音樂演奏播放。
圖4 系統(tǒng)總體流程圖
視頻中圖像信息過于復(fù)雜,大部分圖像對樂譜的識別沒有作用。采用提取感興趣區(qū)域(region of interest,ROI)選擇包含樂譜信息的部分進行處理。這里選擇勻速轉(zhuǎn)動的滾軸區(qū)域作為感興趣區(qū)域。
選定感興趣區(qū)域后,從視頻中獲取每一幀圖像并截取感興趣區(qū)域,對每一幀圖像進行灰度處理和圖像二值化,處理結(jié)果如圖5 所示。
圖5 圖像處理過程
由圖5(a)、(b)可知,滾軸左右兩側(cè)部分存在難以去除的反光干擾噪點,中間部分圖像雖然存在部分噪點,但去除相對容易,所以將滾軸軸體中部作為主要分析對象。在圖5(b)的二值圖像中,存在2 種主要的噪點:滾軸上的固有缺陷產(chǎn)生的小型噪點(下稱為小噪點)和接縫處印有型號的鋼印造成的大范圍噪點(下稱為大噪點)。
對不同類型的噪點,采用的去除噪聲的手段也不一樣。對于小噪點,采用形態(tài)學(xué)運算的方式,在保留足夠有效特征的基礎(chǔ)上,去除圖像中的小噪點。先利用3 ×2 的矩形算子對圖像做開運算去除小噪點,再用1×2 的矩形算子對圖像進行膨脹操作,在縱向上彌補開運算對圖像特征造成的損失。處理后的圖像如圖5(c)所示??煽吹叫≡朦c被有效去除,大噪點依然存在。對于大噪點,將在后面的音符識別中進行靜默過濾操作。通過對大噪點的出現(xiàn)范圍及其白色像素數(shù)量與閾值比較,當識別到大噪點轉(zhuǎn)動到目標區(qū)域時,將音符識別算法靜默。
經(jīng)過圖像處理,中間部分只剩大噪點的干擾,在此基礎(chǔ)上設(shè)計音符識別提取部分。如圖6 所示,繪制長條矩形區(qū)域,縱向涵蓋滾軸18 個音節(jié)對應(yīng)的凸起,橫向?qū)挾嚷源笥谝粋€凸起特征。將長矩形18 等分,分別對應(yīng)不同位置的音符凸起。通過判斷每個格子內(nèi)的白色像素點比率來判定是否有音符特征經(jīng)過,若當前幀的圖像指定格子里存在音符特征,則白色像素比率將會大于閾值,此時將當前幀的目標格子標記為白色。
圖6 分區(qū)檢測過程
在標記音符特征的同時,將特征信息按時間序列繪畫并顯示,輸出音符樂譜特征如圖8(b)所示。
為獲得視頻中不同位置音符特征所對應(yīng)的實際音符(頻率),采用對視頻的音頻信號進行時域頻域分析。從視頻文件中提取到相應(yīng)的wav 音頻文件,將音頻文件輸入到程序中。其中時域信號如圖7 所示。
圖7 音頻時域信號
對音頻時域信號進行STFT,得到信號的時頻特性,如圖8(a)所示,由圖可獲得各音符的頻率。
圖8 音符特征與視頻特征對比
在音符識別和時頻分析后,得到音頻中的視頻圖像中的音符信息特征與音頻信號的時頻特征,分別如圖8(a)、(b)所示。其中時頻特征包含了每個音符的頻率信息,還包含了不同頻率的音符出現(xiàn)的時序信息。圖8(b)中包含了滾軸上不同位置的音符圖像的位置信息以及不同音符出現(xiàn)的時序信息。兩幅圖的時序信息是存在對應(yīng)關(guān)系,可得圖8(b)中每個位置所代表的頻率。例如圖8(a)、(b)中虛線內(nèi)為一個周期T,以黑色矩形內(nèi)信息為例,上下兩圖之間具有同樣的音符時序變化信息,將特征輸出一一對應(yīng),即可獲得視頻圖像中每個位置的音符的頻率。位置序號與音符頻率對應(yīng)關(guān)系見表1。
表1 位置序號與音符頻率對應(yīng)關(guān)系
由表1 可見,不同序號位置同凸起對應(yīng)的音符,結(jié)合圖8(b)即可獲得完整的樂譜信息。獲取的完整樂譜信息將用于后續(xù)的MIDI編程中。
MIDI編程可發(fā)出不同音色的音符和旋律。選擇鋼琴作為實施演奏的音色樂器。MIDI 編程以一個8位十六進制參數(shù)來控制輸出音符的音量、音調(diào)和音色。以0x00403C90 為例,有效位為后6 位,即0x403C90。其中:0x40 為音量;0x3C 為音調(diào);范圍為0x0-0x 7F;0x90 為樂器范圍應(yīng)該是0x90-0x9F。其中,0x99 為鼓類,其余皆為不同音色的鋼琴。
在演奏實現(xiàn)中,由表1 中位置與音符對應(yīng)關(guān)系預(yù)設(shè)到程序內(nèi),以圖6 右圖中小格子內(nèi)顏色變化為激勵信號,當顏色由黑色變白色時,即識別到音符到來,利用MIDI播放當前位置對應(yīng)的音符。當對視頻實時處理,產(chǎn)生實時輸出的處理后視頻的同時,完成對識別到的樂譜演奏的效果。
本文提供了對八音盒視頻通過計算機視覺等方法,從視頻中識別當前所演奏的音符,并能以實時演奏和打印輸出的2 種方式實現(xiàn)對識別到的音符特征的重現(xiàn)。
本方案的優(yōu)點:采用的圖像處理算法相對簡單易于操作,識別音符信息具有較高的準確性,能實時演奏且效果直觀等。在其他方面還具有一定的局限性,如:短時傅里葉變換這種時頻分析方法,對音頻主旋律的頻率有很好的解析效果,但由于實際音頻中還包括伴奏的旋律,伴奏的信號強度要小于主旋律音符信號,對伴奏旋律音符頻率的分析結(jié)果存在一定誤差。可改進對音頻信號的時頻分析方法,如采取更高精度的小波變換、濾掉主旋律頻率后單獨對和音頻率進行時頻分析等方法,來獲得更高的頻率精度。