Кіріспе

Компьютерлік көру немесе табиғи тілді өңдеуде құжат макетін талдау – мәтіндік құжаттың сканерленген кескініндегі қызығушылық тудыратын аймақтарды анықтау және жіктеу процесі. Оқу жүйесі мәтіндік аймақтарды мәтіндік емес аймақтардан бөліп, оларды дұрыс оқу ретімен орналастыруды қажет етеді. Құжаттағы мәтін блогы, суреттер, математикалық символдар және кестелер сияқты әртүрлі аймақтарды (немесе блоктарды) анықтау және белгілеу – геометриялық макетті талдау деп аталады. Бірақ мәтіндік аймақтар құжат ішінде әртүрлі логикалық рөлдер атқарады (тақырыптар, түсіндірмелер, әйнекшелер және т.б.), ал осы семантикалық белгілеу логикалық макетті талдау саласына жатады. Құжат макетін талдау – геометриялық және логикалық белгілеудің біріктірілген түрі. Ол әдетте құжат кескінін OCR қозғалтқышына жібермес бұрын жасалады, бірақ оны үлкен мұрағаттардағы бірдей құжаттың дубликаттарын анықтау үшін немесе құжаттарды олардың құрылымы немесе кескіндік мазмұны бойынша индекстеу үшін де пайдалануға болады. Құжат макеті ISO 8613:1989 халықаралық стандартында ресми түрде анықталған.

Әдістердің жалпы сипаттамасы

Құжаттың макетін талдаудың екі негізгі тәсілі бар. Біріншіден, төменнен жоғарыға қарайғы тәсілдер бар, олар шикі пикселдік деректерге сүйене отырып, құжатты қайталап талдайды. Бұл тәсілдер әдетте құжатты қара және ақ түстермен байланысты аймақтарға бөледі, содан кейін бұл аймақтар сөздерге, одан кейін мәтін жолдарына және соңында мәтін блоктарына топтастырылады. Екіншіден, жоғарыдан төменге қарайғы тәсілдер бар, олар ақ кеңістік пен геометриялық ақпарат негізінде құжатты бағандар мен блоктарға қайталап бөлуге тырысады. Құжат макетін талдаудың кез келген тәсіліне ортақ екі мәселе бар: шу және қисықтық. Шу дегеніміз – тұз және бұрыш шуы немесе Гаусс шуы сияқты бейнедегі шу. Қисықтық – құжаттың кескінінің мәтін жолдары толық көлденең болмауы үшін бұрылуы мүмкін екендігі. Құжат макетін талдау алгоритмдері мен оптикалық таңбаларды тану алгоритмдерінде құжат кескініндегі таңбалар мәтін жолдары көлденең бағытта орналасқан деген жалпы болжам бар. Сондықтан, егер қисықтық болса, оны жою үшін құжат кескінін бұру маңызды. Осыдан кейін кез келген құжат макетін талдау кодын бастау үшін бейнедегі шуды жою және құжаттың қисықтық бұрышын бағалау қажет.

Төменнен жоғарыға қарай әдістің үлгісі

Бұл бөлімде біз 1993 жылы О’Горман әзірлеген төменнен жоғарыға қарай құжат макетін талдау алгоритмінің қадамдарын қарастырамыз. Бұл тәсілдің қадамдары келесідей:

Суретті Гаусс және «тұз бен бұрыш» шуын жою үшін алдын ала өңдеңіз. Кейбір шуды жою сүзгілері үтірлер мен нүктелерді шу ретінде қарастыруы мүмкін, сондықтан сақтық тану қажет. Суретті екі түсті суретке айналдырыңыз, яғни әрбір пикселдің мәнін толығымен ақ немесе толығымен қараға өзгертіңіз. Суретті қара пикселдердің байланысты компоненттеріне сегменттеңіз. Бұл суреттегі символдар. Әрбір символ үшін оны қоршайтын тіктөртбұрыш пен центроидты есептеңіз. Әрбір символ үшін k жақын көршісін анықтаңыз, мұнда k – төрттен үлкен немесе оған тең бүтін сан. О’Горман өз мақаласында беріктік пен жылдамдық арасындағы жақсы компромисс ретінде k=5 ұсынады. Кемінде k=4 пайдалану себебі – құжаттағы символ үшін ең жақын екі немесе үш символ сол мәтін жолында орналасқан. Төртінші жақын символ әдетте жоғарыда немесе төмендегі жолда болады, және осы символдарды келесі жақын көрші есептеуіне қосу маңызды. Әрбір жақын көрші символдар жұбы бір символдың центроидынан екінші символдың центроидына бағытталған вектормен байланысты. Егер осы векторлар жақын көрші символдардың барлық жұптары үшін салынса, құжат үшін «docstrum» деп аталатын нәрсе пайда болады (төмендегі суретті қараңыз). Сондай-ақ, екі жақын көрші символ арасындағы көлденеңнен Θ бұрышы мен D қашықтығын пайдаланып, жақын көрші бұрыштары мен жақын көрші қашықтықтарының гистограммасын жасауға болады. Жақын көрші бұрыштарының гистограммасын пайдаланып, құжаттың қисықтығын есептеуге болады. Егер қисықтық қанағаттанарлық деңгейде болса, келесі қадамға өтіңіз. Әйтпесе, қисықтықты жою үшін суретті бұрыңыз және 3-қадамға оралыңыз. Жақын көрші қашықтығының гистограммасында бірнеше шыңдар болады, және бұл шыңдар әдетте символдар арасындағы, сөздер арасындағы және жолдар арасындағы аралықты көрсетеді. Гистограммадан осы мәндерді есептеп, жазып қойыңыз. Әрбір символ үшін оның жақын көршілерін қарап, олардың арасында символдар арасындағы немесе сөздер арасындағы аралыққа толеранттылық шегіндегі қашықтықта орналасқандарын белгілеңіз. Белгіленген әрбір жақын көрші символ үшін олардың центроидтарын қосатын сызық сегментін салыңыз. Сызық сегменттері арқылы көршілерімен байланысқан символдар мәтін жолдары құрайды. Мәтін жолындағы барлық центроидтарды пайдаланып, сызықтық регрессия арқылы мәтін жолын көрсететін нақты сызық сегментін есептеуге болады. Бұл маңызды, өйткені мәтін жолындағы символдардың барлық центроидтары бір түзу бойында жатқандығын күту қиын. Әрбір мәтін жолдарының жұбы үшін олардың сәйкес сызық сегменттері арасындағы ең аз қашықтықты есептеңіз. Егер бұл қашықтық 7-қадамда есептелген жолдар арасындағы аралықтың толеранттылық шегінде болса, екі мәтін жолы бір мәтін блогына біріктіріледі. Соңында, әрбір мәтін блогы үшін оны қоршайтын тіктөртбұрышты есептеуге болады, және құжат макетін талдау аяқталады.

Жасауды талдау бағдарламалық жасақтамасы

OCRopus – C++ және Python тілдерінде және FreeBSD, Linux және Mac OS X жүйелері үшін іске асырылған, құжаттардың макетін талдауға және OCR жүйесіне арналған ақысыз бағдарлама. Бұл бағдарламалық қамтамасыз ету, пайдаланушыға әртүрлі құжат макетін талдау және OCR алгоритмдерін таңдауға мүмкіндік беретін қосымша архитектурасын қолдайды. OCRFeeder – Linux жүйесі үшін, Python тілінде жазылған, құжаттардың макетін талдауды да қолдайтын OCR жиынтығы. Бұл бағдарламалық қамтамасыз ету белсенді түрде дамытылуда, тегін және ашық кодты.