Как это работает: FineReader. Системы распознавания текста и программы-переводчики

18.09.2020 Советы 

Технологии оптического распознавания (понятие и области применения OCR, алгоритмы оптического распознавания, характеристики и программы OCR, понятие Intelligent CharacterRecognition, системы распознавания рукописного текста)

OCR (Optical Character Recognition) - технология преобразования графического изображения текста в компьютерный текст с помощью алгоритма распознавания графических образов.

Ocr используется:

1) при сканировании и фотографировании текстов.

2) для ввода больших объемов текстовой информации в компьютер (от 100 и более страниц в день).

3) для рукописного ввода текстовой информации в компьютер.

4) для преобразования одного формата в другой.

Популярны три основные технологии распознавания символов:

Шаблонная (во входном изображении выделяются растровые изображения отдельных символов, сравниваются со всеми шаблонами, имеющимися в базе, выбирается шаблон с наименьшим количеством точек, отличных от входного изображения. Шаблонные системы проще в реализации, устойчивы к дефектам изображения, имеют высокую скорость обработки входных данных, но надежно распознают только те шрифты, шаблоны которых им известны),

Структурная (объект описывается как граф, узлами которого являются элементы входного объекта, а дугами - пространственные отношения между ними. Структурные системы высоко чувствительны к графическим дефектам изображения, нарушающим составляющие элементы. Для этих систем, в отличие от шаблонных и признаковых, до сих пор не созданы эффективные автоматизированные процедуры обучения),

Фонтанное преобразование (совмещает в себе достоинства шаблонной и структурной систем. Любой воспринимаемый объект рассматривается как целое, состоящее из частей, связанных между собой определенными отношениями).

Характеристики ocr:

    количество ошибок при вводе текста. Допустимой считается величина 10 ошибок на страницу.

    требовательность к качеству исходного текста.

    возможность исправления орфографических ошибок для повышения качества ввода.

    поддержка различных языков.

    возможность обучения и настройки на особенности печатных шрифтов и рукописных текстов.

    скорость распознавания. Желательно, чтобы оно было сопоставимо со временем ввода документа сканером.

Программы ocr:

Наиболее известны такие пакеты, как FineReader, CuneiForm, OmniPage, TextBridge.

ABBYY FineReader - OCR для автоматического ввода текстов, таблиц, форм, анкет и т.п.

ADRT (Adaptive Document Recognition Technology), технология адаптивного распознавания документов уровня IDR (Intelligent Document Recognition).

ABBYY Business Card Reader - мобильное приложение для распознавания визитных карточек, которое автоматически распознает информацию с фотографии визитной карточки, создает новый контакт, записывает контактные данные и дополнительную информацию в нужные поля записной книжки.

    ICR (Intelligent Character Recognition ) - системы для обработки форм, обеспечивающие ввод данных из документов на основе геометрических шаблонов

Любой современный человек, постоянно работающий с документами, время от времени задает себе злободневный вопрос: зачем повторно набирать текст, если ранее это уже кто-то сделал? У многих пользователей такая регулярно повторяющаяся задача вызывает раздражение с примесью обиды за то, что приходится бессмысленно дублировать чью-то работу. Естественно, разработчики программного обеспечения не могли остаться равнодушными к столь типичной ситуации, ликвидация которой к тому же обещала солидные прибыли. Так были созданы системы известные в России как системы оптического распознавания текста , а в англоговорящих странах - как OCR .

Сегодня область применения программного обеспечения OCR существенно расширилась: вначале оно применялось преимущественно в финансово-банковской сфере, решая специфические задачи автоматизации по вводу анкетных и опросных данных, но сегодня OCR -программы применяются уже повсеместно для работы с любыми документами. Трудно переоценить значение OCR-систем, превратившихся в такой необходимый софт и для офисного, и для домашнего компьютера.

Давайте кратко пройдемся по всем основным на рынке OCR -системам и выделим главные и характерные для них особенности.

Перед тем как начать рассмотрение OCR -систем, давайте сначала хотя бы минимально приведем их классификацию для удобства дальнейшего рассмотрения. На данный момент выделяют OCR -системы (Optical character recognition, OCR ) , а также ICR -системы (I ntelligent C haracter R ecognition, ICR ). Несколько упрощая суть отличий между ними, можно считать, что ICR -системы - это следующее поколение в развитии OCR -систем.В ICR гораздо более активно и серьёзно используются возможности искусственного интеллекта, в частности, ICR -системы часто используются для распознавания рукописных текстов, декоративных непостоянных шрифтов, а также, как самый яркий пример, преодолению тех же систем по защите от спам-ботов - каптч (captcha ). Третий, пока ещё только теоретический уровень качества распознавания текста, это IWR (Intelligent word recognition, IWR), в которой считываются и распознаются не отдельные символы/точки, а считываются и распознаются связные фразы целиком.

Существует несколько систем, причисляющих себя к категории ICR . Это, преждевсего, FineReader, OmniPage Professional, Readiris Corporate, Type Reader Desktop. Давайте сравним их всех и рассмотрим возможные альтернативы.

Известные отечественные продукты

Зарубежные продукты

Три других известных продукта, получившие малое распространение на территории СНГ в силу полного отсутствия представителей и маломальского маркетинга на этих бескрайних кириллических территориях, но известные на Западе и достойные хотя бы краткого упоминания, хотя бы потому, что также позиционируют себя как продукты ICR-класса. В нише некириллического распознавания они вполне могут составить здоровую конкуренцию даже лидеру рынка - FineReader.

Первый их них, это пакет от компании I.R.I.S. Group, представляет собой очень серьёзный OCR -продукт. Достаточно сказать, что начиная с c ентября 2006 года технология от компании I .R .I .S . была лицензирована и используется в продуктах Adobe systems . Согласно внутреннему тестированию самой Adobe эта технология оказалось самой удачной из всех рассмотренных на рынке.

Нужно отметить, что это удачное стороннее решение “похоронило” свою собственную разработку Adobe - родного OCR -движка, - которая поставлялась многие годы в рамках решения , и вот теперь новый OCR Adobe доступен в виде отдельного в другие популярные продукты Acrobat . Последняя версия Readiris v12 поддерживает все версии Windows и MacOS X , а всего поддерживается работа с более чем 120 языками.

Следующая крупная разработка от американской компании - . Этот движок разработан в тесном сотрудничестве с Университетом Невада в Лас-Вегасе. Этот движок распространяется по миру сразу во многих формах, начиная от интегрирования его в крупные западные системы документооборота (D ocument I maging M anagement, DIM), и заканчивая участием во многих американских программах по автоматической обработке форм (F orms P rocessing S ervices, FPS).

Например, в 2008 году газета Los Angeles Times после собственного тестирования ведущих мировых OCR выбрала для своего внутреннего использования как раз именно TypeReader. Хочется заметить, что данный продукт доступен как в традиционном десктопном исполнении (Windows , MacOS , Linux ), в виде корпоративного web -сервиса, так и в форме облачного арендуемого приложения, способного обрабатывать любые объемы распознаваемого текста в очень короткие сроки.

Бесплатные OCR-решения

Интересный собственный движок развивает и Google . - это первоначально закрытый коммерческий OCR -движок который создала Hewlett -Packard , работая над ним в промежутке между 1985 и1995 годами. Но после закрытия проекта и прекращения его развития, HP выпустило его код как open source в 2005 году. Разработку сразу подхватила Google , лицензируя уже свой продукт под свободной лицензией Apache . На данный момент Tesseract считается одним из самых точных и качественных бесплатных движков из всех существующих.

