Raspberry Pi をカメラとペアリングすると、写真撮影を広範囲に制御できるようになります。さらに一歩進んで、OpenCVと呼ばれる無料のコード セットを使用してこれらの画像を処理できます。この記事では、OpenCVを使用してRaspberry Piの画像処理を開始するために必要なインストール手順について説明します。
OpenCVとは何ですか?
OpenCV (Open Source Computer Vision Library) は、オープンソースのコンピューター ビジョンおよび機械学習ライブラリです。これには、2500を超える最適化されたアルゴリズムのほか、C++、JAVA、MATLAB、そしてRaspberry Piで使用するために重要なPythonのインターフェースが含まれています。OpenCVはOpen-BSD (Berkeley Software Distribution) ライセンスを通じて利用可能であり、ユーザーはソース コードを公開する必要がありません。
Raspberry PiでOpenCVを使用する方法
Raspberry PiでOpenCVを使用する場合は、インストールのためのさまざまな手順があります。多くのOpenCV支持者は、優れたRAM仕様を備えた Pi 3B+ を推奨しますが、 Raspberry Pi A3+ は新参者です。しかし、ありふれたRaspbianインストールでRaspberry Pi A3+ をロードして実行できたことを嬉しく思います。その他のインストール手順では、何ページにも及ぶターミナル コマンドと、インストールが完了するまでの長い待ち時間が伴います。ここで説明するインストールにより、不便さが最小限に抑えられ、Piをまったく知らない人でもこの強力なシステムを実行できるようになります。
ステップ0: Raspberry Pi NOOBSのインストール
このインストールを開始するには、まずRaspberry Piガイドを使用して NOOBS/Raspbianをインストールする必要があります。私はNOOBS Liteインストールを選択し、ネットワークにログオンして詳細を入力し、「Raspbian Fullをインストールする [推奨]」オプションを選択しました。
ステップ1: OpenCVライブラリをインストールする
動作するSDカードを使用してRaspbianに入ったら、ターミナルを開いて次のように入力します。
1.Sudo apt upgrade ― この手順により、システムで適切な更新が実行されていることが確認されます。プロンプトが表示されたら「y」を押します。
2.Sudo apt get install libopencv-dev python-opencv ― このコマンドは、Python用のOpenCVライブラリをインストールします。所要時間は約2分です。プロンプトが表示されたら「y」を押します。
3.Python ― Pythonターミナルに入ることができます。
4.Import cv2 ― Pythonターミナルに入ったらこのコマンドを入力します。しばらくしてエラーもなく別の >>> プロンプトが応答した場合、おめでとうございます。マシンにOpenCVがインストールされています。
ステップ2: Raspberry Piカメラのセットアップ
1. Piカメラをシャットダウンし、Raspberry Piに接続します。次に、 この投稿の説明に従ってカメラをアクティブ化します。これらの変更を有効にするには、カメラを再起動してください。
2.ターミナルを開き、raspistill -o camout.jpgと入力して、カメラがアクティブで写真を撮影できることを確認します。
3.ホームディレクトリをチェックして、カメラが表示されるかどうかを確認します。
4.Pip install "picamera[array]"と入力すると、Pi CameraがOpenCVで動作できるようになります。インストールには約10分かかりますが、進行状況を示すラインが回転する時間も限られる場合があります。我慢して。
ステップ3: Python OpenCVの例
1.GitHubからOpenCV Pythonスクリプトのサンプル をダウンロードし、そのフォルダーをホーム ディレクトリに配置します。また、すべてを整理するために、名前をOpenCVに変更しました。ファイルを入手するには:
- リポジトリ全体を.zipファイルとしてダウンロードします
- 内部のフォルダを抽出します
- 必要に応じてpythonフォルダだけを移動します
2.ターミナルで、新しいOpenCVディレクトリに移動します (ホーム ディレクトリからcd OpenCV)。
3.Python demo.pyと入力すると、利用可能なオプションの一部を表示するシンプルなグラフィカル インターフェイスに移動します。ここからedge、color histogram、camshiftなどのプログラムを実行できますが、他のプログラムでは適切に機能するためにテキスト修飾子が必要になります。
キャプション: Pi Zero 3A+ で実行されているedge、color_histogram、camshift
4.ターミナル (OpenCVディレクトリ内) に戻ると、もう1つの興味深いルーチンはpeopledetect.pyプログラムです。プログラム名の後に画像を追加してこのプログラムを実行します。また、コマンドpeopledetect.py people.pngを使用して、Google Imagesで「人」を検索した結果のスクリーンショットを撮り、OpenCVディレクトリに保存しました。
数秒後、アルゴリズムが検出した人物の顔の上に緑色の四角形を表示する画面が表示されます。これらの初期結果には疑問があり、良好な結果を得るにはアルゴリズムをトレーニングする必要があるかもしれません。私の実験では、システムはハリー王子を認識することができたが、彼の隣に立っているメーガン・マークルの半分しか識別できなかった。また、この賞は、ドウェイン・「ザ・ロック」・ジョンソンを、クリス・ヘムズワースやイドリス・エルバよりも、いわゆる「最もセクシーな男性」に選んだようだ。最後に、Googleは自身の端末とGoogleロゴを人間として選択しました。おそらく、人間として認識されたいという願望を表現しているのでしょう。
解説はさておき、これはOpenCVの機能のほんの一部に過ぎません。OpenCVとオペレーティング システムについてさらに経験を積めば、ニーズに合わせて最適化できるようになります。世の中には、うまくいくかどうかわからない多くの方法がありますが、それに比べると、この手順は比較的簡単なので、画像処理を始めるには最適な方法です。
Best Ever Tutorials、 PyImageSearch、そして問題に遭遇したときにさまざまな提案で素早く反応してくれたTwitterの皆さんに感謝します。特に、Laurence Obi氏は、特にROS (Robot Operating System) を使用している場合、さらに進んでOpenCVをインストールしたいときには、Ubuntu Mateを使用することを推奨しています。さらに実験を進めるためのもう1つの優れたオプションは、代わりに強力なJetson Nanoを活用することです。ここで、2つの比較がわかります。