WebGIS中自定义互联网地图局部注记的同等栽方案葡京在线开户

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

章版权由作者李晓晖以及乐乎共有,若转载请叫大庭广众处于标明出处:http://www.cnblogs.com/naaoveGIS/

神经网络(neural
networks,NN)包括输入层、隐藏层、输出层。卷积神经网络隐藏层分为卷积层和池化层(pooling
layer 下采样层)。卷积层的卷积核(conventional
kernel)在原本图像平移提取特征,每个特征是特色映射。池化层会聚特征稀疏参数缩小学习参数数量,降低网络复杂度。最酷值池化(max
pooling)、平均值池化(average
pooling)。卷积核提取特征映射动作padding,移动步长(Stride)不自然整除图像素宽度,越边边缘取样为SAME,不穿边缘取样为VALID。

1.    前言

事实上项目中大家常谋面碰着这样平等种植现象:地图底图可能是互联网地图(百度、高德、天地图)等等,同时大家好又起有区域单独的如出一辙仿POI数据,我们需要用互联网地图中者区域之原本POI数据举办遮罩然后就显示我们团结一心之POI数据。

对如此的要求,我们首先想到的凡是否我们无非以非含有注记的底图瓦片,然后再度折加上大家的POI数据。事实上,实际要求面临还需要考虑一点,我们唯有有区域之POI数据,却未曾另外区域的POI数据。

因而是需要着实的核心是:除之邪多边形之指定区域客,地图均是互联网地图加互联网注记,而之大旨区域外待是互联网地图加上自己的注记。

Necognitron->LeCun->LeNet->AlexNet
->网络加深:VGG16->VGG19
->增强卷积层效能:NIN->GoogleNet->Incption V3 Incption V4
->
双方组合ResNet
->分类任务到检测任务:KCNN->Fast(Fast)RCNN->Fast(Fast)er-CNN
->增添新效率模块:FCN->STNet->CNN+RM/LSTM
卷积神经网络起点神经认知机(neocognitron)模型,出现卷积结构。第一单卷积神经网络模型LeCun,1989年,发明人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,大数量,二零一二年历史性突破亚历克斯(Alex)Net。

2.    方案思路

a.整个地图范围被,依旧以互联网底图和互联网注记图作为底图叠加。

b.又叠加上该区域之互联网底图,可以看成遮罩将欠限制受到的注记图层屏蔽。

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

地图图层顺序如下所示:

                      葡京在线开户 1

网加深。

3.待解决之难点

a.瓦片拼接技术:需要用生充斥好的指定区域瓦片拼接成一个完,然后将拖欠区域PS出来。

b.图片分割技术:需要拿PS后的区域图据瓦片大小分割。

c.瓦片重命名:需要以分后底瓦片重新按对应行列号赋值。

LeNet。输入层32×32,图像预处理reshape,潜在显著特点出现于最高层特征监测卷积核核心。卷积层3独(C1、C3、C5),增强原信号特征、降低噪声,在线演示:
https://graphics.stanford.edu/courses/cs178/applets/convolution.html
不同卷积核输出特征映射不同。降采样层2独(S2、S4),降低网络操练参数、模型过拟合程度,最充足池化(max
pooling)选中区域最要命价值,平均值池化(mean
pooling)选中区域平均值。全连接层1独(F6),输入向量和权重为量点积加偏置,传被sigmoid函数,暴发单元i状态。输出层(高斯连接),欧式径向基函数(Euclidean
radial basis
funtion)单元,10只系列对承诺10独通往基函数单元,每个单元84个输入,输出RBF单元计量输入向量和类型标记向量欧式距离,越远越怪。

4.实现

实际代码实现过程由于自己的好基友涂敷敷无苦实现,感谢,继续着力。

