-
Notifications
You must be signed in to change notification settings - Fork 6
opencv_contrib_noetic_install
OpenCV contrib является дополнительным модулем OpenCV, не входящий в версию библиотеки, которая включена в ROS. Однако эта часть содержит ряд полезных реализаций, в т.ч. детектирование при помощи ключевых точек (методы SIFT, SURF, ORB и д.р.).
Для установки данного модуля тем не менее приходится ставить заново всю OpenCV (во всяком случае я не нашел надежного способа сделать иначе). Для этого:
- Создаем директорию, куда будет помещены исходники
cd
mkdir Libs
cd Libs
- Скачиваем OpenCV и OpenCV contrib
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
- Выставляем в обоих репозиториях нужную нам версию, для ROS Noetic это 4.2.0
cd opencv_contrib
git checkout 4.2.0
cd ../opencv
git checkout 4.2.0
- Создаем папку для сборки
mkdir build
cd build
- Конфигурируем пакет. Следите за параметрами, 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 ..
- Если конфигурация прошла успешно, то собираем. Узнаем сколько доступно процессов
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
Затем для сборки 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
Не обращайте на них внимание.
- ROS-интерфейс
- Взаимодействие посредством конфигурационного файла
- Установка
- Руководства
- Проблемы
- Разработка