Русский
Русский
English
Статистика
Реклама

Документы

Маркирование данных как задача каждого сотрудника

12.01.2021 10:14:24 | Автор: admin

Данных становится все больше. По исследованиям International Data Corporation (международная исследовательская компания) прирост объема хранимой в электронном виде информации составляет порядка 40% в год. При этом отсутствует определенность относительно инструментов обеспечения безопасности, применяемых методик и способов защиты данных.

Откуда появилась задача классификации

Как правило, крупная организация не знает точно, где и какие данные у нее находятся и как их защищать. Проблема состоит в том, что до 90% данных в компаниях находятся неструктурированном виде. Это могут быть документы, всевозможные отчеты, презентации и т.д., располагающиеся в сетевых папках или же на локальных машинах пользователей. И, поскольку обеспечением этой самой информационной безопасности компании занимаются сотрудники службы безопасности, то им и выбирать инструменты. Часто используется какая-либо система DLP Data Leak Prevention, предотвращение утечек информации мониторинг защищенного контура на предмет сообщений, перемещения файлов на внешние носители или веб-ресурсы, и т.д. Таким способом защищается корпоративная информация в виде документов, предотвращается передача архивов персональных данных, программных исходных кодов, конструкторской документации и пр. Таким образом, для минимизации рисков перед офицерами ИБ возникают задачи, которые, как правило, включают в себя следующие пункты:

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

  2. Разграничение доступа к информации. Необходимо знать, кто и с помощью чего создает данные и где они располагаются.

  3. Актуализация угроз и построение списка каналов утечки информации. Следует понимать современные каналы утечки информации, с тем, чтобы своевременно противостоять им.

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

Не знаешь, какая информация у тебя имеется не знаешь, как ее достаточно, но не избыточно защитить.

Как классифицировать данные

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

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

Далее рассматривается техническое средство: Docs Security Suite (DSS) это платформа маркирования и классификации электронных документов.

Классификация как обязанность каждого сотрудника

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

Таким образом достигается следующее:

- Обязательное принудительное маркирование документа автором или редактором (владельцем информации);

- Учет техническими средствами электронных документов в организации;

- Экспертная классификация электронных документов на этапе создания документа;

- Разграничение доступа пользователей к документам с различными метками конфиденциальности;

- Учет и регистрация действий пользователей с документами, содержащими метки;

- Отслеживание путей развития документов, формирование дерева родительских и дочерних электронных документов;

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

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

Что такое метка

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

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

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

- Идентификатор документа. Мы же ведем учет документов, значит каждому из них должен быть присвоен идентификатор.

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

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

- Автор документа - идентификатор пользователя или его логин.

- Последний редактор документа - идентификатор или логин. Последние два пункта говорят о том, кто несет ответственность за присвоение той или иной метки.

- Машина, на которой были произведены последние изменения.

- Путь, по которому лежит документ.

- Хэш файла. Позволяет контролировать целостность данных в документе.

- Плюс какое-то количество другой служебной информации.

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

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

Подробнее..

Печатные формы документов для Eloquent в 0 строчек кода

10.11.2020 16:08:31 | Автор: admin

Недавно в проекте на Laravel+Eloquent понадобилось сделать печатные формы документов счетов, договоров в формате Word. Так как в системе много разных документов, то решил сделать универсально, чтобы можно было потом использовать и в других проектах.


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



Как я раньше делал печатные формы. Использовал разные подходы


  • В шаблон документа размещал теги и заменял их при генерации.
  • Генерировал текст документа с нуля.
  • Генерировал html и конвертировал его в word.
  • Делал свою систему для генерации документов по аналогии с той, что описана в этой статье, но на других технологиях.

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


Итак, подключаем пакет


composer require mnvx/eloquent-print-form

И описываем модели Eloquent, если они еще не описаны. Допустим, есть следующие модели.


use Illuminate\Database\Eloquent\Model;/** * @property string $number * @property string $start_at * @property Customer $customer * @property ContractAppendix[] $appendixes */class Contract extends Model{    public function customer()    {        return $this->belongsTo(Customer::class);    }    public function appendixes()    {        return $this->hasMany(ContractAppendix::class);    }}/** * @property string $name * @property CustomerCategory $category */class Customer extends Model{    public function category()    {        return $this->belongsTo(CustomerCategory::class);    }}/** * @property string $number * @property string $date * @property float $tax */class ContractAppendix extends Model{    public function getTaxAttribute()    {        $tax = 0;        foreach ($this->items as $item) {            $tax += $item->total_amount * (1 - 100 / (100+($item->taxStatus->vat_rate ?? 0)));        }        return $tax;    }}

Для наглядности, диаграмма связей



То есть описана таблица с договорами (Contract), у договора может быть заполнен контрагент (Customer), у контрагента может быть заполнена категория. У договора может быть несколько приложений (ContractAppendix).


Все что нужно для генерации печатной формы описать поля в шаблоне печатной формы. Создаем docx файл с таким содержимым



В переменных указываем названия полей сущностей Eloquent. Если нужно добраться по связям до соседних таблиц, используем точку, как в примере выше, в ${customer.category.name}.


Если необходимо обработать данные из базы, используем оператор конвейер |, как в примере ${number|placeholder}. Если нужно выполнить несколько обработок, строим цепочку конвейеров, например ${start_at|date|placeholder}.


