Finereader 12
Як і в будь-якій області людської діяльності, в світі софта нерідко зустрічаються продукти, які після яскравого дебюту поступово вмирають. Новомосковсктель сам легко знайде приклади, коли все нові усовершен

Так міркував я приблизно десятиліття: можливості FineReader мені довелося вивчити детально ще на початку двотисячних, приблизно в сьомий його версії. Тоді довелося оцифрувати цілу книжку, я навіть придбав офіційну Pro-копію програми і був розчарований: цей процес зажадав такої кількості ручної роботи, що власне швидкість і якість розпізнавання майже не грали ніякої ролі.
Пару років тому мені знову довелося впритул зайнятися розпізнаванням, я познайомився з останніми версіями і щиро захопився виконану в компанії ABBYY роботою. Мало того, що програма з льоту «їла» PDF і DJVU, якщо в них ледачі оцифровщики розмістили лише шар зображення - вона тепер навчилася розпізнавати таблиці, позначати номери сторінок, як колонтитули, не заважаючи їх з основним текстом, і навіть (не повірите! ) розпізнавати виноски, саме як виноски. В результаті підготовка нової електронної версії тієї ж самої 350-сторінкової книги з доведенням копії до можливого ідеалу, зайняла всього чотири дні (замість майже трьох тижнів десятиліття назад!). Зараз я б справився ще швидше - багато часу пішло на вивчення нових прийомів роботи з розпізнаним текстом.
Не вимагаючи від програми неможливого, проте відзначимо також недоліки і упущення, в небезпідставну надії, що розробники звернуть на цю публікацію увагу - під час написання статті я доповідав про виявлені недоліки в компанію, і мені було обіцяно, що «все врахують».
Програма ABBYY FineReader надає дуже багато можливостей для отримання результатів оцифровки в самих різних форматах і для різних цілей. Розібрати їх все досконально ми не будемо навіть намагатися - для цього не вистачить і цілої книги, не те що журнальної статті. Тому зосередимося на одній, але дуже затребуваною зараз задачі: підготовці електронних версій паперових книг і брошур. Це завдання охоплює досить багато функцій програми, щоб познайомиться з нею докладно.
Спочатку про те, що ми хочемо отримати в результаті. Незважаючи на поширення мобільних «читалок» (останнім часом, на жаль, стрімко втрачають ринок на користь універсальних планшетів), виробники яких вигадали безліч форматів електронних книг, базовим форматом для них залишається старий добрий PDF. Він дозволяє отримати аутенічную копію паперової книги, додавши до неї традиційні «електронні» зручності, такі, як повнотекстовий пошук або гіперпосилання (в тому числі інтерактивне зміст). Конкуренцію PDF може скласти більш компактний формат DJVU, але він менш поширений, і традиційно електронні книги в цьому форматі містять лише шар зображення. Програма FineReader, як ми говорили, може сприймати DJVU, як исходник для подальшого розпізнавання (зараховуючи його до зображень).
Але так як власне «читалки» формат PDF сприймають погано (сторінки в цьому форматі практично неможливо коректно масштабувати під різні розміри шрифту і екрану), то інтерес представляє можливість також зберегти розпізнаний документ в популярних форматах електронних рідерів: в FineReader вони представлені EPUB і FB2. Послідовно розглянемо, які дії потрібно зробити і які підводні камені можуть зустрітися на цьому шляху.
В принципі FineReader дозволяє оригінали перезнімати фотокамерою, але для об'ємних документів я цей спосіб не пораджу: ручної роботи з доведення, якої і без того досить, неминуче виявиться ще більше, ніж в разі нормального сканера. Оригінали можуть бути кольоровими або монохромними, неважливо - за замовчуванням FineReader 12 все зображення переводить в відтінки сірого. Якщо потрібно відтворювати кольорові ілюстрації, то при скануванні з самого FineReader слід заздалегідь перевірити, чи включений кольоровий режим, інакше інформація про колір буде втрачена. У 12-й версії кнопка включення кольорового режиму знаходиться прямо на панелі інструментів.
Зовсім не забороняється заздалегідь зробити набір сканів сторінок у вигляді послідовно пронумерованих файлів зображень в якомусь поширеному форматі. Різниця в тому, що при скануванні з FineReader програма сама відрегулює ідеальний режим, а при сканування з іншої програми про це доведеться подбати вам. В принципі умова тільки одне: для звичайних книжкових сторінок повинно бути встановлено дозвіл сканування не нижче 300 dpi (дозволу вище цього значення теж не потрібно - файли лише стануть непідйомними за розміром). Однак, є випадки, коли попередня ручна обробка сканів краще, ніж безпосереднє сканування з програми. Для прикладу розглянемо ситуацію, коли ви хочете оцифрувати документ, в оригіналі представляє собою п'яту-шосту машинописну копію на пожовклим папері.
Приклад фрагмента такого тексту представлений на рис. 1, зліва. Протягом багатьох років цей листочок служить у мене тестом для програм розпізнавання. Якщо подивитися на збільшене слово «секретні» внизу, стає зрозуміло, чому FineReader взагалі його пропустив: якість друку таке, що фактично перед нами варіант тесту CAPTCHA, недоступний для розпізнавання. Треба сказати, що з потрапляли мені OCR-програм тільки FineReader представив хоч який-небудь результат для цього тексту, і то тільки в останніх версіях - десять років тому він теж видавав суцільний набір нерозпізнаних штрихів і закарлюк.
Мал. 1. Зображення шостого екземпляра машинописного примірника тексту, нижче - результати його розпізнавання в 12-й версії FineReader. Зліва - необроблений оригінал, праворуч - він же, пропущений через фільтр збільшення різкості Unsharp Mask, зниження шуму і підвищення контрастності. Внизу для наочності наведені збільшені фрагменти проблемного слова в тому і в іншому випадку.
Шоста машинописна копія, звичайно, екстремальний випадок - сподіваюся, вам не доведеться в житті з таким возитися. А звичайну книжкову сторінку FineReader в сучасних версіях розпізнає без будь-яких проблем - повозитися доведеться лише з помилками через дефекти оригіналу, і, головне, з форматуванням.

Мал. 2. Панель вибору мов розпізнавання
Якщо розпізнається може бути дуже складним, то в Довідці рекомендується ще до сканування відключити автоматичне розпізнавання (Сервіс> Налаштування .... На вкладці Сканування / зняти позначку з пункту Автоматично обробляти додані сторінки). Тоді ви можете вручну вказати розташування, тип і призначення областей для кожної сторінки окремо. Для нашої задачі - розпізнавання цілої книги - такий прийом використовувати практично нереально: простіше постфактум правитимуть окремі невірно розпізнані сторінки. Щоб у вікні результатів розпізнавання бачити текст, більш-менш наближений до того, що потім виявиться в результуючому файлі, слід вибрати потрібну опцію зі списку Оформлення документа (в нашому випадку це буде Точна копія).
Як мінімум, вам доведеться вручну відредагувати всі сторінки з ілюстраціями, особливо, якщо вони являють собою схеми або креслення з написами. FineReader неминуче буде намагатися розбити їх на області різного типу, і тут без ручної правки не обійтися. Такі фрагменти тексту, як математичні формули, простіше виділити окремо і оголосити зображеннями (особливо це стосується рукописних вставок з формулами, характерних для оригіналів епохи докомпьютерной верстки). Іноді доцільно накласти текстові області поверх картинки - вони будуть розпізнані, але при відповідному виборі кінцевого результату (див. Далі) будуть в ньому виглядати, як в оригіналі. Іноді в цьому випадку варто зображення виділити в область типу Фонова картинка. і простежити, щоб текст був розпізнаний коректно.
У книгах досить часто зустрічаються сторінки з великими ілюстраціями, розгорнутими щодо всіх інших сторінок книги. При всій своїй «інтелектуальності», FineReader самостійно не вміє розпізнавати текст, якщо він розгорнутий так, як показано на рис. 3. Для того, щоб розпізнавання було вірним, виділіть область тексту і внизу на панелі властивостей виберіть зі списку Орієнтація потрібну позицію (на рис. 3 на неї вказує стрілка курсору).

