要想利用“人工神经网络”处理图像识别问题,需要事先收集到大量的数据。
可是仓促之间,上哪去弄数据?
倒是可以给“战神一号”拍一些“写真”,来充当训练集,反正所有的参赛机器人,外形都差不多。
这样做倒也不是不行,但时间太仓促了,数据的量级达不到要求,训练效果应该不会太好。
而且,就算拼着一夜不睡,东拼西凑出一点训练数据,也很可能来不及训练了。
训练“人工神经网络”,毕竟是一件比较消耗时间的事情。
而现在最大的问题,就是缺少时间,明天就要正式上场了的说……
何况,“人工神经网络”的优势在于通用性和准确率,在特定问题上的识别速度,还真不见得能比得上精心优化过的“笨办法”。
所以江寒仔细思考了一番之后,还是决定采用“几何形状匹配”的思路来做图像识别。
这种办法的优点是识别速度比较快,更容易获得高帧率。
编程的复杂度可能稍微高了一点,但这对江寒来说,并不是什么太大的问题。
他先新建一个.CPP文件,以及对应的.h头文件,然后创建一个新的类,用于容纳自己的图像识别算法。
接下来就可以正式编码了。
江寒一边思考,一边编写代码,靳雪雯在一边安静地看着。
两人偶尔也交流一两句,讨论一下编程思路、函数的功能之类的问题。
“江寒哥哥,这几个语句是做什么用的啊?”
“这个是图像预处理,按照自定义的阈值,将每个像素二值化……”
“那江寒哥哥,这个函数呢?我有点看不懂……”
“哦,这个叫膨胀处理,可以让图像的轮廓更加明显……”
……
二十多分钟后,江寒搞定了图像预处理的相关代码。
这部分要做的事情很简单,就是将摄像头拍到的图像,先处理成灰度图,然后二值化,只留下LED灯部分。
接下来,要在图像中遍历像素、寻找LED灯的轮廓。
这是整个算法中计算量最大的部分。
好在江寒对图片的预处理,做得相当到位,将这一步所消耗的时间,基本上压缩到了极限。
找到LED灯后,下面的事情就简单了,遍历轮廓、提取LED灯,再匹配筛选、找到机体轮廓,然后就可以锁定目标攻击了。
在做机体轮廓分析时,江寒考虑了一下,使用了模板匹配技术。
这样一来,就进一步减少了运算量,节省了时间。
到了这里,目标识别就基本完成了。
接下来,就可以测算目标的方位和距离了。
这一步涉及到图片坐标系与大地坐标系之间的换算,算法复杂度相当高。
但江寒岂是欺软怕硬的人呢?
只要舍得脑力全开,肯定是搞得定的。
然而,这样又有一个新问题,可别不等完成编码,大脑的能量就消耗殆尽了。
那种空虚乏味的感觉,可是相当难受的……
所以江寒想了想,就笑眯眯地说:“小蚊子,可以拜托你一件事吗?”
靳雪雯精神一振,摩拳擦掌地说:“江寒哥哥,快说、快说,是什么事?”
自己闲了这么久,总算可以派上点儿用场了……
江寒微微一笑,说:“帮我打个电话给前台,要点宵夜。”
“没问题!”靳雪雯脆生生地答应了一声。
然后拿出手机,喜滋滋地问:“江寒哥哥,你想吃什么呀?”
“冰岛红极参,问问哪里有,然后让前台帮忙订做两盘,送到大厅来。”
“好的。”靳雪雯立即拨号。