【Python/OpenCV】ドローン「Tello」をアニメ顔を追跡するよう飛行させる

Python/OpenCVで、ドローン「Tello」をアニメ顔を追跡するよう飛行させる方法についてまとめました。

スポンサーリンク

アニメ顔を追跡するようドローン「Tello」を自律飛行

以下動画のような感じで、アニメ顔を追跡するようドローン「Tello」を自律飛行させてみます。

実行例

なお、PythonでTelloを遠隔操作する方法については以下ページで紹介しています(このページでは説明省略)。

【Python×Tello】ドローンを遠隔制御・自律飛行させて遊ぶ方法
Python言語でドローン「Tello」を遠隔制御したり自律飛行させて遊ぶ方法について入門者向けにまとめました。

OpenCVモジュールを用いてアニメ顔の検出方法については以下ページで紹介しています(このページでは説明省略)。

【Python版OpenCV】Haar Cascadeで顔検出、アニメ顔検出、顔にモザイク処理
Python+OpenCVでHaar Cascade識別器(分類器)を実装し、画像から顔検出、アニメ顔検出、顔にモザイク処理する方法をソースコード付きで解説します。

今回作成するプログラムの処理の流れは、以下のとおりです。

1 カメラ映像を取得する。jキーを押すとTelloが離陸する(離陸させないとアニメ顔を追跡するようTelloは飛行しない。
2 カメラ映像のフレーム中からアニメ顔の中心位置と範囲(矩形)を検出する(検出器にはカスケード型識別器を利用)。
3 アニメ顔の中心位置が、フレームの中心付近にくるように3.1〜3.6のようにTelloを動かし続けます。
3.1 アニメ顔の中心位置が、フレームの中心付から左にずれていれば左旋回する。
3.2 アニメ顔の中心位置が、フレームの中心から右にずれていれば右旋回する。
3.3 アニメ顔の中心位置が、フレームの中心から上にずれていれば下降する。
3.4 アニメ顔の中心位置が、フレームの中心から上にずれていれば上昇する。
3.5 アニメ顔の中心位置が、アニメ顔の範囲(矩形)が小さければ前進する。
3.6 アニメ顔の中心位置が、アニメ顔の範囲(矩形)が大きければ後進する。

アニメの顔を検出するために、有志が公開されている「lbpcascade_animeface.xml(https://github.com/nagadomi/lbpcascade_animeface)」を使います。
ダウンロードし、プログラム中でファイルのパスを指定してあげてください。


【Tello入門】使い方、Pythonでの制御、カメラの4K化カスタマイズなど
Telloの基本的な使い方、Pythonでのプログラミング制御、カメラの4K化カスタマイズなどについてまとめました。
【Python版OpenCV入門】使い方とサンプル集
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。
【Python入門】使い方とサンプル集
Pythonとは、統計処理や機械学習、ディープラーニングといった数値計算分野を中心に幅広い用途で利用されている人気なプログラミング言語です。 主な特徴として「効率のよい、短くて読みやすいコードを書きやすい」、「ライブラリが豊富なのでサクッと...
Python
スポンサーリンク
西住工房

コメント