画像から有用な情報を抽出するには、画像に対してさまざまな操作を実行する必要があります。したがって、画像にさまざまなアルゴリズムを適用して目的の出力を取得するこのプロセスは、 画像処理 。入力の画像がぼやけて、そこからデータを取得したい場合があります。例えば。強盗が自転車や車を奪いに来るとき、彼らはほとんど自転車に乗って来て、頭上のカメラが事件の映像をキャプチャする道路に設置されます。強盗が来る車両の登録番号を知る必要があり、画像処理のいくつかのアルゴリズムを使用して簡単に行うことができます。特定の画像に対して画像処理を実行するには、使用しているハードウェアにいくつかのライブラリをインストールする必要があります。それらのライブラリの中で最も重要なのは OpenCV。 OpenCVは、PCやマイクロプロセッサにもインストールできます。 Raspberry Piはマイクロプロセッサであり、さまざまな電子プロジェクトで使用されています。 Raspberry Piにオペレーティングシステムをインストールした後、さまざまな画像処理タスクを実行できます。 Raspberry PiにOpenCVをインストールすることは、時間のかかる多忙な作業です。この記事では、Raspberry PiにOpenCVをインストールして、さまざまな画像処理操作を実行する方法を学習します。
RaspberryPiにインストールされたOpenCVによる顔検出
Raspberry PiをセットアップしてOpenCVを構成する方法は?
それでは、Piのセットアップと、OpenCVをインストールするためのステップバイステップで説明した操作の実行に移りましょう。 PiへのOpenCVのインストールは時間のかかるプロセスであり、完了するまでに約4時間かかります。時間が足りない場合は、インストールを開始しないでください。空き時間になったら、このチュートリアルを参照してください。これと一緒にそれが回されたときにPiは加熱されます オン 長時間の作業を行いますので、作業中は涼しい場所に保管してください。
ステップ1:使用するコンポーネント
- ラズベリーパイ3B +キット
- HDMIポート付きテレビ
- HDMIケーブル
- 有線コンピュータマウス
ステップ2:ラズベリーパイモデルの選択
ラズベリーパイのいくつかのモデルが市場で入手可能です。ラズベリーパイゼロを除いて、どのモデルでも優先できます。これは、Piゼロでは、ネットワークのセットアップが非常に面倒な作業であるためです。 3A +、3B +、4などの最新モデルを購入できます。新しいRaspberryPi 3は、Raspberry PiFoundationがこれまでにリリースした中で最も速くて最も支配的なガジェットです。したがって、このプロジェクトでは、Raspberry Pi 3B +を使用します。
ラズベリーパイ3B +
ステップ3:周辺機器を接続する
Raspberry Piを選択したら、キーボードとマウスをRaspberryPiに接続します。それらを接続した後、HDMIケーブルを使用してPiをテレビに接続します。これらの接続を行った後、さらに先に進む準備ができています。
ステップ4:オペレーティングシステムの選択
まず、適切なオペレーティングシステムを搭載したSDカードが必要になります。 OSを選ぶとき、今日では、「従来の」ラズビアンから専用のメディア作業フレームワーク、さらにはWindows 10 IoTまで、さまざまな選択肢があります。多くのアプリケーションは必要ないため、メディアストリーミングアプリケーション用にできる限り中央処理装置(CPU)とランダムアクセスメモリ(RAM)を残す必要があります。 1つの問題は、Linuxの知識が豊富な人にはArchLinuxが推奨されることです。それらは非常に最前線であり、サードパーティのアプリケーションやライブラリを導入する際に問題が発生し続けることになります。したがって、これがホームシアターの最初の設立である場合は、選択することをお勧めします ラズビアンライト 。これはコマンドライン駆動型であり、「ヘッドレス」モードで実行し続けるように設計されています。つまり、コンソールや画面を必要とせずに、システムを介して完全にリモートでアクセスできます。
ラズビアンライト
ステップ5:ラズベリーパイが最新であることを確認する
Piのソースを最新の状態に保ちます。そうしないと、古いソフトウェアがいくつかの問題を引き起こします。 PiでVirtualNetwork Computing(VNC)ビューアを有効にしてから、RaspberryPiをVNCビューアに接続します。 VNCをダウンロードしてPiに接続するためのリンクを以下に示します。
VNCビューア
ここで、ターミナルを開き、次のコマンドを実行します。
sudo apt-get update
次に、
sudoapt-アップグレードを取得
多数のパッケージがインストールされ、求められた場合はプレス そして その後 入る それらを正しくインストールします。
ステップ6:RaspberryPiにログインする
RaspberryPiのデフォルトのユーザー名は pi、 デフォルトのパスワードは ラズベリー。 これらはデフォルトのログイン詳細であり、最初のログイン時にこれらの詳細を使用してpiにログインします。これらの詳細はいつでも変更できます。
RaspberryPiにログインする
ステップ7:OpenCV用にRaspbianに十分なスペースを作成する
OpenCVは大きなメモリを取得するため、ファイルシステムを拡張し、すべてのスペースをメモリカードに割り当てる必要があります。ラズベリーのコマンドプロンプトに移動し、次のコマンドを入力します。
sudo raspi-config
ウィンドウが表示され、次のようになります。
構成ツール
次に、[詳細オプション]をクリックすると、[ファイルシステムの拡張]オプションが表示されます。そのオプションを選択します。
ファイルシステムを展開する
を押します 入る ボタンを押してから 終了 ボタン。この段階で、変更を有効にするには、RaspberryPiを再起動する必要があります。次のコマンドを入力して再起動します。
sudoリブート
再起動後、ファイルシステムが拡張され、すべてのスペースがSDカードに含まれているかどうかを確認します。実行することにより df -h コマンドは、ディスクが拡張されたことを確認できます。
8GBのマイクロSDカードを使用している方は、利用可能なスペースの50%を使用している可能性があるため、削除します Wolframエンジン そして LibreOffice 約1GBのスペースを解放できます。 (この手順はオプションであることに注意してください)。
須藤apt-取得する パージwolfram-エンジン 須藤apt-取得する パージlibreoffice* 須藤apt-取得する 掃除 須藤apt-取得する 自動削除
ステップ8:依存関係のインストール
依存関係に進む前に、Piにインストールされている既存のパッケージを更新およびアップグレードする必要があります。
sudo apt-get update
次に、
sudoapt-アップグレードを取得
ここで、OpenCVビルドの構成に役立ついくつかの開発ツールをインストールします。
須藤apt-取得する インストールビルド-エッセンシャルcmakepkg-設定
画像に対してさまざまな操作を実行するには、ハードドライブからいくつかの画像形式をロードする必要があります。これらの形式には、JPEG、PNGなどが含まれます。これらの画像形式をロードするために、いくつかのI / Oパッケージをインストールします。
須藤apt-取得するインストールlibjpeg-開発者libtiff5-開発者libjasper-開発者libpng12-開発者
これらのイメージI / Oパッケージに加えて、ビデオI / Oパッケージもインストールします。これらのビデオパッケージをインストールした後、さまざまなビデオファイル形式をロードできるようになります。
須藤apt-取得する インストールlibavcodec-開発者libavformat-開発者libswscale-開発者libv4l-開発者 須藤apt-取得する インストールlibxvidcore-開発者libx264-開発者
OpenCVライブラリには、という名前のサブモジュールが付属しています highgui これは、画面に画像を表示し、重要なGUIを製造するために使用されます。そのサブモジュールをコンパイルする前に、GTK開発ライブラリをインストールする必要があります。
須藤apt-取得する インストールlibgtk2。0-開発者libgtk-3-開発者
画像のサイズを確認してからピクセル値を読み取ることにより、画像に対していくつかの行列演算を実行できます。また、これらのピクセル値を2進形式に変換し、その2進数を変更して画像を再生成することもできます。ラズベリーパイでは、入力を提供するときにいくつかの制限があるため、これらのライブラリは重要であり、インストールする必要があります。したがって、これらの結果は、いくつかの追加の依存関係をインストールすることで改善できます。
須藤apt-取得する インストールリバトラス-ベース-開発者gfortran
Python 2.7で作業する人もいれば、Python 3で作業する人もいます。OpenCVとPythonバインディングをコンパイルするには、Python2.7とPython3のヘッダーファイルをインストールする必要があります。
須藤apt-取得する インストールpython2。7-開発者python3-開発者
新しいバージョンのRaspbianPython 3はすでにインストールされており、Lxターミナルに次のメッセージが表示される場合があります。 「Python3はすでに最新バージョンです」 。次の名前のヘッダーファイルに関してエラーが発生する可能性があるため、この手順は重要です。 Python.h コマンドの実行中 作る OpenCVをコンパイルします。
ステップ9:OpenCVソースコードをダウンロードする
依存関係のインストールが完了したら、OpenCVの公式ディレクトリからOpenCVバージョン3.3.0のアーカイブフォルダーを探します。
CD 〜 wget -または opencv.zip https://github.with/Itseez/opencv/アーカイブ/3.3.0.zip 解凍opencv.zip
OpenCVのパッケージ全体をインストールしているので、含める必要があります opencv_contrib 同様に。公式サイトからダウンロードして解凍してください。
wget -または opencv_contrib.zip https://github.with/Itseez/opencv_contrib/アーカイブ/3.3.0.zip 解凍opencv_contrib.zip
これらのディレクトリをダウンロードするときは、OpenCVのバージョンに注意してください。 そして opencv_contrib 同じである必要があります。つまり、3.3.0である必要があります。そうでない場合、インストール中にコンパイルエラーが発生します。
ステップ10:Python2.7またはPython3?
パフォーマンス面では、Python2.7はPython3よりも優れていますが、OpenCVでは大きな違いはありません。インストールする必要があります ピップ OpenCVをコンパイルする前にラズベリーで。これは、Pythonで使用されるソフトウェアパッケージをインストールするために使用されるパッケージ管理システムです。これらのパッケージはデフォルトで最新のラズビアンに存在する可能性がありますが、次のコマンドを使用して確認することをお勧めします。
wgethttps://ブートストラップ.pypa。私/取得する-ピップ.py 須藤Python取得する-ピップ.py 須藤python3取得する-ピップ.py
pipをインストールした後、2つのパッケージを強くお勧めします。これは、OpenCVでの作業中にインストールする必要があります。 1つ目はvirtualenvで、2つ目はvirtualenvwrapperです。 PythonでOpenCVを直接インポートすることはできないため、仮想環境を作成してから、その環境で作業します。仮想環境は、さまざまなプロジェクトに必要な条件を、プロジェクトごとに個別のPython環境を作成することにより、個別の場所に維持するために使用される優れたツールです。
須藤ピップインストールvirtualenvvirtualenvwrapper 須藤rm -rf 〜/。キャッシュ/ピップ
これらのパッケージをインストールした後、更新する必要があります 〜/。プロフィール ホームディレクトリの隠しファイルであり、最後に次の行を含めます。次のコマンドを入力して、ディレクトリに入ります。
ナノ〜/。プロフィール
ディレクトリが開いたら、下にスクロールして次の行を含めます。
#virtualenvおよびvirtualenvwrapper 書き出すWORKON_HOME=$ HOME/.virtualenvs 書き出すVIRTUALENVWRAPPER_PYTHON=/usr/午前/python3 ソース /usr/地元/午前/virtualenvwrapper.sh
これらの行を含めた後、ctrl + xを押し、を押して保存します そして 終了します。
ホームディレクトリ
ターミナルを起動してPiにログインすると、このドットファイルが自動的に読み込まれます。すでにログインしているので、手動で入力します ソース〜/ .profile ファイルの内容をロードします。
Python仮想環境の作成: Python2.7とPython3を使用して仮想環境を作成する必要があります。
mkvirtualenv履歴書 -p python2
名前の付いた環境を作成します 履歴書 Python2.7で。 Python 3で環境を作成したい人は、以下のコマンドを入力する必要があります。
mkvirtualenv履歴書 -p python3
「cv」という名前の仮想環境にいることの確認: piを再起動すると、仮想環境に留まらず、仮想環境モードに入るには、以下に説明する2つのコマンドを入力する必要があります。
ソース 〜/。プロフィール ワークオン履歴書
次の図は、仮想環境モードではないことを示しています。
LxTerminal
したがって、上記の2つのコマンドを入力することで、仮想環境にアクセスできるようになります。仮想環境を離れたい場合は、deactivateと入力します。
仮想環境での作業
RaspbianへのNumPyのインストール: OpenCVをRaspberryにインストールするために必要な唯一の依存関係はNumpyです。以下のコマンドを入力して、RaspberryPiにNumpyをインストールします。インストールには約10分かかります。
ピップインストールnumpy
ステップ11:OpenCVのコンパイルとインストール
OpenCVをコンパイルして仮想環境にインストールするので、CV仮想環境で作業していることを確認してください。仮想環境にいない場合、OpenCVはコンパイルに失敗します。次に、ディレクトリをホームディレクトリ、サブディレクトリに変更します オープンcv3.3 次に、ビルドディレクトリを作成します。ビルドディレクトリを作成した後、最後の5行を CMake ディレクトリ。特定のライブラリセットパス、Pythonバージョンなどをチェックします。
CD 〜/opencv-3.3.0/ mkdir ビルド CD ビルド cmake -D CMAKE_BUILD_TYPE=リリース -D CMAKE_INSTALL_PREFIX=/usr/地元 -D INSTALL_PYTHON_EXAMPLES=オン -D OPENCV_EXTRA_MODULES_PATH=〜/opencv_contrib-3.3.0/モジュール -D BUILD_EXAMPLES=オン 。。
Python 2.7を使用している場合は、CMake出力までスクロールし、Python 2.7セクションを探して、Numpyとパッケージのパスが正しく構成されているかどうかを確認する必要があります。 Python 3を使用している場合は、Python2セクションのすぐ下にあるpython3セクションを確認してください。
Python2.7セクションの確認
これで、ついにOpenCVをコンパイルする準備が整いました。 makeコマンドを入力すると、コンパイルプロセスが開始されます。コンパイルには約4時間かかるため、夜寝る前にコンパイルを開始して、朝起きたときにOpenCVがコンパイルされるようにすることをお勧めします。 1つのコマンド「make」を入力すると、1つのコアのみを使用してコンパイルされます。プロセスには少し時間がかかりますが、エラーの可能性は低くなります。 make-j4およびmake-j2のコマンドを使用すると、Raspberry Piが過熱し、コンパイルエラーが発生する可能性があります。
作る
コンパイル完了
次のコマンドを使用して、OpenCV3をRaspberryPiにインストールします。このコマンドを実行すると、それぞれのファイルがそれぞれの場所にコピーされます。
sudo make install
この最後のコマンドを実行すると、インストールが完了します。
須藤ldconfig
Python2.7またはPython3を使用している場合、いくつかの手順が残っています。
ステップ12:インストールの完了
次のように入力して、ホームディレクトリに戻ります。 cd〜。
Python 3: python 3用にOpenCVとpythonバインディングをコンパイルしたので、OpenCVバインディングをpython3ディレクトリのcvにシンボリックリンクします。
CD 〜/.virtualenvs/履歴書/lib/python3。5/地点-パッケージ/ ln -s /usr/地元/lib/python3。5/地点-パッケージ/cv2。そう cv2。そう
それでおしまい!。これで、OpenCVがRaspberryPiにインストールされました。次に、仮想環境でそれを確認します。
ステップ13:OpenCVのテスト
LxTerminalを開き、 ソース コマンドの後に ワークオン コマンド。仮想環境モードに入ったので、pythonと入力してOpenCVバインディングをインポートし、次にcv2をインポートします。エラーメッセージがない場合は、正常にインポートされたことを意味します。
ソース 〜/。プロフィール ワークオン履歴書 Python >>インポートcv2
その後、次のコマンドを入力して、OpenCVのバージョンを確認します。
cv2。__バージョン__
テスト]
Raspberry 3B +にOpenCVをインストールしました。これで、数字検出、顔認識など、Pythonで多数の画像処理操作を実行できます。