劉 志,姜 帆,馮曉斐
(1.浙江工業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,浙江 杭州310023;2.浙江工商大學(xué) 計算機與信息工程學(xué)院,浙江 杭州310018)
二維條碼與手機終端及移動無線網(wǎng)絡(luò)的結(jié)合,能方便地實現(xiàn)移動電子票務(wù),但是目前的“手機電子票”主要采用圖形二維條碼(如DM碼、QR碼等),通過移動彩信方式發(fā)送到用戶手機端,即“圖形二維條碼電子票”.由于目前移動網(wǎng)絡(luò)帶寬窄、彩信丟失率高(彩信批量發(fā)送到達(dá)率只有70%左右,而短信到達(dá)率可達(dá)99%以上)、部分手機不能很好支持圖形顯示等原因?qū)е轮挥?0%左右的手機用戶可以正常使用“手機電子票”;另外移動彩信昂貴的發(fā)送成本(短信成本是彩信成本的1/5左右)對“手機電子票”的推廣使用也有一定的影響.因而,設(shè)計、實現(xiàn)一種以字符為矩陣元素的條碼就成為一種迫切的需要.
傳統(tǒng)的圖形二維條碼使用若干與二進制相對應(yīng)的幾何形體來表示文字、數(shù)字以及其他信息.每種二維條碼都對應(yīng)一種特定的字符集以及特定的編碼規(guī)則,稱為碼制.條碼同時具有一定的校驗功能,以防止信息傳遞過程中的遺漏和錯誤.
圖形二維條碼的生成過程一般分為三步:首先將待編碼的數(shù)據(jù)信息通過一定的編碼規(guī)則或者壓縮算法轉(zhuǎn)換成信息碼字,然后使用糾錯算法生成糾錯碼字,將以上碼字組合成為數(shù)據(jù)碼字,再將其轉(zhuǎn)換為二進制流,根據(jù)每個碼字中每位的信息排列在條碼圖像中生成條碼,如圖1所示.
圖1 各類條碼實例Fig.1 Several graphic barcode examples
在具體編碼時存在多種編碼方式,如在Data Matrix ECC200條碼中,存在六種不同的編碼模式,而實際待編碼信息可能以各種組合方式出現(xiàn),如何選擇編碼模式、如何進行編碼模式切換都是編碼技術(shù)需要研究的內(nèi)容,如表1所示,編碼時通過插入附加碼字可以實現(xiàn)編碼模式之間的轉(zhuǎn)換.表1給出了各種模式的開銷[1].
表1 Data Matrix ECC200編碼模式Table 1 Data Matrix ECC200Encoding Schemes
Data Matrix ECC200編碼方式的編碼長度計算如下:在ASCII模式中基本ASCII符號用一個8位碼字來表示,連續(xù)的兩位數(shù)字編碼成一個8位符號,擴展ASCII字符先添加一個上轉(zhuǎn)移符號碼字(235),再編碼擴展ASCII符號的ASCII值-128.在C40,Text,ANSI X12模式的編碼中,基本的編碼方式將三個一組的符號編碼成兩個一組的8位碼字,在C40,Text的擴展字符集中,需要添加上轉(zhuǎn)移符號作為標(biāo)識,再編碼其在擴展集中的碼字值;對于擴展ASCII字符,需要先編碼位于第二擴展字符集中的上轉(zhuǎn)移字符,然后在編碼擴展ASCII符號的ASCII值-128,其長度根據(jù)ASCII值的不同,為16或21.33不等.EDIFACT模式的編碼講一個原先8位的符號,截取頭兩位,成為一個6位的符號,將4個這樣的符號組成3個8位的碼字.
筆者所討論的字符二維條碼編碼方式,也稱碼制,主要是以Data Matrix或QR碼編碼規(guī)則為基礎(chǔ).但針對Data Matrix的編碼模式在C40和Text編碼模式的局限性進行了改進研究.Data Matrix的C40編碼模式和Text編碼模式的擴展字符集中留下了很多空余的位置沒有被安排編碼,即在shift字符集沒有安排滿40個符號,這些都造成了一定程度上編碼空間的浪費.
針對C40與Text編碼方案,字符二維條碼的編碼方案在第一個擴展字符集(Shift1Set)中的空余部分36-39,增加了四種切換符號,Jump to ASCII,Jump to B256,Jump to X12,Jump to EDIFACT.這些符號的含義為:停止當(dāng)前編碼模式,并將編碼方案切換到相應(yīng)編碼模式.這種切換方法稱為“跳轉(zhuǎn)切換”.此方案在編碼模式切換上節(jié)省了當(dāng)前模式的切出碼字與下一模式的切入碼字,直接節(jié)省1個碼字,同時影響下一個編碼模式的編碼范圍,使得編碼模式的切換更加靈活.
確定了字符二維條碼的編碼規(guī)則后,主要針對各種模式間的選擇進行研究.在ECC 200中,Data Matrix標(biāo)準(zhǔn)在附錄S提出了一種基于向前檢驗算法(Look-ahead Test)[1]的編碼模式選擇算法,該算法在每個碼字的起始點經(jīng)過向前檢驗算法分析后續(xù)字符串的特性,并暗示下一個碼字的編碼模式,然后使用暗示的編碼模式編碼下一個碼字,依次循環(huán)直至最后一個碼字的結(jié)束,糾錯碼字編碼開始.
向前檢驗算法為每個碼字分配計數(shù)器,通過記錄后序字符的特性,計算在當(dāng)前編碼模式下使用每個編碼模式所需的長度,最后求得編碼長度最短的編碼模式,并暗示編碼模式選擇算法下一個碼字的編碼模式.記第i個碼字的編碼模式為wi,記向前檢驗算法為φ(w,i),若編碼一共有n個碼字,那么編碼模式選擇算法的遞推公式如下:
但是,在實際編碼中Data Matrix標(biāo)準(zhǔn)提出的基于向前檢驗算法,由于只能做到檢查后續(xù)的字符特征,因此無法對當(dāng)前編碼模式選擇做一個全局的統(tǒng)籌,在某些情況下造成不能很好地中斷當(dāng)前編碼方案以切換更適合的編碼方案.
例如,對一個字符串形如“a…aA…A”進行編碼.觀察該字符串,根據(jù)表1中編碼方案的特點可知,小寫字母用Text編碼,大寫字母用C40編碼能得到較好效果.但是,當(dāng)小寫a個數(shù)滿足3n+1(n>1)個時,那么通過向前檢驗算法給出的暗示編碼方案將把最后一個a并入后面的C40編碼模式中.由于小寫字符在C40字符集中屬于擴展字符,因此將增加編碼長度.這種情況下,更好的做法是在最后一個a前停止Text編碼,并由默認(rèn)的ASCII編碼方案編碼小寫a,然后再切入C40編碼.根據(jù)Data Matrix的標(biāo)準(zhǔn),這樣的做法和根據(jù)向前檢驗算法給出的編碼方案在碼字切換的開銷上是一樣的,但是在字符編碼的長度上減少了,從而在總體上減少了編碼的長度.
動態(tài)規(guī)劃算法在許多技術(shù)領(lǐng)域得到了廣泛的應(yīng)用,近年來研究人員從各方面對動態(tài)規(guī)劃的求解過程進行探討,并取得一定的成果[2-3].筆者針對這個問題,提出了一種基于動態(tài)規(guī)劃的編碼方案選擇算法,來解決編碼優(yōu)化問題.
2.2.1 問題分析
針對Data Matrix ECC200編碼方案,決定編碼長度的因素為兩點,即字符本身編碼長度與切換編碼模式的附加碼字長度.
根據(jù)表1每種字符所對應(yīng)的最有效編碼模式,即使用該模式編碼長度最短的編碼模式.因此,在不考慮模式切換開銷與編碼字符個數(shù)的情況下可以找出最有效的編碼區(qū)域劃分,作為初始狀態(tài),使用動態(tài)規(guī)劃方法優(yōu)化模式切換以及編碼字符個數(shù)開銷對模式選擇造成的影響.
2.2.2 建立決策模型
根據(jù)動態(tài)規(guī)劃方法,分決策為若干個階段,每個階段確定一段字符串的編碼模式,故階段數(shù)不超過字符串字符個數(shù)n.
狀態(tài)變量:記第k個階段的編碼模式選擇為狀態(tài)變量λk.其中k為不大于n的非負(fù)數(shù),下同.狀態(tài)變量為一個特殊數(shù)據(jù)結(jié)構(gòu)儲存現(xiàn)階段字符串編碼模式選擇方案,以及當(dāng)前優(yōu)化的編碼區(qū)域.
決策變量:記第k個階段時做出的編碼模式選擇的修改為決策變量xk,并記允許決策集合為Xk.每個階段的決策的含義為“是否需要進行不同編碼方案的合并”,即將某個編碼方案下編碼區(qū)域中的字符用另一個相鄰編碼方案進行編碼.
其中Xk=X={0:不修改,1:向前合并,2:向后合并,3:前面并入當(dāng)前,4:后面并入當(dāng)前}.
指標(biāo)函數(shù):記當(dāng)?shù)趉個狀態(tài)下的編碼長度作為動態(tài)規(guī)劃指標(biāo)vk,由指標(biāo)函數(shù)Vk(λk,xk)決定.指標(biāo)函數(shù)的計算方法由2.1中修改的 Data Matrix ECC200編碼方案決定.
最優(yōu)值函數(shù):gk(λk)表示在λk狀態(tài)下使用允許決策集合中決策的編碼長度的最小值,即gk(λk)=min[Vk(λk,X)].
狀態(tài)轉(zhuǎn)移方程:λk+1=T(λk,xk)表示在對當(dāng)前狀態(tài)λk做最優(yōu)值函數(shù)找出的編碼長度最短的決策xk.
則決策模型的解法方程為
通過上述動態(tài)規(guī)劃模型的建立,可以給出具體的編碼模式優(yōu)化選擇算法.根據(jù)表2給出的編碼方案特點,可以找出對不同字符類型的最高效編碼方案,劃分如表2所示.
表2 最佳字符編碼方案劃分Table 2 Shortest encoding scheme matching
表2中帶星號的編碼方案CTX與CX是新加入的“臨時模式”,臨時模式不用于編碼,只在優(yōu)化選擇中作為標(biāo)記使用.其中CTX模式的涵義為優(yōu)先使用C40、Text和X12編碼,其次為EDF;CX為優(yōu)先使用C40和X12編碼,其次為EDF.
動態(tài)規(guī)劃的初始狀態(tài)λ0通過表2進行匹配給出,在此情況下,由于表2給出的最佳字符編碼的匹配模式,因此在僅考慮單個字符的編碼長度上是最短的.在給定初始狀態(tài)之后,從第一個模式開始迭代,直至最后一個模式.在迭代過程中,若當(dāng)前模式為臨時模式則進行臨時模式合并算法;否則,進行非臨時模式合并算法.每次合并之后進行碼字調(diào)整算法,并由碼字調(diào)整算法判斷是否還有下一個模式,若已到信息編碼的結(jié)尾,則終止信息碼字編碼,開始糾錯編碼.其中臨時模式合并算法與碼字合并算法流程見圖2.
圖2 碼字合并與調(diào)整算法流程圖Fig.2 Workflow of model combination algorithms and codewords adjusting algorithm
其中兩個模式合并算法完成當(dāng)前模式為對應(yīng)類型模式的最優(yōu)決策選擇;碼字調(diào)整算法完成編碼模式的編碼范圍調(diào)整,以滿足碼制中對編碼符號個數(shù)的規(guī)定.根據(jù)式(2)的動態(tài)規(guī)劃算法的具體迭代運算步驟如下:
1)若第一個模式不是ASCII模式,那么在第一個模式之前插入一個編碼長度為0的ASCII模式.
2)從現(xiàn)在的第2個模式開始,檢查是否為最后一個編碼模式:①當(dāng)前編碼為臨時模式,則進行臨時模式合并,轉(zhuǎn)至步驟3;②當(dāng)前編碼不為臨時模式,進行非臨時模式合并,轉(zhuǎn)至步驟4.
3)臨時模式合并算法:①若前一個模式為C40或X12模式,或者前一個模式為Text模式,當(dāng)前臨時模式為CTX,那么將當(dāng)前模式合并至前一個模式編碼;②若不滿足上述條件,且存在下一個模式,同時下一個模式為C40或X12模式,或者下一個模式為Text模式,當(dāng)前臨時模式為CTX,那么將當(dāng)前模式合并至下一個模式編碼;③若不滿足上述條件,且前一個模式為EDF模式,那么將當(dāng)前模式合并至前一個模式編碼;④若不滿足上述條件,且存在下一個模式,同時下一個模式為EDF模式,那么將當(dāng)前模式合并至下一個模式編碼;⑤若不滿足上述條件,則假設(shè)當(dāng)前編碼模式為C40,依次計算決策集合X中所有決策產(chǎn)生的編碼方案的編碼長度,選擇編碼長度最短的作為當(dāng)前階段的決策;⑥轉(zhuǎn)至步驟5.
4)非臨時模式合并算法:①計算如下三種決策的產(chǎn)生的編碼方案的編碼長度:不合并、向前合并、前面并入當(dāng)前,選擇編碼長度最短的作為當(dāng)前階段的決策;②轉(zhuǎn)至步驟5.
5)碼字個數(shù)調(diào)整算法:①若當(dāng)前模式為C40或Text模式,計算編碼該段字符串所需的C40或Text符號個數(shù)s,若s值小于3,即不能構(gòu)成一個雙符號碼字時,將當(dāng)前模式置為ASCII模式;否則,若s取3的模為2,那么將從后向前刪除編碼區(qū)域末尾的編碼符號,直至s取3的模不為2,并將刪除的編碼符號以默認(rèn)模式ASCII編碼作為下一個模式插入;②若當(dāng)前模式為X12模式,計算編碼該段字符串所需的X12符號個數(shù)s,若s值小于3,即不能構(gòu)成一個雙符號碼字時,將當(dāng)前模式置為ASCII模式;否則,若s不能被3整除,那么向后刪除s取3模個數(shù)個編碼字符,使用默認(rèn)模式ASCII編碼作為下一個模式插入;③若當(dāng)前模式為EDF模式,計算編碼該段字符串所需的EDF符號個數(shù),若s值小于4,即不能構(gòu)成一個三符號碼字,且s不能被4整除,那么向后刪除s取4模個數(shù)個編碼字符,使用默認(rèn)模式ASCII編碼作為下一個模式插入;④當(dāng)前模式為最后一個模式,則結(jié)束信息編碼,開始糾錯碼字編碼.
由于條碼圖像采集設(shè)備和識別軟件的限制、圖像噪聲的影響以及采集后圖像可能存在的一定的缺陷,條碼的差錯控制是必不可少的.目前在二維條碼中廣泛采用了 Reed-Solomon糾錯算法[4-5],簡稱 RS算法.RS算法是一類有很強糾錯能力的多進制BCH碼.
假設(shè)生成的信息碼字向量為T=(t1,t2,…,tp),由T生成的糾錯碼字向量為W=(w1,w2,…,wq),那么整個數(shù)據(jù)碼 字為D=(t1,t2,…,tp,w1,w2,…,wq),數(shù)據(jù)碼字個數(shù)為p+q.根據(jù)RS算法,數(shù)據(jù)碼字的糾錯能力為q/2個碼字,即在整個數(shù)據(jù)碼字D中可以糾正不大于q/2個碼字錯誤,這是使用RS算法進行糾錯的顯著特性.
由上述分析可知:條碼的容量受到糾錯碼字個數(shù)的影響,而糾錯碼字的個數(shù)是可以根據(jù)需要進行調(diào)節(jié)的.除此之外,字符二維條碼的容量還受到條碼碼制的壓縮率、字符矩陣中字符種類數(shù)量的影響.碼制的壓縮率決定信息碼字的長短,字符矩陣中字符種類數(shù)量則決定每個矩陣字符的數(shù)據(jù)容量.一個由16種字符所組成的字符二維條碼,其條碼中每個字符可以表示4個二進制位信息.條碼總?cè)萘縈、條碼信息容量p、糾錯能力v與條碼的尺寸(w×h)之間的關(guān)系如下:
由式(3)可知:當(dāng)條碼總?cè)萘恳欢〞r,條碼的信息容量p與糾錯能力v呈負(fù)相關(guān).同時根據(jù)RS算法2個糾錯碼字能確定1個條碼碼字錯誤的特性,應(yīng)保證糾錯碼碼字個數(shù)為偶數(shù),以免造成碼字容量的浪費.用戶可以根據(jù)自身條碼的需要調(diào)整糾錯碼字的個數(shù),降低或提高糾錯率以調(diào)整條碼的信息容量.
通常情況下,普通手機屏幕可以顯示12×10的字符矩陣,以此尺寸為最大限制,對條碼信息容量與條碼糾錯碼字個數(shù)進行安排.根據(jù)對式(3)的分析可知:糾錯能力越強,相同尺寸的條碼信息容量就越小.由于RS算法糾錯的特性,若對糾錯能力進行分級,只能是一個平均水平的分級,不能做到精確的分級,因此條碼的糾錯率需要一定的區(qū)分度.因此筆者對條碼的糾錯能力等級大致分為高、中、低三個檔次,根據(jù)式(4)使其糾錯率大致維持在30%,20%,10%左右.其中糾錯等級為中的條碼的部分尺寸規(guī)格見表3.
表3 條碼容量與糾錯性能Table 3 The capacity and error correction ability of the barcode
字符二維條碼在字符的選取原則上可以選擇任意可視字符,只要對應(yīng)移動終端可以顯示即可.在這里,字符二維條碼主要是以移動終端短消息為主要應(yīng)用背景,考慮到條碼的識別,選取復(fù)雜的符號不利于條碼的識別,容易產(chǎn)生識讀錯誤,造成條碼失效.由于大寫英文字符線條清晰、符號較為簡單,因此筆者擬采用有限個大寫英文字母作為矩陣字符.在文字識別領(lǐng)域?qū)τ谟⑽淖址淖R別已經(jīng)較為成熟[6-7],文獻(xiàn)[8]給出一種判斷字符相似程度的方法.將標(biāo)準(zhǔn)化的26個大寫英文字母圖片進行采樣并歸一化組成72×72的量子化圖形,計算26個字母兩兩之間的Pearson相關(guān)系數(shù)R(x,y)為
其中R的值域為[-1,1].根據(jù)Pearson相關(guān)系數(shù)的概念,x,y的相關(guān)程度按R的絕對值每0.2分一個等級,依次為極弱相關(guān)或無相關(guān)、弱相關(guān)、中等相關(guān)、強相關(guān)和極強相關(guān).
字符條碼矩陣元素字符的選取,考慮26個字符為點,組成一個帶權(quán)的26元無向完全圖.其中邊的權(quán)值為字符之間的相關(guān)系數(shù).通過計算找出最小帶權(quán)16元完全子圖,子圖內(nèi)的點即為選中的矩陣元素.
最小帶權(quán)16元完全子圖的尋找方法為:原圖中擦去所有邊,將原先的邊按權(quán)值從小到大排序,并依次添加到26元的圖中,直至26元圖中能構(gòu)成一個16元完全圖為止.此16元完全圖即為原圖的最小帶權(quán)16元完全子圖,子圖中的點即是被選中的符號.經(jīng)計算,選中的大寫字符如下:A I J K L M N Q R S T V W X Y Z,其中兩兩之間的相關(guān)系數(shù)的平均值為0.1514,最大值為I與T的相關(guān)系數(shù)值為0.485 0.
同時,在可視字符矩陣中需要使用功能字符“◤”,“◥”,“◢”作為定位符,以區(qū)別字符二維條碼和普通短信字符,這些定位符分別表示字符矩陣的左上角、右上角、右下角.定位符作為條碼特征,主要用于在二維條碼的識別過程,實現(xiàn)條碼的正確定位.由于定位符是直角三角形,在邊緣檢測算法中較容易被區(qū)分,并且三個定位符各有不同的方向,并留有一個角落沒有定位符,為條碼圖像的定位和畸變校正起到了標(biāo)識作用.
以編碼字符串“Character 2DBarcode”為例,根據(jù)3中的動態(tài)規(guī)劃算法,以“[開始位置,結(jié)束位置]編碼模式”表示一個模式選擇的狀態(tài),則其模式選擇步驟如表4所示.
表4 模式選擇步驟Table 4 Procedure of model selecting
如表4所示,進行第6個階段的優(yōu)化選擇之后,已經(jīng)到最后一個編碼模式,此時算法結(jié)束,最終按照該種編碼方案選擇的編碼長度為17個碼字.
若使用Data Matrix標(biāo)準(zhǔn)中的模式選擇算法,根據(jù)向前檢驗算法,在雙符號碼字起始點第1,3,6,9,12,14,16個字符位置上均暗示為Text模式,在第19、20個字符位置上暗示為ASCII模式,那么其編碼模式選擇為[[0,0]:ASCII,[0,18]:Text,[18,20]:ASCII],那么編碼長度為18個碼字.其他編碼字符串優(yōu)化選擇結(jié)果示例如表5所示.
經(jīng)過實際對兩種算法的模式選擇測試,選擇長度為20的隨機字符串,進行100萬次測試,結(jié)果如表6所示,其直觀統(tǒng)計結(jié)果見圖3.表6與圖3中列出了對三種不同字符類型范圍字符串,進行的100萬次測試結(jié)果.編碼優(yōu)化效果的計算公式:編碼優(yōu)化效果(差值)=DM優(yōu)化算法的編碼長度-筆者算法長度.
由統(tǒng)計結(jié)果可以得出:在大多數(shù)情況下筆者算法可以給出與DM優(yōu)化算法一樣的編碼效果,在某些情況下由于筆者算法的改進,可以得到比較好的優(yōu)化效果,尤其是在任意的ASCII字符的編碼的情況下;同時在另一些情況下,筆者算法也有一些不 足,以待改進.
表5 模式優(yōu)化算法效果比較Table 5 Comparing of optimization results
表6 編碼模式優(yōu)化選擇效果統(tǒng)計表Table 6 Statics of encoding effect with encoding scheme selecting optimization 個
圖3 編碼模式優(yōu)化選擇效果統(tǒng)計Fig.3 Statics of encoding effect with encoding scheme selecting optimization
使用經(jīng)過2.1修改的 Data Matrix ECC200編碼模式按照模式優(yōu)化選擇算法選擇出的編碼方案編碼字符串,并根據(jù)表3中的條碼容量與糾錯碼個數(shù)間的關(guān)系,使用 Reed-Solomon算法[4-5]為編碼生成的信息碼字生成糾錯碼字,兩者組合即為條碼的數(shù)據(jù)碼字.
對于條碼的數(shù)據(jù)碼字,根據(jù)4.1中選擇的字符,安排進根據(jù)表3選出規(guī)格的條碼,即為字符二維條碼,筆者例子的字符二維條碼如下:
圖4為以傳統(tǒng)二維條碼發(fā)送的彩信,圖5為采用字符二維條碼發(fā)送的短消息,即筆者設(shè)計、實現(xiàn)的編碼方法.
圖4 圖形二維條碼電子票Fig.4 Graphic barcode e-ticket
圖5 字符二維條碼電子票Fig.5 Character 2Dbarcode e-ticket
以Data Matrix二維條碼編碼原理為基礎(chǔ),設(shè)計了一種新型字符二維條碼,對編碼方案與編碼方案選擇進行了優(yōu)化,使得信息的編碼長度更短.實驗表明:該算法在大多數(shù)情況下能有Data Matrix向前檢驗算法給出的編碼優(yōu)化選擇方案一樣的編碼效果,同時在某些情況下能有更好的優(yōu)化效果,少數(shù)情況下會有一定的不足,總體能以更優(yōu)化的方式進行編碼模式選擇和編碼.
下一步工作將結(jié)合字符二維條碼的符號化過程,通過對字符特征的學(xué)習(xí)識別,實現(xiàn)字符二維條碼的快速識讀.
[1]International Organization for Standardization. ISO/IEC 16022—2000Information Technology International symbology specification-Data Matrix[S].Switzerland:Joint Technical Committee ISO/IEC JTC 1,2004.
[2]LIU Y A,STOLLER S D.Dynamic programming via static incrementalization[J].Higher Order and Symbolic Computation,2003,16(1/2):37-62.
[3]KOSSMANN D,STOCKER K.Iterative dynamic programming:a new class of query optimization algorithms[J].ACM Transactions on Database Systems,2000,25(1):43-82.
[4]王新梅,肖國鎮(zhèn).糾錯碼——原理與方法[M].西安:西安電子科技出版社,2001.
[5]尚振宏,袁梅宇,劉輝.二維條碼中RS糾錯譯碼算法的優(yōu)化實現(xiàn)[J].計算機工程與應(yīng)用,2007,43(25):175-220.
[6]苗琦龍,欒新.基于遺傳算法和BP網(wǎng)絡(luò)的文字識別方法[J].計算機應(yīng)用,2005,25(S1):330-332.
[7]黃襄念,程萍,趙學(xué)軍,等.自由手寫拉丁字母聯(lián)機識別[J].計算機應(yīng)用,2000,20(5):40-42.
[8]周新,錢秋樂.光學(xué)文字識別系統(tǒng)[J].自動化學(xué)報,1979,5(1):30-38.