ラズベリーパイボール追跡
(注:これは高度なチュートリアルであり、Linuxの初心者を対象としていません。)
このチュートリアルでは、RaspberryPiでOpenCVを使用して卓球ボールを追跡する方法を示します。背景から十分に検出できる限り、円形のオブジェクトを追跡するために使用できます。これは、ボール追跡ロボットや同様のプロジェクトで役立ちます。
必要なもの:
1. Raspberry Pi(最新のRaspbianがインストールされている場合は、ここから入手できます:https://www.raspberrypi.org/downloads/同じサイトのインストール手順に従ってください)
2. USB Webカメラ(Rasppiがサポートするものをテスト)
3. Linux Mint 17でテストしたLinuxホスト(できればLinux Mint / Ububtu)。
4.Debianシステムの経験
ステップ1:初期設定
手順:
1. Rpi接続を確立します:キーボード、マウス、Webカメラ、イーサネットまたはWi-Fiドングル、HDMI経由のディスプレイ、電源
2.Rpiの電源を入れます
3. RpiでRaspbianGUIを起動します(GUIへのRaspbian起動)
4.ターミナルを開いてOpenCVをインストールします(Trevor Appletonの優れたガイドに従って、OpenCVが正しくインストールされていることを確認します)
5. scpまたはフラッシュドライブを使用して、ファイル「bdtct.py」をrpiのホームフォルダにコピーします。
rpiのターミナルで、bdtct.pyをコピーしたフォルダーに移動します
2.次のコマンドを実行します。
sudo python bdctc.py
上の写真のように5つのウィンドウが開くはずです
3.卓球ボール(可能であれば黄色のボールを使用)をウェブカメラの前に持ってきます。
5.ボールはウィンドウの「追跡」で追跡する必要があります。そうでない場合は、ウィンドウ「HueComp」、「SatComp」、「ValComp」のスライダーをそれぞれ調整して、「閉じる」ウィンドウで卓球ボールの領域のみが白く表示されるようにします(上の図を参照してください)。これを機能させるには、少し実験する必要があるかもしれません。スライダーの値を書き留めておきます。後でbdtct.pyで編集できます。
ステップ3:アルゴリズムを理解する
テキストエディタでbdtct.pyファイルを開きます。
bdtct.pyコードは次のことを行っています:
1.「cap =cv2.VideoCapture(-1)」による入力の取り込み
2.ビデオフレームのサイズを320×240の小さいサイズに変更して、rpiが1秒あたりにより多くのフレームを出力できるようにします。
3.それぞれの最小スライダーと最大スライダーを使用して、ウィンドウ「HueComp」、「SatComp」、「ValComp」などの視覚要素を作成します。
4.入力をBGRからHSVシステムに変換する「hsv =cv2.cvtColor(frame、cv2.COLOR_BGR2HSV)」
5.色相、彩度、明度のコンポーネントを分割します。
6.それぞれの最小スライダーと最大スライダーで定義されたしきい値範囲に従って各コンポーネントをしきい値処理して、バイナリしきい値処理された画像を取得します(上の図を参照)
7.しきい値処理された色相、彩度、値のコンポーネントを論理的にANDして、卓球のボールのピクセルのみが白で、残りはすべて黒である大まかなバイナリイメージを取得します。 (上の写真を参照)
8.AND画像の平滑化「closeing =cv2.GaussianBlur(closing、(5,5)、0)」
9.HoughCirclesを使用して画像内の円を検出する
10.元の入力フレームに検出された円を描画します。
詳細:ラズベリーパイボールトラッキング
製造プロセス