アドバイザーとのラボ会議を終えたところです。以前のコードは matlab で記述されており、リアルタイム モードではなくオフライン モードで実行されるため、python+numpy (オフライン バージョン) に変換することにしましたが、ラボ会議の後、アドバイザーが問題を提起しました。リアルタイム認識の速度なので、このプロジェクトを実行するためのpython + numpyの速度に疑問があります。またはcでより良いですか?私のプロジェクトは、電子グローブ(2xセンサー)を使用してリアルタイムデータを取得し、データ処理、認識プロセスを行うことに関するものです
3 に答える
いくつかの基本的なルールに従えば、NumPy は非常に高速です。できる限り NumPy が提供する演算子を代わりに使用して、Python ループを回避する必要があります。これとこれは良い出発点になるはずです。
それを読んだら、Matlab と NumPy の両方で簡単なコードを書いて、パフォーマンスを比較してみませんか? NumPy でうまく機能する場合、特にコードがプロジェクトで使用している実際のアルゴリズムを表している場合は、アドバイザーを納得させるのに十分なはずです。
注: アルゴリズムが実際にリアルタイム認識に適していることもわかるはずです。
答えは、Matlab でコーディングする方法、Python/Numpy でコーディングする方法、およびアルゴリズムの 3 つに依存すると思います。すべてをベクトル化し、ライブラリ呼び出しを使用することに熱心であれば、Matlab と Python の両方が高速に計算できます。
あなたの Matlab コードがすでに非常に優れている場合、Numpy に移行することでパフォーマンスが大幅に向上することに驚かれることでしょう。C に移行しても大きなメリットは見られないかもしれません。この場合、アルゴリズムの調整に労力を費やしたほうがよいでしょう。
あなたの Matlab コードがあまり良くない場合は、1) より良い Matlab コードを書く、2) 良い Numpy コードで書き直す、または 3) C で書き直すことができます。
Python libs
ctypes -opencv
とopencv-cythonを持つOpenCVを見るかもしれません。私はこれらを自分で使用していません。理想的には、高速に実行される C 内部ループを柔軟な Python/Numpy play-with-algorithms と組み合わせたいと考えています。
ちなみにgoogle「opencvジェスチャー認識」→6680ヒット。