Примеры готовых операций


  • placeholder заменяет пустое значение на "____",
  • date приводит дату к формату 24.12.2020,
  • dateTime приводит дату-время к формату 24.12.2020 23:11,
  • int приводит целое число к формату 2`145,
  • decimal приводит дробное число к формату 2`145.07.

Для заполнения табличных данных вставляем переменные в таблицу как в примере документа выше. Для нумерации строк таблицы можно использовать отдельную конструкцию ${entities.#row_number}.


Теперь, когда документ описан, остается просто запустить генерацию печатной формы


use Mnvx\EloquentPrintForm\PrintFormProcessor;$entity = Contract::find($id);$printFormProcessor = new PrintFormProcessor();$templateFile = resource_path('path_to_print_forms/your_print_form.docx');$tempFileName = $printFormProcessor->process($templateFile, $entity);

В сгенерированном файле $tempFileName будет лежать подготовленная печатная форма.


В проекте на Laravel метод контроллера, отвечающий за генерацию печатной формы, может выглядеть так


public function downloadPrintForm(FormRequest $request){    $id = $request->get('id');    $entity = Contract::find($id);    $printFormProcessor = new PrintFormProcessor();    $templateFile = resource_path('path_to_print_forms/your_print_form.docx');    $tempFileName = $printFormProcessor->process($templateFile, $entity);    $filename = 'contract_' . $id;    return response()        ->download($tempFileName, $filename . '.docx')        ->deleteFileAfterSend();}

Резюмируя, скажу, что я прилично разгрузил себя, сделав эту небольшую библиотеку в проекте, где довольно много печатных форм. Мне не надо для каждой из них писать свой уникальный код. Я просто описываю переменные как сказано выше и весьма быстро получаю результат. Буду рад, если и вам пакет поможет сэкономить время.


Ссылка на проект на гитхабе: https://github.com/mnvx/eloquent-print-form

Подробнее..

Восстановление утраченных текстов с помощью современных технологий. Железо

04.10.2020 16:16:23 | Автор: admin
image

Для начала немного новостей.

Как вы можете помнить, в 2018 году я опубликовал статью Как нам удалось прочитать рукопись, найденную в 80-х возле третьего крематория в Аушвице-Биркенау. Так же можете почитать интервью со мной в новой газете.

После совместной работы новая информация заставила зашевелиться как и сам музей Биркенау так и историков. Впервые у Павла Поляна вышли Свитки из Пепла на немецком языке.

В январе 2020 года мы получаем письмо от нашего друга историка Андреаса Киллиана из Франкфурта со ссылкой на магазин музея Аушвиц Биркенау.

Там мы обнаруживаем новую книгу о Марселе Наджари. После того, как мы получили эту книгу по почте, мы узнаем, что музей Биркенау, по их словам, регулярно предпринимал попытки исследования рукописи, пока местный польский доктор Томаш Лоевский из университета науки и техники в Кракове, не сделал новую мультиспектральную пересъемку.

Увы, но книга вышла очень однобокой. Описанная хронология исследования исключала любые события вне польской принадлежности. По словам Павла, после наших публикаций в СМИ, они получили хороший заряд любви за пропуск очень важного исторического материала. К счастью, пересъемка действительно дала новый результат! Добавились новые даты и слова. В книге были распечатаны новые сканы. На них я действительно визуально обнаружил новые символы, которые абсолютно отсутствовали в цифровых копиях двадцатилетней давности, что были у нас. Однако, исследователь не применял метода, который использовал я. А теперь представьте себе, что я чувствую и как я жажду увидеть эти новые файлы! Рукопись до сих пор имеет потенциал, и мы пытаемся получить к ней доступ.

В России существует большое децентрализованное движение по поиску и увековечивания памяти солдат, погибших в ВОВ. Поисковые отряды разбросаны по стране и частенько ругаются друг на друга из-за некомпетентности проведения вскрытия нагрудных медальонов, безвозвратно уничтожая их. Но то, что удается развернуть, далеко нелегко прочитать. Такая же ситуация с письмами или мемуарами родственников, огромное количество испорченного материала в архивах в регионах нашей страны. Кучей других, казалось бы, испорченных на первый взгляд документов имеет огромный потенциал к прочтению. Существующая литература по криминалистике, что далась мне через гугл, крайне устарела. Посмотрев российские публикации по реконструкции писем Достоевского, Чехова, пообщавшись с архивистами из гос. учреждений, частных компаний, изучив публикации и опыт западных коллег, было решено подготовить этот просветительский обзор современных технологий ( или как это сейчас модно говорить: топ 10 фич для нечитаемого письма с наследством от вашего прадеда).

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

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

1. Рентгеновская микротомография (X-ray micro tomography)
2. Рентгеновская томография с фазовым контрастом (X-ray phase contrast imaging)
3. Рентгенофлуоресцентная визуализация (X-ray fluorescence imaging)
4. Оптическая когерентная томография (Optical coherence tomography)
5. Терагерцовая визуализация (Terahertz imaging)
6. Инфракрасная термография (infrared thermography)
7. Раман спектроскопия (RAMAN imaging)
8. Мультиспектральный анализ (Multispectral imaging)
9. Выбор технологии.

1. Рентгеновская микротомография


Университет Cardiff (UK)

Я опишу стандартный вариант интереса музейного архивиста. Что нибудь старое неизученное и очень интересное. Например, судебный свиток 16-го века из поместья Дисс Хейвуд в Норфолке (UK) вполне сгодится. По каким-то причинам печального прошлого он обожжен огнем и попытки отмочить и развернуть его могут уничтожить как чернила так и сам носитель. Железистые чернила (скорее всего это они) на обожженных участках совершенно нечитаемы. К тому же, на свитке сажа и прочий налипший мусор. Теоретически, в нем должны быть сведения о жизни в поместье, земельных сделках, нарушениях мира, уплате штрафов, имен присяжных и прочую бюрократию. Данные из него могут быть использованы для изучения демографии, урожайности сельхозкультур да и самой истории. Кто знает, что там за разворотом, если не заглянуть? А развернуть его без последствий возможно только виртуально.


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

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


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


Один из томографических срезов

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


Демонстрация алгоритма разделения слоев.

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

Первичный анализ показывает, что свиток Дисса Хейвуда состоит из четырех плотно скрученных листов, а текст нанесен на двух сторонах каждого. Если промахнуться мимо нужного слоя из-за ошибок сегментации, текст будет рассыпаться.

Удивительно, но этот процесс был по почти полностью автоматическим! Из-за серьезных повреждений ручной коррекции потребовали только 15 из 8044 срезов.

Сам алгоритм сегментации был не самым оптимальным ( исследователи пишут, что жуткий говнокод, да и еще в матлабе) на 1 срез уходило по 4 минуты! Так что сегментирование всего свитка заняло около 3 недель. Тем не менее, 15 раз поправить из 8000 тысяч за три недели, это еще очень хорошо, по сравнению с результатами в других исследованиях.

Вот так выглядит виртуальное развертывание.



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


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

2. Рентгеновская томография с фазовым контрастом


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

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

Сколько же было попыток развернуть эти полуобугленные свитки! Все это приводило к их безвозвратной потери. Было решено сохранить их физическую целостность в надежде на великие умы будущего.

За последние 20 лет был достигнут значительный прогресс в чтении текстов Геркуланума. Использование бинокулярных микроскопов и мультиспектральной съемки (об этом мы поговорим ниже) значительно улучшили читаемость этих текстов. К сожалению, эти методы неприменимы к текстам, которые остаются свернутыми, да и вообще напоминающие скорее кусок угля из вашего мангала, дорогой читатель.


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

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

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

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



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

3. Рентгенофлуоресцентная визуализация


Стэнфордская лаборатория. (USA)

Вы что нибудь слышали о палимпсестах? Документах, в которых информация стоила куда дешевле чем сам носитель. Никому ненужные тексты могли соскабливаться, отбеливаться и перекрываться новыми свежими.

Гален Пергамский врач императоров и гладиаторов. Его текст О смесях и силе простых лекарств был переведен в 6 веке на сирийский язык для распространения его идей в древнеисламском мире. Восстановление данного текста позволит понять, как лечились болезни в то время и это очень ценная информация. К сожалению, несмотря на известность врача наиболее полная и сохранившаяся версия перевода была стерта и переписана гимнами в 11 веке. Более ранние исследования выявили следы текста под ними, но они не увенчались успехом оба текста были написаны одинаковыми чернилами, к тому же, основной был хорошо вычищен. Добиться необходимого контраста для прочтения не удавалось в течение 10 лет.

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

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

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

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

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





В конце января 2019 года у себя в твиттере Майкл Тотт выложил фотографию. В канале, который отвечает за наличие серы в рукописи, обнаружился великолепный контраст.



А это диаграмма элементарного состава участка рукописи.




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

4. Оптическая когерентная томография


Университет Дьюка (США)

Это метод фотонной визуализации в основном используется в офтальмологии. Например, для недоношенных плодов по глазному дну можно определить степень развития мозга. В основе технологии лежит схожий принцип что и с ультразвуковым измерением, только излучением служат ИК лучи (850нм-1000нм). Изображения получаются высоко детализированными ( микроскоп идет бонусом ), а из-за свойств ИК лучей проникать в ткани на 1-2мм у нас есть возможность получать объемный массив, по которому можно делать срезы на нужной глубине.

Папирус


Описан случай изучения образца папируса 2 века до нашей эры. В Древнем Египте умерших среднего класса мумифицировали с помощью маски из обрывков папируса типа папье маше, потом наносили грунт и краски. Есть подозрения, что этот папирус был взят б.у с уже каким-то существующим текстом. Некоторые ученые, по словам Майкла Тотта, растворяют маски в средстве для мытья посуды, чтобы добраться до этих слоев папируса под краской. Все бы ничего, но это разрушает артефакт, да и процедура зависит от прямоты рук и не дает никаких гарантий. Если бы проблемы были только в желании неинвазивного исследования, так поди еще вывези это из страны! Законы, запрещающие вывозить образцы культурного наследия, бюрократия, упаковка, тряска и т.п. Так сложилось, что сестра Синтия Тотт работает офтальмологом совсем неподалеку от университетского архива папирусов (несколько минут ходьбы). В ее учреждении есть оптический сканер когерентной томографии.


Перед вами в роли пистолета тот самый оптический сканер, и заинтересованные лица.


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


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

5. Терагерцовая визуализация


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

https://www.youtube.com/watch?v=9N0U_OuaWGc

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

Перед вами анимация, показывающая по очереди буквы LAZ,THZ. Эти буквы были напечатаны на лазерном принтере и сложены в стопку. Излучатель положили сверху и по отраженному сигналу удалось различить текст до 20 листов. Глубже сигнал отражался с уже нечитаемым количеством накопленных ошибок.


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

6. Инфракрасная термография


Теперь мы рассматриваем построение изображения в диапазоне работ термовизоров. Активная импульсная термография была успешно применена для неинвазивного выделения древних текстов в пергаментных переплетах книг. В качестве примера можно привести результаты, полученные в результате анализа рукописи XIII века (ms 509/D813), хранящуюся в Римской библиотеке Ангелика. Рукопись представляет из себя изложение Ветхого Завета и состоит из 127 письменных пергаментов. Часть из них пострадала от воды. Последние страницы с крупными размытыми пятнами, делающими текст нечитаемым.

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



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

7. Рамановская спектроскопия


Бодлианская библиотека.Оксфорд

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



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



Не так то это и круто, скажете вы. Ведь подобную маску так или иначе можно попробовать вычленить и из фотографии? Фотография, получается, тоже является аналитическим инструментом?

8. Мультиспектральный анализ


И так, мы подошли к тому, о чем собственно и имеет смысл говорить, если речь идет о доступности технологии. Большинство крупнейших мировых музеев и архивов имеют в своем распоряжении именно это оборудование. 1993 году Свитки Мертвого моря стали одними из первых рукописей, изучаемых с помощью спектральной визуализации. Правда в то время исследователи пытались восстановить выцветшие или неразборчивые тексты с помощью инфракрасной пленки.

Пленка ушла, пришла цифра и сверхяркие светодиоды (или же набор фильтров и два строительных галогеновых светильника). Суть технологии довольно проста. Вам необходимо сделать около 12 цифровых изображений на чернобелую матрицу (очень желательно) в 12 различных спектрах из оптического диапазона: три в ИК, потом красный, янтарный, оранжевый, желный, зеленый, голубой, синий, фиолетовый и уф. На фотографии выше два светодиодных прожектора, которые на данный момент подсвечивают образец в УФ свете. По результатам делаются дальнейшие выводы об образце: есть ли потенциал, поможет ли нам софт, и не стоит ли начать топтать кабинеты чиновников, выбивая бюджет для поездки в национальную исследовательскую лабораторию.

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


Один из величайших исследователей Девид Ливингстон посвятил Африке большую часть своей жизни, пройдя пешком свыше 50 тысяч километров. В одной из последних своих работ вместо закончившихся чернил он использовал сок местной ягоды. Но прекрасный контраст сохранялся только первое время. Когда же рукопись добралась до его коллег сок потерял свой пигмент. Она ждала 140 лет, чтобы быть полностью прочитанной. Кстати, проект по изучению его дневника https://livingstoneonline.org занял 1 место в DHawards в 2016 году.



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

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

В блоге британской библиотеки вы тоже встретите регулярные результаты исследований мультиспектральной съемки. 800 летняя! Магна карта (Великая хартия вольностей) показала отличный результат, несмотря на свое состояние. Или результат Евангелие Бодмина. 9 век. Приглядитесь, это одна и таже страница.


Чтобы лучше понять, как устроен процесс, есть хорошее видео https://www.youtube.com/watch?v=GhpBmL5_OXw

Более того, если вам кажется, что это не доступно простым смертным, мой итальянский приятель Антонино Косентино (будучи ученым) поведает вам о своем проекте https://chsopensource.org/ где делится результатами своих исследований о применении бытовых зеркалок и обьективов в мультиспектральной съемке. Его проект Antonello посвящен этому полностью. Правда, я не уверен, что набор фильтров вместо светодиодных прожекторов является лучшим решением. Хотя бы потому, что такой набор вам обойдется в 800 евро. Чтобы лучше понимать, как ведут себя цветовые пигменты в мультиспектреальной съемке, я покажу
вам таблицу пигментов от Антонино



https://habrastorage.org/webt/j1/bl/mi/j1blmiegmk2pxxngg3_mhrq0n9c.jpeg

На ней вы видите, как многие пигменты в IR становятся прозрачными или отражают или поглощают ИК лучи и как в UV все выглядит совершенно по-другому. Съемка между IR и UV тоже покажет свой набор контрастов.

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

9. Выбор технологии


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

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

Исследователями по древней технологии были подготовлены 4 листа папируса 10x15см (фантомы), разделенных на четыре зоны. Каждая зона на каждом листе была помечена жирным крестом разного состава чернил по часовой стрелке, чтобы не возникало ситуации, при которой кресты в сложенных пачках папирусов накладывались бы друг на друга.


Три типа чернил выбраны по историческим причинам, а последний современный (чего месту пропадать):

  • углерод (сажа, уголь)
  • оксид железа ( наиболее распространены)
  • железистые чернила (в меньшей степени)
  • современная углеродная тушь (Winsor and Newton, UK, Великобритания)

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


Однако, этот недостаток в некоторой степени смягчается, если производить съемку на просвет.


Оптическая когерентная томография предлагала неожиданно низкое проникновение из-за высокого коэффициента оптического затухания папируса.


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




Рентгенофлуоресцентная визуализация




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

Рентгеновская томография с фазовым контрастом

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




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


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

Ежели желаете, подписывайтесь на мой твиттер, до того, как это станет когда нибудь модным. https://twitter.com/alexufo7

Подробнее..

Восстановление утраченных текстов с помощью современных алгоритмов. Софт

08.10.2020 18:22:32 | Автор: admin
image

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


Есть еще USB микроскопы https://www.dinolite.us/products/digital-microscopes/usb но при их цене в 500$ каждый при 12 диапазонах будет стоить слишком дорого. К тому же, он скорее для исследования деталей, чем для оцифровки. Рекламные видеоролики с примерами изображения мне не сильно понравились перешарп изображения, как у дешевой китайщины.

Сканеры.


Со сканерами все понятно. Сейчас подавляющее количество сканеров на контактном сенсоре (cis) что позволяет питать сканер прямо по USB без применения дополнительного питания. Это действительно удобно. Однако, у них низкая разрешающая способность 600dpi (хотя не всегда нужно выше) и очень большие проблемы с глубиной резкости. Если ваш документ приподнят над поверхностью стекла CIS сканера более чем на 3мм ждите мыла. Более того, как рассказал мне Дмитрий Николаев он лично наблюдал откровенное маркетинговое намахалово в разных сканерах. Ты выбираешь в настройках продукта формат tiff, а по USB шине сканер гонит jpeg, и уже драйвер сканера делает преобразование.


На что только не пойдешь, чтобы удовлетворить возросшие потребности покупателей!
.
О, молодец! Заметил!
Сейчас будет шутка
Где-то в компьютерном
image





Более профессиональные сканеры на CCD сенсоре. Их сканирующая часть состоит из объектива, зеркала и самого CCD сенсора. Из-за этого проблем с глубиной резкости у них нет. Так же есть еще одна важная физическая характеристика это глубина цвета. Теоретически, изображение с цветовой глубиной в 48 бит для анализа лучше, чем в 16 бит. Как вы уже знаете, для формирования цветного изображения сканеру необходимо три цветовых фильтра перед сенсором. Существуют специальные мультиспектральные сенсоры для спутникового оборудования, но опять же, в готовых решениях их не найти. Мне даже попадался проект опенсурсного сканера, где существовала возможность менять белый источник света сканера на любой из 12 полос оптического диапазона. Но к сожалению, проект куда-то исчез из сети.

Если вы, дорогой читатель, имеете опыт построения железок этого уровня, можем попробовать это обсудить. Взять какой нибудь сканер, и переделать ему подсветку. Однако, вы все прекрасно знаете, сколько времени сканер тратит на изображение в 1200dpi формата А4. А при необходимости 12 сканов мы получаем минимум час чистой работы железки. Это печалит. Поэтому в современных мультиспектральных системах используются 2D сенсоры. Но у сканера есть и свои преимущества.

Фотоаппараты


Если посмотреть даташиты на какие нибудь кремниевые сенсоры, то их спектральная отзывчивость от УФ до 1000нм и выше. После 700нм это уже ближний ИК диапазон, который нужно отсекать для привычной для нашего глаза картинки. Для этого перед каждым сенсором в любой потребительской технике находится ИК фильтр такого зеленого, на отлив фиолетового, цвета. Для задач мультиспектрального сканирования он только мешает. Поэтому любители ИК фотографии его удаляют самостоятельно.

Мне больше импонирует использование USB3 промышленных камер без bayer-pattern т.е. использование монохромных сенсоров. (USB 3.0 monochrome industrial cameras) например, BFS-U3-200S6M-C. Очень удобно заниматься подготовкой лаборатории, корректировкой освещения и позиционированием документа, а особенно, проверки резкости (при разных длинах волн фокус разный!) наблюдая изображение на большом экране монитора.

Не следует забывать и про любителей вглядываться в вечность. Продавец астрокамер заверил меня, что между исследованием космоса и документов нет разницы и вместо промышленных камер лучше использовать камеры с активным охлаждением матрицы (их рабочий режим до минус 45 по цельсию) Например ASI183MM Pro.(А наш терминатор кремния BarsMonster сообщал, что для коротких экспозиций до 5-10 секунд это не так важно.)

С этой камерой можно использовать объективы от потребительских камер стандарта micro 4/3. Когда я делал обычную съемку на фотоаппарат Lumix DMC-GX80 (16mpx) дневника Васи Баранова я убедился, что мой Olympus 45mm f/1.8 на диафрагме 5.6 выдает достаточно резкие фотографии и вполне пригоден для использования. Даже шумов не так много, учитывая, что света было не так много как хотелось бы.

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




И так, будем считать, что у нас так или иначе есть или RGB изображение или же мультиспектральный набор из серии монохромных фотографий. Последний требует особого подхода, о нем ниже.

Софт


ImageJ
Утилита ImageJ является популярным инструментом в анализе изображений на западе. Свободные графические алгоритмы, часто пишутся под эту программу и она часто упоминается в разного рода исследованиях как платформа для быстрой отработки графических алгоритмов. Особенно интересен раздел плагинов
https://imagej.nih.gov/ij/plugins/

ENVI
Если смотреть историю мультиспектрального анализа, то конечно же первым предметом исследования для ученых были фотографии со спутников. В них установлены те самые мультиспектральные датчики и задачи ставятся ровно такие же произвести коррекцию и вытащить максимальное количества информации. В этом смысле нет разницы: вглядываемся ли мы в космос или в рукопись. Популярным исследовательским решением выступает программный комплекс ENVI. Я буду говорить о версии 5.3 (другой не нашел ;-) ). В нем меня очень порадовал подход с возможностью анимирования результатов обработки изображений. У меня есть стойкие причины утверждать, что распознавание мозгом деталей на изображении происходит лучше в динамике изменений. То есть вместо того, чтобы передать переводчику статические файлы с набором контрастов, лучше дать ему анимашку.
(Если знаете другое ПО, просьба сообщить.)

