Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sadeepj/crfasrnn_keras
CRF-RNN Keras/Tensorflow version
https://github.com/sadeepj/crfasrnn_keras
crf-as-rnn crf-rnn-keras crf-rnn-tensorflow crfasrnn crfasrnn-keras crfasrnn-tensorflow image-segmentation keras semantic-segmentation tensorflow
Last synced: 2 months ago
JSON representation
CRF-RNN Keras/Tensorflow version
- Host: GitHub
- URL: https://github.com/sadeepj/crfasrnn_keras
- Owner: sadeepj
- License: mit
- Created: 2017-07-28T19:30:24.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-10-17T19:08:01.000Z (about 3 years ago)
- Last Synced: 2024-07-31T22:49:37.799Z (5 months ago)
- Topics: crf-as-rnn, crf-rnn-keras, crf-rnn-tensorflow, crfasrnn, crfasrnn-keras, crfasrnn-tensorflow, image-segmentation, keras, semantic-segmentation, tensorflow
- Language: Python
- Homepage: http://crfasrnn.torr.vision
- Size: 1000 KB
- Stars: 604
- Watchers: 27
- Forks: 170
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CRF-RNN for Semantic Image Segmentation - Keras/Tensorflow version
![sample](sample.png)Live demo: [http://crfasrnn.torr.vision](http://crfasrnn.torr.vision)
PyTorch version: [http://github.com/sadeepj/crfasrnn_pytorch](http://github.com/sadeepj/crfasrnn_pytorch)
Caffe version: [http://github.com/torrvision/crfasrnn](http://github.com/torrvision/crfasrnn)This repository contains Keras/Tensorflow code for the "CRF-RNN" semantic image segmentation method, published in the ICCV 2015 paper [Conditional Random Fields as Recurrent Neural Networks](http://www.robots.ox.ac.uk/~szheng/papers/CRFasRNN.pdf). The [online demo](http://crfasrnn.torr.vision) of this project won the Best Demo Prize at ICCV 2015. Results of this Keras/Tensorflow code are identical to that of the Caffe and PyTorch based versions above.
If you use this code/model for your research, please cite the following paper:
```
@inproceedings{crfasrnn_ICCV2015,
author = {Shuai Zheng and Sadeep Jayasumana and Bernardino Romera-Paredes and Vibhav Vineet and
Zhizhong Su and Dalong Du and Chang Huang and Philip H. S. Torr},
title = {Conditional Random Fields as Recurrent Neural Networks},
booktitle = {International Conference on Computer Vision (ICCV)},
year = {2015}
}
```## Installation Guide
### Step 1: Clone the repository
```
$ git clone https://github.com/sadeepj/crfasrnn_keras.git
```
The root directory of the clone will be referred to as `crfasrnn_keras` hereafter.### Step 2: Install dependencies
**Note**: If you are using a Python virtualenv, make sure it is activated before running each command in this guide.
Use the `requirements.txt` file (or `requirements_gpu.txt`, if you have a GPU device) in this repository to install all the dependencies via `pip`:
```
$ cd crfasrnn_keras
$ pip install -r requirements.txt # If you have a GPU device, use requirements_gpu.txt instead
```
As you can notice from the contents of `requirements.txt`, we only depend on `tensorflow`, `keras`, and `h5py`. Additionally, `Pillow` is required for running the demo.
After installing the dependencies, run the following commands to make sure they are properly installed:
```
$ python
>>> import tensorflow
>>> import keras
```
You should not see any errors while importing `tensorflow` and `keras` above.### Step 3: Build CRF-RNN custom op C++ code
Run `make` inside the `crfasrnn_keras/src/cpp` directory:
```
$ cd crfasrnn_keras/src/cpp
$ make
```
Note that the `python` command in the console should refer to the Python interpreter associated with your Tensorflow installation before running the `make` command above.You will get a new file named `high_dim_filter.so` from this build. If it fails, refer to the official Tensorflow guide for [building a custom op](https://www.tensorflow.org/extend/adding_an_op#build_the_op_library) for help.
**Note**: This make script works on Linux and macOS, but not on Windows OS. If you are on Windows, please check [this issue](https://github.com/tensorflow/models/issues/1103) and the comments therein for build instructions. The official Tensorflow guide for building a custom op does not yet include build instructions for Windows.
### Step 4: Download the pre-trained model weights
Download the model weights from [here](https://github.com/sadeepj/crfasrnn_keras/releases/download/v1.0/crfrnn_keras_model.h5) and place it in the `crfasrnn_keras` directory with the file name `crfrnn_keras_model.h5`.
### Step 5: Run the demo
```
$ cd crfasrnn_keras
$ python run_demo.py
```
If all goes well, you will see the segmentation results in a file named "labels.png".## Notes
1. Current implementation of the CrfRnnLayer only supports batch_size == 1
2. An experimental GPU version of the CrfRnnLayer that has been tested on CUDA 9 and Tensorflow 1.7 only, is available under the `gpu_support` branch. This code was contributed by [thwjoy](https://github.com/thwjoy).