RM圆桌005抢人头要靠自瞄

1.什么是自瞄?你们是怎么利用自瞄获取比赛胜利的?为什么要做自瞄?优势在哪?

所谓自瞄,就是利用机器视觉来实现自动瞄准敌方和辅助打击的一种技术,在以往的比赛中,都是以纯手动打击为主,但人的操作和反应能力往往不如机器的快,正确的使用自瞄,宛如“开挂”一般,可以大大提升各单位的命中率既输出能力,给己方的输出提供强有力的支持和保障,在赛场上,拥有自瞄的队伍通常能起到非常强大的震慑作用,给队伍带来很大的技术优势。

2.自瞄怎么做起?

1)编程语言选择

C++、python:

C++是编译型语言,是编译执行的,程序是先需要编译成二进制执行程序,既机器码,然后才能执行,编译的时候编译器可以进行一些优化,python是解释型语言,是解释执行的,和物理机CPU之间多了解释器这层,所以运行效率C++>>python。

通常最好的选择是用c++搭建辅助打击框架,不过python也可以用在部分算法的验证、辅助工具的编写上面,在编程能力有限的情况下,python也是个不二选择。

2)第三方库的运用

OpenCV:OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

HALCON:HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉和图像分析应用的快速开发。

3)计算平台的选择

这里介绍两种主流的选择

A)NUC

NUC是intel推出的miniPC,性能和日常使用的笔记本甚至台式机的性能相当,优点是体积较小,而且由于是intel框架的,程序的移植非常容易,不需要做什么修改就能从自己的PC移植到NUC上,缺点是显卡用到是Intel的集成显卡,不易使用GPU加速的算法。

B)NVIDIAJETSON(TX1、TX2)

NVIDIAJetson是业内领先的AI计算平台,它面向移动嵌入式系统市场中的GPU加速并行处理。在深度学习和计算机视觉方面的高性能、低能耗计算,使得Jetson成为计算密集型嵌入式项目的理想平台。

因为该平台和PC的框架不同,所以使用过的人都会发现该平台有些很奇怪的坑,但如果用好了,该平台的性能是远大于NUC的,尤其是它在神经网络上的加速,是NUC无法比的,此外,TX1、TX2的体积和质量比NUC小很多,非常适合在对重量敏感的机器人上应用(如无人机)。

当然以上两个计算平台的共同特点就是贵……..

如果想要节省RMB,就只能牺牲计算的速度,退而求其次选择其他的开发平台,

3.自瞄算法的一般思路

2)图像预处理

因为灯条分为红蓝两色,预处理时可以采取颜色分割的方法将图像处理为二值图方便下一步的灯条提取。

HSV颜色空间分割:通常相机获取得到的图像都是RGB颜色空间,不方便直接进行颜色分离,因此转化为HSV颜色空间再进行分割。

HSV颜色空间由色调(Hue)、饱和度(Saturation)、亮度(Value)三个分量构成,HSV更接近于人眼的主观感受。我们可以通过下面的图来展示HSV颜色分布情况:

通过寻找红色蓝色对应的分量,将该颜色的区域划分出来,最后得到二值化的图像。

3)灯条提取

首先将上面处理好的二值图的轮廓提取出来(例如使用opencv的findContours函数),然后通过一系列条件排除掉假灯条,接着用最小包围矩形或最小包围椭圆去计算各个轮廓,选出最符合灯条特征的轮廓(例如判断灯条的长宽比、形状等等)。

4)装甲片识别

提取出所有可能的灯条之后,将“灯条”两两匹配,根据两“灯条”之间的距离、斜率之差、两灯条之间的长度之比等条件选出合适的待选装甲片,之后再通过筛选装甲片选择“最像”的那个(比如通过识别装甲片中间的数字判断是否为真装甲片),计算出装甲片的中点位置,至此完成了装甲片的识别。

5)云台控制