Нужно при этом четко представлять, что Tesseract - это классическая OCR для “сырой” обработки текста, т.е. в нем нет ни графической оболочки для удобного управления процессом,ни многих других дополнительных функций. Это обычная консольная утилита (есть версии для Windows , MacOS , Linux ), на вход которой подается изображение в формате TIFF , а на выходе Tesseract выдает “чистый текст”. При этом никакого анализа компоновки текста или стилей оформления здесь не производится, это процесс распознавания в его простейшей форме.

Для большего удобства работы, в качестве графического фронтенда, с этим движком можно использовать многие утилиты, например известные или . Но все же хочется отметить, что качество бесплатного C uneiForm/OpenOCR немного превосходит показатели Tesseract , хотя во многом это полностью аналогичные продукты.

Кроме бесплатного Tesseract ещё стоит упомянуть и . SimpleOCR очень достойное решение для OCR , и хотя оно не развивается уже с 2008 года, но оно как минимум ничем не уступает Tesseract . Продукт бесплатен для любого некоммерческого использования, и поставляется для Windows всех версий. Из сильных минусов - поддержка только двух языков: английского и французского.

Кроме традиционных десктоповых бесплатных решений, существует множество альтернативных онлайновых сервисов, бесплатно предлагающих OCR качество распознавания существенно ниже их коммерческих аналогов. Для успешного решениябизнес задач (и других серьёзных повседневных задач) лучше ориентироваться на коммерческие системы ICR -класса, которые были рассмотрены в первой половине этой статьи.

Хотелось бы провести сравнение методов, и показать , почему мы выбрали определенный, но практически - это сложно. На различных изображениях у определенных методов есть свои преимущества и свои недостатки, «в среднем» лучшего решения тоже нет, посему в Imago OCR мы спроектировали стек фильтров, каждый из которых может применяться в определенных случаях, а выбор результата будет зависеть от метрики качества.

К преимуществам метода можно отнести:

  • Довольно высокую скорость работы;
  • Параметризуемое качество результата;
  • Отсутствие размывания в ходе работы, и как следствие, «чуткость» к деталям;
  • И главная интересная особенность - нормализация локальных уровней освещенности.
Последнее свойство отлично иллюстрируется изображением из статьи, а важным для распознавания оно является из-за возможной неоднородности освещения объектов при съемке (листок бумаги, повернутый к источнику света так, что свет падает неравномерно):

Поверхностное описание алгоритма:

  • Локальной пороговой фильтрации изображения (laplacian threshold) с порогом T;
  • Дискретном косинусном преобразовании полученного изображения;
  • Фильтрации высокочастотных характеристик и решении специального уравнения для низких и средних частот (Retinex Equation);
  • Обратном дискретном косинусном преобразовании.
Сам алгоритм довольно чутко зависит от параметра T, но мы использовали его адаптацию:
  • Считаем Retinex(T) для T=1,2,4,8
  • Выполняем попиксельную медианную фильтрацию между результатами Retinex
Чем поможет OpenCV: есть готовая функция вычисления дискретного косинусного преобразования:
void dct(const Mat& src, Mat& dst, int flags=0); // flags = DCT_INVERSE for inverse DCT
И она по скорости работает не хуже, чем аналогичная из libfftw, хоть и не берусь утверждать это в общем случае (тестировалось на Core i5, Core Duo).

Для исходной картинки вышеописанный метод дает довольно приятный результат:

Теперь мы примерно понимаем, что должна делать предварительная фильтрация, и у нас уже появился один параметр, который может меняться в механизме обратной связи: индекс используемого фильтра .

Здесь и далее : по факту, конечно есть множество других параметров (например, те самые, «магические» T=1,2,4,8), но, дабы «не забивать голову», не будем про них говорить сейчас. Их много, упоминания про них всплывут в разделе о машинном обучении, но конкретику я опущу, дабы не перегружать изложение количеством параметров.

Уровень растра: бинаризация

Следующим шагом является получение черно-белого изображения, где черный будет отвечать наличию «краски», а белый - ее отсутствию. Делается это потому, что ряд алгоритмов, например получение контура объекта, конструктивно не работают с полутонами. Одним из самых простых способов бинаризации является пороговая фильтрация (выбираем t в качестве порогового значения, все пиксели с интенсивностью больше t - фон, меньше - «краска»), но в силу ее низкой адаптивности чаще используется otsu threshold или adaptive gaussian threshold.

Несмотря на адаптивность более продвинутых методов, они все равно содержат пороговые значения, определяющие «количество» выходной информации. В случае более жестких порогов - часть элементов может быть потеряна, в случае «мягких» - может вылезти «шум».

Strong thresholding Weak thresholding

Можно пытаться точно угадать пороги для каждого изображения, но мы пошли другим путем - использовали корреляцию между полученными изображениями с различными адаптивными порогами бинаризации:
  • Считаем strong и weak бинаризацию (с заданными порогами t1 и t2);
  • Разбиваем изображения на набор связных попиксельно областей ();
  • Удаляем все «слабые» сегменты, имеющие корреляцию с соответствующими сильными, меньше заданной (cratio);
  • Удаляем все «слабые» сегменты небольшой плотности (пропорции черных/белых пикселей меньше заданной bwratio);
  • Оставшиеся «слабые» сегменты - результат бинаризации.
В результате в большинстве случаев получаем изображение, лишенное шума и без потерь в детализации:

Описанное решение может выглядеть странно, в свете того, что мы хотели «избавиться» от одного параметра, а ввели целую кучу других, но основная идея в том, что корректность бинаризации теперь обеспечивается, в случае, если «настоящий» порог бинаризации попадает в интервал, заключенный между выбранными нами t1 и t2 (хотя мы не можем «бесконечно» увеличивать этот интервал, на разницу t1 и t2 тоже есть ограничение).

Идея вполне жизнеспособна при применении с различными методами пороговой фильтрации, а OpenCV «помогла» наличием встроенных функций адаптивной фильтрации:
cv::adaptiveThreshold(image, strongBinarized, 255, cv::ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, strongBinarizeKernelSize, strongBinarizeTreshold); cv::threshold(image, otsuBinarized, otsuThresholdValue, 255, cv::THRESH_OTSU);
Если итоговое изображение вообще не содержит сегментов, то вероятно, произошла ошибка фильтрации и стоит рассмотреть другой предварительный фильтр («обратная связь»; «те самые» голубые стрелки в изображении структуры движка).

Уровень примитивов: векторизация

Следующим шагом в процессе распознавания является преобразование наборов пикселей (сегментов) в примитивы. Примитивами могут быть фигуры - окружность, набор сегментов, прямоугольник (конкретный набор примитивов зависит от решаемой задачи), или же символы.

Пока мы не знаем к какому классу отнести каждый объект поэтому пытаемся векторизовать его различными способами. Один и тот же набор пикселей может быть успешно векторизован и как набор сегментов и как символ, например «N», «I». Или же окружность и символ - «O». На данном этапе нам не нужно знать достоверно, какой класс имеет объект, но необходимо иметь определенную метрику схожести объекта с его векторизацией в определенном классе. Обычно это решается набором распознающих функций.

