Часто при работе с PDF-файлами и документами наиболее распространенной проблемой, с которой сталкиваются все мы, является то, что некоторые страницы нечетко видны или из-за какого-либо фона тексты нечетко видны. Если модель глубокого обучения Document Denoising связана с нашей камерой или любым приложением для захвата PDF-файлов, она может оказаться очень полезной.

Таблица содержания

  • Введение в cAInvas
  • Импорт набора данных
  • Загрузчик данных
  • Модельное обучение
  • Введение в DeepC
  • Компиляция с DeepC

Введение в cAInvas

CAInvas - интегрированная платформа разработки для создания интеллектуальных периферийных устройств. Мы не только можем обучить нашу модель глубокого обучения с помощью Tensorflow, Keras или Pytorch, мы также можем скомпилировать нашу модель с его пограничным компилятором под названием DeepC для развертывания нашей рабочей модели на периферийных устройствах для производства. Проект Document Denoising также является частью галереи cAInvas. Все зависимости, которые вам понадобятся для этого проекта, также предустановлены.

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

Импорт набора данных

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

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

Загрузчик данных

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

Модельное обучение

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

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None, 30, 30, 64)        640       
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 15, 15, 64)        0         
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 15, 15, 32)        18464     
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 8, 8, 32)          0         
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 8, 8, 32)          9248      
_________________________________________________________________
up_sampling2d (UpSampling2D) (None, 16, 16, 32)        0         
_________________________________________________________________
conv2d_3 (Conv2D)            (None, 16, 16, 64)        18496     
_________________________________________________________________
up_sampling2d_1 (UpSampling2 (None, 32, 32, 64)        0         
_________________________________________________________________
conv2d_4 (Conv2D)            (None, 32, 32, 1)         577       
=================================================================
Total params: 47,425
Trainable params: 47,425
Non-trainable params: 0
_________________________________________________________________

Используемая функция потерь - binary_crossentropy, а оптимизатор - Adam. Для обучения модели мы использовали Keras API с тензорным потоком на бэкэнде. Вот тренировочный участок для модели:

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

Введение в DeepC

Компилятор DeepC и структура логического вывода предназначены для включения и выполнения нейронных сетей с глубоким обучением путем сосредоточения внимания на функциях устройств малого форм-фактора, таких как микроконтроллеры, eFPGA, процессоры и другие встроенные устройства, такие как raspberry-pi, odroid, arduino, SparkFun Edge, risc -V, мобильные телефоны, ноутбуки x86 и arm, среди прочего.

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

Компиляция с DeepC

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

После сохранения файла в формате H5 мы можем легко скомпилировать нашу модель с помощью компилятора DeepC, который входит в состав платформы cAInvas и конвертирует нашу сохраненную модель в формат, который можно легко развернуть на периферии. устройств. И все это очень легко сделать с помощью простой команды.

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

Ссылка на блокнот cAInvas: https://cainvas.ai-tech.systems/use-cases/document-denoising-app/

Кредит: Ашиш Арья