获得装甲片中点位置后,计算该点与图像中心(假设装甲片中心到达图像中心时云台正好对准装甲片中心)的差值,将图像x轴的差值作为云台yaw轴的控制输入量,y轴的差值作为云台pitch轴的控制输入量,不断地发送实时的“偏差”值,做一个闭环的控制。至此就实现了自瞄最基本的功能。

4.自瞄大家都有做,怎样才能做得稳呢?(做自瞄有什么诀窍?)

1)硬件的选型很重要,有个好的相机可以解决很多算法上的问题,并使算法效益最大化

相机通常有以下一些参数:

等等。

工业相机与普通相机的部分区别:

根据实际需求,选择一个合适的相机对结果非常重要。

2)专注于一点并做到极致,比哪里都做一点的效果更好

例如:大部分学校的自瞄都会出现“跟不上”既云台瞄准跟不上目标的移动,这里提供一个idea,与其想各种各样的预测算法,不如先把现有代码优化到极致,使它的实时性最高并最小化误识别率,最终效果可能会让你意料之外的好。

3)巧妙运用GPU加速

Opencv包含了CUDA(CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题)加速的版本,有些图像的操作在GPU上的速度会大大提高,而TX2、TX1这类嵌入式平台,往往CPU的处理能力有限,如果所有算法都在CPU上跑效率会大打折扣,而TX2、TX1恰巧完美支持CUDA和提供各种图像加速的API。

5.自瞄要在备赛的哪个阶段去做呢?你认为达成什么条件做自瞄才能发挥它的用处?

自瞄应该越早做越好,因为自瞄需要充分的鲁棒性测试和命中率测试,需要在不同的环境下测试可行性,测试最终效果是否真的比“手打”好,同时所说的“自瞄”大多数是有人的参与的,既不完全是全自动的瞄准+打击,通常的方案是人为控制是否开启自动瞄准,并且当多目标出现时人为选择要瞄准的目标,手动控制子弹的发射,因此操作手需要对该系统充分熟悉,只有达到人机合一的境界,自瞄才能充分发挥它的效果。

6.做自瞄最应该避免犯的错误是什么呢?

忽略电控部分的重要性:在视觉识别稳定的情况下,一个优良的控制算法会对效果大大加分,再例如利用响应更快的电机、为自瞄定制的电调,会明显提高自瞄的实时性和命中率。

以下为网友提问:

7.如果是用神经网络和机器学习去做跟踪处理,现在已经做到可以识别车了,那接下来是不是应该转化为识别灯条上的装甲板?华工是在tx2上面进行运算的吗?

答:我们用的都是传统算法识别装甲片的,神经网络的方法没有尝试过,觉得会比较慢;我们在大部分机器人上用的是nuc,无人机上用的是TX2。

8.请问自瞄过程中,怎样对目标进行预测,运用到什么策略或算法?

答:2018年的比赛中并没有在预测上做太大的功夫,不过可以尝试一下卡尔曼预测。

9.请问华工现在采用的是什么视觉方案呢?

答:参考上面回答的一般思路。

10.视觉算法设计到大量像素运算,为了保证实时性同时不牺牲性能,都有哪些优化方案?

答:如果用的平台是TX1、TX2的话,可以试试GPU加速。

11.请问视觉解算出角度后,与电控之间的配合,有什么需要注意的吗?

其实没有需要特别注意的地方,只要保证串口相互通信正常,和电控的控制算法相匹配即可。

12.请问在自瞄系统中高性能工业相机是否必要,算法效率真的可以发挥高性能工业相机的性能优势吗?

答:有必要,能,不过个人认为反过来也是对的,高性能工业相机反而能提高算法的效率。

13.深度学习做检测一般可以达到很高的准确率,但是一般比c+++opencv方案会更耗时,用深度学习做自瞄这个思路靠谱吗?

答:我会选择更加实时的方案。

14.请问进行目标跟踪时有哪些算法能有效帮助我们进行实时跟踪呢?

答:各种滤波算法。

15.工业摄像机,如果选择高帧率,那么就低像素;如果高像素,那么就帧率就会下降。请问你们是怎么选择的?

