WebGIS中自定义互连网地图局地注记的壹种方案

亚历克斯Net,二零一一年,吉优ffrey Hintion及学生亚历克斯 Krizhevsky、Ilya
Sutskever,《ImageNet Classification with Deep Convolutional Neural
Networks》。分裂GPU处理图像的两样部分,仅在有的层通讯。五个卷积层,3个全连接层,陆仟万个可调参数。最后全连接层输出到一千维softmax层,产生覆盖一千类标志分布。制止过拟合,Dropout
0.5概率隐藏层神经元输出置0,共享权值,下跌互适应,收敛迭代次数扩张一倍。数据增加(data
augmentation)变形(水平翻转图像、反射变化flip,原始图像随机平移变换crop,随机光照、彩色变换、颜色抖动)扩张新数据。非线性激活函数,ReLU,收敛速度比sigmoid/tanh快。大数量练习,120万ImageNet图像数据。GPU达成,直接从GPU内部存款和储蓄器读出、写入。L汉兰达N(local
response normalization)规范化层。

4.实现

实际代码达成进程由自己的好基友涂涂涂不苦完成,感谢,继续大力。

参考资料:
《TensorFlow技术解析与实战》

伍.功能浮现

           图片 1

                                                                   

                               

                                                                    
—–欢迎转发,但保留版权,请于显著处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                          
假若您觉得本文确实帮忙了你,能够微信扫一扫,实行小额的打赏和鞭策,多谢^_^

                                                                                                           
              图片 2

 

ResNet。二零一五年,ILSV本田CR-VC不借助外部数据物体格检查测、物体识别项目冠军,MSRA
何凯明,15二层。ImageNet
分类、检验、定位、COCO数据集检查评定(deteciton)、分隔(segmentation)季军。Kaiming
He、Xiangyu Zhang、Shaoqing Ren、Jian Sun《Deep Residual Learning for
Image Recognition》 https://arxiv.org/abs/1512.03385 。互连网退化(network
degradation),shortcut结构,输入跳层传递加卷积结果。残差(residual),复杂非线性映射H(x)预测图片分类,残差函数(residual
function)F(x)=H(x)-x,优化残差映射比一贯优化H(x)大致。

二.    方案思路

a.整个地图范围中,依然将网络底图和网络注记图作为底图叠加。

b.再度叠加上该区域的互连网底图,能够用作遮罩将该限制中的注记图层屏蔽。

c.将纠正偏差或偏向后的自定义POI图层切图,作为最上层图层叠加至地图中。

地图图层顺序如下所示:

                      图片 3

LeNet。输入层3贰x3二,图像预处理reshape,潜在鲜明特点出现在最高层特征监测卷积核宗旨。卷积层1个(C壹、C三、C五),增强原时域信号特征、下跌噪声,在线演示:
https://graphics.stanford.edu/courses/cs178/applets/convolution.html
不相同卷积核输出特征映射不一致。降采样层二个(S二、S4),下落网络磨炼参数、模型过拟合程度,最大池化(max
pooling)选中区域最大值,平均值池化(mean
pooling)选中区域平均值。全连接层三个(F6),输入向量和权重向量点积加偏置,传给sigmoid函数,产生单元i状态。输出层(高斯连接),欧式径向基函数(Euclidean
radial basis
funtion)单元,13个种类对应拾2个通往基函数单元,每一个单元八四个输入,输出RBF单元计量输入向量和类型标记向量欧式距离,越远越大。

肆.二.2运用PS将拼接好的整图举办抠图

此地要小心,每一个级其余图均需求各自拼接成三个应和级其余整图,PS也急需对各种级别的整图举行抠图。

                         图片 4

GL450-CNN,Region Proposal
Networks(昂科拉PN)和CNN结合。LX570PNs,任意尺寸图片1雨后春笋带识别物体概率分数建议区域。使用小互连网在末了卷积特征映射滑动扫描,滑动网络每一趟与特色映射窗口全连接,映射到低维向量,送入五个全连接层(box回归层box-regression
layer和box分类层box-classification
layer)。重复计算,几千个提议区域(region)相互重叠,数次重复提取脾性。
法斯特途乐-CNN,加快版本,最后建议区域映射CNN最终卷积层特征映射,一张图纸只领到2次特征,进步速度,瓶颈在ENCOREPN,协理多类物体同时检验,行人车辆检查实验技术。
Fater-奥迪Q5-CNN,昂CoraPN交给CNN做,达到实时。Shaoqing Ren、Kaiming He、RossGirshick、Jian Sun散文《法斯特er Evoque-CNN:Towards Real-Time Object Detection
with Region Proposal Networks》 https://arxiv.org/abs/1506.01497