https://www.harrisgeospatial.com/Software-Technology/ENVI

Photoshop
Забывать его тоже не будем.

С чего начинать


Анализ каналов


ENVI / ImageJ / Photoshop plugin

RGB модель плохо подходит для максимизации отображаемых данных для нашей зрительной системы так же как и для сегментации изображений, определения краев и т.п. В 1989 году Xerox предложила цветовую модель YES. Она как раз основывается на физиологической модели нашего зрения. При съемке свитков Мертвого моря в 90-х после преобразования RGB в модель YES в канале E были обнаружены ранее непрочитанные исследователями символы.

Цветовое пространство OHTA было экспериментально выведено при статистическом изучении некорреляционных компонентов цвета из большой выборки обычных фотографий. В 2012 году был предложен новый метод сегментации огня, основанный на OHTA.https://www.scientific.net/AMR.485.7 С помощью этого метода можно точно разделить пламя в различных погодных условиях и в различных условиях окружающей среды.

Все это означает, что выделение требуемого контраста определенных компонентов теоретически возможно. Поэтому начинать все следует с анализа каналов известных цветовых моделей, а потом уже пускаться в статистический анализ. Вы, конечно же, можете найти в imageJ почти все популярные цветовые модели и разложить на каналы самостоятельно, но есть замечательный аналитический онлайн ресурс http://retroreveal.org

