没有合适的资源?快使用搜索试试~ 我知道了~
4关于简单目标识别与意图分析的机器学习实战研究(连线算法)1
需积分: 0 0 下载量 24 浏览量
2022-08-08
20:20:58
上传
评论
收藏 629KB DOCX 举报
温馨提示
试读
15页
既然每辆坦克的坐标点有了,那么现在要考虑的就是如何连线,这个问题说难不难,说简单也不简单,在图片做完之后,下一步要做的就是视频上的分析,所以坦克的行进方向是一个
资源推荐
资源详情
资源评论
关于简单目标识别与意图分析的机器学习实战研究(连线算法)
根据这个课题的要求,在识别意图的方法上需要好好的想一想,因为是作战坦克,从
简单的方面入手,我们假设它有三种意图,行军、突袭和作战(我看了下资料,好像很少
涉及防守一说,好多论文研究的都是这三个方面,例如这篇:
http://cdmd.cnki.com.cn/Article/CDMD-10487-1017833083.htm)。对于深度学习大量的运
算,我看了看自己的小笔记本,这根本带不动,所以机智的我依然决然的选择了一个简化
算法,一张图片信息量太多,那一条线呢?没错,我就是要把一张图转换成一条线,用这
条线来代替坦克阵型,因为我们最后要做的就是根据坦克阵型来判别坦克的作战意图。
又因为坦克的意图多样,所以这条连线必须体现出坦克阵型的所有信息,在模板匹配中,
可以通过 cv2.minMaxLoc 函数得到最佳匹配区域,并返回它在图片上的坐标值。既然每辆
坦克的坐标点有了,那么现在要考虑的就是如何连线,这个问题说难不难,说简单也不简单,
在图片做完之后,下一步要做的就是视频上的分析,所以坦克的行进方向是一个重要的信息,
连线顺序就是以行进方向为准,将所有点投影到这条直线上,而后按照投影之后点的坐标顺
序,从横坐标从小到大,或纵坐标从小到大依次连线即可。
连线算法示意图
上面那条黄色的线就是我们最终简化的结果,坦克行进的方向不同,这条线的朝向也
会不同,但是这些点内部的顺序是确定的。而后面通进行深度学习时只训练这样的特征连
线就可以了,这样便达成了我们减小运算量,却不失信息量的目的。
连线制作简化模型的思路就是这样,下面开始具体编写代码,我第一次写这个连线算
法的代码是这个样子的(刚开始没找到什么简便算法,就固定五辆坦克,一个点一个点的
算距离,然后在排序,最后才连线,因为在排序、运算的过程中要一直确保每辆坦克一直
都有标识):
1. s = "ZZZ"
2. c = "Z"
3.
4. s_content = "What direction? (U[上下] / L[左右] / 任意键进入角度选择)"
5. c_content = "请输入您想要在哪个角度上进行匹配连线(角度):"
6.
7. s = raw_input(s_content.decode("utf-8").encode("gbk"))
8. if (s != "ZZZ" and s != "U" and s != "L"):
9. c = raw_input(c_content.decode("utf-8").encode("gbk"))
10. red = (0, 0, 255)
11. col = red
12. thickness = 20
13. print tl
14. tl1 = []
15.
16. #c = tl[1][0] - tl[2][0]
17. #print c
18. #s = [x[0] for x in tl][0]
19. #print s
20. if c != "Z":
21. for g in range(0,5):
22. tl1.append( l_get(tl[g],c))
23. print tl1
24. for j in range(0,5):
25. for k in range(0,5):
26. if j != k:
27. if k == 0:
28. for j in range(0,5):
29. for k in range(0,5):
30. if j != k:
31. if k == 0:
32. if j == 1:
33. if (l_z(tl1[j],tl1[k]) >= l_
z(tl1[j] , tl1[2])) & (l_z(tl1[j],tl1[k]) >= l_z(tl1[j] , tl1[3])) & (l_z(tl
1[j],tl1[k]) >= l_z(tl1[j] , tl1[4])):
34. cv.line(target, tl[j], t
l[k], col, thickness)
35. if j == 2:
36. if (l_z(tl1[j],tl1[k]) >= l_
z(tl1[j] , tl1[1])) & (l_z(tl1[j],tl1[k]) >= l_z(tl1[j] , tl1[3])) & (l_z(tl
1[j],tl1[k]) >= l_z(tl1[j] , tl1[4])):
37. cv.line(target, tl[j], t
l[k], col, thickness)
38. if j == 3:
39. if (l_z(tl1[j],tl1[k]) >= l_
z(tl1[j] , tl1[1])) & (l_z(tl1[j],tl1[k]) >= l_z(tl1[j] , tl1[2])) & (l_z(tl
1[j],tl1[k]) >= l_z(tl1[j] , tl1[4])):
40. cv.line(target, tl[j], t
l[k], col, thickness)
41. if j == 4:
42. if (l_z(tl1[j],tl1[k]) >= l_
z(tl1[j] , tl1[1])) & (l_z(tl1[j],tl1[k]) >= l_z(tl1[j] , tl1[2])) & (l_z(tl
1[j],tl1[k]) >= l_z(tl1[j] , tl1[3])):
43. cv.line(target, tl[j], t
l[k], col, thickness)
44.
45. if k == 1:
46. if j == 0:
47. if (l_z(tl1[j],tl1[k]) >= l_
z(tl1[j] , tl1[2])) & (l_z(tl1[j],tl1[k]) >= l_z(tl1[j] , tl1[3])) & (l_z(tl
1[j],tl1[k]) >= l_z(tl1[j] , tl1[4])):
48. cv.line(target, tl[j], t
l[k], col, thickness)
49. if j == 2:
50. if (l_z(tl1[j],tl1[k]) >= l_
z(tl1[j] , tl1[0])) & (l_z(tl1[j],tl1[k]) >= l_z(tl1[j] , tl1[3])) & (l_z(tl
1[j],tl1[k]) >= l_z(tl1[j] , tl1[4])):
51. cv.line(target, tl[j], t
l[k], col, thickness)
52. if j == 3:
53. if (l_z(tl1[j],tl1[k]) >= l_
z(tl1[j] , tl1[0])) & (l_z(tl1[j],tl1[k]) >= l_z(tl1[j] , tl1[2])) & (l_z(tl
1[j],tl1[k]) >= l_z(tl1[j] , tl1[4])):
54. cv.line(target, tl[j], t
l[k], col, thickness)
55. if j == 4:
56. if (l_z(tl1[j],tl1[k]) >= l_
z(tl1[j] , tl1[0])) & (l_z(tl1[j],tl1[k]) >= l_z(tl1[j] , tl1[2])) & (l_z(tl
1[j],tl1[k]) >= l_z(tl1[j] , tl1[3])):
57. cv.line(target, tl[j], t
l[k], col, thickness)
58.
59. if k == 2:
60. if j == 0:
61. if (l_z(tl1[j],tl1[k]) >= l_
z(tl1[j] , tl1[1])) & (l_z(tl1[j],tl1[k]) >= l_z(tl1[j] , tl1[3])) & (l_z(tl
1[j],tl1[k]) >= l_z(tl1[j] , tl1[4])):
62. cv.line(target, tl[j], t
l[k], col, thickness)
63. if j == 1:
剩余14页未读,继续阅读
资源评论
洪蛋蛋
- 粉丝: 22
- 资源: 334
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功