返回
矿用机械新闻
分类

以及轻量级框架mxnet等

日期: 2019-05-21 02:22 浏览次数 :

  从功能上来说,你这个应用非常适合采用深度学习,事实上,深度学习本质上就是用来做分类识别的,尤其是针对零件与零件之间,图像上差异比较小的时候(比如你需要自动分拣A,B,C三种零件,但其形状差别很小),更加适合用深度学习。

  训练的样本要足够大,具体多大合适,要看你对图像区分度的要求。如果样本不是很充分的情况下,比如数千张或更少,其实也可以考虑用传统方式,比如SVM。我用传统方式做过宝马车标,安全帽等的识别,准确度相当高了,尤其是车标识别,接近100%准确,而我只用了不到100张做训练,而且无论算法还是模型库都不大,很适合做嵌入式,而且可以做到实时。

  对深度学习而言,速度/性能是个很大的问题,不知道题主的机器性能如何,以及对应的图片分辨率,是否要实时处理?我估计题主应该是那种实时高清识别,而且有可能是嵌入式设备,我们姑且认为视频是直接从本机采集,不需要做解码,即便如此,基于深度学习的运算量也是很高的,尤其是resnet这种,一般而言,层数越多越精准,运算量也会越高。高清情况下(机器视觉应用一般会1080P或更高),我个人认为单张图片的识别时间会超过1秒,很难做实时。有朋友在256核的TX1上测试过标清的FAST RCNN,单张处理时间为0.6秒左右,我本人测试过googlenet,在一台阿里云E5的机器上(无GPU),识别一张720p的图片,估计约0.3 - 0.5秒左右(我的应用需要考虑网络传输的时间,没打log,只是通过返回结果大致估计)。无论哪种情况,离每秒25帧的实时要求都差得太远。

  嵌入式设备,个人不建议用深度学习,除非你能将密集运算部分移植到FPGA上,否则性能会是个很大的问题。

  对于区分度要求很高(种类很多,很相近),非实时的应用,基于后端或云端的业务,有足够的运算资源。特别适合用深度学习。

  强烈建议题主关注一下,深度学习领域芯片相关技术的进展,比如谷歌的TPU,国内的寒武纪,以及轻量级框架mxnet等。

  深度学习应用于工业机械臂的控制,这也是 Industry 4.0 的发展方向。

  将深度学习算法应用到工业机器人上,拿来做商品或者零件分拣,大概可以分为「分类」和「捡起」两步:

  对于单个商品或者零件,要想将其成功捡起,关键是选择合适的把持位置,通俗的将,就是机器人夹零件的哪个地方,可以使零件不下滑,从而成功地被捡起来。比较典型的算法,一个是採用两阶段的深度学习算法,第一阶段通过小型的Neural Network,检测出数个可以把持的位置,第二阶段採用大型的Neural Network,对第一阶段得到的各个把持位置候选进行评估,选择最终的一个把持位置。这种算法的成功率大概能达到65%。

  对于多个商品和零件堆积在一起的情形,除了把持位置的选择,还需要选择合适的抓取顺序,即先抓取哪一个零件,后抓取哪一个零件,这时可以採用Reinforcement Learning算法,最终可以达到约90%的成功率,和熟练工人的水平相当。当然,要将这些成果大规模应用到工业流水线上,还需要考虑到正确率要求更高(一般是99.9%),以及速度要求更快等,目前许多改进就是围绕满足这两点指标来进行的。

  傅里叶智能推出的国内首款带有‘触觉’的下肢外骨骼机器人——‘Fourier X1’