Похожие презентации:
Система распознавания лактобактерий
1.
Система распознаваниялактобактерий
Разработал – Андрей Сапаров
Идея – Тимур Терегулов
2.
v1Основана на ранее разработанном
алгоритме распознавания бактерий в
чашке петри.
Основу технологии составляет OpenCV
Алгоритм не предусматривает
использования моделей машинного
обучения и полагается на проверенные
временем технологии работы с
изображениями
3.
OpenCVOpenCV (Open Computer Vision) – библиотека с
открытым исходным кодом для высокоэффективной
работы с изображениями.
Реализована на языках C/C++
Спонсируется такими компаниями, как Intel, Microsoft,
4.
v1Алгоритм:
- регулировка характеристик
изображения
- яркость
- контраст
- шумы
- удаление фона
- выделение контура бактерий
- заливка закрытых контуров и их
подсчет
5.
Недостатки и преимущества v1Недостатки
- Низкое качество
распознавания
- Необходимость ручной
настройки под разные
типы изображений
(яркие/темные и т.п.)
Преимущества
- Быстро работает
- Низкие трудозатраты на создание
рабочей версии
6.
Интерфейс v17.
v2Основное отличие от
первой версии –
использование
нейронных сетей для
распознавания, в
частности SSD MobileNet
Архитектура нейронной сети
8.
Основная технология v2TensorFlow – библиотека, разработанная
компанией Google для решения задач
построения и тренировки нейронной
сети
с
целью
автоматического
нахождения и классификации образов,
достигая
качества
человеческого
восприятия.
Используется такими фирмами, как:
Google, Airbnb, Coca-Cola, Deep-Mind,
Intel, Twitter и многими другими
9.
Принципе обучения модели v2Исходная выборка разделяется на кластеры по форме бактерии, для каждого кластера
обучается своя модель
Формирование выборки:
- Каждая картинка делится на чанки 300x300 пикселей
- Каждый чанк проходит этап ручной разметки с помощью программы LabelImg
- Размеченные изображения фильтруются по качеству разметки и количеству
бактерий на одном изображении
- Изображения поступают в модель для обучения
- Обученная модель экспортируется в формат .onnx для дальнейшего использования
в программе
10.
Предобработка изображенияИсходное изображение
делится на множество
небольших кусочков
замером 300x300
пикселей
11.
Разметка изображенийКаждый маленький
чанк размечается
вручную. Всего было
размечено более 500
таких изображений
12.
Фильтрация размеченных изображенийИзображения фильтровались по
качеству разметки и количеству на
них бактерий.
На вход модели должны поступать
изображения, на которых отмечены
все объекты, так как это прямо влияет
на успех обучения.
Кроме того, было установлено, что
модель плохо обучается, если на
одном изображении находиться
более 20 объектов.
13.
Обучение моделиОбучение модели производится на серверах
Google с помощью сервис Google Colab.
Для обучения применялись одни из самых
современных на сегодняшний день
графических ускорителей – NVIDIA Tesla V100
6-10 часов
время обучения одной модели
14.
Недостатки и преимущества v2Недостатки
- Долго распознает (10-15 сек. на одно
изображение)
- Сложно обучить (требуется вручную
размечать много изображений)
- Долго обучается
- Требует от пользователя выбор
кластера, к которому принадлежит
бактерия
- Низкое качество распознавания при
большой концентрации бактерий
- Требуется обучить 4 модели для
покрытыя всего разнообразия
бактерий
Преимущества
- Лучшее качество распознавания
по сравнению с первой моделью
- Способность адаптироваться к
разным изображениям
- Отсутствие необходимости
предварительно «тюнить»
параметры изображения
15.
Интерфейс v216.
v3Модель v3 создана с целью устранения недостатков v2
Для этого:
- Протестирована другая архитектура нейронной сети – YOLOv5
- Произведена дополнительная конфигурация процесса обучения
нейронной сети
- Все изображения заново были проверены на качество разметки
- Все изображения объединены в одну, большую, обучающую
выборку
17.
YOLOv5YOLOv5 представлена компанией
развитие архитектуры YOLOv4
Ultralytics
как
Модель предполагает другой формат входных данных и
использования фреймворка PyTorch (а не TensorFlow)
В ходе тестирования выяснилось, что качество модели
уступает ранее использованной SSD MobileNet при
превышающих трудозатратах на обучение. Так что
дальнейшая работа с этой моделью не проводилась.
18.
Изменения конфигурации обучения v3Для повышения качества обучения были
добавлены различные случайных типы
аугментации изображений:
- Изменение яркости
- Изменения контрастности
- Отражение изображения по
вертикали/горизонтали
- Поворот изображения на случайных градус
- и т.п.
Такой подход позволяет в разы увеличить
обучающую выборку и повысить качество
обучения модели
19.
Формирование обучающей выборки v3Ранее размеченные изображения были
объединены в одну большую выборку (вместо
разделения на кластеры)
Изображения этой выборки прошли повторную
разметку и заново отфильтрованы (убраны
картинки с неразличимыми объектами).
Также в выборку были добавлены «пустые»
изображения, не содержащие бактерий. Это
помогло модели обучиться разделять фон.
20.
Итог обучения модели v3- Модель успешно научилась распознавать бактерии разных
кластеров
- Повысилось общее качество распознавания
- Пользователю теперь не требуется дополнительно настраивать
параметры максимальной площади бактерии и выбирать нужный
кластер
- Упростился процесс обучения и архитектура программы, так как
отпала необходимость использовать несколько моделей
21.
Другие технологии. ИнтерфейсИнтерфейс создан с использованием библиотеки Qt, в частности
биндингов для языка программирования Python – PyQt
Qt — это фреймворк для разработки кроссплатформенного
программного обеспечения.
Написан на языке программирования C++.
Qt используется в Autodesk Maya, Skype, Telegram,
Медиапроигрыватель VLC, VirtualBox, Mathematica, и на European
Space Agency, DreamWorks, Google, HP, Lucasfilm, Panasonic, Philips,
Samsung, Siemens, Volvo и Walt Disney Animation Studios.
Кроме того, на Qt основана среда рабочего стола KDE,
графический интерфейс мобильной ОС MeeGo и Qt Creator —
среда разработки на Qt;
22.
Другие технологии. КомпиляцияТак как Python (язык программирования, на
котором написана программа) –
интерпретируемый язык и не порождает .exe
файлов, для компиляции была использована
библиотека pyInstaller.
pyInstaller – это кроссплатформенная
библиотека для компиляции .py файлов в
исполняемые файлы.
23.
Пример использования итоговойпрограммы
24.
дальше — большеstay tuned