点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
检测坑洼,水坑,不同类型的地形等
本期是关于路面语义分割方法的。因此,这里的重点是路面模式,例如:车辆行驶在哪种路面上或道路上是否有损坏,还有道路标记和减速带等等。
0.1 简介
有时我们需要确定路面是青沥路面、鹅卵石路面亦或是未铺砌的路面?出于对驾驶员的安全以及车内人员的舒适性的考虑我们需要提前知道路面情况。为了实现这些目标,将使用卷积神经网络(CNN)进行路面的语义分割。CNN体系结构是U-NET [4],该体系结构旨在执行医学图像中的语义分割任务,但已成功应用于许多问题当中。另外,使用resnet34和resnet50完成此方法的实验。对于数据增强步骤,使用来自fastai库的标准选项,并进行了水平旋转和透视变形。
为了训练神经网络并测试和验证结果,使用来自RTK数据集中的701张图像创建了以下路况(GT):
02. 实现步骤
第一步-初始设置
from fastai.vision import *
from fastai.vision.interpret import *
from fastai.callbacks.hooks import *
from pathlib import Path
from fastai.utils.mem import *
torch.backends.cudnn.benchmark=True
由于我们将使用Google驱动器中的数据集,因此需要对其进行挂载:
from google.colab import drive
drive.mount('/content/gdrive')
大家将看到类似下图的内容,单击链接,我们就获得授权码,因此只需将授权码复制并粘贴到期望的字段中即可。
现在,只需将我们的Google云端硬盘作为文件系统访问即可。接下来加载我们的数据。
第二步-准备数据
path = Path('gdrive/My Drive/Colab Notebooks/data/')
path.ls()
其中“ image ”是包含原始图像的文件夹。“ labels ”是一个文件夹,其中包含我们将用于训练和验证的图像,这些图像是8位灰度图。在“ colorLabels ”中,有原始的彩色图像,可以将其用于视觉比较。“ valid.txt ”文件包含随机选择用于验证的图像名称列表。最后,“ codes.txt ”文件包含带有类名称的列表。