Например для набора пикселей мы получим набор следующих объектов (не думайте о конкретных числах метрики, они приведены для изображения того, чего мы хотим от процесса распознавания, но сами по себе пока не имеют смысла):

  • векторизация в виде символа «H» с значением метрики (расстояния) в 0.1 (возможно это именно H) ;
  • векторизация в виде символа «R» с значением метрики в 4.93 (маловероятно, но возможно это и R) ;
  • векторизация в виде трех сегментов "|", "-", "|" с значением метрики в 0.12 (вполне возможно, что это три сегмента) ;
  • векторизация как прямоугольник с размерами сторон x, y с значением метрики в 45.4 (совсем не похоже на прямоугольник) ;
  • векторизация как окружности с значением метрики +inf (гарантировано не является окружностью) ;
Для того чтобы получить список векторизаций необходимо реализовать примитивы распознавания для каждого конкретного класса.
Распознавание набора сегментов
Обычно растровая область векторизуется в набор сегментов следующим образом:

Готового thinning фильтра в OpenCV нет, но реализовать его совсем не трудно . Разбиения на сегменты (decorner) тоже, но это и вовсе тривиально: выкидываем из области все точки, у которых больше двух соседей. А вот аппроксимация точек как набора сегментов в OpenCV присутствует, ей мы и воспользовались:
cv::approxPolyDP(curve, approxCurve, approxEps, closed); // approximation of curve -> approxCurve
Важным параметром является допуск аппроксимации (approxEps ), при увеличении которого в качестве результата мы получим большее число сегментов, а при уменьшении - более грубое приближение, и, как следствие, большее значение метрики. Как правильно его выбирать?

Во-первых он достаточно сильно зависит от средней толщины линии (интуитивно - чем больше толщина линии, тем меньше детализация; рисунок нарисованный острым карандашом может быть значительно более детализован, чем нарисованный маркером), что мы и использовали в нашей реализации:
approxEps = averageLineThickness * magicLineVectorizationFactor;
Во-вторых, с учетом вышеописанного подхода к классификации объектов есть возможность пытаться векторизовать сегменты с разными approxEps (с определенным шагом) и уже на этапе анализа логической структуры выбрать «более подходящий».

Распознавание окружностей
Довольно просто:
  • Ищем центр окружности (среднее по координатам точек) - (x,y);
  • Ищем радиус (среднее расстояние точек от центра) - r;
  • Считаем погрешность: среднее расстояние по точкам до окружности с центром (x,y) и радиусом r и толщиной averageLineThickness;
  • Считаем дополнительный штраф за разрывы окружности: magicCirclePenalty * (%разрывов).
После подбора magicCirclePenalty с этим кодом совершенно не было проблем, как и с похожим на него распознаванием прямоугольников.
Распознавание символов
Значительно более интересная часть, т.к. это challenge problem - нет ни одного алгоритма, претендующего на «самые оптимальные» показатели распознавания. Есть совсем простые методы, опирающиеся на , есть более сложные, например с использованием , но никакие не гарантируют «хорошего» качества распознавания.

Поэтому довольно естественным казалось решение использовать несколько подсистем распознавания символов и выбора агрегатного результата: если p1 = метрическое значение того, что алгоритмом 1 область A распознается как символ s, а p2 = метрическое значение того, что алгоритмом 2 область A распознается как символ s, то итоговое значение p = f(p1,p2). Нами было выбрано два алгоритма, обладающие удобно сравниваемыми значениями, высокой скоростью и достаточной стабильностью:

  • распознавание на базе дескрипторов Фурье;
  • маски квадратичного отклонения точек.
Распознавание символов на базе дескрипторов Фурье
Подготовка:
  • Получение внешнего контура объекта;
  • Преобразование координат точек контура (x;y) в комплексные числа x+iy;
  • Дискретное преобразование Фурье набора этих чисел;
  • Отбрасывание высокочастотной части спектра.
При выполнении обратного преобразования Фурье мы получаем набор точек, описывающий исходную фигуру с заданной степенью аппроксимации (N - количество оставленных коэффициентов):

Операция «распознавания» заключается в вычислении дескрипторов Фурье для распознаваемой области и сравнение их с предопределенными наборами, отвечающими за поддерживаемые символы. Чтобы получить метрическое значение из двух наборов дескрипторов необходимо выполнить операцию, называющуюся сверткой: d = sum((d1[i]-d2[i])*w[i], i=1,N), где d1 и d2 - наборы дескрипторов Фурье, а w - вектор весов для каждого коэффициента (мы получали его машинным обучением). Значение свертки инвариантно относительно масштаба сравниваемых символов. Кроме того, функция устойчива к высокочастотному шуму (случайных пикселях, не меняющих «геометрию» фигуры).

OpenCV довольно сильно помогает в реализации этого метода; есть готовая функция получения внешних контуров объектов:
cv::findContours(image, storage, CV_RETR_EXTERNAL);
И есть функция вычисления дискретного преобразования Фурье:
cv::dft(src, dst);
Остается только реализовать свертку и промежуточные преобразования типов, сохранение набора дескрипторов.

Метод хорош для рукописных символов (пожалуй наверное потому, что на него фоне другие дают менее качественные результаты), однако плохо пригоден для символов небольшого разрешения из-за того, что высокочастотный шум, то бишь «лишние» пиксели становятся большими по отношению к изображению целиком и начинают влиять на те коэффициенты, которые мы не отбрасываем. Можно пытаться уменьшить количество сравниваемых коэффициентов, но тогда становится сложнее делать выбор из схожих небольших символов. И поэтому был введен еще один метод распознавания.

Распознавание символов на базе масок квадратичного отклонения
Это довольно-таки интуитивное решение, которое, как оказалось, прекрасно работает для печатных символов любых разрешений; если у нас есть два черно-белых изображения одинакового разрешения, то можно научиться сравнивать их попиксельно.

Для каждой точки изображения 1 считается штраф: минимальное расстояние до точки изображения 2 того же цвета. Соответственно, метрика - это просто сумма штрафов с нормализующим коэффициентом. Такой метод будет значительно более устойчив на изображениях небольшого разрешения с наличием шума - для изображения с длиной стороны n отдельные пиксели в числе до k процентов не «испортят» метрику более чем k * n в худшем случае, а в практических - не более чем на k, ибо в большинстве случаев прилегают к «правильным» пикселям изображения.

Минусом метода, в том изложении как я описал, будет являться низкая скорость работы. Для каждого пикселя (O(n 2)) мы считаем минимальное расстояние до пикселя того же цвета другой картинки (O(n 2)), что дает O(n 4).

Но это довольно легко лечится предвычислением: построим две маски penalty_white(x,y) и penalty_black(x,y) в которых будут храниться предвычисленные значения штрафов за то, что пиксель (x,y) оказывается white или black соответственно. Тогда процесс «распознавания» (то есть вычисления метрики) укладывается в O(n 2):
for (int y = 0; y < img.cols; y++) { for (int x = 0; x < img.rows; x++) { penalty += (image(y,x) == BLACK) ? penalty_black(y,x) : penalty_white(y,x); } }
Остается только хранить маски (penalty_white, penalty_black) для каждого написания каждого символа и в процессе распознавания их перебирать. OpenCV в реализации этого алгоритма нам практически не поможет, но он тривиален. Но, как я уже говорил, сравниваемые изображения должны быть одинакового разрешения, поэтому чтобы привести одно к другому возможно потребуется функция:
cv::resize(temp, temp, cv::Size(size_x, size_y), 0.0, 0.0);
Если вернуться к общему процессу распознавания символов, то в результате прогона обоих методов мы получаем таблицу метрических значений:

Значение распознавания - не один элемент, а вся таблица, из которой мы знаем, что с самой большой вероятностью - это символ «C», но возможно это «0», или «6» (или «O», или «c», которые не влезли на экран). А если это скобка, то с большей вероятностью открывающая, нежели закрывающая. Но пока мы даже не знаем, символ ли это вообще…

Уровень примитивов: сепарация

Если бы мы жили в идеальном мире сверхпроизводительных (квантовых?) компьютеров, то скорее всего этот шаг не был бы необходим: у нас есть набор некоторых объектов, для каждого из которых есть таблица «вероятностей», определяющая, что именно это. Перебираем все элементы в таблице для каждого объекта, строим логическую структуру, и выбираем самую вероятную (по сумме метрик отдельных объектов) из валидных. Делов-то, кроме разве что экспоненциальной сложности алгоритма.

Но на практике обычно требуется определить тип объекта по-умолчанию. То есть выбрать некоторую готовую трактовку объектов на изображении, а затем, возможно незначительно ее изменить. Почему мы не могли выбрать тип объектов на предыдущем шаге (векторизации)? У нас не было достаточно статистической информации о всех объектах, и если трактовать определенный набор пикселей изолированно от всей картинки, то достоверно определить его смысл становится проблематично.

Это один из самых важных вопросов распознавания структурной информации. У человека с этим все обстоит значительно лучше, чем у машины, ибо он просто не умеет видеть пиксели по отдельности. И одним из начальных этапов разочарования в построении OCR системы является попытка алгоритмизировать вроде бы человеческий подход «по шагам» и получение при этом неудовлетворительных результатов. Кажется что вот-вот уже, стоит немного улучшить алгоритмы распознавания примитивов, чтобы они «не ошибались», и мы получим более качественные результаты, но всегда находится несколько картинок, которые «ломают» любую логику.

И вот, мы спрашиваем человека, что это -
Конечно, это просто изогнутая линия. Но если нужно причислить ее либо к символам, либо к набору сегментов прямой линии, то что это? Тогда это, скорее всего, либо буква «l», либо две прямые линии под углом (просто угол нарисован скругленным). Но как выбрать правильную трактовку? Примерную задачу могла решать и машина на предыдущем шаге, и решить ее верно с вероятностью 1/2. Но 1/2 это полный крах для системы распознавания структурной информации, мы просто испортим структуру, она не пройдет валидацию, придется исправить «ошибки», которые по счастливой вероятности могут не совпасть с истинной проблемой. Мы можем получить все что угодно.

Но если мы посмотрим на соседние объекты, то многое может стать понятным:

И пусть вы даже не сталкивались с структурными формулами в химии никогда, но из этой картинки почему-то становится очевидно что это связь (линия, прямая или две прямых с скругленным углом). Мы видим изображение трех символов, видим какие они аккуратные, оцениваем примерный их размер, понимаем что «скругленная штука» - не символ.

Есть и другой вариант:

Мы увидели линию, которая является абсолютно прямой, увидели стоящий рядом «идеальный» символ, наш объект похож по размеру, хотя и отрисован менее качественно. Здесь сложнее сказать наверняка, но если мы знаем, что связи должны соединять объекты, а в направлении концов нашего объекта ничего нет - то он вряд ли связь. А если вспомнить, что «Cl» (хлор) вполне вероятное сочетание символов в нашей предметной области, то да, это все-таки символ «l».

Здесь я практически и изложил в свободном стиле наброски алгоритма сепарации. А теперь более формально.

Пороговая часть:

  • Если в таблице метрик для объекта только одно значение является «хорошим» (близким к нулю), а все остальные отличаются минимум на константу C, то маркируем его соответствующим классом.
Это здорово, но так бывает не всегда.

Для оставшихся объектов прибегаем к статистическому анализу:

  • Определение среднего размера потенциальных символов и отклонения от него;
  • Определение средней длины потенциальных линий, отклонение от него;
  • Определение средней кривизны потенциальных линий;
  • Определение средней толщины линий, символов;
  • И другие статистические критерии, например hu moments (которые кстати OpenCV умеет считать).
Мы все еще не знаем, для каждого объекта - какой класс он имеет, просто смотрим в таблицу метрик, и выбираем наиболее близкий по значению к нему объект - это я и вкладываю в понятие "потенциальный ".

Затем строим дерево классификации, в узлах которого могут стоять следующие условия: (если высота объекта лежит в диапазоне от средняя_высота_символа-1 до средняя_высота_символа+2, при этом обладает кривизной превосходящей 3*средняя_кривизна_линии и его длина менее 0.5*средняя длина линий), то он маркируется как символ. Метод построения деревьев классификации хорошо описан , и я позволю себе не повторять.

После прохождения статистической части некоторые объекты будут промаркированы предположительными классами. В большинстве практических случаев - почти все объекты. Если нам не удалось промаркировать хотя бы половину объектов, то скорее всего, что-то у нас пошло не так (и такое часто бывает для рукописных картинок). Но не будем «отчаиваться» и просто выберем половину объектов с наименьшими метрическими значениями и промаркируем их без учета статистической информации (для этой странной загогулины из примера - просто посмотрим в таблицу расстояний, и если к «l» она ближе, то назначим ее символом «l». Какие при этом могут возникать проблемы я уже описал, но это вынужденное решение).

Для оставшихся объектов применим локальный анализ:

  • Найдем всех соседей для выбранного объекта;
  • Если часть соседей уже имеет выбранный класс, то выберем из таблицы вероятности локальных конфигураций более вероятную;
  • Дополнительно: если в направлении концов объекта не стоит стоит других объектов, то он символ.
Для оставшихся объектов класс выберем «по умолчанию» - тот что по метрическому значению ближе.

В результате всех мучений мы можем разделить изображение к набор объектов, предположительно являющихся символами и часть, отвечающую за структуру.

Структурный уровень

Теперь осталось собрать из набора элементов готовую структуру. Здесь, конечно сами алгоритмы начинают сильно зависеть от предметной области.

Не вдаваясь в химические детали, в Imago OCR мы работаем с изображениями молекул, которые по сути представляют граф связей, в вершинах которого стоят метки (набор символов), поэтому сама задача сборки структуры довольно тривиальна. Но не любая комбинация символов является валидной меткой атома, и не из любого набора отрезков можно построить корректный граф. Метки могут использовать нижние и верхние индексы, знаки зарядов и скобочные последовательности. Для дальнейшего изложения я выберу самые интересные, и возможно потенциально полезные моменты.

Обработка графа структуры
Первым важным шагом, является собственно получение этого графа. После векторизации, все что мы имеем - набор разрозненных сегментов, у каждого из которых есть «начало» и «конец», которые я на изображении структуры промаркировал окружностями:


Статистически мы определяем средний радиус возможной склейки, и «собираем» отрезки, концы которых лежат в этом радиусе в вершины графа:


Радиус можно определить так - для каждой вершины посчитать минимальное расстояние до соседей и найти пик гистограммы. В случае, если этот пик дает радиус, больший среднего размера символа, то можно считать, что все отрезки не связаны.

