HCA is a temporally evolving model to intelligently detect salient objects. This package contains the source codes to reproduce the experimental results of HCA. The source code is mainly written in MATLAB.
Our paper "Hierarchical Cellular Automata for Visual Saliency" has been accepted for publication in Iternational Journal of Computer Vision (IJCV), 2018. [Online-Version]
This code is released under the MIT License (refer to the LICENSE file for details).
- Requirements: software
- Requirements: hardware
- Basic installation
- Demo
- Pre-computed saliency maps
- Visual comparison with state-of-the-art methods
-
Requirements for
MatConvNet
(see: MatConvNet installation instruction). -
MATLAB.
-
[optional] CUDA (we use CPU to compute FCN features, if you want to use GPU, please compile
MatConvNet
with CUDA enabled). -
Supported OS: the source code was tested on 64-bit Windows OS, it used SLIC to pre-process the images into super-pixels. Here we used the mex file in Windows OS, so the HCA code may not worked on Linux OS for now.
If you compile MatConvNet
with CUDA supported, a GPU with at least 3G of memory suffices.
- Clone the HCA repository
git clone https://github.com/ArcherFMY/HCA_saliency_codes.git
-
cd to the root directory of HCA (we will call the directory
HCA_ROOT
), use MATLAB to runcompile_matconvnet.m
. -
Download the pre-trained FCN-32s models from here. Then put it under
$HCA_ROOT/matconvnet-1.0-beta19/Data/
folder with namepascal-fcn32s-dag.mat
.
Here we just compiled the MatConvNet
with CPU. Users could compile with GPU supported yourself.
To run the demo, simply run $HCA_ROOT/runme.m
with MATLAB. Saliency maps will be saved in $HCA_ROOT/saliencmaps/
folder.
We provided pre-computed saliency maps for convenience.
Included Datasets: ECSSD
, HKU-IS
, DUT-OMRON
, PASCAL-S
and MSRA5000
.
Q: Error when running extract_fcn_im_features
at line(23)
A: We modified the matconvnet-1.0-beta19/matlab/+dagnn/@DagNN/eval.m
to allow users to extract features from every layers (conv, pool, relu). So if you are using your own matconvnet
, please modify the corresponding .m
file as we did.