Он отобразит в галерее каналы следующего набора цветовых моделей: Yuv, YQ1Q2, HSI, HSV, HSL, LCHLuv, LSHLuv, LSHLa, XYZ, Yxy, YUV, YIQ, Luv, Lab, AC1C2, I1I2I3.

К моему удивлению, он по каким-то причинам специально недоступен через выдачу в гугле. Его robots.txt содержит запрет на индексирование.

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

ColorTransform 2


http://www.russellcottrell.com/photo/colorTransformer2.htm

Если через онлайн сервис retroreveal.org вы получаете статический файл с маленьким приростом читаемого, это совсем не означает конечный результат работы с преобразованием цветовых моделей. Вам нужна более точная корректировка. Видео с процессом работы плагина https://twitter.com/DJWrisley/status/1246143333501673473

Фильтры


Levels and saturation


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



image


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

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



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

Black&White


Подробно о применении этого фильтра я писал здесь.
Пример



Вот видео процесса https://www.youtube.com/watch?v=u2xnfsAiEJY и PDF версия

Если коротко, фильтр Black&White пересчитывает модель RGB в 7 цветных слоев, что позволяет регулировать интенсивность каждого довольно точно. Это как бы псевдо мультиспектральная съемка.

Highpass


Photoshop

В процессе обработки вы можете столкнуться с тем, что фильтры просвечивают и затемняют нужные зоны рукописи. В этом случае помогает фильтр highpass, его назначение именно в регулировании перепадов яркости. Опять же его практическое применение вы увидели в видео выше.

