- Saved searches
- Use saved searches to filter your results more quickly
- YanaAG/UNet
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- Saved searches
- Use saved searches to filter your results more quickly
- License
- zhixuhao/unet
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
YanaAG/UNet
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Приложенная модель CP5.pth была натренирована на наборе данных формата .jpeg, состоящего из N сканированных изображений мозга.
Краткие теоретические сведения
Рисунок 1. Архитектура U-net (пример изображения с разрешением 32×32 пикселя — самым низким)
Каждый синий квадрат соответствует многоканальной карте свойств. Количество каналов приведено в верхней части квадрата. Размер x-y приведен в нижнем левом краю квадрата. Белые квадраты представляют собой копии карты свойств. Стрелки обозначают различные операции. Архитектура сети приведена на рисунке 1. Она состоит из сужающегося пути (слева) и расширяющегося пути (справа). Сужающийся путь — типичная архитектуре сверточной нейронной сети. Он состоит из повторного применения двух сверток 3×3, за которыми следуют инит ReLU и операция максимального объединения (2×2 степени 2) для понижения разрешения.
На каждом этапе понижающей дискретизации каналы свойств удваиваются. Каждый шаг в расширяющемся пути состоит из операции повышающей дискретизации карты свойств, за которой следуют:
- свертка 2×2, которая уменьшает количество каналов свойств;
- объединение с соответствующим образом обрезанной картой свойств из стягивающегося пути;
- две 3×3 свертки, за которыми следует ReLU.
Первая часть делает проход вниз, это часть кода, где вы применяете блоки свертки с последующей понижающей дискретизацией maxpool для кодирования входного изображения в представления признаков на нескольких различных уровнях.
Вторая часть сети состоит из дискретизации и конкатенации, за которыми следуют регулярные операции свертки. Основная иделя повышение частоты дискретизации в CNN: мы расширяем размеры элементов до тех же размеров с помощью соответствующих блоков конкатенации слева. Вы можете увидеть серые и зеленые стрелки, где мы объединяем две карты объектов вместе.
Основной вклад сети U-Net в этом смысле по сравнению с другими полностью сверточными сетями сегментации заключается в том, что при повышении частоты дискретизации и углублении в сети мы объединяем функции с более высоким разрешением из нижней части с функциями с повышенной дискретизацией, чтобы лучше локализовать и изучить представления с следующие свертки. Так как повышающая дискретизация является редкой операцией, нам необходим хороший предварительный анализ с более ранних этапов, чтобы лучше представить локализацию.
Изучив рисунок, вы можете заметить, что выходные размеры (388 x 388) не совпадают с исходными (572 x 572). Если вы хотите получить тот же размер, вы можете применить дополненные свертки, чтобы сохранить согласованность размеров на всех уровнях конкатенации.
Если имеются проблемы со сверточной арифметикой, можно прочитать дополнительную информацию тут (Convolution arithmetic)
Note : Use Python 3
Формат изображения : .jpeg
Чтобы запустить предсказание + визуализацию входного изображения из CLI, нужно ввести следующее:
python predict.py —model CP5.pth —input OiDvTcZ.jpg —output output2.jpg —cpu —viz
В качестве модели можно указать собственный экземпляр:
Чтобы использовать только cpu версию:
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
unet for image segmentation
License
zhixuhao/unet
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Implementation of deep learning framework — Unet, using Keras
The original dataset is from isbi challenge, and I’ve downloaded it and done the pre-processing.
You can find it in folder data/membrane.
The data for training contains 30 512*512 images, which are far not enough to feed a deep learning neural network. I use a module called ImageDataGenerator in keras.preprocessing.image to do data augmentation.
See dataPrepare.ipynb and data.py for detail.
This deep neural network is implemented with Keras functional API, which makes it extremely easy to experiment with different interesting architectures.
Output from the network is a 512*512 which represents mask that should be learned. Sigmoid activation function makes sure that mask pixels are in [0, 1] range.
The model is trained for 5 epochs.
After 5 epochs, calculated accuracy is about 0.97.
Loss function for the training is basically just a binary crossentropy.
This tutorial depends on the following libraries:
Also, this code should be compatible with Python versions 2.7-3.5.
You will see the predicted results of test image in data/membrane/test
Or follow notebook trainUnet
Use the trained model to do segmentation on test images, the result is statisfactory.
Keras is a minimalist, highly modular neural networks library, written in Python and capable of running on top of either TensorFlow or Theano. It was developed with a focus on enabling fast experimentation. Being able to go from idea to result with the least possible delay is key to doing good research.
Use Keras if you need a deep learning library that:
allows for easy and fast prototyping (through total modularity, minimalism, and extensibility). supports both convolutional networks and recurrent networks, as well as combinations of the two. supports arbitrary connectivity schemes (including multi-input and multi-output training). runs seamlessly on CPU and GPU. Read the documentation Keras.io
Keras is compatible with: Python 2.7-3.5.