2

我刚刚和我的导师完成实验室会议,之前的代码是用 matlab 编写的,它运行离线模式而不是实时模式,所以我决定转换为 python+numpy(离线版本)但是在实验室会议之后,我的导师提出了关于实时识别的速度,所以我怀疑 python+numpy 做这个项目的速度。还是在c中更好?我的项目是关于使用电子手套(2x 传感器)获取实时数据并进行数据处理、识别过程

4

3 回答 3

3

如果您遵循一些基本规则,NumPy 会非常快。你应该避免 Python 循环,尽可能使用 NumPy 提供的运算符。应该是一个很好的起点。

看完之后,为什么不在 Matlab 和 NumPy 中编写一些简单的代码并比较性能呢?如果它在 NumPy 中表现良好,应该足以说服您的顾问,尤其是当代码代表您在项目中使用的实际算法时。

注意:您还应该看到您的算法确实适合实时识别。

于 2009-11-13T10:47:33.930 回答
1

我认为答案取决于三件事:您在 Matlab 中的代码如何,您在 Python/Numpy 中的代码如何,以及您的算法。如果您勤于对所有内容进行矢量化并使用库调用,Matlab 和 Python 都可以快速进行数字运算。

如果您的 Matlab 代码已经非常好,如果您看到迁移到 Numpy 的许多性能优势,我会感到惊讶,除非您可以使用一些特定的习语来发挥自己的优势。您甚至可能看不到迁移到 C 的巨大好处。在这种情况下,您的努力可能会更好地用于调整您的算法。

如果您的 Matlab 代码不是那么好,您可以 1) 编写更好的 Matlab 代码,2) 用好的 Numpy 代码重写,或 3) 用 C 重写。

于 2009-11-13T17:18:28.417 回答
0

您可能会查看OpenCV,它具有 Python 库 ctypes-opencvopencv-cython;我自己没用过这些。理想情况下,您希望将快速运行的 C 内部循环与灵活的 Python/Numpy 玩算法结合起来。
Bytheway google “opencv 手势识别”→ 6680 次点击。

于 2009-11-24T11:29:11.620 回答