Skip to content

The code for our newly accepted paper in Pattern Recognition 2020: "U^2-Net: Going Deeper with Nested U-Structure for Salient Object Detection."

License

Notifications You must be signed in to change notification settings

SergeyDeryabin/U-2-Net

 
 

Repository files navigation

U2-Net: U Square Net

Это - официальный репозитарий(repo) для нашей статьи U2-Net(U square net), опубликованной в издании "Распознавание образов 2020"("Pattern Recognition 2020"):

[U2-Net: Going Deeper with Nested U-Structure for Salient Object Detection](Углубленное движение с вложенной U-структурой для обнаружения выступающих объектов)(https://arxiv.org/pdf/2005.09007.pdf)

Xuebin Qin, Zichen Zhang, Chenyang Huang, Masood Dehghan, Osmar R. Zaiane иMartin Jagersand

Contact: xuebin[at]ualberta[dot]ca

Обновления(Updates) !!!

** (2022-Aug.-24) ** Мы рады объявить что наш U2-Net , опубликованный в издании Распознавания образов Pattern Recognition был признан победителем 2020 года the 2020 Pattern Recognition BEST PAPER AWARD !!! u2net-best-paper

** (2022-Aug.-17) ** Наши U2-Net-модели теперь доступны на PlayTorch, где вы можете создать свой собственный демонстрационный пример и выполнить его на вашем Android/iOS-телефоне. Испытайте этот демонстрационный пример на PlayTorch Demo и предложите свои идеи о U2-Net к истине в минутах!

** (2022-Jul.-5)** Наша новая работа Очень точная дихотомическая сегментация изображения **Highly Accurate Dichotomous Image Segmentation (DIS) Project Page, Github принята на конференции ECCV 2022. До 17-го июля 2022 будут выпущены наш код и набор данных. Знайте о наших обновлениях. ship-demo bg-removal view-move motor-demo

** (2022-Jun.-3)** Благодарим Adir Kol за совместно используемое iOS-приложение Создатель 3D-фото 3D Photo Creator, основанного на нашей U2-Net. portrait-ios-app

** (2022-Mar.-31)** Благодарим [Hikaru Tsuyumine] за реализацию iOS-приложения Рисование эскиза портрета Portrait Drawing , основанного на U2-Net-модели генерации портрета. portrait-ios-app

** (2022-Apr.-12)** Благодарим Kevin Shah за предоставление знакового iOS-приложения Lensto, (Demo Video) , основанного на U2-Net. lensto

** (2022-Mar.-31)** Наша U2-Net-модель также интегрирована Hotpot.ai для художественного проекта. hotpot

** (2022-Mar-19)** Благодарим Kikedao за предоставление фантастического веб-приложения Силуэт Silueta, основанного на сети U2-Net. Подробности смотрите на сайте по адресу https://github.com/xuebinqin/U-2-Net/issues/295. silueta

** (2022-Mar-17)** Благодарим Ezaldeen Sahb за реализацию iOS-библиотеки для удаления фона изображения, основанной на сети U2-Net, которая значительно упростит разработку мобильных приложений. close-seg

** (2022-Mar-8)** Благодарим Levin Dabhi за обучение удивительной сегментации одежды сетью U2-Net. close-seg

** (2022-Mar-3)** Благодарим Renato Violin за предоставление удивительного веб-приложения для удаления фона изображения и замены его, основанного на нашей сети U2-Net. bg-rm-aug

(2021-Dec-21) Этот блог blog четко описывает способ преобразовать U2-Net-модель в CoreML-модель CoreML и выполнить ее на iPhone.

(2021-Nov-28) Интересные модели Сегментации Неба(Sky Segmentation models), разработанные xiongzhu , используя сеть U2-Net.

im_sky_segmentation

(2021-Nov-28) Удивительное приложение редактирования изображения Pixelmator pro использует сеть U2-Net в качестве одной из его моделей удаления фона.

im_sky_segmentation

(2021-Aug-24) Мы поиграли немного больше о плавлении исходного изображения и сгенерированных портретов, чтобы составить различные стили. Вы можете
(1) Загрузите этот репозитарий(repo) с помощью команды

git clone https://github.com/NathanUA/U-2-Net.git

(2) Загрузите предварительно обученную модель портрета(pre-trained portrait model) u2net_portrait.pth из Google-диска GoogleDrive или из Baidu Pan(提取码:chgd) и поместите ее в каталог: ./saved_models/u2net_portrait/,
(3) выполните код с помощью команды

python u2net_portrait_composite.py -s 20 -a 0.5

,где -s указывает сигму гауссовой функции для размывания(sigma of gaussian function for blurring) исходного изображения и -a обозначает альфа-веса(alpha weights) исходного изображения при плалении их.

im_portrait_composite

(2021-July-16) Новое веб-приложение удаления фона background removal webapp разработано Изатоп Василий.

rm_bg

(2021-May-26) Благодарим Dang Quoc Quy за его приложение передачи стиля художника Art Transfer APP построенного на сети U2-Net.

(2021-May-5) Благодарим AK391 за совместный доступ к использованию его веб-демонстрационного примера Gradio Gradio Web Demo of U2-Net.

gradio_web_demo

(2021-Apr-29) Благодарим Jonathan Benavides Vallejo за выпуск его приложения LensOCR: Извлечение текста & изображения LensOCR: Extract Text & Image, которое использует сеть U2-Net для извлечения переднего плана у изображения.

LensOCR APP

(2021-Apr-18) Благодарим Andrea Scuderi за выпуск его приложения Камера с обрезкой фото Clipping Camera, которое является U2-Net-сеть управляемым приложением камеры в реальном времени и она "в состоянии обнаружить соответствующий объект нат сцене и отсечь его, чтобы применить необычные фильтры".

Clipping Camera APP

(2021-Mar-17) Dennis Bappert переобучил U2-Net-модель для покрытия портрета человека human portrait matting. Результаты выглядят очень обещающими, и он также предоставил подробности процесса обучения и стратегии генерации данных (и увеличение), которые являются вдохновляющими.

(2021-Mar-11) Dr. Tim разработал программу удаления фона в видео video version rembg с ипользованием сети U2-Net. Удивительные демонстрационные результаты могут быть найдены на YouTube.

(2021-Mar-02) We found some other interesting applications of our U2-Net including MOJO CUT, Real-Time Background Removal on Iphone, Video Background Removal, Another Online Portrait Generation Demo on AWS, AI Scissor.

(2021-Feb-15) Мы только что выпустили онлайновый демонстрационный пример http://profu.ai для генерации портрета. Опробуйте его и давайте любые предложения или комментарии.
Profuai

(2021-Feb-06) Недавно, некоторые люди указали на проблему использования сети U2-Net для сегментации человека, поэтому мы обучили другую модель в качестве примера для сегментации человека, на основе Набора данных надзорного/контролируемой персоны Supervisely Person Dataset.

(1) Чтобы выполнить модель сегментации человека, сначала загрузите модель сегментации человека с весами u2net_human_seg.pth в каталог ./saved_models/u2net_human_seg/.
(2) Подготовьте изображения, будущие сегментированными, в соответствующий каталог, например. ./test_data/test_human_images/.
(3) Выполните вывод(inference) командой: python u2net_human_seg_test.py и результаты будут выведены в соответствующий каталог, например. ./test_data/u2net_test_human_images_results/
**Примечания: из-за точности маркировки Набора данных надзорного/контролируемой персоны(Supervisely Person Dataset), модель сегментации человека (u2net_human_seg.pth) здесь не будет давать точность уровня волос. Но эта модель должна быть более устойчивой, чем u2net-модель, обученная с набором данных DUTS-TR на задаче сегментации всего человека. Эта модель может использоваться для сегментации портрета человека, сегментации тела человека и т.д. **

Human Image Segmentation
Human Video Human Video Results

(2020-Dec-28) Некоторые интересные приложения и полезные инструменты на основе U2-Net:
(1) Xiaolong Liu разработал несколько очень интересных приложений на основе U2-Net , включая рисование портрета человека Human Portrait Drawing(Насколько я знаю, Xiaolong - первый, кто использует U2-Net для генерации портрета), image matting и so on.
(2) Владимир Серегин(Vladimir Seregin) разработал интересный инструмент, штриховую графику на основе NN NN based lineart, для сравнения результатов портретирования на основе U2-Net и результатов портретирования на основе других популярных моделей, ArtLine, разработанный Vijish Madhavan.
(3) Daniel Gatis разработал python-инструмент, Rembg, для удаления фона в изображении на основе U2-Net. Я думаю, что этот инструмент значительно упростит применение U2-Net в различных областях.
REMBG

(2020-Nov-21) Недавно, мы нашли интересное приложение с U2-Net для рисования портрета человека human portrait drawing. Поэтому, мы обучали другую модель для этой задачи на основе набора данных APDrawingGAN dataset.

Sample Results: Kids

Sample Results: Ladies

Sample Results: Men

Использование для генерации портрета(portrait generation)

  1. Клонируйте этот репозитарий(repo) на локальный диск
git clone https://github.com/NathanUA/U-2-Net.git
  1. Загрузите предварительно обученную модель портрета(pre-trained portrait model) u2net_portrait.pth из Google-диска GoogleDrive или Baidu Pan(提取码:chgd) и поместите модель в каталог: ./saved_models/u2net_portrait/.

  2. Выполните набор тестирования(testing set).
    (1) Загрузите набор данных обучения(train) и тестирования(test) из репозитария по адресу: APDrawingGAN. Эти изображения и их истина основы сшиты бок о бок(These images and their ground truth are stitched side-by-side) (512x1024). Вы должны разделить(split) каждое из этих изображений на два изображения размером 512x512 и поместить их в каталог ./test_data/test_portrait_images/portrait_im/. Вы можете также загрузить набор тестирования разделения(split testing set) на Google-диск GoogleDrive.
    (2) Выполните команду вывода умозаключения(inference) python u2net_portrait_test.py, которая выведет результаты(results) в каталог ./test_data/test_portrait_images/portrait_results.

  3. Выполните на своем собственном наборе данных(your own dataset).
    (1) Подготовьте свои изображения(images) и поместите их в каталог ./test_data/test_portrait_images/your_portrait_im/. Чтобы получить достаточно деталей портрета, область головы человека во входном изображении должно иметь размер близкий или больше, чем размер 512x512. Фон головы должен быть относительно четким.
    (2) Выполните прогноз(prediction) командой python u2net_portrait_demo.py, которая выведет результаты(results) в каталог ./test_data/test_portrait_images/your_portrait_results/.
    (3) Различие между командами python u2net_portrait_demo.py и python u2net_portrait_test.py состоит в том, что мы добавили простой face detection шаг обнаружения лица, перед генерацией портрета(before the portrait generation) в команде u2net_portrait_demo.py. Поскольку набор тестирования(testing set) APDrawingGAN нормализован и обрезан(normalized and cropped) к размеру 512x512 для включения только голов людей, в то время как наш собственный набор данных может меняться в зависимости от различных разрешений и контентов. Поэтому, код python u2net_portrait_demo.py обнаружит самую большое лицо на данном изображении и затем обрежет, дополнит и изменит размеры(crop, pad and resize ) ROI к размеру 512x512 для передачи к сети. Следующие данные показывают, как сделать ваши собственные фотографии для генерации высококачественных портретов.

(2020-Sep-13) Наша U2-Net-модель является 6th в MICCAI 2020 Thyroid Nodule Segmentation Challenge.

(2020-May-18) Официальный доумент нашей сети U2-Net (U square net) (PDF in elsevier(свободный до июля 5 2020), PDF in arxiv) доступен. Если вы не в состоянии получить доступ к архиву, не стесняйтесь известить меня по электронной почте.

(2020-May-16) Мы устранили проблему повышающей дискретизации(upsampling issue) сети. Теперь, модель должна быть в состоянии обработать произвольный входной размер arbitrary input size. (Советы: Эта модификация должна упростить переобучение/переквалификацию(retraining) U2-Net модели на ваших собственных наборах данных. При использовании нашей предварительно-обученной модели(our pre-trained model ) на наборах данных SOD, сохраните входной размер как 320x320, чтобы гарантировать производительность.)

(2020-May-16) Мы высоко ценим Cyril Diagne за разработку этого фантастического AR-проекта(проекта дополненной реальности) AR Copy and Paste , использующего U2-Net (Qin et al, PR 2020) и BASNet(Qin et al, CVPR 2019). Демовидео demo video в Твиттере достигло более 5M просмотров, что феноменально и показывает нам большие возможности применения SOD.

U2-Net-результаты(Results) (176.3 MB)

U<sup>2</sup>-Net Results

Наша предыдущая работа: BASNet (CVPR 2019)

Требуемые библиотеки(Required libraries)

Python 3.6
numpy 1.15.2
scikit-image 0.14.0
python-opencv PIL 5.2.0
PyTorch 0.4.0
torchvision 0.2.1
glob

Использование для обнаружения выступающих объектов (заметных объектов; salient object detection)

  1. Клонируйте этот репозитарий(repo)
git clone https://github.com/NathanUA/U-2-Net.git
  1. Загрузите предварительно-обученную модель(pre-trained model) u2net.pth (176.3 MB) из Google-диска GoogleDrive или Baidu Pan 提取码: pf9k или предварительно-обученную модель(pre-trained model) u2netp.pth (4.7 MB) из Google-диска GoogleDrive или Baidu Pan 提取码: 8xsi и поместите модели в каталоги './saved_models/u2net/' и './saved_models/u2netp/'

  2. Перейдите в каталог 'U-2-Net', запустите процесс обучения(train) или процесс вывода умозаключения(inference) с помощью соответствующей команды: python u2net_train.py или python u2net_test.py. Для использования различных моделей, имя модели 'model_name' в обоих файлах может быть изменено на 'u2net' или на 'u2netp'.

Мы также предоставляем карты предсказанных выступов(predicted saliency maps) (u2net results,u2netp results) для наборов данных(datasets) SOD, ECSSD, DUT-OMRON, PASCAL-S, HKU-IS и DUTS-TE.

U2-Net.Архитектура(Architecture)

U<sup>2</sup>-Net architecture

Сравнение качества(Qualitative Comparison)

Quantitative Comparison

Quantitative Comparison

Сравнение качества(Qualitative Comparison)

Qualitative Comparison

Цитата(Citation)

@InProceedings{Qin_2020_PR,
title = {U2-Net: Going Deeper with Nested U-Structure for Salient Object Detection},
author = {Qin, Xuebin and Zhang, Zichen and Huang, Chenyang and Dehghan, Masood and Zaiane, Osmar and Jagersand, Martin},
journal = {Pattern Recognition},
volume = {106},
pages = {107404},
year = {2020}
}

About

The code for our newly accepted paper in Pattern Recognition 2020: "U^2-Net: Going Deeper with Nested U-Structure for Salient Object Detection."

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%