四.2.一拼接原理

根据行列号将一律级别上的瓦片拼接成1整张图。

 图片 5

图片 6

充实新功用模块。

1.    前言

实质上项目中大家平时会赶上那样1种现象:地图底图恐怕是网络地图(百度、高德、天地图)等等,同时我们生死相许又有有个别区域单独的一套POI数据,大家供给将网络地图中这么些区域的原本POI数据开始展览遮罩然后只展现大家团结的POI数据。

针对如此的急需,大家先是想到的是能或不能够大家只行使不包蕴注记的底图瓦片,然后再叠加上我们的POI数据。事实上,实际须求中还索要思虑一点,我们只有部分区域的POI数据,却不曾别的区域的POI数据。

据此那个要求着实的大旨是:除本条不规则多边形的钦命区域外,地图均是互连网地图加网络注记,而那个基本区域内需假诺互连网地图加上本身的注记。

增进卷积层功效。

肆.二瓦片拼接并PS

Necognitron->LeCun->LeNet->AlexNet
->网络加深:VGG1六->VGG1玖
->增强卷积层成效:NIN->谷歌(Google)Net->Incption V3 Incption V肆->
两岸结合ResNet
->分类职分到检查测试义务:KCNN->法斯特奥德赛CNN->法斯特er-CNN
->扩大新功能模块:FCN->STNet->CNN+库罗德M/LSTM
卷积神经互连网源点神经认知机(neocognitron)模型,现身卷积结构。首个卷积神经网络模型LeCun,一9八八年,发明人LeCun。随想
http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf。径向基函数(radial
basis function
RBF)。1998年,LeCun,LeNet。http://vision.stanford.edu/cs598\_spring07/papers/Lecun98.pdf。SVM
手工业设计特点分类器。ReLU,Dropout
,GPU,大数目,二〇一二年历史性突破亚历克斯Net。

文章版权由作者李晓晖和微博共有,若转发请于显然处标明出处:http://www.cnblogs.com/naaoveGIS/

VGGNet,Karen simonyan、Andrew Zisserman 《Very Deep Convolutional
Networks for Large_Scale Visual
Recognition》http://www.robots.ox.ac.uk/~vgg/research/very\_deep/
。多个卷积组(八-16层)、二层全连接层图像特点,1层全连接分类特征。加深卷积层数达到准确率提高瓶颈。

四.一瓦片下载

