对于目标检测、跟踪一般的科研,主要是使用matalab,VS,VC6.0结合opencv(开源计算机视觉库)进行开发。主要是使用一下两个方法【通过论文总结】
一、 使用matalab,选定检测、识别的算法,弄懂算法的含义,添加自己的改进方案。编写matalab代码(主要是C、C++)。运用视频检测集,对算法的精确性、鲁棒性进评测,并与未改进的算法对比,突出自己提出算法的优势。
二、使用VC、VS进行关于win32控制台程序的开发,主要开发出的产品是MFC的.exe项目。可以添加一些数据分析(曲线图)和视频控制的功能。
如何在fpga上进行开发(主要是结合自己的时间安排)
一、选定算法(主要是可以在硬件上易于实现)
二、在matalab、opencv上实现算法(弄懂算法)
三、改进算法,编写软件代码,实现
四、利于matalab将算法导出为verilog语言,或者通过vivado的HLS将自己编写的C算法(就是一个函数)和测试程序、数据在HLS上测试,通过后对算法进行IP打包
五、进行其他模块的开发,数据的获取(CCD、CMOS获取),数据的处理(ITU656转ITU601),数据的颜色空间的额装换(对于人脸监测,需要转为HIS),数据的存储(可以先测试640*480的视频数据,不使用DDR,验证算法),算法对数据的处理,数据的后端显示(视频的时序要求)
自己简化的开发方法:
直接使用视频播放盒输出480PHDMI的视频数据;对数据进行处理算法处理(主要保证在下一帧到来之前,完成对第一帧的算法计算、处理,在第二帧数据进来时,就用第一帧的结果对第二帧数据进行处理、输出;对第二帧数据进行算法计算,将其结果供第三帧数据使用。必须满足时序的要求=》不然就会在第二帧来时,算法还没计算完成,那么就会出现丢帧的现象【这会出现目标检测、追踪的丢失】);输出到显示屏上,查看结果。
下一个阶段的工作:
① 弄清meanshift算法的含义,结合软件算法进行理解
② 编写软件实现的代码
③ 弄会一个zedboard的项目,主要是学会vivado的开发流程,方法(怎么进行算法的开发、怎么进行驱动的开发,sdk中的开发【基于硬件的C代码】),AXI中的AXI-stream http://blog.sina.com.cn/s/blog_651c92d301012onv.html
④ 弄清系统的一个架构