答:高帧率低像素。

16.想问下主讲人识别出装甲板后采用什么方法测距比较好呢?

答:利用小孔成像的原理测距。

17.自瞄摄像头的fov多少比较合适?

答:看实际情况,如果摄像头安装在云台上,可能60°就够了,但如果摄像头安装在地盘上,可能需要广角一点的摄像头防止目标跟丢。

18.GPU加速算法具体怎么实现呢?

答:cuda,TensorRT等等。

19.同问一下大佬识别出目标后除了重力都需要考虑那些补偿呢?

答:说实话,我们并没有把重力的因素写在算法里面。

20.识别出来之后单目测距有什么算法可以优化吗?

答:单目测距本来也不是很可靠,所以算出来的距离一般只是作为参考使用的,不会作为准确计算的数值使用。

21.请问大佬的测距用的深度还是双目呢?

答:单目。

22.请问要解算打击角度的时候弹道是怎么预测的呢,因为重力影响装甲在图像中心的时候发射弹丸并不能打中。

答:把准星参考点补偿高一点。

23.优先级的判断是要交给操作手吗?

答:战场的情况很复杂,不能保证算法的决策比人的决策可靠。

24.卡尔曼对于爆发运动预测效果还是比较差,请问有什么好的解决方案吗?

答:自己写相应的滤波算法,将所有可能的情况考虑进去。

25.有性价比高的工业相机推荐吗,或者是比较实用的上?

我们直接在淘宝上选的比较便宜的不知名品牌,不过比较好的牌子可以考虑海康威视、大华。

26.大佬们是怎么解决自瞄算法处理产生延迟,影响云台控制的?

答:我们的做法是将视觉算法的速度做到极致,来使延迟的影响最小化。

27.请问贵校有在自瞄系统中使用例如KCF跟踪一类的跟踪算法?

答:并没有使用。

28.如果要用卡尔曼预测的话,他的Q、R值应该如何整定?

答:可以参考这篇知乎:

29.想问一下大佬华工这样的顶级队伍分辨率采用多少呀,帧率能到达多少呢?

答:用的是640*480,帧率60。

30.请问贵校使用的摄像头图像采集的延迟有多大?150ms可以接受吗?

答:这个我们没测过;不过150ms延时可能有些大,移动目标基本很难打中。

31.那NUC是否运用加速算法呢?

答:NUC没有用GPU加速,都是用CPU跑的。

32.请问大佬有没有使用粒子滤波,KCF或者等等其他的跟踪算法吗?

答:没有,就只是自己写了一些防止数据跳动的滤波算法。

33.请问大佬是用什么机器学习模型算法呢,还是使用深度学习呢?

答:没有用到机器学习。

34.请问一下大佬有用yolov3这样的算法吗?

答:没有。

35.请问算法单帧耗时大概是个什么情况呢?跟随时又是怎么消除这个延时所带来的影响呢?

答:单帧大概20ms,我们并没有用上什么算法来消除延时,就只是尽量提高运行帧率,不过可以考虑卡尔曼滤波。

36.小白提问:请问提升识别的稳定性从哪些方面进行呢?识别时断时续

答:将所有可能的情况考虑进去,同时要充分测试各种环境下的识别率。

37.请问一下大佬,单目的话,距离信息怎么求解呢?pnp算法吗?

答:利用小孔成像的原理,pnp也可以求解出。

38.请问进行目标跟踪时有哪些算法能有效帮助我们进行实时跟踪呢?什么滤波算法比较优秀呢?

答:还是卡尔曼。

39.那一般来说,pnp的误差大概是多少呢?

答:需要实际测试,不同场景、摄像头、算法都有影响,给个参考,10%左右。

40.请问华工这些滤波算法是视觉做呢还是电控做呢?

答:视觉。

41.请问工业相机选择帧率多少的比较合适呢?在算法优化到最佳情况的条件下?

答:60以上。

