shreyas-bk / u2netdemo

Demonstration using Google Colab to show how U-2-NET can be used for Background Removal, Changing Backgrounds, Bounding Box Creation, Salient Feature Highlighting and Salient Object Cropping.
MIT License
198 stars 35 forks source link
background-removal bounding-boxes deep-learning image-cropping machine-learning python pytorch saliency-map tensorflow u2net

U-2-Net-Demo

Demonstration using Google Colab to show how U-2-NET can be used for Background Removal, Changing Backgrounds, Bounding Box Creation, Salient Feature Highlighting and Salient Object Cropping

Please let me know if you would like to collaborate on building a website/web demo for this repo or any other contributions

Check out these articles making use of this repository:

Medium: Large Scale Background Removal Using AI

I REMOVED THE BACKGROUNDS FROM 11,782 JPGS FOR FREE! USING AI!

UPDATES: upcoming update - notebook for inferencing a large number of images

Link: Open Google Colab Notebook

Click this link for step-by-step instructions: Open Google Colab Notebook {Use this to save your results too} {update: now with code to change background}

Click this link for Salient Object Cropping: U_2_Netp_Cropper_Colab

Example Results

Cat:

Formula 1 Car:

Rick Astley:

Background Changed:

Bacground Removed and Image Cropped (Mask and Resulting Image):

Useful material

U-2-NET Paper: U2-Net: Going Deeper with Nested U-Structure for Salient Object Detection

Original Repo: U-2-Net Github repo

Modified repo for that this colab uses: Modified fork

References: X. Qin, Z. Zhang, C. Huang, M. Dehghan, O. R. Zaiane, and M. Jagersand, “U2-net: Going deeper with nested u-structure for salient object detection,” Pattern Recognition, vol. 106, p. 107404, 2020

Other Results

Details about U-2-Net

The following is an excerpt from the paper: 'In this paper, we design a simple yet powerful deep network architecture, U2-Net, for salient object detection (SOD). The architecture of our U2-Net is a two-level nested U-structure. The design has the following advantages: (1) it is able to capture more contextual information from different scales thanks to the mixture of receptive fields of different sizes in our proposed ReSidual U-blocks (RSU), (2) it increases the depth of the whole architecture without significantly increasing the computational cost because of the pooling operations used in these RSU blocks. This architecture enables us to train a deep network from scratch without using backbones from image classification tasks. We instantiate two models of the proposed architecture, U2-Net (176.3 MB, 30 FPS on GTX 1080Ti GPU) and U2-Net† (4.7 MB, 40 FPS), to facilitate the usage in different environments. Both models achieve competitive performance on six SOD datasets.'

U2NET Model

TODO:

Please feel free to suggest changes to improve this repository