問題タブ [opticalflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
9091 参照

python - Lucas Kanadepythonnumpyの実装は膨大な量のメモリを使用します

大学のプロジェクトとして、ルーカスカナデ法を使ったオプティカルフロースクリプトに取り組んでいました。それはうまく機能しますが、私には理解できないことがあります。開始時に数MBのメモリを使用しますが、その量は毎秒急速に増加します。480pムービーの1フレームのOFを計算するまでに、約1GBを使用します。1.9GBに達すると、突然停止し、数時間放置してもそこに留まります。

別のPCでスクリプトを実行してみましたが、1GBしか使用していません。

私の計算によれば、これは本当に奇妙な動作です。使用するのは100MBよりはるかに少ないはずです。

私にとって最も驚いたのは、スクリプトが1フレームを計算した後、ガベージコレクターが監視しているオブジェクトの量を印刷し、それが約200万であり、コレクションを強制した後に再度印刷したことです。これはまったく同じでした。2番目のフレームが計算されるのを待って(その間にメモリ使用量が約1GB増加しました)、スクリプトはGCによって監視されているオブジェクトの数を出力しました。これは200万に近い数とまったく同じです。それで、それはどういう意味ですか?そのnumpyはCで書かれていて、メモリリークがありますか?

私はこの振る舞いを本当に理解したいと思います。

コードは次のとおりです:http://pastebin.com/WSi7akY4

0 投票する
1 に答える
2221 参照

android - MatOfKeyPoint から MatOfPoint2f への OpenCV4Android の変換

Android 用の OpenCV (OpenCV 2.4.3) を使用しようとしています キーポイントを追跡するプログラムを作成しています。FeatureDetector を使用してキーポイントを検出し、次に Video.calcOpticalFlowPyrLK を使用してそれらを追跡しようとしています。私が困惑したのは、FeatureDetector 関数が MatOfKeyPoint を返し、calcOpticalFlowPyrLK が MatOfPoint2f を受け取るということです。

MatOfKeyPoint は MatOfPoint とは異なることに注意してください (MatOfPoint から MatOfPont2f への変換は簡単です)。

これまでの私のコードは次のとおりです。

これまでに失敗したこと: (1) keypoints.convertTo() (2) キーポイントからベクトルを作成し、次に Point Vector pointList のベクトルを設定しようとしています。次に、フロー機能を呼び出すときに MatOfPoint2f に型キャストします (MatOfPoint2f) pointList (3) MatOfPoint2f を最初から作成しようとしています。これを行う方法がわかりません (4) MatOfPoint2f で fromArray メソッドを使用する - このメソッドが何をするのかわかりません。このメソッドのドキュメントは空白です。明らかな何かが欠けていますか?

0 投票する
4 に答える
2957 参照

opencv - リアルタイム オプティカル フロー

視覚障害者向けのリアルタイムの障害物検出および回避システムとして、オプティカル フローを使用しています。私は c# でアプリケーションを開発しており、画像処理には Emgu Cv を使用しています。Lucas と Kanade の方法を使用していますが、アルゴリズムの速度にはかなり満足しています。私は単眼視を使用しているため、追跡されている各機能の深さを正確に計算し、それに応じてユーザーに警告することが困難です。単眼カメラでは深度計算が難しいため、障害物検出に超音波センサーを使用する予定です。カメラだけを使用して深度を正確に推定する方法について何か提案はありますか?

0 投票する
2 に答える
5990 参照

c++ - cv :: calcOpticalFlowSFを機能させる方法は?

OpenCVの2.4.4バージョンを使用しています。-ベータ版は知っていcv::calcOpticalFlowSFますが、サンプルフォルダにメソッドに関する例があります:simpleflow_demo.cpp。しかし、このデモをコピーして入力画像で使用すると、処理が開始され、数秒後にクラッシュレポートが返されます。メソッドに関するドキュメントは少し奇妙で、出力ファイルはcv::Mat& flowメソッドが実際に必要とするものではなく、x-およびyflowであると言っています。関数を機能させるために問題を修正する方法はありますか?

0 投票する
2 に答える
3895 参照

c++ - OpenCV - Brox オプティカル フロー - opencv_core244d!cv::GlBuffer::unbind の例外

OpenCV で Brox 高密度オプティカル フロー アルゴリズムを動作させることができた人はいますか?

ここにいくつかのコードがあります:

上記でコメントしたように、オブジェクトを使用しようとすると例外が発生しcv::gpu::BroxOpticalFlowますが、同じ問題がありますcv::gpu::PyrLKOpticalFlowが、疎バージョンではなく密バージョンのみで、正常にcv::gpu::FarnebackOpticalFlow動作します...

変。

完全な例外は次のとおりです。

OpenCV 2.4.4 を使用して、デバッグ ライブラリでデバッグ ビルドを使用していますが、コードは OpenCV 2.4.3 でも例外を発生させます。

OpenCV 2.4.3 を使用すると、次の例外が発生します。

0 投票する
1 に答える
2005 参照

computer-vision - ホーンシュンクオプティカルフローの計算

ビデオのオプティカルフローを計算するためのホーンシュンク法を研究していました。私のコードはCです。つまり、画像のグレースケーリング、導関数の計算など、すべてのアルゴリズムを最初から実装しています。メソッドの本質を完全に吸収することはできません。私が得る最終的なフローマトリックスには、各ピクセルの変位ベクトルが含まれていますよね?各ピクセルの意味で、フローマトリックスの値は、次の画像でピクセルが変位する量を示します。

すべてのピクセル値が0〜255の場合、これはどのように機能しますか。すべての計算はこれらのピクセル値に対して行われ、結果の出力は、たとえば1920X1080画像の変位を示します。

0 投票する
1 に答える
803 参照

opencv - cvCalcOpticalFlowBM エラー

アプリケーションでオプティカル フローの計算に OpenCV の cvCalcOpticalFlowBM を使用しようとしています。私は次のようなことをしています:

beforeGray と afterGray は、同じサイズの IPL_DEPTH_8U シングル チャネル イメージです。しかし、最後の行が実行されると、次の例外が発生します。

OpenCV 2.4 を使用していますが、これが機能しない理由がわかりません。すべての入力引数が null でないことをデバッガーで確認しました。誰かが何か考えましたか?

0 投票する
2 に答える
5713 参照

opencv - オプティカルフローベースのセグメンテーション

こんにちは私はオプティカルフローに基づいてビデオシーケンスでオブジェクトをセグメント化したいです(この回答で提案されているように)、私はopencvを使用しており、calcOpticalFlowFarneback関数を使用して2つの連続するフレームのフローフィールドを生成できました。このフローフィールドに基づいて画像をセグメント化する方法を誰かが説明できますか?

0 投票する
1 に答える
13344 参照

c++ - OpenCVのcalcOpticalFlowPyrLKは例外をスローします

私はしばらくの間、OpenCVで小さなオプティカルフローの例を作成しようとしてきました。次の失敗したアサーションをコンソールウィンドウに出力する関数呼び出しcalcOpticalFlowPyrLKを除いて、すべてが機能します。

OpenCVエラー:不明な関数、ファイルでアサーションが失敗しました(mytype == typ0 ||(CV_MAT_CN(mytype)== CV_MAT_CV(type0)&&((1 << type0)&fixedDepthMask)!= 0))。 \ src \ opencv \ modules \ core \ src \ matrix.cpp、1421行目

私が解析しているビデオは、「caml00000.jpeg」、「caml00001.jpeg」、...、「caml00299.jpeg」というラベルの付いた300枚の画像に分割されています。これが私が書いたコードです:

この例外について私が読んだ唯一のことは、マットが異なる形式である場合に発生するということですが、静止画像を読み取ろうとしましたが(「kitty.jpg」に関する上記のコードを参照)、同じ失敗したアサーションを取得します。何か案は?