42.想请问一下弹道的预测方面时使用了什么模型呢?实际测试中弹道比较散,请问出了摩擦轮闭环以外还有什么方法可以提高弹道的集中度吗?

答:我们做的时候没有特地考虑弹道的预测,有关弹道的问题要问机械组的成员,我不太清楚。

43.大佬对DSO算法有什么见解吗?

答:没用过、也没听说过。

44.问大佬,目前opencv的跟踪算法有哪些比较靠谱?

答:opencv没有提供很多跟踪算法,主要是用来提取特征、识别装甲片。

45.请问在识别过后是否使用了跟踪算法进行目标跟踪?

46.那请问大佬对于视觉识别到的目标信息是怎么处理的呢,是作为云台双环的输入量?还是代替云台位置环?

答:这个问题我不是很清楚,但输入的是相对量(偏差)。

47.刚才大佬说摄像头安装在云台上60°就够了,又说采用低分辨率高帧率,那这样远处的物体不很小很难识别吗,这样请问下大佬识别多远的物体呢?

答:的确不是很远,3m的效果是最好的。

48.请问一下除了采用PNP粗测,华工用于精确测距的算法是什么呢?

答:没用用其他的精确测距算法。

49.单目不可靠的话大佬没有考虑其他测距方式吗?

答:目前没有。

50.请问大佬队伍对于多目标同时出现是采用操作手手动筛选的,还是算法自己选择?我觉得靠操作手去手动筛选的这个程序写不来。

答:靠操作手。

51.同mym问,单目的粗测不靠谱只能用与参考,那该用什么数值作为准确计算用呢?

答:我们直接用粗测的值计算的。

52.小白的视觉算法一换光源就瞎了,总需要临场调试。大佬们的视觉是怎样适应不同光线条件,怎样高效的在比赛条件下调试的?

答:这个问题问的比较广,总的来说就是调整摄像头的参数,提高算法的鲁棒性,在比赛条件下通过录像后期调试,测试场地时最好能实现远程调试。

53.想问下大佬用多少分辨率,帧率又能达到多少?

答:同上。

55.请问您说的高帧率是指多少百帧以上呢?请问发给下位机的频率多少比较适中呢?

答:高帧率一般60以上够用,当然越高越好,只要算法的速度有那么快,发给下位机的频率要看串口波特率还有电控那边的处理能力。

56.请问大佬,识别装甲板,怎么区分大小装甲板呢?因为使用pnp,大小装甲板参数不一样啊。

答:可以考虑识别装甲片中间的数字。

57.60帧是不是有点保守?

58.请问大佬60帧不会发生卡顿吗?

参考上一问,没有明显的卡顿。

59.很多调好的参数改变光照后就检测不到装甲了,这个问题有解吗?

答:除了用鲁棒性更高的算法,就只能根据现场光照微调参数了。

60.请问大佬们是怎么选取最优目标的呢?

答:操作手选择。

61.自瞄的时候是完全把云台的控制权交给视觉吗?那这时候底盘的方向是怎么控制的?还是自动跟随云台吗?

答:是,地盘跟随云台。

62.请问大佬,看了下大佬的回复,我看到的是贵校没有用opencv的如KCF的跟踪算法也没有用到预测算法,贵校的自瞄是以计算装甲板中心与图像中心,并补偿为主嘛?

答:基本上是。

63.请问大佬,自瞄是怎么解决误识别问题呢?我在做自瞄,误识别很严重。

答:还是要将所有情况考虑进去,剔除伪装甲片,同时可以考虑识别装甲片的数字。

64.用于云台上的单目自瞄摄像头可以解决今年大符识别的问题吗?

答:这里不讨论大符的问题。

答:看需要,如果操作手适合打静距离目标就放在2-3m,如果喜欢狙击的话就用长焦。

66.看往届视频,很多学校会在底盘上面安装双目摄像头,这个主要是用来做什么的?

答:其他学校不清楚,我们前年用两个摄像头只是备用。