Алгоритмы


Decorrelation Stretch


ENVI / ImageJ

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



На изображении три отверстия, созданные внутри кратера выносливости летом 2004 года. Ученые из NASA применили алгоритм Decorrelation Stretch

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


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

Применение к рукописям членов зондеркоммандо программы Dstretch, чьи цифровые копии лежат у меня, по моему мнению, этот алгоритм неприменим из-за проблем с детализацией. Именно поэтому он лучше подходит для поиска крупных объектов. В базе матлаба тоже есть реализация этого алгоритма www.mathworks.com/help/images/ref/decorrstretch.html но Dstrech умеет работать с конвертированием в массу цветовых пространств.

Результат обработки обычных фотографий наскальной живописи на его сайте достаточно любопытен.

www.dstretch.com/Presentations.html


Colour Deconvolution


ENVI / ImageJ / Photoshop plugin

https://imagej.net/Colour_Deconvolution

https://4n6site.com/improc/decoplugin/webapp.htm

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



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

Методы статистической обработки


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

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

Метод главных компонент (PCA) и метод независимых компонент (ICA)


Спектральные полосы изображения сильно коррелируют, так как занимают близкие области в пространстве. Для анализа такой массив данных не очень удобен. Методы PCA и ICA используется для снижения размерности, то есть удаления избыточной информации. Из 12 каналов можно получить 3, но более детализированных. После обработки первый канал изображения содержит наибольшую дисперсию данных (наименьший разброс случайной величины относительно ее математического ожидания т.е среднего предполагаемого положения), второй вторую по величине и так далее до того момента, когда данные уже сливаются в хаотический шум.

