This repository contains the segmentation user interface from the OpenSurfaces project, extracted as a lightweight tool

Overview

OpenSurfaces Segmentation UI

This repository contains the segmentation user interface from the OpenSurfaces project, extracted as a lightweight tool. A dummy server backend is included to run the demo.

You can also view the demo online.

To run the demo, there are two versions: one with django, and one with no framework. The django version uses a dummy django server and compiles the website live as necessary. The non-django version is a flat html file extracted from the django version.

If you find this tool helpful, please cite our project:

@inproceedings{bell13opensurfaces,
	author = "Sean Bell and Paul Upchurch and Noah Snavely and Kavita Bala",
	title = "OpenSurfaces: A Richly Annotated Catalog of Surface Appearance",
	booktitle = "SIGGRAPH Conf. Proc.",
	volume = "32",
	number = "4",
	year = "2013",
}

and report any bugs using the GitHub issue tracker. Also, please "star" this project on GitHub; it's nice to see how many people are using our code.

Version 1: Run with Django (Ubuntu Linux)

  1. Install dependencies (coffee-script, django, django-compressor, ua-parser, BeautifulSoup):

    Note: this will change your django current installation if you are not somewhere between 1.4.* and 1.6.*. I suggest looking into the virtualenv package if this is a problem for you.

./django-setup-demo.sh
  1. Start the local webserver:
./django-run-demo.sh
  1. Visit localhost:8000 in a web browser

To get the demo to work on Mac and Windows, you will have to look at the above scripts and run the equivalent commands for your system.

After drawing 6 polygons, the submit button will show you the POST data that would have been sent to the server.

Version 2: Run without Django (Linux or Mac)

  1. Install npm and node.js. On Ubuntu, this is:
sudo apt-get install npm nodejs
  1. Install coffee-script:
sudo npm install -g coffee-script
  1. Build static files (js, css, img) and then start a local python-based webserver:
./python-run-demo.sh
  1. Visit localhost:8000 in a web browser

To get the demo to work on Windows, you will have to look at the above scripts and run the equivalent commands for your system.

Project Notes

POST data

When a user submits, the client will POST the data to the same URL. On success, the client expects the JSON response {"message": "success", "result": "success"}. The client will then notify the MTurk server that the task is completed. For more details, see example_project/segmentation/views.py.

When a user submits, the POST will contain these fields:

results: a dictionary mapping from the photo ID (which is just "1" in
	this example) to a list of polygons.  Example:
	{"1": [[x1,y1,x2,y2,x3,y3,...], [x1,y1,x2,y2,...]]}.
	Coordinates are scaled with respect to the source photo dimensions, so both
	x and y are in the range 0 to 1.

time_ms: amount of time the user spent (whether or not they were active)

time_active_ms: amount of time that the user was active in the current window

action_log: a JSON-encoded log of user actions

screen_width: user screen width

screen_height: user screen height

version: always "1.0"

feedback: omitted if there is no feedback; JSON encoded dictionary of the form:
{
	'thoughts': user's response to "What did you think of this task?",
	'understand': user's response to "What parts didn't you understand?",
	'other': user's response to "Any other feedback, improvements, or suggestions?"
}

Feedback survey

When the user finishes the task, a popup will ask for feedback. In the django version, disable this by setting ask_for_feedback to 'false' in the file example_project/segmentation/vies.py. In the non-django verfsion, update the window.ask_for_feedback variable in index.html.

I recommend asking for feedback after the 2nd or 3rd time a user has submitted, not the first time, and then not asking again (otherwise it gets annoying). Users usually don't have feedback until they have been working for a little while.

Compiling from coffeescript