67.没有机器学习怎么识别贴纸和打符呢?

答:自瞄没用机器学习,打神符才用了。

68.请问大佬既然说单目测距不准那贵校是如何获取准确的距离信息呢?

热心网友帮答:

69.视觉算法设计到大量像素运算,为了保证实时性同时不牺牲性能,都有哪些优化方案?

答:在自瞄中,如果识别到了目标可以缩小区域而不是进行全局搜索,即采用ROI的方法减少图像的运算,提高算法速度。

70.请问在自瞄系统中高性能工业相机是否必要,算法效率真的可以发挥高性能工业相机的性能优势吗?

71.同问一下大佬识别出目标后除了重力都需要考虑那些补偿呢?

答:可以考虑空气阻力的影响

72.请问要解算打击角度的时候弹道是怎么预测的呢,因为重力影响装甲在图像中心的时候发射弹丸并不能打中。

答:子弹是一个抛物线模型,需要考虑重力的影响

73.大佬们是怎么解决自瞄算法处理产生延迟,影响云台控制的?

答:算法相对控制的延时是一定存在延迟的,所以要加入预测去补偿延迟

74.请问贵校使用的摄像头图像采集的延迟有多大?150ms可以接受吗?

答:竞培的小哥哥回答,采集图像延时150ms有点儿高,一般工业相机的帧率有100hz,延时可以控制在10ms左右。但如果是普通相机的话,延时就会比较高。