Удачным примером служат некоторые страницы палимпсеста Архимеда ( 287-212 ГГ. до Н.Э.)


На этом рисунке палимпсест содержит смесь из двух наложенных текстов и, вероятно, разные слои из плесени и прочих пятен. На основе мультиспектральной съемки из итоговых 14 слоев удалось извлечь чистые страницы первичного текста Архимеда.

На изображении ниже к рукописи Лейба Лангфуса применен ICA. Особенность этого документа практически полное отсутствие цветового пигмента чернил и отдавался он на перевод таким, какой был со сканера.
После обработки появляется более значимый контраст. Даже этого достаточно, чтобы просто увеличить скорость перевода.


А здесь применение ICA для образца из главы про цветовую деконволюцию. Мы получаем результат, но теряем оригинальные цвета.



Индивидуальные подходы


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

Компенсация протекших чернил


В случае с рукописью марселя Наджари мне пришел в голову способ компенсирования протекших чернил.

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

Оптико-электроная текстология


Из российских проектов мне известны работы по прочтению рукописи Чехова и Достоевского. Не смотря на то, что те статьи озаглавлены как ОСНОВ ОПТИКО-ЭЛЕКТРОННОЙ ТЕКСТОЛОГИИ это кропотливый труд. Суть рассматриваемой работы заключалась в большом мастерстве автора соединять видимые элементы рукописного текста, который зрительно можно разобрать. Оказывается, можно вполне себе восстановить целые предложения.

