OpenCV - бібліотека для розпізнавання об’єктів у зображеннях та камерах

openCV

OpenCV це безкоштовна бібліотека міжплатформеного машинного бачення (існуючі версії для GNU / Linux, Mac OS X, Windows та Android), яка була спочатку розроблений Intel і використовується в незліченних додаткахвід систем безпеки з виявленням руху до обробки програм управління, де потрібне розпізнавання об’єктів. Це пов’язано з тим, що його публікація видається за ліцензією BSD, що дозволяє її вільно використовувати в комерційних та дослідницьких цілях з умовами, висловленими в ній.

Відкрите резюме містить більше 500 функцій, що охоплюють широкий спектр областей у процесі зору, такі як розпізнавання об'єктів (розпізнавання обличчя), калібрування камери, стерео зор, роботизований зір, класифікація дій у відео, перетворення зображень, витяг 3D-моделей, створення 3D-простору із зображення стерео-камери, створення зображень високої якості за рахунок поєднання зображень низької якості.

Тамбієн пропонує можливість пошуку зображень подібних об’єктів до набору елементів, представлених шляхом застосування методів машинного навчання, упорядкування маркерів, виявлення загальних елементів на різних зображеннях, автоматичне усунення таких дефектів, як червоні очі.

OpenCV забезпечує понад 2500 алгоритмів, як класичний, так і відображає останні досягнення в галузі комп'ютерного зору та систем машинного навчання. Бібліотечний код написаний на C ++ і поширюється за ліцензією BSD.

Про нову версію OpenCV 4.2

Зараз бібліотека знаходиться у своїй версії OpenCV 4.2, в якій в модулі DNN (Глибока нейронна мережа) з реалізацією алгоритмів машинного навчання на основі нейронних мереж, додав бекенд для використання CUDA та була реалізована експериментальна підтримка API nGraph OpenVINO.

Окрім використання інструкцій SIMD, ми оптимізуємо продуктивність коду для стереовиходу (StereoBM / StereoSGBM), змінюємо розмір, маскуємо, обертаємо, обчислюємо відсутні кольорові компоненти та багато інших операцій.

У модулі G-API (opencv_gapi), який виконує роль двигуна для обробки ефективна візуалізація з використанням графічних алгоритмів, підтримує більш складні гібридні алгоритми для комп'ютерного зору та глибокого машинного навчання. Забезпечує підтримку Intel Inference Engine. Додана підтримка обробки відеопотоку до моделі виконання.

Також були виправлені уразливості (CVE-2019-5063, CVE-2019-5064), які могли призвести до виконання атакувального коду шляхом обробки неперевірених даних у форматах XML, YAML та JSON. Якщо під час синтаксичного аналізу JSON знайдений символ із нульовим кодом, все значення копіюється в буфер, але без належної перевірки меж виділеної області пам'яті.

З інших змін представлені в цій новій версії:

  • Додана багатопотокова реалізація функції pyrDown.
  • Додана можливість витягувати відеопотоки з мультимедійних контейнерів (демультиплікація) за допомогою бекенду відео на основі FFmpeg.
  • Додано алгоритм швидкої селективної реконструкції пошкоджених зображень FSR (Frequency Selective Reconstruction).
  • Доданий метод RIC для інтерполяції типових порожніх областей.
  • Додано метод нормалізації відхилення LOGOS.

Як встановити OpenCV 4.2?

Для тих, хто зацікавлений у можливості встановити цю бібліотеку, можна отримати нову версію а також проконсультуватися з інформацією, пов’язаною з використанням, і навіть знайти підручники на його офіційному веб-сайті.

Посилання це.

У цій статті Ми надамо кроки для реалізації бібліотеки на Raspberry pi.

Щоб встановити OpenCV на Raspberry Pя повинен мати вашу систему, яка є Raspbian.

З vМи збираємося відкрити термінал і в ньому ми набираємо текст наступні команди для встановлення залежностей, інструментів розробника, пакетів зображень серед інших додаткових бібліотек:

sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libfontconfig1-dev libcairo2-dev libgdk-pixbuf2.0-dev libpango1.0-dev libgtk2.0-dev libgtk-3-dev libatlas-base-dev gfortran libhdf5-dev libhdf5-serial-dev libhdf5-103 libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5

Нарешті, Давайте встановимо заголовкові файли Python 3 щоб ми могли скомпілювати OpenCV:

sudo apt-get install python3-dev

Зараз давайте створимо середовище Python за допомогою таких команд, щоб мати ізольований сайт:

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py
sudo rm -rf ~/.cache/pip

Ми збираємось встановити virtualenv та virtualenvwrapper:

sudo pip install virtualenv virtualenvwrapper
nano ~/.bashrc

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv cv -p python3
pip install "picamera[array]"

Зробив це зараз ми збираємося скомпілювати openCV з:

cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.2.0 opencv
mv opencv_contrib-4.2.0 opencv_contrib

Тепер ми збираємося збільшити обмін в нашій системі, оскільки якщо залишити його таким, яким він є за замовчуванням, система може зависнути:

sudo nano /etc/dphys-swapfile

І ми збираємося відредагувати змінну CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Зберігаємо та закриваємо за допомогою ctrl + o та ctrl + x. Потім набираємо:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

Тепер ми продовжимо компіляцію:

workon cv
pip install numpy
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D CMAKE_SHARED_LINKER_FLAGS=-latomic \
-D BUILD_EXAMPLES=OFF ..
make -j4
sudo make install
sudo ldconfig
cd /usr/local/lib/python3.7/site-packages/cv2/python-3.7
sudo mv cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so
cd ~/.virtualenvs/cv/lib/python3.7/site-packages/
ln -s /usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.so cv2.so

І готовий.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.