THE END
1.最新推荐算法引领个性化推荐未来趋势淘宝模特摘要:最新推荐算法引领个性化推荐的未来。该算法具备高度智能化和精准化特点,能够深度分析用户行为和偏好,为用户提供更加个性化的推荐服务。该算法采用最新的机器学习和人工智能技术,不断优化模型,提高推荐质量和准确性。该算法将在电商、社交、娱乐等领域得到广泛应用,为用户带来更加便捷、个性化的体验。 https://news.hbhuizhan.cn/post/8859.html
2.常用的几种推荐算法介绍本文详细介绍了个性化推荐系统中的各种推荐算法,包括基于内容、协同过滤、关联规则、效用推荐、知识推荐、上下文推荐和深度学习等,并对比了UserCF和ItemCF的优缺点,适用于电商、资讯、音乐、短视频等领域。 摘要由CSDN通过智能技术生成 个性化推荐(推荐系统)经历了多年的发展,已经成为互联网产品的标配,也是 AI 成功落地的https://blog.csdn.net/leyang0910/article/details/135395507
3.推荐算法有哪些推荐算法有哪些 推荐算法是机器学习和数据挖掘领域的一个研究方向,其目的是向用户或者群体推荐可能感兴趣的物品或者信息。常见的推荐算法有以下几种: 1. 基于规则算法:根据用户的历史行为和一些先验知识,制定一些推荐规则,将合适的物品推荐给用户。 2. 协同过滤算法:基于用户行为数据进行推荐,在用户历史数据集合中找到https://www.jianshu.com/p/accb96c6df67
4.推荐算法中有哪些常用排序算法?推荐算法中有哪些常用排序算法? 夏老师 03-21 00:13 千锋教育一、协同过滤 协同过滤是一种基于用户行为的推荐算法。它通过分析用户历史行为数据,发现用户之间的相似性,从而推荐给某个用户其他与其相似用户喜欢的物品。协同过滤算法分为基于用户的协同过滤和基于物品的协同过滤两种类型。 二、基于内容的推荐 这种算法https://localsite.baidu.com/article-detail.html?articleId=20190018&ucid=n1DvP1c3nHf&categoryLv1=%E6%95%99%E8%82%B2%E5%9F%B9%E8%AE%AD&ch=54&srcid=10004
5.常见的推荐算法有哪些及它们的优缺点。腾讯云开发者社区常见的推荐算法有哪些及它们的优缺点。 大家好,我是贤弟! 常见的推荐算法包括以下几种: 一、基于内容的推荐算法 基于内容的推荐算法是将用户的历史偏好和物品的属性进行比较,从而为用户推荐相似的物品。算法主要思想是在物品的内容描述中提取特征向量,并计算不同物品之间的相似度,然后推荐与用户过去喜欢的物品相似的https://cloud.tencent.com/developer/news/1278222
6.推荐算法有哪些推荐算法有哪些 低调2024-08-03 14:08:30 推荐回答 低调2024-08-05 09:54:17 推荐算法是计算机专业中的一种算法,通过一些数学算法,推测出用户可能喜欢的东西,目前应用推荐算法比较好的地方主要是网络,其中淘宝做的比较好。推荐算法主要分为6种。基于内容的信息推荐方法的理论依据主要来自于信息检索和信息过滤,https://m.yyk.iask.sina.com.cn/q/87Uy60hTGWW9.html
7.快手客服怎么联系人工客服?快手规则有哪些?推荐算法有哪些? (1)审查机制:作品发布后,平台将对作品进行初步审查,即筛选一些违法作品,杜绝色情暴力、迷信传播、广告营销等垃圾内容。 (2)智能分发:当您通过审核时,系统将向初级流量池推荐您的工作。在用户互动后,系统将对工作做出判断。如果条件满足,则不推荐。 https://www.mmker.cn/article/14189.html
8.抖音海外版TikTok揭秘短视频推荐算法的工作机制就在今天,TikTok在海外官方博客发表了一篇文章,详细介绍了推荐算法的工作机制,以及如何针对用户进行加权运算,以实现精准推荐的。 总的来说,TikTok的推荐算法是基于输入因素构建的,这与YouTube测量和监控参与度的方式有些相似。人们与应用程序的交互方式、发布的评论或关注的帐户,都会影响到推荐。比如,如果某人只关注了可https://www.thepaper.cn/newsDetail_forward_7914836
9.媒体客户端高质量发展,技术和经营领域有哪些对策2.优化推荐算法,赋能正向化智能推荐 算法推荐可有效缓解信息过载的问题,同时,由于其对“技术逻辑”与“商业逻辑”的过度重视,容易造成“信息茧房”下的认知失衡等一系列隐患。媒体应服务于公共利益,如叠加推荐算法,指在前期流量的基础上,根据算法判断作品是否为受欢迎的内容,算法会为优质内容自动加权、叠加推荐。叠加https://www.cnr.cn/yggg/hyzx/20230908/t20230908_526412502.shtml
10.五大推荐系统算法java推荐系统算法有哪些五大推荐系统算法java 推荐系统算法有哪些 受到大家公认的推荐算法基本包括以下几种:基于内容的推荐、协同过滤推荐、基于关联规则的推荐、基于知识的推荐、组合(混合)推荐及其他推荐 1 基于内容的推荐 基于内容的推荐是根据用户已经选择的对象,从推荐对象中选择其他特征相似的对象作为推荐结果。https://blog.51cto.com/u_16099166/9068610
11.新传考研热词——算法推荐1.新闻的呈现方式、生产方式、盈利模式有所变化 算法推荐出现后,使得原来的新闻业呈现的“拼盘”的版面-频道式,被单个单个的“爆款”所取代。算法新闻通过数据处理和定制化的方式,提高了信息传播的到达率,满足了用户分众化的信息需求,节省了用户获取新闻的成本;在生产方式上,以传者为中心的模式转变成以受者为中心,https://m.douban.com/note/819182888/
12.如何增加抖音权重抖音常用运营方法分享运营技巧自媒体搬运视频是一个捷径,但是有的时候捷径并不适合所有人走,有些人能火是有很多运气成分在里面,短期可以玩玩,对于长期做号是很危险的。最保险的生产方式还是踏踏实实做原创。 8.抖音的算法是怎么回事? 抖音的算法,其实是一个漏斗机制,跟今日头条等其他自媒体平台的中心化的推荐算法原理基本一致。它分为三个步骤: https://www.jb51.net/zimeiti/753669.html