Ниже страницы письма Ф. М. Достоевского к А. Е. Врангелю от 14 июля 1856 г. с зачеркнутым текстом.


А это результат


Не смотря на то, что были попытки проводить мультиспектральный анализ, из-за идентичного состава чернил разницы в контрасте не возникло. На этом исследователи остановились. Еще фрагмент:


Мастерству натренированного глаза можно только удивляться! По словам исследователей, данная работа продвигалась невероятно медленно. ЕЩЕ Б! Я когда это первый раз увидел, думал что за магия, где формулы? На мой взгляд, методы статистической обработки позволили бы сделать эту работу быстрее.

Итог


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

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

Подробнее..

Tesseract vs таблицы. Распознавание документов

13.03.2021 14:14:35 | Автор: admin

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

Доброго времени суток. Меня зовут Алексей. Работаю 1с программистом в компании по продаже техники. У меня были свои наработки по распознаванию и загрузке данных в учётную программу, и как раз менеджеры вручную заносили десятки страниц pdf-документов, которые нельзя было так просто перенести в ЭДО. Предложил им опробовать моё решение.

Изначально для распознавания использовался ABBYY Cloud, но он не бесплатный, а триальный режим недостаточно длинный. Решил написать свой API на питоне, где используется вся мощь бесплатного tesseracta. Проблема в том, что tesseract - это распознавание именно текста, и таблицы он не определяет, получается малополезная каша. Как раз накануне читал статью https://vc.ru/ml/139816-povyshenie-kachestva-raspoznavaniya-skanov-dokumentov-s-tablicami-s-pomoshchyu-vychisleniya-koordinat-yacheek, где с помощью openCV получают все ячейки таблицы, каждую ячейку прогоняют через tesseract и таким образом можно получать корректные данные. Решил опробовать данный метод. О том, что получилось, и будет пост.

Для теста я взял из демо базы 1с ТОРГ-12. В этой форме достаточно сложная структура, много таблиц, много текста, много данных. Как раз то что надо.

Так как это pdf файл, с помощью gostscript конвертирую в картинку. Пробовал ImageMagick, но почему-то было отвратительное качество через питон. Чрез cmd лучше, но gostscript вне конкуренции.

Для начала нужно убрать штрих код, так как при openCV может найти там то чего нет, особенно на QR-кодах. Для этого использую библиотеку pyzbar.

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

clahe = cv2.createCLAHE(clipLimit=50, tileGridSize=(50, 50))lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)  l, a, b = cv2.split(lab) l2 = clahe.apply(l)  lab = cv2.merge((l2, a, b))  img2 = cv2.cvtColor(lab, cv2.COLOR_LAB2BGR) gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)ret, thresh = cv2.threshold(gray, 75, 255, cv2.THRESH_BINARY_INV )kernel = np.ones((2, 2), np.uint8)obr_img = cv2.erode(thresh, kernel, iterations=1)obr_img = cv2.GaussianBlur(obr_img, (3,3), 0)

После это ищу возможные контура, при этом отсеивая совсем уж мелкие. Так как изображение может быть разного качества, то абсолютное значение ограничения неправильно. Чисто эмпирически вышел на 5 промилле, а также вычисляю важнейшую переменную delta.

contours, hierarchy = cv2.findContours(dilated_value, cv2.RETR_TREE, cv2.CHAIN_APPROX_TC89_L1)coordinates = []ogr = round(max(img.shape[0], img.shape[1]) * 0.005)delta = round(ogr/2 +0.5)ind = 1;for i in range(0, len(contours)):l, t, w, h = cv2.boundingRect(contours[i])if (h > ogr and w > ogr):    #Индекс блока    #Индекс контура    #Индекс родителя    #х    #у    #ширина    #высота    #текст  coordinates.append((0, ind, 0, l, t, w, h, ''))    ind = ind + 1

