要评估高级算法(主要是计算机视觉算法,用Matlab,Python等编写)以在嵌入式CPU上实时运行,您将考虑采用什么流程。
我们的想法是在您无法在目标硬件上实施或概要分析时,在早期进行可靠的评估/计算。
为了使事情集中,让我们假设您的输入是灰度QVGA帧,8bpp @ 30fps,并且您必须对每个输入帧执行完整的canny边缘检测。我们如何找到或估算成功执行此操作所需的最低处理能力?
答案 0 :(得分:1)
不可能进行一般评估,而您所要求的是繁琐的体力劳动。
但是,您可以遵循一些通用步骤以得出一个大概的想法
根据基本的数学运算(例如加法和乘法)(最佳/平均/最差?您的选择)估算算法的运行时复杂度。
您需要浮点支持吗?
还要跟踪高级数学运算,例如饱和加/减(为什么?请参见第3点)。
消除目标处理器的ISA,并特别关注数学和分支指令。
乘法需要几个周期?或者,您的处理器是否每个周期调度几个?
查看您的处理器是否支持类似功能,
由于您明确要求输入abc
,因此请查看您是否附加了CPU
。图像处理算法通常受益于其中一种。
将您的操作(从步骤1开始)映射到目标处理器所支持的(在步骤3中)以得出估算值。
您需要考虑的其他因素(不计其数)