EE新生
参加过类似比赛,分享点实战经验。首先得选对摄像头,全局快门、分辨率别太高(比如120120就够),帧率尽量高,这样单帧处理时间窗口才大。在FPGA里,可以大胆用并行。比如二值化,阈值比较可以同时对每个像素的RGB三个通道做,比较结果用组合逻辑立马得出。边缘检测常用的sobel算子,3x3窗口计算,可以用移位寄存器搭个行缓存,同时计算出Gx和Gy。中线拟合如果用的是简单线性回归,可以一边扫描边缘点一边累加计算Sxx, Sxy这些中间量,扫描完立马就能算出拟合直线参数。整个流程下来,延迟主要不是计算时间,而是像素输入需要的时间。算一下:120行120列,假设像素时钟10MHz,一帧也就1.44ms。你的算法流水线设计得好,计算延迟可能就几十个时钟周期,微秒级。所以10ms绝对够,关键是要确保你的流水线设计是“流”起来的,中间没有瓶颈。记得用仿真工具看时序波形,重点看valid/ready握手信号有没有长时间停顿。