Затем удаляем слишком короткие ребра:


Слишком короткие ребра - результат векторизации линий с артефактами (изгибы, пиксельный шум). У нас есть средний размер символа, можно считать, что длина связей, меньшая размера символа - невозможна (за рядом исключений, которые проверяются специальным образом - химическая специфика).

Вышеописанные пункты будут полезны и при распознавании таблиц, к примеру. А у нас есть еще поиск кратных ребер, нахождение «мостов» (планарного изображения непересекающихся ребер), нахождение изображения «стрелок». Все это значительно удобнее делать, работая с структурой графа, а не с промежуточными результатами распознавания - не стоит добиваться «идеальной» векторизации.

Сборка и обработка меток
Для символов необходимо выполнить объединение в группы и здесь применяется решение, аналогичное «сборке» графа. Каждую собранную метку необходимо распознать, а поскольку могут присутствовать верхние и нижние индексы - задача становится интереснее.
Для начала вычисляется «базовая линия» метки:
Это прямая (по сути просто определенное значение baseline_y), над которой лежат заглавные символы метки, а под которой - индексы. Для определения baseline_y нам поможет статистика:
  • определение среднего размера заглавного символа (у большинства символов написание заглавных и прописных различаются);
  • при анализе каждой конкретной метки выбираем среднее значение координаты y для всех символов, размер которых находится в пределах среднего.
Почему мы берем среднее, а не максимум (линия же должна идти под символами метки)? Так стабильнее; если мы ошиблись с трактовкой символа как заглавного, мы можем ошибочно причислить индекс к заглавным, провести под ним черту, и соответственно «индексов у нас больше не будет». Выбор среднего же с одной стороны не значительно меняет значение baseline_y в хороших случаях, а с другой - цена ошибки неправильного выбора заглавных символов падает.

Затем распознаем символы, один за другим. Для каждого символа вычисляем:

  • % его высоты, лежащей под базовой линией;
  • отношение к средней высоте заглавных символов.
Довольно неудачным было бы пороговое решение относительно этих параметров: если под базовой линией находится минимум 30% символа - то он индекс. А если 29? Вообще весь процесс распознавания как нельзя лучше можно описать идеей duck test. Если что-то похоже на индекс, то скорее всего - оно индекс. А похоже оно на индекс, если на что-то другое оно похоже еще меньше.

Что увеличивает вероятность символа быть индексом? Чем меньше он, и чем ниже относительно базовой линии. А еще у цифр вероятность быть индексом больше. Одной из хороших идей при распознавании было использование набора изменений списка метрик (вы еще помните, что для каждого объекта мы храним все возможные похожие на него объекты?). Теперь в этот набор метрик добавляются еще и трактовки как нижние индексы. Это значения метрики, изначально скопированные из обычных значений в процессе распознавания изменяются:

  • Если символ лежит на k% ниже базовой линии, то метрика для его трактовок как нижнего индекса уменьшается в f(k) раз;
  • Если символ на n% меньше по высоте, чем средняя высота, то метрика для его трактовок как символ a..z уменьшается в g(n) раз.
Соответственно в процессе распознавания, после применения всех правил мы просто выбираем трактовку с наименьшим значением метрики - это победивший символ, самый похожий. Но мы все еще не будем «забывать» остальные трактовки.
Валидация меток
Следующим шагом после получения готовых трактовок меток целиком - является их валидация. В каждой предметной области - она своя: для русского языка - это проверка по словарям, для ряда идентификаторов это могут быть контрольные суммы, а в химии - набор допустимых элементов. Для реализации именно этой части мы все еще держим полный набор альтернатив для каждого объекта.

Пусть наша метка состоит из двух символов: {c1, c2}
Причем c1 - это «Y» с значением метрики 0.1 и «X» с значением метрики 0.4;
c2 - это «c» с значением метрики 0.3 и «e» с значением метрики 0.8
Я бы просто мог написать, что наша метка - Yc . Но метка Yc не валидна. Чтобы получить валидную метку мы можем перебрать возможные альтернативы и выбрать валидную. Среди валидных ту - у которое суммарное значение метрик минимально.
В данном случае из всех 4 вариантов, валиден только один "Xe ", дающий итоговую метрику 1.2.

Вроде бы мы решили проблему, теперь значение метки валидное. Но как быть, если именно «Yc» и хотел использовать автор картинки, вопреки корректности. Для того чтобы это понять, мы вычитаем новое значение метрики (1.2) из старого (0.4), и трактуем полученную разницу (0.8). Ее можно сравнить с определенным порогом, и запретить коррекцию, если она его превосходит. Но как выбрать этот порог?

Машинное обучение

Как вообще выбирать многочисленные константы, пороговые ограничения, используемые в процессе распознавания? Начальные значения, конечно можно выбрать исходя из здравого смысла, но будут ли они оптимальными?

Решение подобных проблем можно частично поручить машине - выполнять случайные изменения параметров и выбирать те, которые дают в среднем лучший результат. Случайные изменения можно систематизировать, используя модификацию

Системы оптического распознавания символов (Optical Character Recognition - OCR) предназначены для автоматического ввода печатных документов в компьютер.

FineReader - омнифонтовая система оптического распознавания текстов. Это означает, что она позволяет распознавать тексты, набранные практически любыми шрифтами, без предварительного обучения. Особенностью программы FineReader является высокая точность распознавания и малая чувствительность к дефектам печати, что достигается благодаря применению технологии "целостного целенаправленного адаптивного рас­познавания".

Процесс ввода документа в компьютер можно подразделить на два этапа:

1. Сканирование. На первом этапе сканер играет роль "глаза" Вашего компьютера: "просматривает" изображение и передает его компьютеру. При этом полученное изображение является не чем иным, как набором черных, белых или цветных точек, картинкой, которую невозможно от­редактировать ни в одном текстовом редакторе.

2. Распознавание. Обработка изображения OCR-системой.

Остановимся на втором шаге более подробно.

Обработка изображения системой FineReader включает в себя анализ графического изо­бражения, переданного сканером, и распознавание каждого символа. Процессы анализа макета страницы (определение областей распознавания, таблиц, картинок, выделение в тексте строк и отдельных символов) и распознавания изображения тесно связаны между собой: алгоритм поиска блоков использует информацию о распознанном тексте для бо­лее точного анализа страницы.

Как уже упоминалось, распознавание изображения осуществляется на основе техноло­гии "целостного целенаправленного адаптивного распознавания".

Целостность - объект описывается как целое с помощью значимых эле­ментов и отношений между ними.

Целенаправленность - распознавание строится как процесс выдвиже­ния и целенаправленной проверки гипотез.

Адаптивность - способность OCR-системы к самообучению.

В соответствии с этими тремя принципами система сначала выдвигает гипотезу об объ­екте распознавания (символе, части символа или нескольких склеенных символах), а за­тем подтверждает или опровергает ее, пытаясь последовательно обнаружить все струк­турные элементы и связывающие их отношения. В каждом структурном элементе выде­ляются части, значимые для человеческого восприятия: отрезки, дуги, кольца и точки.

Следуя принципу адаптивности, программа самостоятельно "настраивается", используя положительный опыт, полученный на первых уверенно распознанных символах. Целе­направленный поиск и учет контекста позволяют распознавать разорванные и искажен­ные изображения, делая систему устойчивой к возможным дефектам письма.