Alex(Alex)Net,二〇一二年,杰弗里 Hintion及学生Alex Krizhevsky、Ilya
Sutskever,《ImageNet Classification with Deep Convolutional Neural
Networks》。不同GPU处理图像的不等部分,仅于有层通信。5单卷积层,3单全连接层,5000万只可调参数。最终全连接层输出及1000维softmax层,暴发覆盖1000看似标志分布。避免了拟合,Dropout
0.5概率隐藏层神经元输出置0,共享权值,降低互适应,收敛迭代次数扩张一倍。数据增长(data
augmentation)变形(水平翻转图像、反射变化flip,原始图像随机平移变换crop,随机光照、彩色变换、颜色抖动)增添新数据。非线性激活函数,ReLU,收敛速度相比较sigmoid/tanh快。大数目练习,120万ImageNet图像数据。GPU实现,间接从GPU内存读出、写副。LRN(local
response normalization)规范化层。

4.1瓦下载

行使从出的瓦下载工具将点名区域之互联网的图下充斥下来,其规律可以参考我在此之前的博客:WebGIS中经过队号来换算出又瓦片的URL
之在线地图
(http://www.cnblogs.com/naaoveGIS/p/3905523.html)。

                  葡京在线开户 2

增强卷积层效率。

4.2瓦拼接并PS

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

4.2.1拼接原理

照行列号以平级别达到的瓦拼接成一整张图。

 葡京在线开户 3

葡京在线开户 4

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),全连接层改呢大局平均池化。2014年 GoogleNet(Inception
V1),Christian Szegedy、Wei Liu杂文《Going Deeper with
Convolutions》https://arxiv.org/abs/1409.4842
。使用1×1窝积核降维,在全连接层连接1×1、3×3、5×5窝积结果。宽度、深度扩展,加速。层数更老,22重合,不同深度扩充有限直达损失函数制止倒朝传播梯度消失。扩展又尺寸卷积核,降维Inception模型,1×1窝积核降低特征映射厚度。

4.2.2施用PS将拼接好之整图进行抠图

这边而留意,每个级别之图俱需要各自拼接成一个应和级别之整图,PS也用针对每个级此外整图举行精雕细刻图。

                         葡京在线开户 5

构成网络加深与增进卷积模块效率。

4.3图片分割并赋值行列号

a.读博原始拼接瓦片文件夹,依次获拿到原始瓦片的排号名称。

b.用刻图后的整图依照瓦片规定大小举行分割。

c.将分割出之觊觎与原始瓦片行列号的号。

ResNet。2015年,ILSVRC不指外部数据物体检测、物体识别项目冠军,MSRA
何凯明,152交汇。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)略。

5.意义亮

           葡京在线开户 6

                                                                   

                               

                                                                    
—–欢迎转载,但保留版权,请于大庭广众处于标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                          
假诺你认为本文确实帮了卿,能够微信扫一扫,举办小额的打赏和鼓励,谢谢
^_^

                                                                                                           
              葡京在线开户 7

 

于分类任务交检测任务。图片目的检测,视频目的检测(VID)。

R-CNN,Region Proposal
Networks(RPN)和CNN结合。RPNs,任意尺寸图片相同连串带识别物体概率分数提议区域。使用小网在终极卷积特征映射滑动扫描,滑动网络每一回跟特征映射窗口都连,映射到低维向量,送入五个全连接层(box回归层box-regression
layer和box分类层box-classification
layer)。重复总结,几千单提议区域(region)相互重叠,多次重复提取特性。
法斯特(Fast)R-CNN,加速版本,最终指出区域映射CNN最终卷积层特征映射,一摆放图纸但领到一浅特征,提高速度,瓶颈在RPN,协助多类物体同时检测,行人车辆检测技能。
Fater-R-CNN,RPN交给CNN做,达到实时。Shaoqing Ren、Kaiming He、Ross
Girshick、Jian Sun杂谈《法斯特(Fast)(Fast)er R-CNN:Towards Real-提姆(Tim)e Object Detection
with Region Proposal Networks》 https://arxiv.org/abs/1506.01497

多新效率模块。

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

MNIST Alex(Alex)Net实现。网络布局图。
1、仔细研读网络舆论,领会每一样交汇输入、输出值、网络布局。
2、依照加载数据、定义网络模型、锻炼模型、评估模型步骤实现网络。

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×28)
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]))
}
# 定义Alex(Alex)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)
# 第四窝积层
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.})

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

迎推荐新加坡机上工作时,我之微信:qingxingfengzi