All Projects → escorciav → roi_pooling

escorciav / roi_pooling

Licence: other
ROIPooling for pytorch

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to roi pooling

Softmax Splatting
an implementation of softmax splatting for differentiable forward warping using PyTorch
Stars: ✭ 218 (+336%)
Mutual labels:  cupy
tukaan
A modern, cross platform Python toolkit for creating desktop GUI applications. Contributors are welcome!
Stars: ✭ 97 (+94%)
Mutual labels:  python37
pypackage
Cookiecutter python package using Poetry, mypy, black, isort, autoflake, pytest, mkdocs, and GitHub Actions
Stars: ✭ 12 (-76%)
Mutual labels:  python37
conda-env-builder
Build and maintain multiple custom conda environments all in once place.
Stars: ✭ 18 (-64%)
Mutual labels:  conda-environment
pavlova
A python deserialisation library built on top of dataclasses
Stars: ✭ 32 (-36%)
Mutual labels:  python37
camunda-external-task-client-python3
Camunda External Task Client in Python
Stars: ✭ 43 (-14%)
Mutual labels:  python37
Spanet
Spatial Attentive Single-Image Deraining with a High Quality Real Rain Dataset (CVPR'19)
Stars: ✭ 136 (+172%)
Mutual labels:  cupy
mutatest
Python mutation testing: test your tests! Safely run mutation trials without source code modifications and see what will get past your test suite.
Stars: ✭ 50 (+0%)
Mutual labels:  python37
Pycraft
Pycraft is the OpenGL, open world, video game made entirely with Python. This project is a game to shed some light on OpenGL programming in Python as it is a seldom touched area of Python's vast amount of uses. Feel free to give this project a run, and message us if you have any feedback!
Stars: ✭ 39 (-22%)
Mutual labels:  python37
PyShop
PyShop is an online Python Ecommerce website built with Django, SQLite and Bootstrap. A simple and lightweight ecommerce app easily deployable anywhere anytime with modules developed upon the inbuilt django admin.
Stars: ✭ 17 (-66%)
Mutual labels:  python37
Blazingsql
BlazingSQL is a lightweight, GPU accelerated, SQL engine for Python. Built on RAPIDS cuDF.
Stars: ✭ 1,652 (+3204%)
Mutual labels:  conda-environment
Phase-based-Frame-Interpolation
Frame interpolation
Stars: ✭ 28 (-44%)
Mutual labels:  cupy
RoIAlign-RoIPool-pytorch
C++ extension implementation of RoIAlign & RolPool (both GPU and CPU) for PyTorch
Stars: ✭ 69 (+38%)
Mutual labels:  roipooling
Einops
Deep learning operations reinvented (for pytorch, tensorflow, jax and others)
Stars: ✭ 4,022 (+7944%)
Mutual labels:  cupy
aioredis-cluster
Redis Cluster support extension for aioredis
Stars: ✭ 21 (-58%)
Mutual labels:  python37
Mobulaop
A Simple & Flexible Cross Framework Operators Toolkit
Stars: ✭ 161 (+222%)
Mutual labels:  cupy
docker-cgi-python
🐳Docker file for cgi using python2.7, 3.6, 3.7, 3.8, 3.9 and 3.10🐍
Stars: ✭ 13 (-74%)
Mutual labels:  python37
fastuuid
FastUUID is a library which provides CPython bindings to Rust's UUID library
Stars: ✭ 83 (+66%)
Mutual labels:  python37
prisma-client-py
Prisma Client Python is an auto-generated and fully type-safe database client designed for ease of use
Stars: ✭ 739 (+1378%)
Mutual labels:  python37
flake8-annotations
Flake8 Type Annotation Checking
Stars: ✭ 117 (+134%)
Mutual labels:  python37

Pytorch ROIPooling

Welcome!

This is a generic implementation of ROIpooling operation used in the context of object detection.

Feats

  • Modularized

  • JIT compilation with cupy

  • Works well with batches of images 😉

Getting started

We need the following requirements cuda, pytorch==1.0.1, cupy=5.1.0 which we can get most of them from anaconda.org with trusted channels.

  1. Install anaconda or miniconda.

    Skip this if you already have miniconda or anaconda installed in your system.

  2. Create a new environment

    conda create -n pytorch-extensions python=3.7 pytorch cupy -c pytorch

    This step creates a conda environment called pytorch-extensions. In case, you change the name keep it mind to update the next lines accordingly.

  3. conda activate pytorch-extensions

  4. python example.py

    Hopefully everything runs like the breeze.

Can I use it in Colab?

Sure, take a look at this notebook. It provides a guide for the setup and usage of the roi_pooling Function.

LICENSE

MIT

We highly appreciate that you leave attribution notes when you copy portions of this codebase in yours.

Did you like it?

Support me, gimme a in the github banner or invite me a /🍺. If you are in academia, I would appreciate that you cite my research:

@article{EscorciaDJGS18,
  author    = {Victor Escorcia and
               Cuong Duc Dao and
               Mihir Jain and
               Bernard Ghanem and
               Cees Snoek},
  title     = {Guess Where? Actor-Supervision for Spatiotemporal Action Localization},
  journal   = {CoRR},
  volume    = {abs/1804.01824},
  year      = {2018},
  url       = {http://arxiv.org/abs/1804.01824},
  archivePrefix = {arXiv},
  eprint    = {1804.01824}
}

This implementation was built on top of the legendary Faster-RCNN which you must cite:

@article{RenHG017,
  author    = {Shaoqing Ren and
               Kaiming He and
               Ross B. Girshick and
               Jian Sun},
  title     = {Faster {R-CNN:} Towards Real-Time Object Detection with Region Proposal
               Networks},
  journal   = {{IEEE} Trans. Pattern Anal. Mach. Intell.},
  volume    = {39},
  number    = {6},
  pages     = {1137--1149},
  year      = {2017},
  url       = {https://doi.org/10.1109/TPAMI.2016.2577031},
  doi       = {10.1109/TPAMI.2016.2577031}
}

This was also possible due to Chainer, and the easy to follow pyinn.

FAQs

Do I need to buy an anaconda license?

Of course not! You do everything with virtual environments. Indeed, I would be pleased to accept a PR with a recipe for virtual environments.

Why anaconda?

In short, due to the last five letters.

Why another ROIpooling operation?

Well, I tried many C extensions mainly taken from this repo but those did not fit my purpose of ROIPooling over batches of images.

Why?

You can clearly see here that when the batch size is greater than 1, the output is zero.

Does that mean that they are useless?

Of course not! I noticed that FastRCNN uses a batch size of 1. Probably, they did not mind to make it more general implementation.

Why didn't you remove the conditional?

I tried in one of the repos but it fails. I even removed all the binaries and compiled again but it still returned zeros. Thus, I just moved on and pursue my personal reason:

I was really curious of launching cupy kernels using data from pytorch tensors. It is simply amazing. Moreover, it was a great experience to explore CUDA and pytorch.autograd.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].