Everyday Pieces ::
  • Webサービス
  • ブログパーツ
  1. ホーム
  2. プログラミング

OpenCVで画像検出とかやってみた(2)

2020年1月10日 プログラミング OpenCV

前回のつづきです。

 ということで、
Anaconda をここからダウンロードします。
Python 3.x 系の最新のやつで良いはず。
そしてインストーラーを起動したら、ここを参考にインストールします。
作業を進めると「推奨しません」と表示されていますが、
コマンドプロンプトでもやれるようにした方が個人的には良さげに思うので、
パスを通すようにチェックを入れました。

 まずは、
仮想環境というのを作る必要があるようです。
ここやここやここを参考にしました。
特定バージョンのPythonと必要なパッケージをまとめた環境を整備します。
バージョンとか依存してたりするので、
それらをまとめて閉じておくわけですね。

 Anaconda Navigator を使うとGUIな感じでやれるようなのですが、
起動とか遅い感じなので、
コマンドプロンプトを起動してCUIでやってみます。
CUIなコマンドとかについても上記のサイトが参考になります。

 試しにコマンドプロンプトを開いてやってみます。
$ conda info
とやると、以下のように既定のPythonバージョン等が表示されます。

            ︙
          conda version : 4.7.12
    conda-build version : 3.18.9
         python version : 3.7.4.final.0
            ︙

$ conda info -e
とやると、仮想環境の一覧が以下のように表示されます。
最初は base (root) しかないことがわかります。

# conda environments:
#
base                  *  C:\Users\username\Anaconda3

 それでは、
OpenCVな環境を作っていきましょう。
$ conda search opencv
とやってパッケージの情報を確認すると、以下のように表示されました。

# Name                       Version           Build  Channel
opencv                         3.3.1  py35h20b85fd_1  pkgs/main
opencv                         3.3.1  py36h20b85fd_1  pkgs/main
opencv                         3.4.1  py35h40b0b35_3  pkgs/main
opencv                         3.4.1  py35h6fd60c2_3  pkgs/main
opencv                         3.4.1  py36h40b0b35_3  pkgs/main
opencv                         3.4.1  py36h6fd60c2_3  pkgs/main
opencv                         3.4.1  py37h40b0b35_3  pkgs/main
opencv                         3.4.1  py37h6fd60c2_3  pkgs/main
opencv                         3.4.2  py35h40b0b35_0  pkgs/main
opencv                         3.4.2  py36h40b0b35_0  pkgs/main
opencv                         3.4.2  py36h6fd60c2_0  pkgs/main
opencv                         3.4.2  py37h40b0b35_0  pkgs/main
opencv                         3.4.2  py37h6fd60c2_0  pkgs/main
opencv                         4.0.1  py38h2a7c758_0  pkgs/main

 どうやらAnacondaにおいては、
OpenCVの最新は4.0.1で対応するPythonは3.8のようです。
ところで、試してみたいこちらのコードを見ると、
OpenCV3.3.1とPython3.5でやっているようです。
ということで、間違いなく動作するはずなので、
その組み合わせで作ってみます。
名前は「opencv3.3.1」とかにしてみました。
$ conda create -n opencv3.3.1 python=3.5 opencv=3.3.1
すると関連する必要なパッケージもあわせて環境に導入されます。

 ところで、
バージョン番号は major.minor.patch の3レベルの数字で表記されますが、
patch は指定しなくて構わないっぽい。
もちろん明示的に指定してもやれるようです。
また、パッケージのイントールは pip でもやれるようなのですが、
conda でやるように統一した方が良いらしい。
というか、ここによると pip は使わない方が良さげっぽい。

 なお、上記では、
仮想環境の作成と同時に必要なパッケージをインストールしましたが、
$ conda install opencv=3.3.1
とかやって、
環境作成後に、追加でインストールすることも可能なようです。

 では、環境一覧を確認してみます。
$ conda info -e
以下のように、「opencv3.3.1」が作られたことが分かります。

# conda environments:
#
base                  *  C:\Users\username\Anaconda3
opencv3.3.1              C:\Users\username\Anaconda3\envs\opencv3.3.1

 このままだと現在環境は「base」になってしまうので、
$ conda activate opencv3.3.1
とやって切り替えます。
これで、ようやく環境が整備されました。
こちらのサンプルコードを動かしてみます。
ただ、haarcascadeとかいう場所が自分の環境とは異なっていたので、
それは修正しました。

 で、
実際に画像検出をやってみた結果ですが、
バッチリうまく行きました。
サンプルそのままなので、まぁ当然なのですが(^_^;)
それにしても、
実行時間がそれなりに掛かるのかと思っていたら、
ほんの一瞬でした。いやぁ素晴らしい。

 どうやら、
haarcascadeなるファイルが肝のようです。
事前学習済カスケード型分類なデータが入っているらしい。
ということで、このファイルを如何に作るかが、
次の課題になりそうです。

関連記事
OpenCVで画像検出とかやってみた(4) OpenCVで画像検出とかやってみた(3) OpenCVで画像検出とかやってみた

コメントする キャンセル

メールアドレスが公開されることはありません。が付いている欄は必須項目です。

投稿ナビゲーション

OpenCVで画像検出とかやってみたOpenCVで画像検出とかやってみた(3)

カテゴリー

WordPress つぶやき トピック プログラミング 未分類

タグ

AS3 enchant.js FamilyTreeVis Flash Geolocation gif.js kinect Linux MMD MoneyTrackNote OpenCV PDFカレンダー RISC-V three.js セキュリティ テーマ自作 ブログパーツ 動物 動画 麻雀

アーカイブ

© Everyday Pieces ::