2018-03-28 08:57:14 ccnucb 阅读数 2217
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军

转自:https://blog.csdn.net/tianfuliu/article/details/60888016

 深度学习,我起初对其感觉既陌生又熟悉;陌生的是我完全不懂它背后的数学原理,熟悉是深度学习炒的太火,你不想知道都不可能;换句话说我脑海中没有建立深度学习的大树,只有硬生生的“深度学习”这个词。而本文我想简单介绍一下我通过学习之后建立起的深度学习的简单树,而这个所谓的树指的是机器学习深度学习神经网络之间的一些关系。

  首先我想简单介绍一下,人工智能(Artificial Intelligence : AI)、机器学习(Machine Learning)、深度学习(Deep Learning)之间的关系。请看一下下图(引用http://tech.163.com/16/0907/07/C0BHQND400097U80.html),初步了解这三者的关系。

  从上图可知,人工智能包括了机器学习,而机器学习又包括了深度学习;同时我们可以根据下面的时间序列看出整个人工智能的发展历程。我们的重点在于深度学习,具体的人工智能与机器学习需要阅读更多文献,在此就不在深入探讨。

  深度学习、人工神经网络(Artifical Neural Network : ANN)两概念是互相交叉,因为深度学习的概念源于人工神经网络,因为神经网络的网络层的不断提取特征才形成了具有深度的model,而在这个model里面一些参数从最初的随机设定的值通过不断的学习是的这些值不断趋于使得代价函数(可以理解为与目标的距离)最小化的某个值。如果非得说出一个关系,个人认为是深度学习是人工神经网络的发展,而深度学习算法中目前最火的必然是卷积神经网络(Convolutional Neural Network : CNN)。

总结(个人理解)

  人工智能:实现计算机对人的意识、思维等信息的模拟过程,实现计算机能够模拟人的意识去完成相关任务或事情。

  机器学习:计算机通过获得的数据利用数学、统计学、概率论等相关知识建立相关模型去模拟或者学习,使得结果与目标不断接近。机器学习是人工智能的核心。

  深度学习:使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象(构成深度)的算法,深度学习是机器学习的分支。

  人工神经网络:利用计算机通过数学方法模拟人类神经网络的,通过不断迭代过程进行不断学习的算法。

  卷积神经网络:一种神经网络模型,具有卷积层与池化层;在大型图像处理中得到较好的效果,这也就是本人为甚要对其进行研究的原因(将其运用在图像分类中)


2017-08-03 11:58:11 jovahe 阅读数 7051
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军

深度学习遥感影像分类之数据集批量准备

近年来,深度学习在遥感影像地物分类中取得了一系列显著的效果。CNN可以很好的获取影像纹理信息,捕捉像素与像素之间的空间特征,因此,一个训练好的深度学习模型在地物提取中具有很大的优势。但模型的训练却是一个很繁琐的任务,需要人工准备数据集,贴标签,训练模型等。本文将以sar影像为例实现冰水二分类的数据集批量准备工作(划线取点截取小图片保存):

1.原始sar遥感影像

2.预处理思路:

     a.人工划线:对应在冰和水上画n条线(自己设置,注意自己需要针对类别所占比例控制线条数量和长度)

     b.保存小图片:获取直线上点坐标,以每个像素点为中心取21×21的小图片(类似mnist数据集,尺寸自己设置),保存至文件夹

     c. 创建label:以保存的小图片名称+空格+类别(0或者1)将label保存至新创建的txt文档中

3.代码实现:

     a.创建一个main函数调用drawTrainingSamples(img);CreateTrainSmallImages(img);drawValSamples(img);CreateValSmallImages(img);这四个函数,功能分别是和划训练集,创建训练集,划验证集,创建验证集

1
2
3
4
5
6
7
8
9
10
11
clear ;
clc;
 
img = imread('150905_multilook_4_s1a-ew-grd-hv-20150905t174712-20150905t174812-007583-00a7f0-002.tiff');
%准备训练集数据
drawTrainingSamples(img);
CreateTrainSmallImages(img);
 
%准备验证集数据
drawValSamples(img);
CreateValSmallImages(img);

      b.drawTrainingSamples(img)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function [] = drawTrainingSamples(img)
n_ice=4;
n_water=4;
h_im=imshow(img);
bw_train_ice=zeros(size(img));
bw_train_water=zeros(size(img));
fprintf('please draw four lines on the picture for preparing the training sets of Ice');
for i = 1:n_ice
    h = imline;
    bw = createMask(h,h_im);
    bw_train_ice=bw_train_ice+bw;
end
figure,imshow(bw_train_ice);
 
 h_im=imshow(img);
 fprintf('please draw four lines on the picture for preparing the training sets of Water');
 for i = 1:n_water
    h = imline;
    bw = createMask(h,h_im);
    bw_train_water=bw_train_water+bw;
 end
figure,imshow(bw_train_water);
 
 save('bw_train_ice.mat','bw_train_ice');
 save('bw_train_water.mat','bw_train_water');

       c.CreateTrainSmallImages(img)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function [] = CreateTrainSmallImages(img)
 
%创建小图片
      load bw_train_ice;
      load bw_train_water;
       fprintf('Creating training small images...');
        [X,Y]=find(bw_train_ice==1);
        A=[X,Y];
        A;
        [a,b]=size(A);
        mkdir('train');
         
            for i=1:a
                    m=A(i,1);
                    n=A(i,2);
                    SmallImage=img(m-10:m+10,n-10:n+10);
                    imwrite(SmallImage,['train/',num2str(i),'.jpg']);
                      
                    fid = fopen('train.txt''a'); 
                    t=[num2str(i),'.jpg'];
                    fprintf(fid, '%s %d \n', t,0); 
                    fclose(fid);
            end
             
        [X,Y]=find(bw_train_water==1);
        B=[X,Y];
        B;
        [a,b]=size(B);
         
            for j=1:a
                    m=B(j,1);
                    n=B(j,2);
                    SmallImage=img(m-10:m+10,n-10:n+10);
                     j=i+j;
                    imwrite(SmallImage,['train/',num2str(j),'.jpg']);
                      
                    fid = fopen('train.txt''a'); 
                    t=[num2str(j),'.jpg'];
                    fprintf(fid, '%s %d \n', t,1); 
                    fclose(fid);
                      
            end
end

       d.drawValSamples(img)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function [] = drawValSamples(img)
n_ice=4;
n_water=4;
h_im=imshow(img);
bw_val_ice=zeros(size(img));
bw_val_water=zeros(size(img));
fprintf('please draw four lines on the picture for preparing the validition sets of Ice');
for i = 1:n_ice
    h = imline;
    bw = createMask(h,h_im);
    bw_val_ice=bw_val_ice+bw;
end
figure,imshow(bw_val_ice);
 
 h_im=imshow(img);
 fprintf('please draw four lines on the picture for preparing the validition sets of Water');
 for i = 1:n_water
    h = imline;
    bw = createMask(h,h_im);
    bw_val_water=bw_val_water+bw;
 end
figure,imshow(bw_val_water);
 
 save('bw_val_ice.mat','bw_val_ice');
 save('bw_val_water.mat','bw_val_water');

       e.CreateValSmallImages(img)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function [] = CreateValSmallImages(img)
 
%创建小图片
      load bw_val_ice;
      load bw_val_water;
 
        [X,Y]=find(bw_val_ice==1);
        A=[X,Y];
        A;
        [a,b]=size(A);
        mkdir('val');
          fprintf('Creating validition sets small images...');
            for i=1:a
                    m=A(i,1);
                    n=A(i,2);
                    SmallImage=img(m-10:m+10,n-10:n+10);
                    imwrite(SmallImage,['val/',num2str(i),'.jpg']);
                      
                    fid = fopen('val.txt''a'); 
                    t=[num2str(i),'.jpg'];
                    fprintf(fid, '%s %d \n', t,0); 
                    fclose(fid);
            end
             
        [X,Y]=find(bw_val_water==1);
        B=[X,Y];
        B;
        [a,b]=size(B);
         
            for j=1:a
                    m=B(j,1);
                    n=B(j,2);
                    SmallImage=img(m-10:m+10,n-10:n+10);
                    j=i+j;
                    imwrite(SmallImage,['val/',num2str(j),'.jpg']);
                      
                    fid = fopen('val.txt''a'); 
                    t=[num2str(j),'.jpg'];
                    fprintf(fid, '%s %d \n', t,1); 
                    fclose(fid);
                      
            end
end

 

2017-03-08 23:47:09 tianfuliu 阅读数 6657
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军

  深度学习,我起初对其感觉既陌生又熟悉;陌生的是我完全不懂它背后的数学原理,熟悉是深度学习炒的太火,你不想知道都不可能;换句话说我脑海中没有建立深度学习的大树,只有硬生生的“深度学习”这个词。而本文我想简单介绍一下我通过学习之后建立起的深度学习的简单树,而这个所谓的树指的是机器学习深度学习神经网络之间的一些关系。

  首先我想简单介绍一下,人工智能(Artificial Intelligence : AI)、机器学习(Machine Learning)、深度学习(Deep Learning)之间的关系。请看一下下图(引用http://tech.163.com/16/0907/07/C0BHQND400097U80.html),初步了解这三者的关系。

  从上图可知,人工智能包括了机器学习,而机器学习又包括了深度学习;同时我们可以根据下面的时间序列看出整个人工智能的发展历程。我们的重点在于深度学习,具体的人工智能与机器学习需要阅读更多文献,在此就不在深入探讨。

  深度学习、人工神经网络(Artifical Neural Network : ANN)两概念是互相交叉,因为深度学习的概念源于人工神经网络,因为神经网络的网络层的不断提取特征才形成了具有深度的model,而在这个model里面一些参数从最初的随机设定的值通过不断的学习是的这些值不断趋于使得代价函数(可以理解为与目标的距离)最小化的某个值。如果非得说出一个关系,个人认为是深度学习是人工神经网络的发展,而深度学习算法中目前最火的必然是卷积神经网络(Convolutional Neural Network : CNN)。

总结(个人理解)

  人工智能:实现计算机对人的意识、思维等信息的模拟过程,实现计算机能够模拟人的意识去完成相关任务或事情。

  机器学习:计算机通过获得的数据利用数学、统计学、概率论等相关知识建立相关模型去模拟或者学习,使得结果与目标不断接近。机器学习是人工智能的核心。

  深度学习:使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象(构成深度)的算法,深度学习是机器学习的分支。

  人工神经网络:利用计算机通过数学方法模拟人类神经网络的,通过不断迭代过程进行不断学习的算法。

  卷积神经网络:一种神经网络模型,具有卷积层与池化层;在大型图像处理中得到较好的效果,这也就是本人为甚要对其进行研究的原因(将其运用在图像分类中)

2018-03-27 16:35:25 ccnucb 阅读数 1378
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军

地理学3s技术的迅速发展,使得地理信息系统越来越趋向多元化,在大数据、人工智能物联网等信息技术的冲击下,也使得地理学面临新的发展前景和应用前景。本人最近专门研究深度学习算法就遥感影像分类研究和智能识别,有同行或者新手们可以一起学习,互相交流。安利一个微博:大数据与人工智能CCNU

上面有不少你需要的东西。作为深度学习算法入门和关注AI动态。大家可以关注下。

2017-05-09 14:54:54 m0_37540770 阅读数 2408
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军

由于兴趣和好奇心的驱使,我打算学一学神经网络和深度学习,以前一听到计算机技术总会听到这些高大上的词语:人工智能,深度学习,VR之类的词语,每次听到都是不明觉厉的样子,最近刚好有点时间,加上趁考研学的数学(需要一定的数学基础)还没忘光,来学一学神经网络和深度学习。

一开始我分不清神经网络和深度学习的关系,以为是两个独立的技术,加上机器学习,人工智能一大堆词语,让人摸不着头脑,仔细一看书其实并没有那么复杂,以我浅略的认识我觉得神经网络就像是一种数据结构,而深度学习就像是关于这种数据结构某种算法,学过数据结构与算法的都知道它们之间的关系吧,神经网络就是受我们人大脑的神经网络启发而来,神经网络有输入层(由各个感觉器官产生信号输入,比如视网膜,味蕾),中间层,输出层(输入层的信号经过中间层的处理然后到输出层,就是大脑的核心,当然有些低级的反应是不用经过大脑的核心),人的大脑当然是相当智能的,我们只关心输入层我们接受到的刺激和输出层产生的相应的感觉,对于庞大的中间层我们可以不用关心,就好像高级程序设计,我们只用关心函数输入和输出结果,不用知道这些函数是怎么实现的,底层的实现可以对我们透明。这样就形成了一个复杂而简洁的神经网络,当然简洁的东西提供给用户的,复杂的东西还要有人来实现,人脑的神奇之处就是在千万年的进化过程中具备了自动生成这个复杂的中间层的能力,所以我们不用为了这个复杂实的现过程操心。

 

 

神经网络的结构          注:图片引用于《神经网络与深度学习》

而我们的深度神经网络才来到世界不久,还没有进化到这么厉害,但是为了让它跟人的神经网络一样能够准确稳定的输入输出,于是就出现了深度学习算法,有了它,我们设计的神经网络就可以通过对训练样本的学习,快速的生成一个准确稳定的神经网络系统,这个神经网络就可以像人的神经网络一样做出很多判断了,就像人的神经网络可以处理从味蕾传入的信号然后经过中间层复杂的判断在输出层输出酸甜苦咸鲜肥的味觉体现。这就是深度神经网络。
有些人会有疑问:作为一个遥感专业的学生为什么要去神经网络呢,好像并没有什么联系啊。其实遥感研究主要就是通过卫星获取的影像信息反演地球上的地理信息,物理量,这个过程就是识别统计,只是遥感反演用到的模型不一样而已,都是找一种信息和另一种信息的对应关系,在两者间建立一个数学模型,这样我们就能反演出地表空中的物理信息了。而神经网络也是建立一种信息与另一种信息的对应关系,只是没有这个中间的数学模型,而是由一个更为复杂的神经网络的中间层代替,这个中间层是通过学习大量的训练样本而来的,也能达到反演的目的。至于哪种反演方法更好,我也不知道,遥感反演过程中的各种反应因子很多,过程复杂,很难去解释,当然经验模型普适性不是很好,所以我认为用深度神经网络做遥感反演也可以是个勇敢的尝试,科技在发展,哪种方法好谁又说得清呢,只有勇敢的尝试才会知道。

没有更多推荐了,返回首页