OpenCVを使った物体検出こんにちは。AI coordinatorの清水秀樹です。映像からただ単に物体検出を試してみたいだけなら、すぐにでも試せる方法を紹介します。 #-------------- #-------------- #-------------- 0, 【募集】 # before, #-------------- OpenCVでの動画処理方法3:動画内の移動物体の検出. https://github.com/taikoma. OpenCVでの動画処理を行う場合、動画内の移動物体の検出方法を押さえましょう。 前述のカラートラッキングにより、移動物体を検出することも可能 … # before, #-------------- カスケード検出器は HOG 特徴量を使用しているので、認識精度があまりよくありません。, 学習するのに十分なデータがある場合は、ディープラーニングのほうが識別精度はよいと思います。, 2019/09/29 06:39 編集, OpenCVのCVはcomputer vision のcvです。コンピュータで画像を処理するときに使います。処理の1つに、物体検出があります。 Copyright © 2020 北館テック.com All Rights Reserved. 最終的には、ボールの軌道や着弾点などを自動でデータ化できるようにしたいと思っています。, 開発中のディープラーニングを用いたテニス映像解析システム。サーブ時のボールの軌道をトラッキングしてます。次は、着弾点を自動で記録できるようにしたい。 pic.twitter.com/NcwIdYLtrj, サーブのボールを検出できています。人をバウンディングボックスで検出していて、これはディープラーニングの物体検出手法(SSD)を用いてやっていますが今回は扱いません。, ボールを検出するために動いている物体のみを検出できるようにします。そのために前のフレームと今のフレームとの差分画像を作成します。, 2値化した画像のままだと、白い物体が複数に分割されてしまっているので、これを1つにまとめます。そのために膨張処理dilationを使用します。, 物体の境界線となる点情報全てのxとyの平均値を計算することで、物体の重心位置を計算しました。もっと良い重心位置の計算方法はあるかもしれません。, テニスとプログラミングが好きで、スコア記録アプリ(Androidアプリ)やデータ分析サイトをつくってます。他にはディープラーニングや画像解析を用いたテニスの試合やフォームの解析など。製造業で働いておりROSにも興味あり。本職はメカ設計エンジニアですが、ソフトウエアエンジニアになりたい。 OpenCV 3.2.0; OpenCV contrib 3.2.0; インストールディレクトリ C:\opencv\ もくじ. 動画の物体検出において,OpenCVかkerasのYOLOどちらを使うか迷っています. ... OpenCVなどで画像を取得し、OpenCVで前処理して、YOLOなどで物体検出、OpenCVで後処理する、という使い方が多いです。 ... 更新 2020/07/27. What is going on with this article? # fourcc = cv2.VideoWriter_fourcc(*'MJPG'), you can read useful information later efficiently. OpenCVでの動画処理を行う場合、動画内の移動物体の検出方法を押さえましょう。 前述のカラートラッキングにより、移動物体を検出することも可能 … OpenCVなどで画像を取得し、OpenCVで前処理して、YOLOなどで物体検出、OpenCVで後処理する、という使い方が多いです。, 回答 今回は動画の各フレーム画像に対し、物体の輪郭を検出する手法を使います。 輪郭を始めとする様々な特徴量の抽出には、カラー画像をそのまま扱うのではなく、グレースケール化したり二値化したりといった前処理を行うことが一般的です。 1, 回答 # 99行目 https://github.com/hiraku00/ssd_keras_test. #-------------- OpenCV 4.0.0からは、QRコードを検出する機能が標準で入ったなど、進化を続けています。 OpenCVでできること一覧 OpenCVは、できることが非常に多くあります。ここでは、機能別にどのようなことができるのかを確認してみましょう。 teratailを一緒に作りたいエンジニア, ありがとうございます.以下のサイトではOpenCVを用いているようですが,これはノイズ除去のために使っているのでしょうか?, 記事を見ましたが、検出結果を画像に描画するのに OpenCV をつかっているようです。, https://qiita.com/daiarg/items/2ef986732632af5a5133#opencv%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB. # 12行目 What is going on with this article? 1 / クリップ 0, 回答 映像からただ単に物体検出を試してみたいだけなら、すぐにでも試せる方法を紹介します。, SSD_kerasを使った物体検出は環境準備が大変であるのに対して、OpenCVインストール時に初めから準備されているカスケードファイルを使えば、すぐにでも物体検出が始められます。, まず手始めに、胴体を検出できるカスケードファイル(haarcascades/haarcascade_fullbody.xml)を使用して試してみます。, この方法については「Raspberry Pi 深層学習でリアルタイム顔認識(Keras・Open CV)」の記事で紹介されていたものをそのまま活用しました。, 続いて、人の顔(haarcascades/haarcascade_frontalface_alt.xml)と目(haarcascade_eye.xml)の物体検出を試してみました。, anacondaインストール後にOpenCVをインストールすれば、直ぐにでも映像からの物体検出ができますので、ぜひチャレンジしてみてください。, Raspberry Pi 深層学習でリアルタイム顔認識(Keras・Open CV), DeepLearningを活用した物体検出(SSD_Keras)を可能とするPepper, raspberry piとかを使ってスマートカーを作りたい 準備 – カラスのノート, https://ai-coordinator.jp/wp-content/uploads/2018/03/20180314.mp4. ボールを検出するために動いている物体のみを検出できるようにします。 # 182行目 動画の物体検出において,OpenCVかkerasのYOLOどちらを使うか迷っています. ... OpenCVなどで画像を取得し、OpenCVで前処理して、YOLOなどで物体検出、OpenCVで後処理する、という使い方が多いです。 ... 更新 2020/07/27. 膨張処理して分割してしまった物体を1つの物体としてまとめる; 物体の重心座標(x,y)を計算し、円で囲う; 全コードは最後に記載してます。 フレーム間の差分画像を生成. テニスのボール軌道を検出して、円で囲います。 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. # 87行目 OpenCVで動画から動いている物体を検出してみる(MOGやKNNで簡単に) 背景差分(Background_Subtraction)など 2019年9月3日 2020年5月28日 Let’s Encrypt のサーバ証明書や秘密鍵をちょっとだけ深追い 鍵のファイルなど. ソースコードのダウンロード 2. 前回は静止画像でクラゲを検出してみましたが、今度は動画読み込みでクラゲを追跡検出してみました。学習とか関係なく単純に輪郭を検出する方法です。, https://docs.opencv.org/4.1.1/d1/dc5/tutorial_background_subtraction.html, 素材はPixabayから拝借した以下のクラゲ動画です。これにチュートリアルサイトを参考にクラゲ追跡して(背景とクラゲの領域を切り分けて)輪郭と四角で囲んでみたいと思います。, 動いている物体と背景をうまく分離してくれるのがMOG2とかKNNとかのアルゴリズムでOpenCVに実装されていて簡単にだれでも背景差分が取れるようになっているんですね。素晴らしいですね。。, MOGはMixture of Gaussian Distributionのことで(よくわかりませんね勉強が必要です。)で背景差分で使われる方法みたいですね。, KNNはk-nearest neighbor algorithmでk近傍法、よく聞く単語ですが、私にはまだ勉強が必要です。, こちらサンプルコードです。チュートリアルのページのソースに動画保存のための書き込み処理、輪郭の書き込み処理が追加されてます。, ちなみに出来上がったMP4ファイルはサイズがもとのファイルより大きいですので、ffmpegでサイズ小さくしてあります。参考コマンドです。, ただこの動画程度背景の切り分けができるのであれば背景差分を使わなくてもそれなりに抽出はできましたね。こちらはKNNもMOG2も使っていない場合の結果です。, 実際の問題に適用できるまではいろいろ調整が必要そうでしたが、たったこれだけのコードでここまでできることは検証できました。次は学習を取り入れて検出やってみたいと思います。. 1.OpenCVのカスケードとYOLOでの画像認識の計算量は大きく異なるものでしょうか?(トレーニングモデルの作成にかかる計算量ではなくて,テスト時の計算量), 2.認識率において,こちらの記事より,OpenCVより,SSDやYOLOを用いたほうが認識率が高いということなのですが, OpenCVは認識率という点では劣悪なのでしょうか?, 3.OpenCVでノイズの除去など行なってからYOLOやSSDを用いるやり方だとYOLOやSSDのみを用いる方法より,認識率は向上するのでしょうか?, teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。, 評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。, 上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。, 1.OpenCVのカスケードとYOLOでの画像認識の計算量は大きく異なるものでしょうか?(トレーニングモデルの作成にかかる計算量ではなくて,テスト時の計算量), カスケード検出器よりディープラーニングを使用したYOLO、SSD のほうが演算量がかなり多いです。 # 24行目 #-------------- # after, #-------------- Help us understand the problem. #-------------- OpenCVでの動画処理方法3:動画内の移動物体の検出. Why not register and get more from Qiita? カメラで撮影した映像をOpenCVでカスケード分類機で画像認識させるか, kerasまたはtensorflowのYOLOを用いて画像認識するか選ぶ上でいくつか疑問点があり迷っています. ディープラーニングは処理速度が重要となる場合、GPU を使用する必要があります。, OpenCV のカスケード検出器よりディープランニングのほうが認識精度は圧倒的によいです。