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.5.tar.gz (4.9 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.5-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: water_drop_detection-0.5.tar.gz
  • Upload date:
  • Size: 4.9 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.5.tar.gz
Algorithm Hash digest
SHA256 da028cb7b08f358503362ce1e67e624cf16e8c68469c3845120d0c058e8cf70e
MD5 33158c2da40a9e61d426a180d90ebee9
BLAKE2b-256 3c424d92ed457370070bbe5589a6c4a4d4c1f1a2c9ff74bd77411d1480f03b36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for water_drop_detection-0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e2c971b51665b93d9061ffd19c7d3319fb7153a0efe303ddc63872dc50d4b6a2
MD5 569fddd6c8a7cc3310656e30d8b119d8
BLAKE2b-256 a851172b1e0cdaff5217647401c3e64e86e107050c727fb6161ae02bea536cfe

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