Fix GLib-GIO-Message: Using the 'memory' GSettings backend.

Option 1: Add env variable to .bashrc

export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/

Option 2: rename gsettings

$ which gsettings
~/anaconda3/bin/gsettings

$ ll ~/anaconda3/bin/gsettings
-rwxrwxr-x 1 user user 35944 1 23:18 ~/anaconda3/bin/gsettings*

# rename it
$ cd ~/anaconda3/bin
$ mv gsettings gsettings_old

References

Build OpenCV 3.4.1 with CUDA 9.0 support

Environment

  • Ubuntu 16.04
  • Anaconda 4.5.4
  • CUDA 9.0
  • OpenCV 3.4.1
  • Python 3.6
  • Git
  • GeForce GTX 1070 Ti (Pascal GPU)

Prerequisites

  • Python environment (anaconda/conda)
  • CUDA 9.0 libraries installed

Install dependencies

Step 1: Update/Upgrade pre-installed packages

$ sudo apt-get update
$ sudo apt-get upgrade

Step 2: Install developer tools used to compile OpenCV 3.x

$ sudo apt-get install build-essential cmake pkg-config

Step 3: Install libraries and packages used to read various image formats from disk

$ sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev libtbb2 libtbb-dev

Step 4: Install a few libraries used to read video formats from disk.

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev

Step 5: Install GTK to use OpenCV’s GUI features

$ sudo apt-get install libgtk-3-dev

Step 6: Install packages that are used to optimize various functions inside OpenCV, such as matrix operations

$ sudo apt-get install libatlas-base-dev gfortran

Step 7: Clone opencv with 3.4.1 from GitHub. Make sure you have git installed.

$ OPENCV_VERSION=3.4.1
$ git clone https://github.com/opencv/opencv.git
$ cd opencv
$ git checkout -b v${OPENCV_VERSION} ${OPENCV_VERSION}
$ git merge ec0bb66
$ git cherry-pick 549b5df
$ cd ..

Step 8: Clone opencv_contrib from GitHub.

$ git clone https://github.com/opencv/opencv_contrib.git
$ cd opencv_contrib
$ git checkout v${OPENCV_VERSION} ${OPENCV_VERSION}
$ cd ..

Step 9: Now set up the build.

$ cd opencv
$ mkdir build
$ cd build

Step 10: Run CMAKE command with appropriate options

In my case, I used GTX 1070 Ti (a Pascal GPU). Replace CUDA_GENERATION with a proper one. CUDA_GENERATION is used for specification of Auto, Fermi, Pascal, Maxwell or Volta, etc. and limits the code generation only for specific architecture.
 cmake -D CMAKE_BUILD_TYPE=RELEASE \
       -D CMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)") \
       -D BUILD_EXAMPLES=ON \
       -D BUILD_opencv_python2=OFF \
       -D INSTALL_C_EXAMPLES=OFF \
       -D INSTALL_PYTHON_EXAMPLES=ON \
       -D ENABLE_FAST_MATH=ON \
       -D CUDA_FAST_MATH=ON \
       -D CUDA_GENERATION=Pascal \
       -D WITH_FFMPEG=1 \
       -D WITH_CUDA=ON \
       -D WITH_CUBLAS=1 \
       -D WITH_OPENGL=ON \
       -D WITH_TBB=ON \
       -D WITH_LAPACK=OFF \
       -D OPENCV_EXTRA_MODULES_PATH="../../opencv_contrib/modules" \
       -D PYTHON3_EXECUTABLE=$(which python) \
       -D PYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
       -D PYTHON3_LIBRARY=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")/../../libpython3.6m.so \
       -D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
       -D PYTHON3_NUMPY_INCLUDE_DIRS=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")/numpy/core/include ..

Step 11: Make the build now.

$ make -j $(nproc)

Step 12: Install OpenCV

$ sudo make install

Step 13: Verify OpenCV

To access OpenCV from Python under Anaconda environment, the directory site-packages contains shared object cv2.cpython-36m-x86_64-linux-gnu.so after successful installation.
$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.getBuildInformation())
...
...
  NVIDIA CUDA:                   YES (ver 9.0, CUFFT CUBLAS FAST_MATH)
    NVIDIA GPU arch:             60 61
    NVIDIA PTX archs:
...

Step 14: Add environment variables to .bashrc

$ cd $(python -c "import sys; print(sys.prefix)") && pwd
/home/chunming/anaconda3

# find cv2.cpython-36m-x86_64-linux-gnu.so
$ find . -iname cv2.cpython-36m-x86_64-linux-gnu.so
./lib/python3.6/site-packages/cv2.cpython-36m-x86_64-linux-gnu.so
Now we found that cv2.cpython-36m-x86_64-linux-gnu.so is under the path /home/chunming/anaconda3/lib/python3.6/site-packages and add it to .bashrc
export PYTHONPATH=$PYTHONPATH:/home/chunming/anaconda3/lib/python3.6/site-packages
export LD_LIBRARY_PATH="/home/chunming/anaconda3/lib:$LD_LIBRARY_PATH"

Uninstall OpenCV (optional)

$ sudo make uninstall

References