Мал. 3. Сторінка з ілюстрацією і підписом, розгорнутими щодо інших сторінок книги
Зауважимо, що FineReader має безліч опцій для окремих випадків редагування складних документів, але зупинятися на них у нас тут немає можливості. Зупинимося лише на одному істотному моменті саме в разі сканування книг: неприємно, якщо номери сторінок в PDF-файлі і в самій книзі не будуть збігатися. Якщо немає ніякої можливості привести їх у відповідність Перенумерація (див. Пункт Перенумерувати сторінки контекстного меню вікна Сторінки), то можна зробити так, щоб оригінальні номери сторінок в результуючому файлі не відображалися зовсім. Для цього слід перевірити, що всі номери сторінок розпізнані, як колонтитули (і при необхідності виділити їх в окрему текстову область, якої в панелі властивостей області надати призначення Колонтитул - не забудьте потім запустити розпізнавання сторінки або відповідних областей заново!), А потім в меню сервіс> Налаштування> Зберегти> PDF зняти позначку з пункту Зберігати колонтитули.
Про те, що робити, якщо ви хочете в результуючому файлі створити коректне зміст, розказано в урізанні.
Зміст в електронній книзі
За замовчуванням на сторінці властивостей (Сервіс> Налаштування> Зберегти> PDF) стоїть позначка в пункті Створити зміст (див. Рис. 5 в тексті). Ось тільки без додаткових дій створити його коректно не вдасться: FineReader навчився дуже багатьом речам, але правильно розпізнати рівні заголовків йому не під силу. І не тільки рівні: іноді він приймає за заголовки просто виділений або великий текст. В результаті в автоматичному режимі розпізнавання замість змісту неминуче виходить досконала каша. Доводиться або знімати цю позначку і обходиться без змісту, або доводити отриманий файл у зовнішніх програмах, причому знайти зручний і недорогий інструмент для редагування PDF - завдання не з тих, що вирішуються з полпинка. Зауважимо, що проблема для інших форматів електронних книг (aka FB2 і EPUB) ще гостріше, бо там зміст формується завжди, без всяких додаткових вказівок, і доводити його потім доведеться так чи інакше. Хоча і робиться це простіше, ніж в разі PDF - FB2 влаштований не складніше, ніж HTML, і легко піддається редагуванню вручну.
Справа ускладнюється тим, що просто виділити текст і оголосити його стилем заголовка потрібного рівня не виходить - стиль встановиться, але в результуючому файлі все одно все буде по-старому. Після деяких обговорень з представниками ABBYY, які чесно зізналися, що функція ця поки залишилася доведеної до розуму, був встановлений працюючий алгоритм дій, який включає в себе наступні кроки:
- на потрібній сторінці переформатувати виділення текстових областей так, щоб заголовок виявився в окремій області тексту (див. Вікно зображення на рис. 4 зліва);
- розпізнати заново спочатку текстові області (через контекстне меню виділеної області, пункт Розпізнати. А не через розпізнавання всієї сторінки!), І в останню чергу, окремо - область заголовка;
- поставити курсор в область тексту заголовка (не виділяючи текст!) І встановити стиль заголовка потрібного рівня через один з випадаючих списків стилів нагорі або внизу вікна з текстом (див. Рис. 4). Якщо треба, навпаки, прибрати зайвий заголовок, то слід точно так же поставити курсор в цю область (повторимо: не виділяючи текст!) І встановити для нього один із стилів основного тексту.

Мал. 4. Установка стилю заголовка для певної області тексту
Таким чином слід пройти весь текст книги: не можна зупинитися лише на якихось важливих моментах, тому що в іншому в результуючому змісті виявиться багато сміття.
Перед тим, як зберігати результати в PDF-файлі, необхідно в тому ж меню Сервіс> Налаштування> Зберегти> PDF встановити бажаний кінцевий результат. Для аутенічной копії паперового оригіналу підходять варіанти Текст на зображенні або Текст під зображенням сторінки (рис. 4). Якщо оригінал зовсім поганий, і аутенічную копію робити не має сенсу, то можна вибрати варіант Тільки текст і картинки. Щоб в останньому випадку наблизити копію до оригіналу (в режимі Точна копія), важливо встановити розмір паперу. Для книг іноді можна обмежитися стандартним форматом А5, а для більш точної підгонки необхідно зі списку вибрати або Використовувати розмір оригіналу. або через найнижчий пункт для користувача розмір паперу ... встановити точні розміри в міліметрах.

Мал. 5. Налаштування кінцевого результату розпізнавання у вікні властивостей PDF-файлу