没想到,现在手机上就能做实时线段检测了。
速度丝毫不比目标检测慢,而且检测效果还非常不错:
线段是计算机建立视觉认知的基础元素,利用LSD可以快速检测图像中的直线段,从而根据图像的几何特征设计算法,快速确定目标区域。
虽然之前的线段检测模型也能做到实时性,但往往只有在计算性能不错的GPU上才能实现。
随着机器人用途的多样化,现在就连移动设备(如手机)和嵌入式设备(机器人)也希望能搭载线段检测模型,为机器人视觉研究做准备。
为了满足这些需求,一个名为M-LSD的移动设备实时线段检测模型出现了。
据作者表示,这是首个能在移动设备上运行的线段检测模型,目前已开源。
此前,线段检测之所以复杂,是因为它需要用到很多模块来预测图片中的线段。
如下图,蓝色部分是之前的主流线段检测模型,这些模型的计算量和类型太大,结构还都基于大型模型构造,如基于ResNet50构建的FPN网络、残差U-Net……
这些模型,往往需要对图像进行多个模块的变换,最终才生成线段预测的结果。
然而M-LSD决定只用一个模块,直接生成center/displacement map,从而一步到位预测图像中的线段,极大地降低模型大小。
事实上,这个模型也确实非常小:1~11层基于MobileNet改编,12~16层则是一个自顶向下结构。
没错,一共也才16层结构,只相当于大型线段检测模型体积的2.5%。
据论文介绍,相比于其他大型模型(圆圈大小表示模型大小),M-LSD能在线段检测精度几乎保持不变的情况下,将模型运行速度提升至原来的2.3倍+。
从图中可见,作者们推出了M-LSD和M-LSD-tiny两个模型,都可以在安卓和苹果机上实时运行。
其中,M-LSD-tiny最快能以56.8FPS和48.6FPS的速度在手机上实时运行。
没错,现在AI在手机上给家具直线描边的速度,可能比你还快。
而且只要是直线物体,它都能快速地将轮廓提取出来,就像是我们快速勾勒草图一样。
现在你也可以用手机试一试(项目地址见文末)。
为了方便效果展示,作者们还推出了一个网页版demo,基于Python的flask框架开发。
打开这个在线demo(传送门见文末)后,就可以在线上传你想要检测线段的图片了。
由于是在网页上运行的,而且生成模型用的是M-LSD,因此检测速度无法达到手机上的实时检测效果(手机版M-LSD检测速度在12.7~26FPS左右)。
不过,网页版M-LSD生成一张线段检测图片,也只需要2.5秒左右。
我们先上传一张室内设计的图片试试。
效果确实不错,直线结构的部分都被勾勒了出来。
不过,线段检测的效果也会出现一些小bug。
例如在图中直线不够明确的时候,容易出现某些线段“漂移”的情况。
这项研究来自有“韩国版百度”之称的韩国最大互联网服务公司NAVER,主职搜索引擎业务。
一作Geonmo Gu,本科毕业于延世大学的电气与电子工程学院,硕士毕业于KAIST,研究方向是计算机视觉。
共同一作ByungSoo Ko,本科毕业于韩国忠南大学、加拿大纽芬兰纪念大学,硕士毕业于KAIST,目前在NAVER就职技术研究工程师。
对线段检测感兴趣的小伙伴,可以戳下方地址用起来了~
在线「线段检测」网页Demo:
https://gradio.app/g/AK391/mlsd
论文地址:
https://arxiv.org/abs/2106.00186
项目地址:
https://github.com/navervision/mlsd