我刚刚完成实验室与我的顾问会面,之前的代码是用matlab编写的,它运行离线模式而不是实时模式,所以我决定转换为python + numpy(在离线版本中)但是在实验室会议之后,我的顾问提出关于实时识别速度的问题,所以我怀疑python + numpy的速度来做这个项目。或更好的c?我的项目是关于使用电子手套(2x传感器)来获取实时数据并进行数据处理,识别过程
答案 0 :(得分:3)
如果遵循一些基本规则,NumPy会非常快。您应该尽可能地使用NumPy提供的运算符来避免Python循环。 This和this 应该是一个很好的起点。
阅读完之后,为什么不在Matlab和NumPy中编写一些简单的代码并比较性能?如果它在NumPy中表现良好,它应该足以说服你的顾问,特别是如果代码代表你在项目中使用的实际算法。
注意:您还应该看到您的算法非常适合实时识别。
答案 1 :(得分:1)
我认为答案取决于三件事:你在Matlab中的编码效果,你在Python / Numpy中编码的能力以及你的算法。如果你想要对所有内容进行矢量化并使用库调用,那么Matlab和Python都可以快速进行数字运算。
如果您的Matlab代码已经非常好,如果您看到很多性能优势转移到Numpy,我会感到惊讶,除非您可以使用某些特定的习惯用法。您甚至可能看不到向C转移的巨大好处。在这种情况下,您可能会更好地调整算法。
如果您的Matlab代码不太好,您可以1)编写更好的Matlab代码,2)重写好的Numpy代码,或者3)用C语言重写。
答案 2 :(得分:0)
您可以查看具有Python库的OpenCV ctypes-opencv 和opencv-cython; 我自己没有用过这些。 理想情况下,您希望结合快速运行的C内循环 灵活的Python / Numpy游戏算法 通过谷歌“opencv手势识别”→6680次点击。