Поиск объектов на изображении с помощью U-Net
Directum Ario
План доклада
Проблема
Поиск подписей при помощи OpenCV
Алгоритм
Классификация “подпись/не подпись”
Введение в нейронные сети
Нейронная сеть
Нейронная сеть
Нейронная сеть
Нейронная сеть
Нейронная сеть
Слои нейронной сети
Слои нейронной сети
Поиск подписей с помощью нейронных сетей
Работа в проекте с нейронными сетями
Что делать с результатом работы нейронной сети?
Измеряем качество
Измеряем качество
Измеряем качество
Прямоугольная разметка
Аугментация
Полигональная разметка
Тюнинг сети
Плюсы
Минусы
Что дальше?
Ссылки
Контакты
19.00M
Categories: informaticsinformatics electronicselectronics

Поиск объектов на изображении с помощью U-Net

1. Поиск объектов на изображении с помощью U-Net

Андрей Широбоков, Directum

2. Directum Ario

1. Классификация документов (договор, акт выполненных работ,
счёт и пр.).
2. Извлечение фактов из документов (наименования организаций,
даты, адреса и пр.).
3. Сравнение документов.
4. Поиск подписей и печатей.

3. План доклада

1.
2.
3.
4.
5.
Проблема.
Поиск подписей при помощи OpenCV.
Введение в нейронные сети.
Поиск подписей с помощью нейронных сетей.
Итоги.

4. Проблема

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

5. Поиск подписей при помощи OpenCV

6. Алгоритм


переводим в ч/б
находим контуры
берём наибольший
???
PROFIT!

7.

PROFIT?

8. Классификация “подпись/не подпись”

68%

9. Введение в нейронные сети

10. Нейронная сеть

11. Нейронная сеть

12. Нейронная сеть

13. Нейронная сеть

14. Нейронная сеть

15. Слои нейронной сети

1. Полносвязный слой (Dense layer).
2. Свёрточный слой (Convolutional layer).
3. Рекуррентный слой (Recurrent layer).

16. Слои нейронной сети

1. Полносвязный слой (Dense layer).
2. Свёрточный слой (Convolutional layer).
3. Рекуррентный слой (Recurrent layer).

17.

Convolutional Layer

18.

19. Поиск подписей с помощью нейронных сетей

20. Работа в проекте с нейронными сетями

1.
2.
3.
4.
5.
6.
Постановка задачи.
Выбор метрик качества.
Поиск, подбор, разметка данных.
Выбор и настройка нейронной сети.
Если метрики не устраивают возвращаемся к п.3.
Встраивание в сервис.

21.

U-Net

22.

Архитектура сети

23.

Архитектура сети

24.

Обучение сети

25.

26.

27.

28. Что делать с результатом работы нейронной сети?

Подбираем порог на котором
режем подписи:
• фиксированный
• вычисляемый

29. Измеряем качество

30. Измеряем качество

31. Измеряем качество

Предсказание
Реальность
Подписи нет
Подпись есть
Подписи нет
True Negative (TN)
False Positive (FP)
Подпись есть
False Negative (FN)
True Positive (TP)

32. Прямоугольная разметка

Разметка подписей обрамляющими
прямоугольниками
F1-мера: 72%

33. Аугментация

● горизонтальное и вертикальное отражение
● повороты на 90, 180, 270 градусов
F1-мера: 76%

34. Полигональная разметка

Разметка полигонами,
приближенными к подписи
F1-мера: 82%

35. Тюнинг сети

● добавили слои
● изменили размер входного слоя
F1-мера: 87%

36. Плюсы


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

37. Минусы

● сложно разделить “слипшиеся” объекты
● из коробки не получилось обучить для нескольких классов
(подписи, печати)
● из коробки качество местами не очень
● могут возникнуть проблемы, если необходимо искать объекты
разных размеров

38. Что дальше?

● Deep Watershed Transform
● другие архитектуры сетей

39. Ссылки

● Keras U-Net starter
● Understanding Semantic Segmentation with UNET
● U-Net: Convolutional Networks for Biomedical Image
Segmentation
● Глубокое обучение на Python

40. Контакты

@feeeper
@feeeper
[email protected]
English     Русский Rules