邓帆 刘远刚 王庆 井然 李功权
关键词:遥感原理;课程实验;地理信息科学;直方图均衡;Python
0 引言
计算机程序设计能力的培养是地理信息科学(Geographic Information Science, 简称GIS) 专业人才培养计划的重点。在学生培养过程中,除了要求学生掌握好GIS学科基本原理外,还应当培养学生具备较强的实践能力,特别是编程能力的培养[1]。遥感是GIS 专业核心组成部分之一,历来都是本专业的核心课程。随着遥感科学与技术的发展,遥感更是发展成为一个本科专业。由于历史的原因,早期的GIS(地理信息系统)专业更加重视矢量数据和GIS系统的二次开发和应用,对栅格遥感数据、遥感图像处理以及相关应用重视不足,使得遥感课程停留在“科普”水平。随着遥感技术的发展,特别是遥感数据种类的极大丰富,以及数据获取难度的大幅降低,遥感在行业中的应用越来越广泛,遥感课程逐渐受到重视,各大高校开始注重培养学生应用遥感数据解决实际问题的能力。然而,这种能力大多停留在利用遥感图像处理软件对图像的基本处理上,相关实践教学大多停留在教授学生使用遥感软件的层次。这种教学模式,不利于学生掌握遥感技术的基本原理,造成学生对遥感课程的认知出现偏差(认为遥感课程的目标是学会软件的操作),也使得遥感类课程与GIS专业培养模式出现断层。特别是,随着遥感大数据和人工智能的突破发展,出现了各种遥感云平台,遥感数据获取、处理和应用门槛大大降低,使得培养的“专业”学生相对“非专业”学生在遥感开发和应用方面并不具备更多优势。因此,有必要尽快适应新的形势,改革遥感实践教学内容和方式,注重基本原理、算法的编程实现,甚至创新应用[2],提升GIS专业课程体系的连续性、系统性。这不仅有利于学生加深对遥感课程的认识,对专业培养模式的理解,而且有助于提升就业竞争力和发展潜力[3]。
遥感课程实验是GIS专业学生在完成遥感原理与应用课程理论课学习或者课内实验后独立开展的综合课程设计,其目的是巩固加深课堂所学书本知识,培养学生运用遥感科学基本原理和技术解决实际问题的能力。现有的课程实验仍然停留在软件的基本操作层面,忽视了基本原理的算法实现,不利于学生掌握基本原理,不利于学生开发能力的培养,不利于与前序课程的衔接。因此,有必要结合GIS、遥感学科的发展,适应大数据、人工智能的最新趋势来设计实验选题,从而达到优化设计实践教学内容,引导学生深入探究专业问题的目的。鉴于目前尚缺乏此类实验教学案例和教材,本文设计了遥感课程实现的教学内容安排,设计了一个遥感实验教学案例,以此为例给出此类选题的基本思路和设计模板,为同类教学案例的设计提供参考。
1 实验教学设计策略和案例
1.1 实验教学设计策略
遥感原理课程理论性强,涉及的内容多,学时有限,使得学生理解掌握起来难度大。因此,在进行实验课程教学设计时要遵循以下几个原则:一是要有利于学生理解基本遥感基本原理,提升程序设计能力;二是题目设计既要做到联系前序课程,又要零基础、易上手;三是有利于学生举一反三,创新应用。
因此,首先应尽量选择易上手,适合于遥感教学、图像处理和应用的语言和平台,避免学生陷于编程语言和平台细节的学习上。鉴于上述要求,Matlab、IDL、Python等都是比较适合的语言,它们都具有比较好的矩阵运算能力,具备交互式的开发方式[4]。此外,这几门语言对已经具备一定编程基础的GIS专业学生来说学习难度不高。考虑到Python的开源性,以及被广泛应用在遥感领域和机器学习领域,应优先使用Python语言进行实验教学。在遥感实验前,仅需结合图像处理的基础知识,提前教授学生基本的Python编程基础和Numpy模块的使用方法即可。
第二,在实验教学内容结构上,应从底层开始,逐步深入,初级阶段尽量不使用第三方模块,可利用第三方模块对实验结果进行验证。此外,由于遥感课程理论性强,涉及的内容多,既包含遥感物理、又包含遥感图像处理和应用,课程学习下来,学生体验感不强,仍停留在知识的单向获取,教学内容没有转化成学生的相关技能。因此,在实验内容设计上,可以从遥感图像读取、显示、增强、信息提取、分割、分类等内容着手,设计2~3個实验,要求学生编程实现相关算法或操作。这样既有利于学生对原理的理解,做到举一反三,也能够为日后的学习工作打下基础。
第三,注重培养学生的创新能力,引入遥感云平台[5]。目前,国内外已有一些遥感大数据云平台上线,比如GEE(Google Earth Engine),PIE-Engine等。这些平台都集成了大量的遥感数据、遥感产品和其他空间数据,以及大量的遥感相关算法,并且提供云端计算资源,能够提升遥感数据的应用效率,降低了遥感应用门槛[6]。多数遥感云平台都提供了基于Python的应用接口,易于同其他遥感实验衔接,GIS专业学生应当了解和熟悉常用遥感云平台开发方法和应用路线。
最后,要保证学有成效,增强学生学习兴趣,提升学生收获感。在实验设计时为学生提供充分的资源,增强学生信心,保证实验顺利完成。
基于以上考虑,本文在实验选题设计上,主要考虑实验描述、实验条件和要求、实验提示和参考资料三个方面。选题描述主要用于描述选题相关的遥感专业概念、问题、算法和实验思路,增强学生对基本原理的理解,进一步明确实验目的。实验条件和要求主要罗列完成实验需要用到的数据、算法、参数和限定条件,并提出具体的实验要求;实验提示和参考资料主要给出选题中需要用到算法的设计思路、关键步骤和数据结构,必要时给出程序伪代码、流程图或部分辅助程序辅助材料。下面首先设计了遥感课程实验内容整体安排,然后以遥感图像“直方图均衡化”实验为例给出此类选题的设计思路和具体案例。
1.2 课程实验教学内容整体设计
根据以上认识,设计了遥感实验教学内容。实验内容分为遥感图像的认识、图像显示与增强、遥感指数认识与计算、遥感信息提取、图像分割与分类、遥感云平台的使用以及遥感综合应用与开发等模块。下面简述各个模块教学目的和主要内容。
1) 遥感图像的认识。认识数字图像,理解遥感数字图像与其他数字图像的异同。掌握Python环境下的图像基本操作。
2) 图像显示与增强。掌握彩色合成,颜色空间变换和常用对比度增強方法。
3) 遥感指数认识与计算。认识主要遥感指数和计算方法,理解指数原理和用途。
4) 遥感图像分割与信息提取。掌握遥感影像的阈值分割和其他分割算法,实现特定信息的提取。
5) 图像分类。掌握k-means等聚类算法和贝叶斯分类等分类算法原理与实现。
6) 遥感云平台。以案例形式,GEE、PIE-Engine 入门。掌握遥感云台使用基本流程。
7) 遥感综合应用与开发。作为独立课程设计内容,以遥感开发为基础,实现一个完整的遥感应用案例。
以上每个模块可设计2~3个实验内容并提供相关资源供学生参考与学习。下面以模块2图像显示与增强为例进行实验设计。
1.3 实验选题设计具体案例——“对比度增强-直方图均衡化”
1.3.1 实验描述
直方图均衡化(Histogram Equalization) 是图像处理领域中利用图像直方图调整对比度的方法。对于遥感图像,直方图均衡化使得图像亮度可以更好地分布在直方图上,增强局部对比度的同时不影响整体,能够改善目视效果。
直方图均衡化的主要思想是将一幅图像的直方图分布变成近似均匀分布(图1) ,从而增强图像的对比度,其主要步骤如下:
1) 计算每一个灰度级的概率。
2) 计算每一个灰度级的累计概率。
3) 计算映射表。
4) 将图像像素值通过映射表进行映射。
对于灰度图像{x},ni 表示灰度i 出现的次数,由此图像中灰度为i的像素出现的概率是:
1.3.2 实验条件与要求
本题提供需要进行对比度增强的遥感卫星影像,要求对该数据的某一通道进行直方图均衡化增强并进行分析。
1) 读取文件,获取并输出图像相关信息以便于后续处理。要求输出数据通道数、数据行列数、数据类型,以及图像各通道最大值、最小值、平均值、方差等统计量。
2) 实现求直方图函数,并显示原始数据的直方图。
3) 实现求累计直方图函数,并显示原始数据累计直方图。
4) 对原始数据进行直方图增强,并显示增强后的直方图。
5) 输出结果图的最大值、最小值、平均值、方差等统计量,并与原图对比,从定性定量角度指出对比差异。
6) 最后,使用Skimage提供的函数进行直方图均衡化,以此检查验证所实现算法的效果。
2 实验提示与参考资源
1) 实验环境准备。Numpy、Skimage、Matplotlib等模块的基础与入门。实验环境应在第一次实验时准备,并进行练习。
2) 图像信息和各统计量生成使用Numpy模块的相关函数,图表绘制使用Matplotlib模块,图像读写使用Skimage模块。
3) 直方图为灰度概率分布,对图像逐像素遍历,求和得到各灰度包含的像素数目。累积直方图在直方图基础上进行累积生成即可。
4) 基于累积直方图构建灰度映射表。对于8bits 图像,应当将结果映射至[0,255]区间的整数,不满足的需要进行取整。
5) 进一步资料:自适应直方图均衡化(Adap?tive Histogram Equalization, AHE) 、限制对比度自适应直方图均衡化(Contrast Limited AHE,CLAHE) 。
3 总结
遥感是GIS专业的核心课程,需要在教学中加强理论与实践的结合。为适应大数据和人工智能的发展,应当加强学生的遥感应用开发能力。然而,目前的遥感实践教学偏重遥感软件的使用,忽视了GIS专业学生遥感开发能力的培养。因此,本文提出在遥感的实验教学环节加入遥感编程开发内容,为学生的进一步学习、工作打下基础,增强学生的竞争力。
为此,本文提出了实验教学的设计思路和实验教学内容框架,以“直方图均衡化”为例,阐述了遥感实验设计的基本思路和具体过程,为类似的教学案例设计提供参考。通过这种实验设计,增强GIS专业课程的系统性,也促进了本专业学生对遥感课程和GIS专业的学科概念和专业思想的形成。