请教下领导提出图像识别的这种思路是否可行?

2020-01-08 08:58:26 +08:00
 xiaolinjia

需求是领导想做一个船只的目标跟踪,即不断截取摄像头的图片,然后用 TensorFlow 等,框选出当前船只在图片中的像素坐标,再调用摄像头的移动命令去使其移动以保持船只在摄像头中间。

姑且当其识别的比较准的前提下,测试发现有一个问题。

如果有其他船只从旁边经过(即和目标船只出现在同一个摄像头中)的时候,因为图像识别到两艘船,且坐标不同,这时,我就不知道要跟哪艘了。

针对这个问题,领导跟我说,让我看看 opencv 的相似度计算。他思路是,把之前框选的船只图,保存下来(不是保留摄像头整个图片,而是仅框选的船只图片),然后再把这个船,和之后的摄像头的图片做相似度计算,再判断出是要跟着哪艘船?

注:是用框选出的小图,和整张摄像头的大图进行相似度计算。

我也不是很懂机器学习这块,只是懂 python 就让我上了。。所以我想请问下这种思路到底可行不,如果是比较困难的话,或者有大佬提出其他可行的想法?

11310 次点击
所在节点    Python
83 条回复
upczww
2020-01-08 11:07:05 +08:00
这是 ReID 问题
cjq8z
2020-01-08 11:16:19 +08:00
不懂机器学习,你搞这个就有很大问题。船在运动过程中,不同距离、不同时间、不同光线下,船的外观是不同,你直接模板匹配,匹配不成功的。
举个例子:你在追踪船过程中,突然晴转多云或是下起小雨,船外观就变了。这个时候,你还咋匹配。

总结:你需要机器学习,训练程序能够识别不同光线、距离、不同时间下、不同的船只,这一步能成功,其它的就不是问题了。
xytdj
2020-01-08 11:18:04 +08:00
难道不是用船体上的船标船号国标做识别特征的吗?
php01
2020-01-08 11:34:04 +08:00
要不,买个大疆做个 FPV,成本几千块钱一个,自动对焦,自动锁定目标,物理防抖
skymei
2020-01-08 11:59:25 +08:00
机器学习比较难的模型建立,模型训练那块,你要是懂的话就好做了。
loading
2020-01-08 12:05:11 +08:00
建议和讯飞或者海康合作,他们似乎就是一行代码。
cydysm
2020-01-08 12:19:29 +08:00
以前读过一个算法研究 Fast Tracking via Spatio-Temporal Context Learning
cz5424
2020-01-08 12:28:26 +08:00
旧版本的 opencv 有特征匹配算法
Chase2E
2020-01-08 13:18:41 +08:00
detection + tracking,开源算法太多太多了。
难点前些年不是在追踪上,而是降低运算复杂度上
wqzjk393
2020-01-08 14:13:31 +08:00
@wangxiaoaer 是需要大量船舶图片做训练,但是其实对于这个问题差不多可以当作二分类来处理,也就简单多了。但是他这个摄像头没明白是什么情况啊,码头的摄像头跟踪船舶移动来做安防么?那种分辨率做精细识别感觉挺不靠谱的,靠 tf 识别两个不同的船挺麻烦的。
第二个问题,图片的特征点一般不需要人工干预的吧。一般都是根据网络结构自己生成,例如一个深层网络,每一层是学习什么部位的特征这好像人为很难控制,但是你训练好魔性以后打印各层 featuremap 反而是能看出来反应了什么部位的特征。
他这个问题,感觉图像识别+位移预测好一点,类似于飞机惯导的原理,根据当前位置和前几个位置,计算移动方向、速度、加速度,然后做追踪,这比单纯的图像识别然后校准镜头,然后再识别再校准要方便吧
jingous
2020-01-08 14:21:25 +08:00
工业上一般都不是拿深度学习做的吧?想在能保证实时性的基本都是相关滤波。如果用 tensorflow 的花,数据收集也需要你花费好长的时间
jingous
2020-01-08 14:22:41 +08:00
关键词是目标跟踪,可以多查点资料
bububububiu
2020-01-08 14:51:31 +08:00
你这个是 reid 的问题,行人重识别
ReisenZ
2020-01-08 15:28:17 +08:00
不懂识别这一块, 但是楼主方案里会不会遇到多艘船在画面中遮挡问题? 比如其他船经过挡在了目标船和摄像头之间...
nmecury
2020-01-08 15:44:35 +08:00
可行,没做过的门槛有点高。
建议描述再详细一点,在服务器上做和在端上做完全是两个问题,以及摄像机机位、安装环境等等等等……
服务器上深度学习的话,detection+tracking+reid。姑且认为船是刚性物体,没 /较少有可变化的部分,需要考虑环境 /光线变化、遮挡、船只转弯,两艘船很像等等问题。要是做一个非常简单的版本,只用 detection,不涉及跟踪、ReID 算法都行;甚至传统算法像多高斯之类的也行。
具体问题具体分析。
julyclyde
2020-01-08 15:48:45 +08:00
做的好不好另说
至少做出来是可能的
wingspread
2020-01-08 15:50:29 +08:00
mark 一下。估计需要 N 多训练的船只数据。
qieqie
2020-01-08 15:54:57 +08:00
你领导的意思大概是用 OpenCV 的 features2d,
但实际上计算 IoU 的方法效果就足够好了,毕竟两艘船高度重合的可能性很低(那不撞了吗)
qieqie
2020-01-08 15:58:12 +08:00
发现很多人不审题
首先楼主说 detection 已经不是问题,其次同一个镜头内的 tracking 有 reid 什么事
jasonding
2020-01-08 16:36:44 +08:00
理论上来说是可行的,人眼盯着一艘船,来了另一艘第一艘也不会丢,毕竟脑袋已经记住了第一艘船的外观(假设后一艘与前一艘外观不一致),位置坐标(两艘船不可能重叠),就算某一瞬间丢失了也可以根据速度预估位置并在附近找到。

但是技术实现上是不是可行就不清楚了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/635977

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX