OpenCV クロスプラットフォームマシンビジョンの無料ライブラリです (GNU / Linux、Mac OS X、Windows、Androidの既存のバージョン)元々は Intelによって開発され、無数のアプリケーションで使用されています、モーション検出を備えたセキュリティシステムから、オブジェクト認識が必要なプロセス制御アプリケーションまで。 これは、その出版物がBSDライセンスの下で提供されており、そこに記載されている条件で商業目的および研究目的で自由に使用できるためです。
CVを開く 視覚プロセスの幅広い領域をカバーする500以上の機能が含まれています。 オブジェクト認識(顔認識)、カメラキャリブレーション、ステレオビジョン、ロボットビジョン、ビデオでのアクションの分類、画像の変換、3Dモデルの抽出、ステレオカメラ画像からの3D空間の作成など、低品質の画像を組み合わせて高品質の画像を作成します。
また 類似したオブジェクトの画像を検索する機能を提供します 機械学習手法を適用し、マーカーを整理し、さまざまな画像の共通要素を識別し、赤目などの欠陥を自動的に排除することによって提示される要素のセットに。
OpenCVは2500以上のアルゴリズムを提供し、 コンピュータビジョンと機械学習システムの分野における古典的で最新の成果を反映しています。 ライブラリコードはC ++で記述されており、BSDライセンスの下で配布されています。
新しいバージョンのOpenCV4.2について
今 ライブラリはOpenCV4.2バージョンにあります、 その中で DNNモジュール内 (ディープニューラルネットワーク)ニューラルネットワークに基づく機械学習アルゴリズムの実装により、 CUDAを使用するためのバックエンドを追加しました nGraph OpenVINOAPIの実験的サポートが実装されました。
SIMD命令の使用に加えて、ステレオ出力(StereoBM / StereoSGBM)、サイズ変更、マスク、回転、欠落している色成分の計算、およびその他の多くの操作のコードパフォーマンスを最適化します。
G-APIモジュール内 (opencv_gapi)、 処理のエンジンとして機能します グラフィックベースのアルゴリズムを使用した効率的なイメージングは、コンピュータービジョンとディープマシンラーニングのためのより複雑なハイブリッドアルゴリズムをサポートします。 Intel推論エンジンのサポートを提供します。 実行モデルにビデオストリーム処理のサポートが追加されました。
XML、YAML、JSON形式の未確認データを処理することで攻撃コードの実行につながる可能性のある脆弱性(CVE-2019-5063、CVE-2019-5064)も修正されました。 JSONの解析中にnullコードの文字が見つかった場合、値全体がバッファーにコピーされますが、割り当てられたメモリ領域の制限を適切に検証することはありません。
その他の変更点 この新しいバージョンで提示:
- pyrDown関数のマルチスレッド実装を追加しました。
- FFmpegベースのビデオバックエンドを使用してメディアコンテナからビデオストリームを抽出する(デマックス)機能が追加されました。
- 損傷したFSR(周波数選択的再構成)画像の高速周波数選択的再構成のためのアルゴリズムを追加しました。
- 典型的な空白領域の補間のためのRICメソッドを追加しました。
- LOGOS偏差正規化方法を追加しました。
OpenCV 4.2をインストールするにはどうすればいいですか?
このライブラリをインストールできることに興味がある人のために、 新しいバージョンを入手できます また、使用に関連する情報を参照し、公式Webサイトからチュートリアルを見つけることもできます。
記事上で Raspberrypiにライブラリを実装する手順を説明します。
RaspberryPにOpenCVをインストールするには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
最後に、 Python3ヘッダーファイルをインストールしましょう 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
そして準備ができました。