張慶賓 陶智仁 趙文斐
(山東大學(xué)控制科學(xué)與工程學(xué)院,山東 濟(jì)南 250061)
當(dāng)前,我們正生活在一個(gè)信息爆炸的時(shí)代,每個(gè)人都時(shí)刻接受著海量的信息,然而盲人、眼疾患者等卻連基本接收信息的途徑(如讀書(shū)看報(bào))都無(wú)法保證。中國(guó)是世界上盲人最多的國(guó)家,全國(guó)約有500萬(wàn)盲人,占全世界盲人總?cè)丝诘?8%,弱視力者更是不計(jì)其數(shù)?;贏RM9的便攜式助讀器能夠輕松方便地幫助他們“讀書(shū)看報(bào)”。此外,該助讀器還能掃描存儲(chǔ),實(shí)現(xiàn)速錄功能。ARM9處理器速度快、效率高,字庫(kù)芯片容量大、價(jià)格低,系統(tǒng)體積小、操作簡(jiǎn)單。因此,基于ARM9的助讀器擁有龐大的市場(chǎng)和廣泛的應(yīng)用前景。
基于嵌入式操作系統(tǒng)的便攜式助讀器以ARM9為核心,經(jīng)過(guò)OV6620掃描成像,由SYN6288發(fā)音。同時(shí),系統(tǒng)還可與PC機(jī)通過(guò)USB進(jìn)行通信,實(shí)現(xiàn)閱讀和速錄功能。
助讀器利用廣闊視角的掃描頭,將圖書(shū)或報(bào)紙上的紙版文字信息掃描輸出到ARM核心系統(tǒng)中,高速的ARM處理速度使掃描到的圖片點(diǎn)陣信息與字庫(kù)芯片中存放的字符一一對(duì)比,直到匹配正確(達(dá)到一定的重合率,如90%以上)。助讀器在閱讀模式下,處理器將匹配字符的GB_2312碼通過(guò)UART口輸出到語(yǔ)音芯片SYN6288,SYN6288可以清晰準(zhǔn)確地把字符朗誦出來(lái),實(shí)現(xiàn)助讀功能;在速錄模式下,處理器則將該字符的GB_2312碼存放到擴(kuò)展的存儲(chǔ)器中,方便快捷地實(shí)現(xiàn)速錄、存儲(chǔ)功能。助讀器原理如圖1所示。
圖1 助讀器原理圖Fig.1 Principle of the reading helper
根據(jù)便攜式助讀器的功能要求,硬件層主要由掃描部分、核心處理部分、發(fā)音部分和存儲(chǔ)部分組成。此外,為了助讀器使用方便以及能夠?qū)崿F(xiàn)與外部通信,系統(tǒng)增添了一些外部擴(kuò)展接口。
系統(tǒng)硬件總體結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)總體結(jié)構(gòu)圖Fig.2 Overall structure of the system
1.2.1 掃描模塊
根據(jù)掃描原理,當(dāng)掃描頭進(jìn)行圖像掃描時(shí),光線(xiàn)從物體上反射回來(lái),通過(guò)透鏡射進(jìn)電荷耦合器件(chargecoupled device,CCD),CCD圖像傳感器根據(jù)反射光線(xiàn)強(qiáng)弱的不同轉(zhuǎn)換成不同大小的電流,再由模數(shù)轉(zhuǎn)換器(analog-to-digital converter,ADC)將模擬電信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),即產(chǎn)生一行圖像數(shù)據(jù)[5],再通過(guò)逐行的掃入,最終完成全文圖像的掃描。
1.2.2 處理模塊
在處理過(guò)程中,以ARM 9單片機(jī)為核心,字庫(kù)芯片中的字符為對(duì)照表,ARM以其極高的運(yùn)行速度將掃描頭掃描到的圖片點(diǎn)陣信息與字庫(kù)芯片中的字符相匹配[2],最終找到所掃描到的文字信息的國(guó)標(biāo)編碼,然后根據(jù)不同的模式將國(guó)標(biāo)碼發(fā)送到語(yǔ)音芯片或是存儲(chǔ)到擴(kuò)展的存儲(chǔ)器中。
1.2.3 發(fā)音模塊
語(yǔ)音芯片SYN6288能夠?qū)?guó)標(biāo)碼(支持多種編碼)轉(zhuǎn)換成為聲音形式[8]。助讀器將掃描到的文字信息的GB_2312碼通過(guò)ARM的UART串行口發(fā)送到語(yǔ)音芯片SYN6288,經(jīng)過(guò)外圍電路處理,就能夠輸出清晰、自然、準(zhǔn)確的聲音信號(hào)。為了不影響他人,系統(tǒng)還提供了耳機(jī)接口。
1.2.4 存儲(chǔ)模塊
目前,大部分速錄筆、掃描筆等電子產(chǎn)品對(duì)信息的存儲(chǔ)都是圖片格式的點(diǎn)陣信息。由于圖片的信息量非常大,對(duì)存儲(chǔ)圖片的容量要求也非常高,因此,存儲(chǔ)空間大、效率低。該便攜式助讀器存儲(chǔ)的并不是圖片信息,而是字符的國(guó)標(biāo)碼,這大大節(jié)省了存儲(chǔ)空間,提高了工作效率。
目前,大部分掃描設(shè)備都是基于操作系統(tǒng)(WinCE、Linux等)。鑒于WinCE系統(tǒng)本身具有價(jià)格高、源代碼不開(kāi)放、不利于剪裁和維護(hù)等缺點(diǎn),且基于WinCE的光學(xué)字符識(shí)別(optical character recognition,OCR)軟件在Linux上的剪裁移植相對(duì)麻煩[1],本文提出采用ARM+字庫(kù)芯片的方案,大大簡(jiǎn)化了軟件編程,降低了系統(tǒng)成本,而且使用方便,符合該便攜式助讀器的設(shè)計(jì)理念。
OV6620掃描圖像為352×288像素,對(duì)于單個(gè)字符可以采用16×16像素輸出。將輸出信息與字庫(kù)芯片內(nèi)存中逐個(gè)字符信息進(jìn)行匹配,達(dá)到一定符合率時(shí)輸出該字符國(guó)標(biāo)碼。
以下是掃描頭采樣的部分程序。
與攝像頭通信時(shí)需要用采用I2C通信。IIC_PROTCOL.C是I2C協(xié)議文件,包括I2C底層協(xié)議函數(shù)。以下是部分I2C通信的底層協(xié)議程序。
基于嵌入式操作系統(tǒng)的便攜式助讀器,實(shí)現(xiàn)了對(duì)紙質(zhì)文本的獲取、識(shí)別與存儲(chǔ),且字符播音清晰、自然、準(zhǔn)確。該助讀器具有智能的文本分析處理算法,可以正確識(shí)別數(shù)值、號(hào)碼、時(shí)間、日期及常用的度量衡符號(hào),具備很強(qiáng)的多音字處理和中文姓氏處理能力,支持多種文本控制標(biāo)記,提升了文本處理的正確率。助讀器是基于嵌入式操作系統(tǒng)來(lái)完成的,在文本信息到聲音信息轉(zhuǎn)換的過(guò)程中,沒(méi)有計(jì)算機(jī)的參與,方便快捷,這為盲人、眼疾患者等弱視力群體閱讀圖書(shū)報(bào)紙?zhí)峁┝藰O大的方便。同時(shí),文中介紹的硬件及軟件設(shè)計(jì)對(duì)嵌入式開(kāi)發(fā)應(yīng)用提供了借鑒和參考。
[1]鄒思軼.嵌入式Linux設(shè)計(jì)與應(yīng)用[M].北京:清華大學(xué)出版社,2002:3-12.
[2]馬忠梅.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)[M].北京:北京航空航天大學(xué)出社,2002:73-81.
[3]李蕊.基于嵌入式Linux的網(wǎng)絡(luò)攝像系統(tǒng)研究和實(shí)現(xiàn)[D].天津:天津大學(xué),2006.
[4]彭建,崔更申.基于嵌入式的無(wú)線(xiàn)條碼掃描儀系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2009,17(7):1415 -1417.
[5]何斌,馬天予.數(shù)字圖像處理[M].北京:人民郵電出版社,2001:313-316.
[6]趙亮,侯國(guó)銳.單片機(jī)C語(yǔ)言編程與實(shí)例[M].北京:人民郵電出版社,2003.
[7]王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā)[M].北京:清華大學(xué)出版社,2002.
[8]張雄偉.現(xiàn)代語(yǔ)音處理技術(shù)及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2003:112-116.