質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

2098閲覧

Telloのカメラからの映像をリアルタイムにキャプチャーしたいです

Tello-python

総合スコア6

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/11/13 08:27

#環境
Windows10
Python=3.6
OpenCV=3.4
ノートPC(カメラが一つ付いてます)
#実現したいこと
Telloのカメラからの映像をリアルタイムにカスケード分類器を使用し群衆行動の推定を行いたいです
#現在の状況
TelloPyを使用していてvideo_effect.pyは問題なく動く(joystick_and_video.py、keyboard_and_video.pyは指定されたファイルが見つからないというエラーが延々と出て動きません)ので、それにカスケード分類器のコードを記述して動かしたいです
自分で多少いじくったりしたのですがカスケード分類器を呼び出せていない?エラーが出てわからなくなっています(実行時のソースコードは下に記述しときます)

Python

1OpenCV(3.4.1) Error: Assertion failed (!empty()) in cv::CascadeClassifier::detectMultiScale, file C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp, line 1698

途方に暮れて他にTelloを制御するコードないかなぁ...
と探したところカスケード分類器も実装しているplaytelloが!
しかし、Wondowsがサポートされていないものをimportしているようで動きませんでした...(エラーがでたimportの箇所はキーボード入力のため?みたいなのでそこをなくせば動くのでは!?と思ったのですが,どこまで消してどこを残したらよいのかわかりませんでした)

#助けていただきたいこと
カスケード分類器を使うためには動画ファイルをキャプチャーしなくてはならないようなのでvideo_effect.pyでどうやったらキャプチャーすることができるか

もしくは

playtelloでWindowsをサポートしていない箇所をどこまで削除してよいか
その際、キーボート入力の部分は全部削ることになっても構いません!
Telloを制御(離着陸など)するコマンドは残しておきたいです...

初心者なので詳しく教えていただけるとありがたいです!
よろしくお願いします。

python

1import sys 2import traceback 3import tellopy 4import av 5import cv2 6import numpy 7import time 8 9def main(): 10 DEVICE_ID = 0 11 # 分類器の指定 12 cascade_file = "haarcascade_eye.xml" 13 cascade = cv2.CascadeClassifier(cascade_file) 14 # カメラ映像取得 15 cap = cv2.VideoCapture(DEVICE_ID) 16 17 # 初期フレームの読込 18 end_flag, c_frame = cap.read() 19 height, width, channels = c_frame.shape 20 21 22 drone = tellopy.Tello() 23 try: 24 drone.connect() 25 drone.wait_for_connection(60.0) 26 retry = 3 27 container = None 28 while container is None and 0 < retry: 29 retry -= 1 30 try: 31 container = av.open(drone.get_video_stream()) 32 except av.AVError as ave: 33 print(ave) 34 print('retry...') 35 # skip first 300 frames 36 frame_skip = 300 37 while end_flag == True: 38 for frame in container.decode(video=0): 39 # 画像の取得と顔の検出 40 img = c_frame 41 img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 42 face_list = cascade.detectMultiScale(img_gray, minSize=(100, 100)) 43 44 # 検出した顔に印を付ける 45 for (x, y, w, h) in face_list: 46 color = (0, 0, 225) 47 pen_w = 3 48 cv2.rectangle(img_gray, (x, y), (x+w, y+h), color, thickness = pen_w) 49 50 # フレーム表示 51 cv2.imshow('org', c_frame) 52 cv2.imshow('gaussian', img_gray) 53 54 # 次のフレーム読み込み 55 end_flag, c_frame = cap.read() 56 if 0 < frame_skip: 57 frame_skip = frame_skip - 1 58 continue 59 start_time = time.time() 60 image = cv2.cvtColor(numpy.array(frame.to_image()), cv2.COLOR_RGB2BGR) 61 cv2.imshow('Original', image) 62 #cv2.imshow('Canny', cv2.Canny(image, 100, 200)) 63 cv2.waitKey(1) 64 drone.take_picture() 65 if frame.time_base < 1.0/60: 66 time_base = 1.0/60 67 else: 68 time_base = frame.time_base 69 frame_skip = int((time.time() - start_time)/time_base) 70 except Exception as ex: 71 exc_type, exc_value, exc_traceback = sys.exc_info() 72 traceback.print_exception(exc_type, exc_value, exc_traceback) 73 print(ex) 74 finally: 75 drone.quit() 76 cv2.destroyAllWindows() 77 cap.release() 78if __name__ == '__main__': 79 main() 80

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2019/11/13 09:33

cascade_file = "haarcascade_eye.xml" これのパスはあっているのですか?
Tello-python

2019/11/13 09:45

video_effect.pyと同じフォルダにhaarcascade_eye.xmlがあります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問