This repository offers an implementation of Sequential Gallery and a library for its core algorithm, sequential plane search. It is about a human-in-the-loop Bayesian optimization; see our SIGGRAPH 2020 paper for details.
This repository includes the followings.
sps
: a C++ library for the sequential-plane-search algorithm, which is an extension of preferential Bayesian optimization [Brochu+, NIPS 2007; Koyama+, SIGGRAPH 2017].sequential-gallery
: a desktop application combining the sequential-plane-search algorithm and a grid-view interface for achieving efficient human-in-the-loop visual design optimization.pysps
: Python bindings ofsps
.
Yuki Koyama, Issei Sato, and Masataka Goto. 2020. Sequential Gallery for Interactive Visual Design Optimization. ACM Trans. Graph. 39, 4 (July 2020), pp.88:1--88:12. DOI: https://doi.org/10.1145/3386569.3392444
The software is provided mainly for researchers who want to use or extend the method described in the above paper. We also expect that the software is useful for developers who plan to use the method in their software.
https://koyama.xyz/project/sequential_gallery/
Library (sps
):
- sequential-line-search https://github.com/yuki-koyama/sequential-line-search (git submodule)
- Eigen http://eigen.tuxfamily.org/ (
brew install eigen
/sudo apt install libeigen3-dev
) - mathtoolbox https://github.com/yuki-koyama/mathtoolbox (git submodule)
- timer https://github.com/yuki-koyama/timer (git submodule)
Application (sequential-gallery
):
- Qt5 http://doc.qt.io/qt-5/ (
brew install qt@5
/sudo apt install qt5-default
) - string-util https://github.com/yuki-koyama/string-util (git submodule)
- visoptslider https://github.com/yuki-koyama/visoptslider (git submodule)
- enhancer https://github.com/yuki-koyama/enhancer (git submodule)
Python bindings (pysps
):
- pybind11 https://github.com/pybind/pybind11 (git submodule)
Experiment:
- optimization-test-functions https://github.com/yuki-koyama/optimization-test-functions (git submodule)
Test:
- Google Test https://github.com/google/googletest (git submodule)
Eigen (3.x.x) and Qt (5.x.x) need to be installed beforehand.
macOS:
brew install eigen qt@5
Ubuntu 18.04:
sudo apt install libeigen3-dev qt5-default
git clone https://github.com/yuki-koyama/sequential-gallery.git --recursive
cd sequential-gallery
mkdir build
cd build
cmake ../
make
pysps
can be built and installed by the pip
command:
pip install git+https://github.com/yuki-koyama/sequential-gallery
Make sure that Eigen (and other necessary build tools) is installed on the system beforehand.
clang-format -i ./app/*.*pp ./exp/*.*pp ./test/*.*pp ./sps/**/*.*pp ./python-bindings/*.*pp
Copyright (c) 2021 National Institute of Advanced Industrial Science and Technology (AIST) - koyama.y@aist.go.jp
MIT License. See the LICENSE
file for details.
Pull requests are highly welcome. Please be aware that any contribution to this repository will be licensed under the above license condition.