卷积神经网络CNN(8)—— Pix2Pix Application -- Aerialmap Lane Line Detection (Pix2Pix应用:航拍图车道线检测)

前言

GAN(Generative Adversarial Networks–https://arxiv.org/abs/1406.2661)自问世而来热度一直无法退减,生成网络G与判别网络D通过相互对抗(原作者比喻成欺骗)训练网络,最终得到可以生成以假乱真图片的生成网络G。具有半监督学习能力的生成网络引来了大量研究者,同时产生了很多相关变体。Pix2Pix(Image-to-Image Translation with Conditional Adversarial Networks–https://arxiv.org/pdf/1611.07004v1.pdf)是其中一个,思路很简单,通过一个GAN使一张图向另外一张图作转换,生成网络G就是实现这个转换的工具,Pix2Pix开源代码github,当然还有很有特色很好玩的应用play,还有老司机专用通道–估计看这个大家都能看懂原理
还是上张图吧,不然太空泛。
这里写图片描述

Pix2Pix

pix2pix训练过程如下:
这里写图片描述
判别网络D仍然是与普通的CNN分类模型没有区别,就是需要知道输入是否为真正的图片(非生成图);生成网络G的训练就是在网络D的基础上先产生一张“假图”,假图跟真正的label(或者生成的label跟真图)进入判别网络进行区分,训练知道判别网络D没有办法区分生成网络G产生的图片为止。
如pix2pix的作者所说,图像语义分割是从图像到label,从而能够区分不同物体的效果,这实际上是图像与图像之间的转换,事实上也可以反过来做,就是label到图像,也是一个转换,这是GAN最大的特色之一,能够做到之前CNN网络无法实现的事情。

航拍图车道线检测

卫星航拍图就是上图左下角那张,不过博主不是用pix2pix来划分区域而是提取车道线。博主使用的航拍图是经过人工提取道路,所以少了很多其他非路面信息干扰,但是树木,车,路面标识等仍然会对检测产生影响。
部分航拍图样本如下(红色是白线,蓝色是黄线),
这里写图片描述

这里写图片描述

这里写图片描述

没有使用完整的航拍图进行车道线提取,原因是车道线是图片部分细节,pix2pix使用的u-net256输入图片大小是256x256,这样resize之后车道线就基本看不见了,这里的大小是选择512x512的框截取航拍图得到样本,这样resize到256x256仍有大量车道线信息。
训练数据使用了数据增强,flip,transpose,crop。
训练图片约600张,测试图约50张,测试效果如下:
原图是real_A,生成网络产生的是fake_B,label是real_B
这里写图片描述
这里写图片描述
这里写图片描述

整体航拍图效果如下,由于各种原因不能够提供原始像素的航拍图,我也怕警察叔叔把我带走- -!
这里写图片描述
这里写图片描述

总结

1.在大部分情况,pix2pix确实能够通过输入生成召回率与准确率的车道线,尤其是直线情况
2.可以过滤树,车,大部分的非车道线的路面标识
3.生成的车道线很有可能带有噪点,同时白线黄线分类有出错的情况。

by the way,这仅仅是一个简单的应用,待解决的问题还有非常多。

猜你喜欢

转载自blog.csdn.net/Fate_fjh/article/details/77008064