В результате работы в окне FineReader появится распознанный текст, который Вы може­те отредактировать и сохранить в наиболее удобном для Вас формате.

Новые возможности abbyy FineReader 7.0

Точность распознавания

Точность распознавания улучшена на 25%. Лучше анализируются и рас­познаются документы сложной верстки, в частности, содержащие участ­ки текста на цветном фоне или фоне, состоящем из мелких точек, доку­менты со сложными таблицами, в том числе таблицами с белыми разде­лителями, таблицами с цветными ячейками

В новую версию добавлены специализированные словари для английско­го и немецкого языка, включающие наиболее часто используемые юри­дические и медицинские термины. Это позволяет достичь качественно нового уровня при распознавании документов юридической и медицин­ской тематики.

Поддержка формата XML и интеграция с Microsoft Office

В FineReader появился новый формат сохранения - Microsoft Word XML. Теперь пользователи новой версии Microsoft Office 2003 смогут работать с документами, распознанными FineReader, используя все преимущества формата XML!

Интеграция FineReader с Microsoft Word 2003 позволяет объединить мощ­ные возможности этих двух приложений для обработки распознанного текста. Вы сможете проверять и редактировать результаты распознавания с помощью привычных инструментов Word, одновременно сверяя пере­данный в Word текст с оригинальным изображением - окно Zoom FineReader открывается прямо в окне Word.

Новые возможности сделают Вашу работу более удобной. При создании документа Word можно вызвать FineReader, распознать текст и вставить его в то место документа, где находится курсор, то есть Вы сможете легко собрать в одном документе информацию из разных бумажных источни­ков или PDF-файлов. Результаты распознавания теперь можно отправить по электронной почте как вложение в любом из поддерживаемых форма­тов сохранения.

Улучшена работа FineReader с PDF документами

Качество распознавания PDF-файлов значительно улучшилось. Большин­ство документов, помимо изображения страницы, содержат текст. FineReader 7.0 умеет извлекать этот текст и использовать его для провер­ки результатов и улучшения качества распознавания.

Теперь Вы можете редактировать распознанные PDF-документы в окне редактора FineReader: внесенные изменения будут сохранены в любом из поддерживаемых в программе режимов сохранения PDF-файлов.

Формат PDF-файлов, создаваемых программой FineReader, оптимизи­рован для их публикации в Интернете - пользователь сможет просмат­ривать содержание первых страниц, пока скачивается остальная часть документа.

Новые возможности сохранения

Новый формат сохранения результатов распознавания - Microsoft PowerPoint - позволяет быстро создавать новые презентации или редактировать уже существующие.

При сохранении в Microsoft Word уменьшился размер получаемого файла, улучшилось сохранение форматирования документов с различны­ми разделителями, появились новые опции сохранения картинок.

Улучшено отображение сложных элементов верстки при сохранении

в HTML , например, обтекание непрямоугольных картинок текстом. Кро­ме того, уменьшился размера HTML-файла, что очень важно для публика­ции документов в Интернете.

Удобство использования

Обновленный интуитивно-понятный пользовательский интер­фейс. Стало удобнее работать с профессиональными настройками. Па­нели инструментов редактирования перенесены в окно, в котором отоб­ражаются результаты распознавания. Появились удобные инструменты управления окнами FineReader: например, можно поставить удобную сте­пень увеличения в каждом из окон.

Обновленное практическое руководство по улучшению качества распознавания поможет начинающему пользователю быстро начать работу, а более опытному - наилучшим образом настроить программу для получения отличного результата при работе с любыми типами до­кументов.

Профессиональные возможности

Теперь в версии FineReader Professional Edition стали доступны те возможности, которые раньше были доступны только пользователям версии Corporate Edition :

Улучшено распознавание штрих-кодов, поддержано распознавание двухмерного штрих-кода PDF-417.

Инструмент для разбиения изображения. С помощью него Вы смо­жете разделить изображения на области и сохранить каждую область как отдельную страницу пакета. Таким образом удобно распознавать не­сколько визитных карточек, отсканированных вместе, книги, или распе­чатки слайдов презентаций PowerPoint.

Морфологический поиск. Любой пакет, созданный в программе FineReader, можно использовать в качестве небольшой базы данных

с возможностью полнотекстового морфологического поиска. Среди всех распознанных страниц пакета можно найти те страницы, которые содер­жат заданные слова во всех их грамматических формах (для 34 языков со словарной поддержкой).

Поддержка процессоров Intel , использующих технологию Hyper - Threading . Использование этой технологии позволяет заметно увеличить производительность, что особенно важно, если стоит задача распознавания большого числа документов.

В версии FineReader 7.0 также появились и другие профессиональные возможности:

Двухстороннее сканирование. Сканируя документ с напечатанным

с двух сторон текстом с помощью поддерживающего эту опцию сканера, Вы получите изображения содержимого каждой стороны в виде двух от­дельных страниц пакета. Если нужно отсканировать только одну сторону документа, эту опцию можно отключить.

Поддержано открытие графических файлов формата JPEG 2000 и сохра­нение в этот формат.

Сетевые возможности версии FineReader Corporate Edition

Подробно все особенности установки и использования FineReader Corporate Edition в корпоративной сети описаны в Руководстве системного администратора, который Вы можете найти в подпапке Administrator " s Guide папки сервера, куда был установлен FineReader.

Основные улучшения по сравнению с предыдущей версией:

Поддержка основных способов автоматической установки с сер­вера на рабочие станции. FineReader Corporate Edition поддерживает все основные способы автоматической установки в локальной сети: с по­мощью Active Directory, Microsoft Systems Management Server или с помо­щью командной строки.

Работа с многофункциональными устройствами, в том числе се­тевыми. Многофункциональные устройства, совмещающие в себе функ­ции сканера, принтера, копира и факса, становятся все более популярны­ми. Теперь необязательно ставить каждому сотруднику свой сканер - до­статочно одного мощного устройства, с которым работают все пользова­тели организации. FineReader умеет работать с такими устройствами, как подключенными к рабочей станции, так и сетевыми. Специальные наст­ройки программы позволяют пользователю автоматически открывать и отсканированные изображения с любого места в локальной сети или с ftp сервера и распознавать их

Различные модели корпоративного лицензирования. Кроме ли­цензирования по числу одновременного работающих пользователей, ста­ли доступны также другие способы лицензирования. Вы сможете выбрать тот вариант, который в большей степени отвечает Вашим потребностям.

License Manager - средство управления лицензиями в сети. В FineReader Corporate Edition появилась удобная утилита управления лицензиями (Менеджер лицензий). С помощью нее осуществляется от­слеживание использования FineReader на рабочих станциях, резервиро­вание лицензий за рабочими станциями, добавление новых лицензий.

Любая сканированная информации представляет собой графический файл (картинку). Следовательно, отсканированный текст невозможно редактировать без специального перевода в текстовый формат. Этот перевод можно осуществить с помощью систем оптического распознавания символов (optical character recognition - OCR).

Для получения электронной (готовой к редактированию) копии печатного документа программе OCR необходимо выполнить ряд операций, среди которых можно выделить следующие:

1. Сегментация - полученная со сканера «картинка» разбивается на сегменты (текст отделяется от графики, ячейки таблиц разделяются на отдельные куски и т.д.).