По итогу получил кучу контуров, раскиданных по всему изображению. С помощью sqlite3 делаю БД и загоняю туда coordinates. Запросами гораздо удобней сравнивать данные и отбирать нужные. К примеру, по идее индекс родителя должен быть в hierarchy, но я его не заполняю, так как он может некорректно определятся. Поэтому индекс родителя каждого контура я вычисляю сам с помощью нехитрого запроса.

Для разбора документа нужно определить где есть таблицы, обработать эти таблицы. Всё что кроме таблиц - текст. Обрабатываю текст, связываю всё вместе и готово.

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

Получается уже 2 подзадачи:

  1. Получить все возможные связные множества

  2. Достройка множеств до границ родителя

Связность определяется достаточно просто. Если в дельта окрестности прямоугольника есть другой прямоугольник, то они связаны. Используется окрестность, так как координаты не идеальны и всегда есть погрешность. Алгоритм не сложен. Выбираю прямоугольник с родителем, смотрю есть ли в связные с ним слева, справа, сверху, снизу. Если да - записываю какие. Таким образом и получается множество. Единственная проблема, что бывают контура находятся в дельта окрестности, но не являются ячейкой таблицы. Такие нужно исключать. Самый действенный выход получился такой. Делаю кластеризацию ячеек по ширине и высоте. Разница в высоте/ширине прямоугольника между первым и последним элементом кластера должно быть не более 2*дельта. Сортирую по возрастанию. Если очевидна разница в размерах и мощности между первым и вторым кластером, то скорее всего первый кластер - мусор, удаляю его. Получаю такую вполне симпатичную картину.

В данном случае достройка до полного прямоугольника нужна для таблицы кодов и товаров. Идея достаточна проста. От каждой прямоугольника по 4 сторонам смотрю ближайший прямоугольник. Если ближайший не лежит в дельта окрестности, или его вообще нет, то это "дырка". Сравниваю всё множество таких "дырок" между собой, если они пересекаются, то это даёт информацию какие прямоугольники нужно добавить. Также если какие-то связанные прямоугольники попадают внутрь достроенных, или меньше 4 элементов, то убираю.

По итогу получается следующая картина

Я знаю координаты каждой ячейки таблицы. Можно нарезать изображение и каждую отдельную ячейку распознать. Так как tesseract далеко не идеален, то приходится одно поле распознавать 3 раза, сравнивая результаты между собой. К примеру, слово "кол-во". В одном может распознаться как "кол-во", в другом как "---00", в третьем тупо набором символов. И непонятно в каком случае кому верить.

text1 = pytesseract.image_to_string(image[t1:t2,l1:l2], lang=lang, config='--psm 6')text2 = pytesseract.image_to_string(image[t1:t2,l1:l2], lang=lang, config='')text3 = pytesseract.image_to_string(image[t1+round(delta/2):t2-round(delta/2),l1+round(delta/2):l2-round(delta/2)], lang=lang, config='--psm 7')text1 = text1.replace("\n", " ")text2 = text2.replace("\n", " ")text3 = text3.replace("\n", " ")text1 = re.sub(' *[^ \(\)А-Яа-я\d\w\/\\\.\-,:; ]+ *', ' ', text1)text2 = re.sub(' *[^ \(\)А-Яа-я\d\w\/\\\.\-,:; ]+ *', ' ', text2)text3 = re.sub(' *[^ \(\)А-Яа-я\d\w\/\\\.\-,:; ]+ *', ' ', text3)while text1.find('  ')!=-1:    text1 = text1.replace('  ',' ')while text2.find('  ') != -1:    text2 = text2.replace('  ', ' ')while text3.find('  ') != -1:    text3 = text3.replace('  ', ' ')

Итак. Все ячейки распознались, теперь нужно собрать таблицы. Вроде всё просто, определяешь строку по высоте и запихиваешь последовательно по левой границе. Но, во-первых, координаты не идеальны, поэтому нужно кластеризовать по высоте, выбрать для каждого кластера какую то среднюю высоту. Во вторых могут быть объединения ячеек, как в шапке таблицы товаров, поэтому так просто строки не сделаешь. Более того, бывают таблицы, в которых строк нет, типа реквизитов банка в счёте на оплату. Возникает вопрос, как удобно представить таблицу, с учётом её структуры? Каждую ячейку таблицы я принял за точку, если 2 ячейки рядом, точки соединяются. Таким образом получается граф. Благодаря такому представлению, я могу с любой ячейки узнать какие рядом, с какой стороны, какая в них информация. При необходимости разделить на строки, как мне нужно; узнать какая колонка шапки для данной конкретной ячейки; даже для данной структуры шапки таблицы сделать шаблон парсера строк, если надо. И много другое.

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

Из всего этого строю граф, вершиной которого является либо текст, либо таблица. Таким образом я получаю нужную мне информацию, сохраняю структуру документа и структуру таблиц. Ответ API пакую в JSON, принимаю на стороне 1с и обрабатываю. Работает, менеджеры почти довольны. Проблема в данном методе со скоростью. Он очень медленный. 1 страница pdf обрабатывается от 20 секунд до минуты, всё зависит от размера таблиц в файле. Думаю, решить это используя Tesserocr вместо Pytesseract, ну и распараллелить местами.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru