Skip to content

opencv_contrib_noetic_install

Moscowsky Anton edited this page Jan 16, 2021 · 5 revisions

Установка OpenCV contrib на ROS Noetic

OpenCV contrib является дополнительным модулем OpenCV, не входящий в версию библиотеки, которая включена в ROS. Однако эта часть содержит ряд полезных реализаций, в т.ч. детектирование при помощи ключевых точек (методы SIFT, SURF, ORB и д.р.).

1. Установка

Для установки данного модуля тем не менее приходится ставить заново всю OpenCV (во всяком случае я не нашел надежного способа сделать иначе). Для этого:

  1. Создаем директорию, куда будет помещены исходники
cd
mkdir Libs
cd Libs
  1. Скачиваем OpenCV и OpenCV contrib
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
  1. Выставляем в обоих репозиториях нужную нам версию, для ROS Noetic это 4.2.0
cd opencv_contrib
git checkout 4.2.0
cd ../opencv
git checkout 4.2.0
  1. Создаем папку для сборки
mkdir build
cd build
  1. Конфигурируем пакет. Следите за параметрами, OPENCV_EXTRA_MODULES_PATH должен содержать корректный путь до папки modules пакета opencv_contrib. Сборка с поддержкой CUDA (в разработке).
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D WITH_TBB=ON -D WITH_V4L=ON -D OPENCV_EXTRA_MODULES_PATH=~/Libs/opencv_contrib/modules -D OPENCV_ENABLE_NONFREE=ON -D WITH_CUDA=OFF -D BUILD_EXAMPLES=ON ..
  1. Если конфигурация прошла успешно, то собираем. Узнаем сколько доступно процессов
nproc

Собираем с указанием количества доступных процессов.

make -j<NUM PROC> 

Например

make -j4

Это достаточно длительная операция. По её окончанию выполняем завершающие шаги.

sudo make install
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

2. Настройка пакета

Затем для сборки Extended Object Detection с опорой на OpenCV contrib требуется в файле CMakeLists.txt, располагающемся в корне репозитория, заменить строчку

set(opencv_contrib OFF)

на

set(opencv_contrib ON)

И выполнить сборку проекта. Если проект уже до этого собирался, то возможно понадобится удалить собранные файлы. Самый надежный, но в то же время варварский способ сделать это - удалить папки build и devel вашего воркспейса и пересобрать его целиком.

Во время сборки могут появиться ворнинги такого типа

runtime library [libopencv_calib3d.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /usr/local/lib

Не обращайте на них внимание.

Clone this wiki locally