膨胀ResNet-22培训时间: 城市景观数据

将驾驶场景的图像分割为语义组件类

该架构于2017年发布,将扩张卷积技术与残差网络范式相结合,在图像分类和语义分割方面优于非相关网络。

层数:86|参数计数:15994691|培训大小:64 MB|

训练集信息

性能

示例

资源检索

获取预先训练过的网:

在[1]中:=
NetModel[“基于城市景观数据培训的扩展ResNet-22”]
输出[1]=

评价功能

编写一个评估函数来处理输入和输出的网络重塑和重采样:

在[2]中:=
netevaluate[img_,device_:“CPU”]:=块[{net,encData,dec,mean,var,prob},net=NetModel[“扩展的ResNet-22城市景观数据培训”];encData=正常@NetExtract[net,“input_0”];dec=NetExtract[net,“输出”];{mean,var}=查找[encData,{“MeanImage”,“VarianceImage”}];NetReplacePart[net,{“input_0”->NetEncoder[{“图像”,图像尺寸@img,“MeanImage”->平均值,“VarianceImage”->var}],“Output”->dec}][img,TargetDevice->设备]]

标签列表

定义此模型的标签列表。模型输出中的整数对应于标签列表中的元素:

在[3]中:=
labels={“道路”、“人行道”、“建筑”、“墙壁”、“围栏”、“杆”、“红绿灯”、“交通标志”、“植被”、“地形”、“天空”、“人”、“骑手”、“汽车”、“卡车”、“公交车”、“火车”、“摩托车”、“自行车”};

基本用法

获取给定图像的分段掩码:

在[4]中:=
(*评估此单元格以获取示例输入*)CloudGet[“https://www.wolframcloud.com/obj/90161845-03f3-4235-adfc-5b9de58bec2b"]

检查检测到的类别:

在[5]中:=
检测到=删除副本@扁平@掩模
输出[5]=
在[6]中:=
标签[[检测到的]]
输出[6]=

可视化遮罩:

在[7]中:=
着色[mask]
输出[7]=

高级可视化

使用标准城市景观调色板将类与颜色关联:

在[8]中:=
colors=应用[RGBColor,{128,64,128},{244,35,232},{70,70,70},{102,102,156},{190,153,153},{153,153},{250,170,30},{220,220,0},{107,142,35},{152,251,152},{70,130,180},{220,20,60},{255,0,0},{0,0,142},{0,0,70},{0,60,100},{0,80,100},{0,230}{119,11,32}}/255.,{1}]
输出[8]=
在[9]中:=
indexToColor=线程[范围[19]->颜色];

编写一个函数,用图例覆盖图像和遮罩:

在[10]中:=
result[img_,device_:“CPU”]:=块[{掩码,类,maskPlot,合成},mask=网络评估[img,设备];classes=删除重复项[压扁@遮罩];maskPlot=着色[mask,ColorRules->indexToColor];合成=图像合成[img,{maskPlot,0.5}];传奇[行[Image[#,ImageSize->Large]和/@{maskPlot,composition}],SwatchLegend[indexToColor[[类,2]],标签[[类]]]]

检查结果:

在[11]中:=
(*评估此单元格以获取示例输入*)CloudGet[“https://www.wolframcloud.com/obj/9e30aff4-8c11-459e-81c7-4d34b6f982f5"]
输出[11]=
在[12]中:=
(*评估此单元格以获取示例输入*)CloudGet[“https://www.wolframcloud.com/obj/d080db18-e42f-47ec-b9d4-8e14a2d67314"]
输出[12]=
在[13]中:=
(*评估此单元格以获取示例输入*)CloudGet[“https://www.wolframcloud.com/obj/3bfec9cc-4f18-438a-8040-41fb5ad2c207"]
输出[13]=

净信息

检查网络中所有阵列的参数数量:

在[14]中:=
网络信息[NetModel[“扩展ResNet-22城市景观数据培训”]\“阵列元素计数”]
输出[14]=

获取参数总数:

在[15]中:=
网络信息[NetModel[“扩展ResNet-22城市景观数据培训”]\“ArraysTotalElementCount”]
输出[15]=

获取层类型计数:

在[16]中:=
网络信息[NetModel[“扩展ResNet-22城市景观数据培训”]\“层类型计数”]
输出[16]=

显示摘要图形:

在[17]中:=
网络信息[NetModel[“扩展ResNet-22城市景观数据培训”]\“摘要图形”]
输出[17]=

导出到MXNet

导出将网络转换为可在MXNet中打开的格式:

在[18]中:=
jsonPath=Export[FileNameJoin[{$TemporaryDirectory,“net.json”}],NetModel[“扩展ResNet-22培训城市景观数据”],“MXNet”]
退出[18]=

导出还创建了网络参数包含参数的文件:

在[19]中:=
paramPath=FileNameJoin[{DirectoryName[jsonPath],“net.params”}]
输出[19]=

获取参数文件的大小:

在[20]中:=
文件字节计数[paramPath]
输出[20]=

大小与资源对象的字节数类似:

在[21]中:=
资源对象[“根据城市景观数据训练的扩展ResNet-22”][“ByteCount”]
输出[21]=

将MXNet网络表示为图形:

在[22]中:=
导入[jsonPath,{“MXNet”,“NodeGraphPlot”}]
输出[22]=

要求

Wolfram语言11.3(2018年3月)或以上

资源历史记录

参考