This repository has been archived on 2019-09-17. You can view files and clone it, but cannot push or open issues or pull requests.
Files
research-project/README.md
2018-03-19 18:06:56 +01:00

91 lines
2.7 KiB
Markdown

# Functional MRI for Neural Networks
An attempt to create real-time in depth visualisation for neural
networks.
## Requirements
The following programs/libraries need to be installed on your system:
- CMake (at least 3.8)
- Caffe
- Google log (glog)
- OpenCV (at least 2.6, 3.x works fine.)
- Boost System
- PNG++
Note that most of these are dependencies of Caffe, and thus will
probably already be on your system. For OS-specific instructions, see
below.
### Arch Linux
1. Install either `caffe` or `caffe-cpu` from the AUR.
2. Install other dependencies:
- `png++`
- `cmake`
- `freeglut`
3. Do the build as normal
### Ubuntu
Caffe is available from the Ubuntu repositories from version 17.10
(Artful Aardvark) onwards, and can be used to simplify the installation
process. The commands required are as follows:
# Install dependencies
sudo apt install libcaffe-cpu-dev freeglut3-dev libpng++-dev \
build-essential cmake libopencv-dev libboost-system-dev \
libgoogle-glog-dev libblas-dev libprotobuf-dev
# Do the build normally
Older versions of Ubuntu need some help, as the `caffe` package does not
exist, and the supplied `cmake` version is too old.
1. First, install a recent version of [cmake](https://cmake.org/). Any
version from 3.8 onwards will do.
2. Then, install caffe from source. Installation instructions can be
found [on the Caffe
website](http://caffe.berkeleyvision.org/install_apt.html). Be sure
to also install the development headers.
3. Run the build as normal.
## Building
The build process is based on CMake. This means you can easily create a
build as follows. Starting from the project root:
mkdir build && cd build
cmake ..
make
Compilation is a little slow due to the inclusion of Boost.
## Usage
This program can operate on most Caffe models, provided they don't
split/merge the input, since the visualisers cannot handle more than
one input.
There is one valid model provided, Caffenet. It can be downloaded by
running `./download-models.sh` from the data folder.
After that, you can, for example, run the program as follows
(assuming you are in the build directory)
./fmri -n ../data/models/caffenet/model-dedup.prototxt \
-w ../data/models/caffenet/bvlc_reference_caffenet.caffemodel \
-l ../data/ilsvrc12/synset_words.txt \
../data/samples/*.jpg
This will run the network on the deduplicated caffenet (see: limitations)
with the correct weights file and the labels file supplied, on all jpegs
located in the samples folder. More advanced usage can be discovered using
the `-h` option of the executable.
### Controls
You can move around with the WASD keys, and look around using the mouse.
Arrow keys change the currently loaded input.