我们的项目是 GPS 相关的业务,现在有一个算法问题一直没解决导致项目拖了很久了,中间尝试了很多办法。老板今天也发怒了,实在没办法。求助 V 友的大佬们给下思路
有 N 条数据里面含有载重数据,载重数据是车上安装的设备传过来的。拿到数据我们需要根据载重值算出装卸货事件。
1.行驶中因为车经常抖动导致载重值很不稳,一直都是一会上一会下,很少有连续性高的值。
2.车辆斜着停也会造成载重值不准确,因为是根据角度得出的值。
3.在卸货或者装货的时候没有速度,但是装卸货时车也是会有抖动,也会造成事件不准确。
我们以前的算法是一个死算法,不能灵活的去对应场景。稍微抖动就造成事件生成不准确。我们是根据一个阈值比例判断它是否为重车和空车。
根据连续点得出装卸货事件,但是最终做出来,事件点容差还是比较大。
想问问大佬们这种东西是用机器学习去算出事件,还是怎么去做算法比较好。我对机器学习这些也不懂,所以现在只能看换下思路能不能解决这个问题。 如果能用机器学习的话主要涉及的东西是些什么,我们好招相关人员。
感谢大家
1
yaming116 2020-08-28 15:55:19 +08:00 via iPhone
换成摄像头好了
|
2
FutherAll 2020-08-28 15:55:47 +08:00
抖动的话,加上速度应该可以判断吧
|
3
imn1 2020-08-28 16:05:03 +08:00
数据获取的频率?
高频数据应该比较容易滤掉不准确数据,因为不准确的会有各种不同的值,准确的则在某个误差范围内 这样,某个范围数据(准确的数据)是会多次出现的,不准确数据则分布在不同范围 低频的话就麻烦了,例如几小时才测一次 |
4
gggxxxx 2020-08-28 16:10:56 +08:00 via iPhone
这个问题有点意思啊。
数据采集的频率很关键,感觉频率高的话,抖动导致的载重值和真正装满货后的载重值不难区分出来。 另外换个思路,载重值不可靠的话,改用其他值来判断。例如会不会载重后汽车启动加速度不一样?通过汽车加速度或者刹车速度来判断是否重车? |
5
rapperx2 OP @imn1 “准确的则在某个误差范围内“ 就这个误差值一直不能解决,这个是其一的因素。 数据是 10 秒-30 秒一条
|
6
rapperx2 OP @gggxxxx 车辆开起来,gps 的速度是不准确的,经常速度为 0 。大多数是 30-60 码。很难判断车辆是否一直在开。
|
7
Vegetable 2020-08-28 16:15:36 +08:00
感觉从你描述的问题来看,比较关键的是怎么过滤噪音。最简单的逻辑是根据前后的状态和复合逻辑来判断当前取到的数据是否是有效的。比如在有速度的时候卸货和装货应该是有问题的。斜着停车这个有点无解,不过去掉普通的抖动还是比较有希望的吧,这个用机器学习可能并没有那么好的效果,你能拿到学习数据吗
|
8
mm163 2020-08-28 16:17:06 +08:00
传感器连续测数据,然后去抖,取平均。
|
9
imn1 2020-08-28 16:20:12 +08:00
@rapperx2 #5
你的业务场景我真是比较难理解 如果只有空车、重车两种情况,我觉得空车应该远远偏离重车的检测误差范围吧? 是否还存在货物量低,然后误差范围涵盖了空车,这种情况? 或者你随便贴一段一小时内,监测数据的曲线图,给大家看看 |
10
kop1989 2020-08-28 16:20:46 +08:00
我觉得需要先阐述:
1 、能够参与判断这个“装卸货事件”的参数都有几个。 2 、判断事件的准确率要高于多少? 这俩不明确没法有人提供准确的方案吧…… |
12
imn1 2020-08-28 16:59:50 +08:00
速度值不准的话,还不如上 GPS
装卸货时间不短吧,还是说泥头车一分钟内直接就倒掉余泥? 如果装卸货需要一定时间,GPS 位移+突变重量数据应该更容易判断 唉,不是做这行,搞不清业务逻辑 |
13
elmagnificogg 2020-08-28 17:13:02 +08:00
学习可以,但是先需要标定,大概比如 1000 次车装卸数据,然后标定好正确的,然后拿去训练,但是吧,我感觉这个不是学习能解决的,首先 10s 一次数据 其实挺慢的,而且你本身也说了数据中存在不准的情况,gps 速度不可靠,而且可能有些路段可能还会有遮挡,导致位置信息啥的都是错的,我建议是先让 gps 那边传的数据里增加一个 gps 定位情况的东西,比如 HDOP,然后把 HDOP 太高的先过滤掉,再尝试吧
|
14
kokutou 2020-08-28 17:13:57 +08:00 via Android
这。。。还不如换个准的陀螺仪。。。
我觉得陀螺仪传感器应该是准的,是不是那个模块里的固件算法有毛病。。。 |
15
goofool 2020-08-28 17:20:05 +08:00 via Android
有速度就不用判断装卸货了吧
|
16
nicaishizhu 2020-08-28 17:45:01 +08:00 via iPhone 1
去抖可以用卡尔曼
|
17
shuigui 2020-08-28 17:46:42 +08:00
上学时玩过一段时间四轴
1 、数据类型还是不够,车载设备要提供当前姿态数据和加速度(典型的如 mpu9250 ) 2 、姿态数据和加速度有了后可以方便的解决你说的上坡还有抖动之类的 3 、卸货不知道你们是怎么卸货的,是慢慢倒掉还是突然倒掉,那得对载重值的检查频率要比较高,然后对这个值做一个微分处理,根据变化趋势来判断是正常抖动还是在卸货 4 、机器学习不是说丢一堆原始数据然后就完事了,一个简单的问题,你自己都不知道哪个数据是正常的卸货? |
18
wysnylc 2020-08-28 18:05:11 +08:00
和算法没什么关系,是数据本身有问题
|
19
GrayXu 2020-08-28 18:10:17 +08:00
你的需求不需要上机器学习。
|
20
lloovve 2020-08-28 18:11:39 +08:00 via iPhone
传感器有问题,再怎么研究也不行,至少我没看到 gps 速度误差那么大的,卸货车板或者门上安装传感器就行了,车上的载重传感器也有问题
|
21
jtwor 2020-08-28 18:19:15 +08:00
根据不同情况所产生数据不准 都设个权重 感觉难题其实都在怎么过滤这些数据
|
22
summic 2020-08-28 18:32:53 +08:00
传感器的问题,你靠算法去弥补?
数据质量那么差,你作为专业人士应该跟老板指出关键问题所在,让大家少走弯路。 |
23
grazie 2020-08-28 18:46:40 +08:00 via Android
@nicaishizhu 加上 Markov Chain 应该可以了
|
24
ghjacky 2020-08-28 18:48:43 +08:00
是我想的太简单了吗?我觉得,装卸货事件肯定发生在速度为 0 时吧,只要速度为零,载重数据在一段时间内出现平稳的增长或者下降不就是装卸货吗,至于速度不为 0 时的数据抖动你管它干嘛。停车时,车身倾斜造成的数据不准但是总不会变化吧。
|
25
zhouxiaoyuan 2020-08-28 18:52:56 +08:00 via Android
能不能把异常数据过滤掉,只关心正常数据
|
26
heyjei 2020-08-28 19:39:30 +08:00
这个不应该把锅甩给硬件部门嘛?最笨的办法就是对着一堆的数据找规律
|
27
heyjei 2020-08-28 19:44:16 +08:00 1
以前我们也出过类似的数据质量的问题,造成用户体验极差。最后的解决方法是大佬出面协调不同的组更改协议,同时要求源端提高采集质量。
光靠软件,或许能解决,但是肯定是最费时费力的,你需要一个能够跨组协调的大佬。 |
28
jarence 2020-08-28 19:48:51 +08:00
建议楼主贴一点数据上来,没有具体数据给不出有效的建议。从楼主的表述上来看,可以用滤波的方式去掉噪声,比如最简单的平均值滤波。从最简单的技术来验证,机器学习里有异常检测的算法,但是得看具体得数据是否适用。
|
30
hurrytospring 2020-08-28 20:24:30 +08:00
感觉还是数据太少了啊,起 终点,运送距离,陀螺仪的水平角度,加速度,随便获得那两个数据问题都会简单很多啊。
|
31
allan888 2020-08-29 02:11:07 +08:00
我觉得 lz 应该贴上训练数据,数据+时间+空车还是负载的车,大家好一起玩玩
|
33
nightwitch 2020-08-29 12:34:42 +08:00
机器学习的铁律: 垃圾数据进,垃圾结果出。
你应该从提高传感器的数据质量着手,比如使用双传感器冗余进行数据对照,换用其他传感器等等 |
34
xuanbg 2020-08-29 13:01:27 +08:00
先求移动平均值,这样应该就可以把抖动消除了。
|
35
EdwardL 2020-08-29 14:04:49 +08:00
建议给门上装个传感器,总不能开着门开车和关着门卸货吧?
|
36
Zhepro 2020-08-29 14:08:26 +08:00
这是传感器质量太差导致的吧
|
37
clayyj1210 2020-08-29 18:25:56 +08:00
再装个传感器,检查车厢在一定时间内是否垂直了。可以根据车子型号来判断启动速度。
|