2. Распознавание - текст переводится из графической формы в обычную текстовую.

3. Проверка орфографии и правка - внутренняя система проверки орфографии проверяет и корректирует работу системы распознавания (спорные слова и символы выделяются цветом, пользователю сообщается о «неуверенно распознанных символах»)

4. Сохранение - запись распознанного документа в файл нужного формата для дальнейшего редактирования в соответствующей программе.

Перечисленные выше операции в большинстве OCR-систем могут выполняться как в автоматическом (с помощью программы-мастера), так и в ручном режиме (по отдельности).

Современные OCR-системы распознают тексты, набранные различными шрифтами; корректно работают с текстами, содержащими слова на нескольких языках; распознают таблицы и рисунки; позволяют сохранять результат в файле текстового или табличного формата и др.

В качестве примера OCR-систем можно привести CuneiForm от фирмы Cognitive и FineReader от ABBYY Software.

OCR-системаFineReader выпускается в различных версиях (Sprint, Home Edition, Professional Edition, Corporate Edition, Office) и все они, от самой простой до самой мощной, имеют очень удобный интерфейс, а также (в зависимости от модификации) имеют ряд достоинств, которые выделяют их среди аналогичных программ.

Например, FineReader Professional Edition (FineReader Pro) обладает следующими функциональными возможностями:

поддерживает почти двести языков (даже древние языки и популярные языки программирования);

распознает графику, таблицы, документы на бланках и т.п.;

полностью сохраняет все особенности форматирования документов и их графическое оформление;

для текстов, в которых используются декоративные шрифты или встречаются специальные символы (например, математические), предусмотрен режим «Распознавание с обучением», в результате работы которого создается эталон символов, встречающихся в тексте, для дальнейшего использования при распознавании;

Конец работы -

Эта тема принадлежит разделу:

Информация: свойства информации, количество информации единицы измерения- 13

Предмет и основные понятия информационных технологий.. информатизация информационное общество и информационная культура.. компьютерные информационные технологии и их классификация..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Роль информатизации в современном обществе
Потоки информации постоянно растут, и неизбежно наступает информационный барьер, когда сложность задач обработки информационных потоков превышает человеческие возможности. Человек, являясь основным

Информатика как наука
Как известно, характерной чертой XX и XXI вв. является овладение человечеством компьютерной техникой, которая настолько плотно вошла и производственную сферу и в повседневную жизнь, что теперь труд

Виды информации
Информация может существовать в виде: текстов, рисунков, чертежей, фотографий; световых или звуковых сигналов; радиоволн; электрических и нервных импуль

Передача информации
Информация передаётся в форме сообщений от некоторого источника информации к её приёмнику посредством канала связи между ними. Ис

Количество информации
Какое количество информации содержится, к примеру, в тексте романа "Война и мир", во фресках Рафаэля или в генетическом коде человека? Ответа на эти вопросы наука не даёт и, по всей вероя

Обработка информации
Информацию можно: создавать; передавать; воспринимать; иcпользовать; запоминать; принимать;

Арифметические основы информационных технологий
Система счисления - это совокупность приемов и правил, по которым числа записываются и читаются. Существуют позиционные и непозиционные системы счисл

Порождение целых чисел в позиционных системах счисления
В каждой системе счисления цифры упорядочены в соответствии с их значениями: 1 больше 0, 2 больше 1 и т.д. Продвижением цифры называют замену её следующей по величине.

Системы счисления, используемые для общения с компьютером
Кроме десятичной широко используются системы с основанием, являющимся целой степенью числа 2, а именно: двоичная (используются цифры 0, 1); восьмер

Правовые основы информатизации в Республике Беларусь
В век информации в Республике Беларусь уделяется большое внимание организации цивилизованного информационного рынка. Об этом свидетельствуют следующие принятые документы: - законы:

Техническое обеспечение информационных технологий
Техническое обеспечение - совокупность технических средств, предназначенных для функционирования информационной системы. Оно выбирается, исходя из объема и сложности решаемых на предприятии

История развития вычислительной техники
Стремительное развитие цифровой вычислительной техники (ВТ) и становление науки о принципах ее построения и проектирования началось в 40-х гг. XX в., когда технической базой ВТ стала электроника и

Принципы строения и функционирования ЭВМ Джона фон Неймана
Большинство современных ЭВМ функционирует на основе принципов, сформулированных в 1945 г. американским ученым венгерского происхождения Джоном фон Нейманом. 1.Принцип двоичного кодирова

Основные компоненты и переферийные устройства ПК
Конструктивно ПК состоит из системного блока, монитора, клавиатуры, мыши и внешних (периферийных) устройств. Системный блок (корпус) представляет собой коробку из металла и пластмас

Процессор и его основные характеристики
Важнейший компонент любого компьютера - его процессор (микропроцессор) - программно-управляемое устройство обработки информации, выполненное в виде одной или нескольких больших или сверхболь

Устройства внешней памяти ПК
Для хранения программ и данных в компьютере используют устройства внешней памяти - накопители. По отношению к компьютеру они могут быть внешними и встраиваемыми (внутренни

Устройства ввода-вывода 3D изображений
Одним из направлений развития информационных технологий является разработка устройств, позволяющих работать с 3-мерными изображениями. 3D-сканер - устройство, анализирующе

Конфигурация ПК
Функциональные возможности компьютера определяет его конфигурация - состав и характеристика его основных устройств: процессора, оперативной памяти, жесткого диска, CD/DVD-приводов, монитора, видеок

Параметры, влияющие на производительность ПК
Производительность ПК является важнейшей его характеристикой. Все факторы и параметры, влияющие на производительность ПК, можно в общем случае разделить на программные и аппаратные. Влияни

Тенденции развития вычислительной техники
По мнению специалистов, в первом десятилетии XXI в. будут повышаться значимость программного обеспечения, возрастание проблем его совместимости и обеспечения безопасности. Среди операционных систем

Программный принцип управления компьютером
Компьютер является универсальным инструментом для решения разнообразных задач по преобразованию информации, но его универсальность определяется не столько аппаратным обеспечением, сколько установле

Операционные системы
Операционная система (ОС) - это комплекс программ, предназначенных для управления загрузкой, запуском и выполнением других пользовательских программ, а также для планирования и управления вычислите

Операционная система Windows
Корпорация Microsoft начала разрабатывать ОС семейства Windows с конца 80-х годов прошлого столетия. На сегодняшний день можно отметить следующие ОС этого семейства: Windows 3.0 / 3.1 / 3.

Файловая система Windows
Ядром операционной системы является модуль, который обеспечивает управление файлами - файловая система. Основная задача файловой системы - обеспечение взаимодействия программ

Объекты Windows
Одним из основных понятий Windows является объект, его свойства и действия, которые можно выполнить над объектом и которые может выполнять сам объект. Основными объектами Windows являются:

Графический интерфейс Windows и его элементы
После загрузки Windows на экране появляется электронный Рабочий стол, на котором размещаются графические объекты - пиктограммы (значки) папок и файлов, ярлыки и др. Значки файлов документов

Настройка ОС Windows
Настройку ОС Windows можно условно разделить на два вида: 1. Настройку интерфейса и элементов Панели управления - их может произвести любой пользователь. 2. Изменения через скрыты

Сервисные программы
Сервисные программы расширяют возможности ОС по обслуживанию системы и обеспечивают удобство работы пользователя. К этой категории относят системы технического обслуживания, программные обол

Компьютерные вирусы и антивирусные средства
Компьютерный вирус - это программа, ориентированная на существование и размножение в файле за счет его несанкционированного изменения, т.е. заражения, а также выполнения нежелательных действ

Архивация
Цель архивации - обеспечение более компактного размещения информации на диске, а также сокращение времени и соответственно стоимости передачи информации по каналам связи в компьютерных сетях

Общая характеристика и функциональные возможности программы-архиватора WinRAR 3.3
WinRAR - это 32-разрядная версия архиватора RAR для Windows, мощного средства создания и управления архивными файлами. Для Windows имеются две версии RAR: 1. Версия для командной ст

Инструментальное программное обеспечение
К инструментальному программному обеспечению относят: системы программирования - для разработки новых программ, например, Паскаль, Бейсик. Обычно они включают: редакт

Буфер промежуточного хранения Clipboard
Уже в первых версиях Windows был реализован встроенный буфер промежуточного хранения данных Clipboard(буфер обмена), который постоянно активен и доступен всем Windows-приложениям.

Технология DDE
Для обмена данными между приложениями может использоваться технология DDE(Dynamic Data Exchange - динамический обмен данными), суть которой состоит в том, что вставляемый через буф

Технология OLE
Технология связывания и внедрения объектов (Object Linking and Embedding) имеет больше функциональных возможностей, причем если приложение поддерживает OLE, то оно само выполняет обмен данными по э

Тенденции развития операционных систем
Основные направления развития операционных систем следующие: 1. Расширяемость - возможность внесения дополнительных функций без разрушения целостности системы (вспомните ОС Linux).

Компьютерная обработка информации
Для обработки информации существует множество вариантов (организационных форм) технологических процессов. Обычно технологический процесс обработки информации с использованием ЭВМ включает в себя сл

Технологии и системы обработки табличной информации (табличные процессоры)
Табличные процессоры - это программные комплексы для управления электронными таблицами. Электронная таблица (ЭТ) - универсальное средство для автоматизации расчетов над больш

Общая характеристика и функциональные возможности Microsoft Excel 2003
Можно выделить следующие функциональные возможности текстового процессора Microsoft Excel 2003: построение таблиц и сохранение их на машинных носителях, работа с шаблонами; работа

Технологии и системы обработки графической информации (компьютерная графика)
Компьютерная графика представляет собой одну из современных технологий создания и обработки различных изображений с помощью аппаратных и программных средств компьютера. Компьютерную

Системы компьютерной графики и их функциональные возможности
Существующие на сегодняшний день системы компьютерной графики (пакеты прикладных программ, работающие с графическими изображениями), также можно классифицировать различным образом, например:

Графические форматы
Формат графического файла (графический формат) - это совокупность информации об изображении и способ его записи в файл. Графические данные, как правило, занимают большой объем и тре

Общая характеристика и функциональные возможности программы Corel DRAW
CorelDRAW представляет собой объектно-ориентированный пакет программ для работы с векторной графикой. Термин «объектно-ориентированный» следует понимать в том смысле, что все операц

Общая характеристика и функциональные возможности программы Adobe PhotoShop
PhotoShop - это программа профессиональных дизайнеров и всех, кто связан с обработкой графических изображений. Она позволяет производить обработку и коррекцию изображений, введенных в компью

Технологии и системы создания динамических презентаций
Презентация (слайд-фильм по определенной тематике, выполненный в едином стиле и хранящийся в едином файле) - это электронный документ комплексного мультимедийного содержания с возможностями

Системы создания презентаций и их функциональные возможности
Рынок пакетов для создания презентаций развивается по двум направлениям: 1. Средства создания презентаций непрофессионального пользователя (например, PowerPoint фирмы Microsoft, Corel Pres

Общая характеристика и функциональные возможности Microsoft PowerPoint 2003
Система создания презентаций PowerPoint - является компонентой Microsoft Office и предназначена для создания презентационных материалов в виде слайдов и их вывода на бумагу, экран, прозрачную пленк

Понятие и история развития компьютерных сетей
Компьютерной (вычислительной) сетью называется совокупность компьютеров (ЭВМ), взаимосвязанных через каналы передачи данных и обеспечивающих пользователей средствами обмена информацией и кол

Локальные компьютерные сети
Главная отличительная особенность локальных сетей - единый для всех компьютеров высокоскоростной канал передачи данных и малая вероятность возникновения ошибок в коммуникационном оборудовании.

Основные технологии и оборудование локальных сетей
Для организации локальной сети необходимы технические, программные и информационные средства. Технические средства сети включают: 1. Компьютеры, технические харак

Глобальная сеть Internet
Internet (Интернет) - глобальная компьютерная сеть, представляющая собой всемирное объединение неоднородных компьютерных сетей, образующих единое информационное пространство благодаря исполь

Адресация компьютеров в сети Интернет
Маршрутизация между локальными сетями осуществляется в соответствии с IP-адресами, находящимися в заголовке дейтаграммы. IP-адрес назначается администратором сети во время конфигурации компьютеров

Структурные компоненты и протоколы прикладного уровня сети Internet
Web-страница - гипертекстовый документ в формате.html - наименьшая единица всемирной паутины. Она может содержать текст, графические иллюстрации, мультимедийные и другие объекты, и главное

Понятие алгоритма и типы алгоритмических процессов
Любая задача перед решением на ЭВМ требует формализованной подготовки, включающей совокупность решений по составу и содержанию входных и выходных данных, а также процедурам преобразования входных с

Инструментальные средства программирования
Инструментарий программирования - это совокупность программных продуктов, обеспечивающих технологию разработки, отладки и внедрения создаваемых новых программных продуктов. Они делятся на ср

Базы Данных
В настоящее время термины база данных (БД) и система управления базами данных (СУБД) используются, как правило, по отношению к компьютерным базам данных. В общем смысле этот термин можно применить

Накладные Товар
Номер накладной Код покупателя Номер накладной Товар Количество

Иерархические модели
В иерархической модели данные организованы в виде дерева. Вершины такого дерева расположены на разных уровнях. Группы записей в такой структуре располагаются в определенной последовательности, как

Сетевые модели
В сетевой модели данные представляются в виде записей, которые связываются друг с другом по некоторым правилам и образуют сеть (рис. 2.5). Данные в сетевой структуре равноправны. Примером

Основные функции субд
Существует большое количество программ, которые предназначены для структурирования информации, размещения ее в таблицах и манипулирования имеющимися данными – такие программы и получили название СУ

Реляционная модель данных
Одним из самых естественных способов представления данных является двухмерная таблица. С другой стороны, и связи между данными также могут быть представлены в виде двухмерных таблиц. Так, например,

Особенности субд access
Приложение Access является реляционной СУБД, которая поддерживает все средства и возможности по обработке данных, свойственные реляционным моделям. При этом информация, которую необходимо хранить в

Термины реляционных субд
· Таблица - информация об объектах одного типа (например, о клиентах, заказах, сотрудниках) представляется в табличном виде. · Атрибут - хранится в поле (столбце) таблицы. Эт

Этапы проектирования Базы Данных
· Определить назначение БД. · Определить, какие исходные данные (таблицы) будет содержать БД. · Определить поля, которые будут входить в таблицы, и выбрать поля, содержащие уникал