Coder Social home page Coder Social logo

basnet-http's Introduction

BASNet HTTP

This is an HTTP service wrapper for BASNet: Boundary-Aware Salient Object Detection code

The deploy folder contains configuration files for deployment as serverless container with Knative.

It's highly recommended to run this image on a machine with a CUDA compatible Nvidia Card and minimum 6Gb of RAM.

Usage:

docker run --rm -p 8080:80 docker.io/cyrildiagne/basnet-http

If you're having empty response issues, make sure your docker instance has 6gb of RAM as mentioned here

Test:

curl -F "[email protected]" http://localhost:8080 -o result.png

FAQ / Troubleshooting:

Q: I get an empty response, or "out of memory"

A: Increase your Docker RAM limit to at least 6GB: cyrildiagne/ar-cutpaste#26 (comment)

Q: I get a file that is 256x256 instead of my input image's size

A: That's the right output. You need to resize it to your input image's width and height. See: #11

Development

  • Clone this repository: git clone https://github.com/cyrildiagne/BASNet-http.git
  • Go into the cloned directory: cd BASNet-http
  • Clone the BASNet repository
  • Download the pretrained model basnet.pth
  • Put the file inside the BASNet/saved_models/basnet_bsi/ folder.

Build from source:

Option 1 - Locally with virtualenv

Requires Python v3.6+

virtualenv venv
venv/bin/activate
pip install torch==0.4.1
pip install -r requirements.txt
python main.py

Option 2 - Using Docker

After you've retrieved the BASNet model.

Download Resnet checkpoint

curl https://download.pytorch.org/models/resnet34-333f7ec4.pth -o resnet34-333f7ec4.pth
docker build -t basnet .
docker run --rm -p 8080:80 basnet

basnet-http's People

Contributors

cyrildiagne avatar oferze avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

basnet-http's Issues

Empty response to test curl

When I start the docker image and run a GET curl request, I get the expected "Hello BASNet!" response, but when I try the POST test request mentioned in the readme, I only get an empty response:

$ curl -F "[email protected]" http://localhost:8080 -o result.png

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100  3249    0     0  100  3249      0    361  0:00:09  0:00:08  0:00:01     0
curl: (52) Empty reply from server

Curl seems to upload and send the image, but there is no response - if I try sending a bad request like ""data=" I get a 400 error, so it looks like the endpoint is correct and the code is being executed...just not when I send an image to be processed.

The only thing I can think of at this point is that the processing is so extreme. that the Macbook Pro I'm running it on can't handle it before the flask request timeout is reached, but this is just a wild guess. Anything you can suggest/advise would be helpful. Thanks :)

result.png is broken

Hi,

I got it up and running on my localhost (Hello BASNet!) with Option 1, but when i send an image to it with for example "curl -F "data=https://www.tuinflora.com/media/catalog/product/cache/5/image/500x/9df78eab33525d08d6e5fb8d27136e95/F/D/FD19294WH_163.jpg" http://localhost:8080 -o result.png
I get an result.png that is broken. It cannot be open and seem to be corrupted.

When running the basnet_test.py in the BASnet folder however i do get correct results in the test_data map, so that seems to be working.

What could i be doing wrong?

RuntimeError: CUDA error: out of memory

Thanks for sharing nice code !
But i have some error with my CUDA
when i run BASNet-http with " curl -F "[email protected]" http://192.168.1.16:1500 -o result.png "
with filename " warning.jpg " just 8 kb of size but it's have error with
'' RuntimeError: CUDA error: out of memory ''

my specs is > CPU : Intel i5 - 4460
VGA : GTX750 TI with 2gb of memory
RAM : 8 Gb
How can i solve this problem , thank you ! :)

95930839_600316997499470_6959479639668424704_n

Images are 265x265px

Is there a way i can adjust this Size? So i get a good quality image. For example 1920x1080px so i can work with those Images in a larger Scale?

Image Permission Denied

I am trying to run the image on Google Cloud Run but it seems that the permission to read the image is denied. I am getting this error in Google Cloud Run console.

_

Google Cloud Run Service Agent must have permission to read the image, gcr.io/cyrildiagne-ml/basnet-http. Ensure that the provided container image URL is correct and that the above account has permission to access the image. If you just enabled the Cloud Run API, the permissions might take a few minutes to propagate. Note that the image is from project [cyrildiagne-ml], which is not the same as this project [playground-amardeep]. Permission must be granted to the Google Cloud Run Service Agent from this project.

_

Error main.py

File "main.py", line 54
logging.info(f'Completed in {time.time() - start:.2f}s')
^
SyntaxError: invalid syntax

Any ideas ?

Return image on 256 x 256

Hi,

When testing with the supplied images I can only get a 256 x 256 mask image in the result. How can I get an image with the correct aspect ratio?

Thanks in advance.

Rob
resultgirl

Unable to complete Test

Input:
PS C:\Users\micha\OneDrive\Documents\basnet-http-master> docker run --rm -p 8080:80 gcr.io/cyrildiagne-ml/basnet-http

Output:
Saved file tree to doc-filelist.js
Copied JS to doc-script.js
Compiled CSS to doc-style.css

Input:
PS C:\Users\micha\OneDrive\Documents\basnet-http-master> curl -F "[email protected]" http://localhost:8080 -o result.png

Output:

Invoke-WebRequest : A parameter cannot be found that matches parameter name 'F'.
At line:1 char:6

  • curl -F "[email protected]" http://localhost:8080 -o result.png
  •  ~~
    
    • CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
    • FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Get black-white image

I run the project on my local machine and after processing image6 get black white img
Whats I do wrong?
Sample:
unnamed

Result:

result

I newbie in ML and in its library sorry if my question is dummy^ thanks

Error: Empty reply from server

Hi, thanks for the project!

I am trying to run it using docker and i have followed the instructions provided in the readme file. Everything looks good, but i have changed the host port to 8020 due to some other local project.

When i try it using curl it looks like this:
image

Running container logs:
image

Do you have any thoughts? Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.