运用自开发的瓦片下载工具将钦定区域的网络底图下载下来,其规律能够参见我事先的博客:WebGIS中经过行列号来换算出三种瓦片的U讴歌RDXL
之在线地图
(http://www.cnblogs.com/naaoveGIS/p/3905523.html)。

                  图片 7

GoogleNet。NIN(Network in Network)思想,Min Lin、Qiang Chen、Shuicheng
Yan论文《Network In Network》https://arxiv.org/abs/1312.4400
。线性卷积层(linear convolution layer)变多层感知卷积层(multilayer
perceptron),全连接层改为大局平均池化。201肆年 谷歌(Google)Net(英斯ption
V一),Christian Szegedy、Wei Liu故事集《Going Deeper with
Convolutions》https://arxiv.org/abs/1409.4842
。使用一x一卷积核降维,在全连接层连接壹x一、三x三、五x5卷积结果。宽度、深度增添,加速。层数越来越深,22层,不一致深度扩张两上损失函数幸免反向传来梯度消失。扩大三种分寸卷积核,降维英斯ption模型,一x一卷积核下降特征映射厚度。

三.待化解的难关

a.瓦片拼接技术:须求将下载好的钦定区域瓦片拼接成一个总体,然后将该区域PS出来。

b.图片分割技术:需求将PS后的区域图依照瓦片大小分割。

c.瓦片重命名:要求将分开后的瓦片重新遵照对应行列号赋值。

互连网加深。

四.叁图形分割并赋值行列号

a.读取原始拼接瓦片文件夹,依次获得到原始瓦片的队列号名称。

b.将抠图后的整图根据瓦片规定大小实行划分。

c.将分割出的图赋予原始瓦片行列号的称谓。

神经互联网(neural
networks,NN)包罗输入层、隐藏层、输出层。卷积神经网络隐藏层分为卷积层和池化层(pooling
layer 下采集样品层)。卷积层的卷积核(conventional
kernel)在原本图像平移提取特征,每一种特征是特点映射。池化层汇集特征稀疏参数收缩学习参数数量,下跌互连网复杂度。最大值池化(max
pooling)、平均值池化(average
pooling)。卷积核提取特征映射动作padding,移动步长(Stride)不自然整除图像素宽度,越边边缘取样为SAME,不通过边缘取样为VALID。

MNIST 亚历克斯Net实现。互联网布局图。
一、仔细研读互联网舆论,明白每1层输入、输出值、网络布局。
贰、遵照加载数据、定义互连网模型、演练模型、评估模型步骤完成网络。

整合互联网加深和增进卷积模块作用。

https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3\_NeuralNetworks/convolutional\_network.py

https://github.com/tensorflow/models/blob/master/tutorials/image/alexnet/alexnet\_benchmark.py

#!/usr/bin/python
# -*- coding:utf8 -*-
# 输入数据
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets(“/tmp/data/”, one_hot=True)
import tensorflow as tf
# 定义互连网超参数
learning_rate = 0.001
training_iters = 20000
batch_size = 128
display_step = 10
# 定义网络参数
n_input = 784 # 输入的维度(img shape:28×2八)
n_classes = 10 # 标记的维度(0-9 digits)
dropout = 0.75 # Dropout 的概率,输出恐怕性
# 占位符输入
x = tf.placeholder(tf.float32, [None, n_input])
y = tf.placeholder(tf.float32, [None, n_classes])
keep_prob = tf.placeholder(tf.float32) #dropout
# 卷积操作
def conv2d(name, x, W, b,strides=1):
x = tf.nn.conv2d(x, W, strides=[1, strides, strides, 1],
padding=’SAME’)
x = tf.nn.bias_add(x, b)
return tf.nn.relu(x, name=name) #用relu激活函数
# 最大下采集样品操作
def maxpool2d(name, x, k=2):
return tf.nn.max_pool(x, ksize=[1, k, k, 1], strides=[1, k, k, 1],
padding=’SAME’, name=name)
# 规范化操作
def norm(name, l_input, lsize=4):
return tf.nn.lrn(l_input, lsize, bias=1.0, alpha=0.001 / 9.0,
beta=0.75, name=name)
# 全数的互联网参数
weights = {
‘wc1’: tf.Variable(tf.random_normal([11, 11, 1, 96])),
‘wc2’: tf.Variable(tf.random_normal([5, 5, 96, 256])),
‘wc3’: tf.Variable(tf.random_normal([3, 3, 256, 384])),
‘wc4’: tf.Variable(tf.random_normal([3, 3, 384, 384])),
‘wc5’: tf.Variable(tf.random_normal([3, 3, 384, 256])),
‘wd1’: tf.Variable(tf.random_normal([4*4*256, 4096])),
‘wd2’: tf.Variable(tf.random_normal([4096, 4096])),
‘out’: tf.Variable(tf.random_normal([4096, 10]))
}
biases = {
‘bc1’: tf.Variable(tf.random_normal([96])),
‘bc2’: tf.Variable(tf.random_normal([256])),
‘bc3’: tf.Variable(tf.random_normal([384])),
‘bc4’: tf.Variable(tf.random_normal([384])),
‘bc5’: tf.Variable(tf.random_normal([256])),
‘bd1’: tf.Variable(tf.random_normal([4096])),
‘bd2’: tf.Variable(tf.random_normal([4096])),
‘out’: tf.Variable(tf.random_normal([n_classes]))
}
# 定义亚历克斯Net互联网模型
def alex_net(x, weights, biases, dropout):
# 向量转为矩阵
x = tf.reshape(x, shape=[-1, 28, 28, 1])
# 第三卷积层
# 卷积
conv1 = conv2d(‘conv1’, x, weights[‘wc1’], biases[‘bc1’])
# 最大池化(向下采样)
pool1 = max_pool(‘pool1’, conv1, k=2)
# 规范化(归一化)
norm1 = norm(‘norm1’, pool1, lsize=4)
# 第二卷积层
# 卷积
conv2 = conv2d(‘conv2’, conv1, weights[‘wc2’], biases[‘bc2’])
# 最大池化(向下采集样品)
pool2 = max_pool(‘pool2’, conv2, k=2)
# 规范化(归一化)
norm2 = norm(‘norm2’, pool2, lsize=4)
# 第一卷积层
# 卷积
conv3 = conv2d(‘conv3’, conv2, weights[‘wc3’], biases[‘bc3’])
# 最大池化(向下采集样品)
pool3 = max_pool(‘pool3’, conv3, k=2)
# 规范化(归一化)
norm3 = norm(‘norm3’, pool3, lsize=4)
# 第5卷积层
conv4 = conv2d(‘conv4’, conv3, weights[‘wc4’], biases[‘bc4’])
# 最大池化(向下采集样品)
pool4 = max_pool(‘pool4’, conv4, k=2)
# 规范化(归一化)
norm4 = norm(‘norm4’, pool4, lsize=4)
# 第陆卷积层
conv5 = conv2d(‘conv5’, conv4, weights[‘wc5’], biases[‘bc5’])
# 最大池化(向下采集样品)
pool5 = max_pool(‘pool5’, conv4, k=2)
# 规范化(归一化)
norm5 = norm(‘norm5’, pool5, lsize=4)
# 第三全连接层,先把特征图转为向量
fc1 = tf.reshape(norm5, [-1,
weights[‘wd1’].get_shape().as_list()[0]])
fc1 = tf.add(tf.matmul(fc1, weights[‘wd1’]), biases[‘bd1’])
fc1 = tf.nn.relu(fc1)
# Dropout
fc1 = tf.nn.dropout(fc1, dropout)
# 第一全连接层
fc2 = tf.reshape(fc1, [-1,
weights[‘wd1’].get_shape().as_list()[0]])
fc2 = tf.add(tf.matmul(fc2, weights[‘wd1’]), biases[‘bd1’])
fc2 = tf.nn.relu(fc2)
# Dropout
fc2 = tf.nn.dropout(fc2, dropout)
# 网络输出层
out = tf.add(tf.matmul(fc2, weights[‘out’]), biases[‘out’])
return out
# 构建模型
pred = alex_net(x, weights, biases, keep_prob)
# 定义损失函数、优化器(学习步长)
cost =
tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred,
labels=y))
optimizer =
tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
# 评估函数
correct_pred = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))
# 演练模型和评估模型
# 开端化全体的共享变量
init = tf.global_variables_initializer()
# 开启二个教练
with tf.Session() as sess:
sess.run(init)
step = 1
# 开头演练,直到达到training_iters,即200000
while step * batch_size < training_iters:
# 获取批数量
batch_x, batch_y = mnist.train.next_batch(batch_size)
sess.run(optimizer, feed_dict={x: batch_x, y: batch_y, keep_prob:
dropout})
if step % display_step == 0:
# 总括损失值和准确度,输出
loss, acc = sess.run([cost, accuracy], feed_dict={x: batch_x, y:
batch_y, keep_prob: 1.})
print “Iter ” + str(step*batch_size) + “, Minibatch Loss= ” +
“{:.6f}”.format(loss) + “, Training Accuracy= ” + “{:.5f}”.format(acc)
step += 1
print “Optimization Finished!”
# 计算测试精度
print “Testing Accuracy:”, sess.run(accuracy, feed_dict={x:
mnist.test.images[:256], y: mnist.test.labels[:256], keep_prob:
1.})

迎接推荐香岛机械学习工作机遇,小编的微信:qingxingfengzi

FCN(反卷积)、STNet、CNN与EscortNN/LSTM混合结构。

从分类职分到检查评定职务。图片目的检查评定,录制指标检测(VID)。

卷积神经网络(convolutional neural network,CNN),权值共享(weight
sharing)网络布局下降模型复杂度,裁减权值数量,是语音分析、图像识别热点。无须人工特征提取、数据重建,直接把图片作输入,自动提取特征,对运动、比例缩放、倾斜等图片变形具有惊人不变形。卷积(convolution),泛函数分析积分变换数学方法,多少个函数f和g生成第多少个函数数学算子,表征函灵敏f与g翻转、平移重叠部分面积。f(x)、g(x)为LAND壹四个可积函数。积分新函数为函数f与g卷积。∫-∞+∞f(τ)g(x-E)dτ。