Skip to main content

A neural network that detects water drops on the surface from an image.

Project description

Water Drops Detection




Выполнили:

Дата: 25.06.2023г.


Введение

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


Neural Net

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


)


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


Датасет

Сборка датасета состояла из нескольких частей:

  • поиск изображений в интернете/съемка фотографии с каплями воды
  • создание маски в фоторедакторе, на которой белым цветом отображен участок капли, черным - фон
  • перевод маски с помощью скрипта на языке Python в бинарную матрицу True-False и сохранение ее с расширением .npz
  • создание датасета путем объединения исходной фотографии и соответствующей ей npz-маски


UI

UI сделан с помощью языка Python, библиотеки PyQT5 и программы QtDesigner. Интерфейс принимает изображение или папку с изображениями и отправляет их в нейронную сеть для детектирования. Результат сохраняется в новую папку в двух форматах: на одном капли закрашиваются, на другом добавляется bounding box. Пользователь может выбрать любую из версий для просмотра. Также при передаче изображения есть возможность отредактировать его: повернуть в любую сторону или обрезать. Каждая страница UI изначально создана в QtDesigner, в коде представлена в виде класса со своими методами. Взаимодействие между страницами происходит с помощью функций библиотеки PyQT5



Управление проектом

Установка и запуск программы

Для пользователя:

pip install water-drop-detection
  • Для запуска проекта через py файл:
from water_drop_detection import main
main.main()
  • Или при клонировании репозитория можно вызвать:
python water_drop_detection/main.py

Для разработчика:

git clone https://github.com/HerrPhoton/Water_drop_detection
  • Откройте проект в IDE
  • Установите необходимые библиотеки командой ниже:
pip -r install requirements.txt
  • Запуск приложения осуществяется через запуск файла main.py:
python main.py
  • Страница документации может быть запущена через:
start docs\build\html\index.html

Работа с Docker:

  • Команды для сборки и запуска проекта в терминале:
docker build . -t drop_detection
docker run drop_detection

Информация о покрытии тестами: https://app.codecov.io/gh/HerrPhoton/Water_drop_detection


Результаты работы программы


Тестовое изображение Маска изображения Маска + bounding box + окружность
1 1 1
1 1 1
1 1 1

Источники


U-Net: Convolutional Networks for Biomedical Image Segmentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

water_drop_detection-0.7.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

water_drop_detection-0.7-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file water_drop_detection-0.7.tar.gz.

File metadata

  • Download URL: water_drop_detection-0.7.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for water_drop_detection-0.7.tar.gz
Algorithm Hash digest
SHA256 885157ddca57e77fe816079532152e37eedee6b94dd65bffc03888a9c74ddfd2
MD5 46c231fb9e41177aa1b6dda752191fdb
BLAKE2b-256 69f8603524ed316cc56873f250c7fb7a2bea747e484cb839413730cdedb6be9a

See more details on using hashes here.

File details

Details for the file water_drop_detection-0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for water_drop_detection-0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 25b5e5d5e0ea544e8c05728b32921b9c5814ca4d88d114072a2149b4cf001bdb
MD5 967c8d52761a310ce5148904516a582d
BLAKE2b-256 f3ced55e5fac12d951eee0ac8cfae491575b017868d2ff3ee3ab9e116aeb4632

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page