The javascript for the tool is automatically compiled from coffeescript files by django-compressor and accessed by the client at a url of the form /static/cache/js/*.js. This is set up already if using django.

If not using django, the python-run-demo.sh does this for you by manually compiling coffeescript files and storing them in the /static/ folder.

Browser compatibility

This UI works in Chrome and Firefox only. The Django version includes a browser check that shows an error page if the user is not on Chrome or Firefox or is on a mobile device.

Local /static/ folder

After you run the demo setup, the directory /static/ will contain compiled css and javascript files.

If you are usikng django and change any part of the static files (js, css, images, coffeescript), you will need to repopulate the static folder with this command:

example_project/manage.py collectstatic --noinput

If you are building on top of this repository:

In example_project/settings.py:

  1. Change SECRET_KEY to some random string.
  2. Fill in the rest of the values (admin name, database, etc).

If you want to add this demo to your own (separate) Django project:

In your settings.py file, make the following changes:

  1. Make sure STATIC_ROOT is set to an absolute writable path.

  2. Add this to the STATICFILES_FINDERS tuple:

	'compressor.finders.CompressorFinder',
  1. Add this to the INSTALLED_APPS tuple:
	'django.contrib.humanize',
	'compressor',
	'segmentation',
  1. Add this to settings.py (e.g. at the end):
	# Django Compressor
	COMPRESS_ENABLED = True
	COMPRESS_OUTPUT_DIR = 'cache'
	COMPRESS_PRECOMPILERS = (
		('text/coffeescript', 'coffee --bare --compile --stdio'),
		('text/less', 'lessc -x {infile} {outfile}'),
	)
Owner
Sean Bell
CEO and Co-Founder, GrokStyle Inc. PhD, Cornell University
Sean Bell
Implementation for Stankevičiūtė et al. "Conformal time-series forecasting", NeurIPS 2021.

Conformal time-series forecasting Implementation for Stankevičiūtė et al. "Conformal time-series forecasting", NeurIPS 2021. If you use our code in yo

Kamilė Stankevičiūtė 36 Nov 21, 2022
Marine debris detection with commercial satellite imagery and deep learning.

Marine debris detection with commercial satellite imagery and deep learning. Floating marine debris is a global pollution problem which threatens mari

Inter Agency Implementation and Advanced Concepts 56 Dec 16, 2022
Quantized tflite models for ailia TFLite Runtime

ailia-models-tflite Quantized tflite models for ailia TFLite Runtime About ailia TFLite Runtime ailia TF Lite Runtime is a TensorFlow Lite compatible

ax Inc. 13 Dec 23, 2022
This project provides the proof of the uniqueness of the equilibrium and the global asymptotic stability.

Delayed-cellular-neural-network This project provides the proof of the uniqueness of the equilibrium and the global asymptotic stability. There is als

4 Apr 28, 2022
Populating 3D Scenes by Learning Human-Scene Interaction https://posa.is.tue.mpg.de/

Populating 3D Scenes by Learning Human-Scene Interaction [Project Page] [Paper] License Software Copyright License for non-commercial scientific resea

Mohamed Hassan 81 Nov 08, 2022
Official implementation for "Style Transformer for Image Inversion and Editing" (CVPR 2022)

Style Transformer for Image Inversion and Editing (CVPR2022) https://arxiv.org/abs/2203.07932 Existing GAN inversion methods fail to provide latent co

Xueqi Hu 153 Dec 02, 2022
Similarity-based Gray-box Adversarial Attack Against Deep Face Recognition

Similarity-based Gray-box Adversarial Attack Against Deep Face Recognition Introduction Run attack: SGADV.py Objective function: foolbox/attacks/gradi

1 Jul 18, 2022
Sequence Modeling with Structured State Spaces

Structured State Spaces for Sequence Modeling This repository provides implementations and experiments for the following papers. S4 Efficiently Modeli

HazyResearch 896 Jan 01, 2023
Dynamic Slimmable Network (CVPR 2021, Oral)

Dynamic Slimmable Network (DS-Net) This repository contains PyTorch code of our paper: Dynamic Slimmable Network (CVPR 2021 Oral). Architecture of DS-

Changlin Li 197 Dec 09, 2022
Code for paper "Do Language Models Have Beliefs? Methods for Detecting, Updating, and Visualizing Model Beliefs"

This is the codebase for the paper: Do Language Models Have Beliefs? Methods for Detecting, Updating, and Visualizing Model Beliefs Directory Structur

Peter Hase 19 Aug 21, 2022
DiAne is a smart fuzzer for IoT devices

Diane Diane is a fuzzer for IoT devices. Diane works by identifying fuzzing triggers in the IoT companion apps to produce valid yet under-constrained

seclab 28 Jan 04, 2023
Per-Pixel Classification is Not All You Need for Semantic Segmentation

MaskFormer: Per-Pixel Classification is Not All You Need for Semantic Segmentation Bowen Cheng, Alexander G. Schwing, Alexander Kirillov [arXiv] [Proj

Facebook Research 1k Jan 08, 2023
Mmrotate - OpenMMLab Rotated Object Detection Benchmark

OpenMMLab website HOT OpenMMLab platform TRY IT OUT 📘 Documentation | 🛠️ Insta

OpenMMLab 1.2k Jan 04, 2023
(CVPR2021) Kaleido-BERT: Vision-Language Pre-training on Fashion Domain

Kaleido-BERT: Vision-Language Pre-training on Fashion Domain Mingchen Zhuge*, Dehong Gao*, Deng-Ping Fan#, Linbo Jin, Ben Chen, Haoming Zhou, Minghui

250 Jan 08, 2023
MARS: Learning Modality-Agnostic Representation for Scalable Cross-media Retrieva

Introduction This is the source code of our TCSVT 2021 paper "MARS: Learning Modality-Agnostic Representation for Scalable Cross-media Retrieval". Ple

7 Aug 24, 2022
ICLR 2021, Fair Mixup: Fairness via Interpolation

Fair Mixup: Fairness via Interpolation Training classifiers under fairness constraints such as group fairness, regularizes the disparities of predicti

Ching-Yao Chuang 49 Nov 22, 2022
Official Implementation of "Transformers Can Do Bayesian Inference"

Official Code for the Paper "Transformers Can Do Bayesian Inference" We train Transformers to do Bayesian Prediction on novel datasets for a large var

AutoML-Freiburg-Hannover 103 Dec 25, 2022
Second-Order Neural ODE Optimizer, NeurIPS 2021 spotlight

Second-order Neural ODE Optimizer (NeurIPS 2021 Spotlight) [arXiv] ✔️ faster convergence in wall-clock time | ✔️ O(1) memory cost | ✔️ better test-tim

Guan-Horng Liu 39 Oct 22, 2022
VOLO: Vision Outlooker for Visual Recognition

VOLO: Vision Outlooker for Visual Recognition, arxiv This is a PyTorch implementation of our paper. We present Vision Outlooker (VOLO). We show that o

Sea AI Lab 876 Dec 09, 2022
A real-time approach for mapping all human pixels of 2D RGB images to a 3D surface-based model of the body

DensePose: Dense Human Pose Estimation In The Wild Rıza Alp Güler, Natalia Neverova, Iasonas Kokkinos [densepose.org] [arXiv] [BibTeX] Dense human pos

Meta Research 6.4k Jan 01, 2023