基于智能医学的Java课程探索

2022-03-14 03:07张玉霞
科教导刊·电子版 2022年33期
关键词:控件基础知识机器

张玉霞

(湖北科技学院生物医学工程与医学影像学院,湖北 咸宁 437100)

0 引言

现阶段,我国医疗的现状需要更精准、更高效的诊疗及操作,而人工智能从数据获取到数据加工、最终给予反馈的工作逻辑正好可以应用于医疗行业诊前、诊中、诊后的各个模块,以帮助医院及患者降本提效,智能医学作为“医疗+技术”的交叉产物,其发展一直受到医药改革和技术创新的推动[1]。Java语言在智能医学的实现中能够起到一定的作用。

Java语言是一门涉及很多知识点的语言,如果要将所有知识点全部讲解完,则需要相当多的课时,但实际在各大高校中,Java理论+实验课时为72学时左右。如果教师只讲基础知识,可能学生学完后,还不知道这门课的用处,处于迷茫之中,特别是对于以后并不想从事编程工作的学生,这样会导致学生只是为了考试拿学分而学习,学习的主动性不强,积极性不高,学完后就忘记了的现象,对于学生来说,是时间的浪费。如果在教学时,教师根据专业需求以案例为驱动,对课程内容按重要程度进行选择性地讲授,学生围绕着某个问题,从实现其基本功能开始,再逐渐将其完善,在这个过程中,学生以完善案例为目标,用到哪儿学哪儿,这样学生对涉猎的知识点记忆会比较深刻,学完这门课后也知道这门课程的用途,而不是为了单纯的考试拿学分而学习,也会增加学生的积极性。所以,如何根据专业需求安排案例,并把握好部分重点内容是教学过程中的一个难题。

本课题结合智能医学的培养要求和课程安排对 Java课程进行教学改革探讨,希望将Java课程和智能医学的其他课程知识点结合起来,以案例为驱动教学,提高Java课程的广度和复杂度,使其符合智能医学人才培养的需求。学生能够通过Java这样一个工具,实现其他课程中的理论知识,进一步将理论和实践联系起来。一方面能够让学生明白Java这门课的作用,另一方面,学生如果要将理论和实践联系起来,学以致用,那么就必须对所涉及的其他专业课程的理论知识理解透彻,并可以根据实现效果深入学习加以改进实现的效果,这样也可以加深学生对其他课程理论知识的理解程度。

1 教学设计

Java课程安排一般是先学习基础知识,再根据学生的需求学习Android开发,或者JavaWeb开发。市面上关于Java的书籍非常多,绝大多数的教材中讲的都是Java入门基础知识,Android开发、Java Web开发的基础知识点,或者以项目为驱动的案例类型的书籍,但是所涉及的案例大多都是通用型的,与智能医学专业相关的并不多。智能医学专业的学生还学习了和人工智能以及医学有关的其他的课程,如果能够将Java课程和人工智能以及医学有关的其他课程融合起来,以案例为驱动,增加Java课程的深度和广度,对提高学生的学习兴趣、成就感有一定的帮助,进一步增强学生学习的内驱力,使学生愿意以某个问题为中心,围绕解决该问题,自己去主动学习Java知识和其他相关课程,也增强学生的自学能力。下面,围绕Java常见的两种应用开发——Android开发和JavaWeb开发,讨论在有限的课时内将Java和智能医学专业其他课程相融合的思路。

1.1 Android开发

1.1.1 机器视觉方面

教材选择和开发环境搭建方面。由于机器视觉是人工智能正在快速发展的一个分支,因此在Android开发的时候,选择了和机器视觉有关的案例,以机械工业出版社贾志刚编写的《OpenCVAndroid开发实战》这本书的案例作为教学的教材,在网站 https://github.com/gloomyfish1998/opencv4android中可以找到相应的教学视频。之所以选择这本教材是因为这本书中涉及了图像的处理、人脸的识别、OCR识别、人眼追踪等等和机器视觉有关的案例。OpenCV是计算机视觉开源框架,它在移动端支持Android系统,该特性使其应用到移动开发的多种应用场景。在进行Android+OpenCV环境搭建时,可以根据教学视频中进行搭建,如果希望能够搭建比教学视频中较新一些的版本,笔者在实现该教材中案例时,选择的版本为:JDK选择 JDK16.0,Android选择 Android Studio4.2.2,OpenCV选择OpenCV343版本,如果要做后面的人脸识别和眼球追踪,用NDK的时候,选择NDK16版本,CMake选择3.10。根据经验不要选择AndroidStudio3.1.24版本,因为这个版本在与OpenCV343一起组合使用时,涉及摄像头的横屏竖屏转换时会出现问题,笔者遇到的问题为无法竖屏显示。授课教师在使用该本书时,需要先了解Java语言的基础知识,包括基本语法特征、面向对象程序的概念、布局、事件、线程、输入输出流等等,并且对AndroidStudio开发的基本过程有所了解。

课程设计方面。在学习Java的时候,通常我们会先学习Java基础知识。Java基础知识的基本语法部分和C语言有一些相似之处,如果学生学过C语言或者其他的编程语言,这部分的知识很好掌握,可以在学习案例的时候贯穿在里面讲,用到什么就讲什么。基本语法之后为布局部分,在教材配套的教学视频中在做界面时会涉及相对布局和线性布局这两个非常常见的布局。在做界面时,我们也可以看到在布局中添加各种我们想要的控件,比如文本控件、列表控件、图像控件、按钮控件、滑动按钮控件等等常用控件,并且会对这些控件添加相应的事件,这一部分能够将Java基础知识中的布局、控件和事件这块儿涵盖,并通过案例使学生更加理解这部分的知识点,特别是事件这一比较不容易理解的知识点。Java是面向对象的设计语言,基础知识中的类和对象的概念,以及相关的特性是一个非常重要的部分,在案例中,类和对象可以说贯穿了每个案例设计的始末,在使用的时候可以将类和对象的概念以及相关特性,如继承、封装、线程、输入输出流等穿插在其中,重复几次概念后,学生便能够记住了。在案例中,涉及机器视觉中的图像处理、识别和显示,对于有医学图像处理和机器视觉基础知识的学生,在学习时可以将医学图像处理、机器视觉和Java知识融合起来,在实现教材中案例的基础上,还可以根据自己需要完成想要的功能,进一步检验理论学习的成效。比如在手机上远程获取医学图像,因为手机上显示医学图像清晰度不足,即使有选择窗位窗宽、放大平移这样的功能,但是手机显示屏毕竟不是专用的医学图像显示屏,在这种情况下,可以利用编程对远程获取的医学图像进行处理,通过辅助诊断来弥补显示屏的不足;还可以利用手机摄像头检测人体心率、皮肤情况、舌苔等,这些都属于人工智能机器视觉范畴。对于没有医学图像处理、机器视觉这部分知识的同学,由于使用了OpenCV插件以及一些其他的函数库,可以直接调用函数,并设置相应的参数便可以实现图像处理和机器视觉的功能,在接受这部分知识点时,不会有太大的难度,后面在学习医学图像处理、机器视觉时,可以回头再将应用加强。

1.1.2 智能可穿戴设备方面

人工智能可助力智能可穿戴设备实现强大功能,这部分的案例我选择中国铁道出版社李天详编写的《Android物联网开发细致入门与最佳实践》这本教材。这本教材的第18章有一个案例是心率的低功耗蓝牙接收与显示,该案例可以作为TI公司的CC2541开发板中的心率检测与低功耗蓝牙发送的Android软件部分,经过实验,可以正常地发送接收显示。在实现该案例时笔者用的开发环境为Android5.0版本,需要JDK1.8、Eclipse和AndroidSDK。该案例也会涉及Java基础知识的基本应用。在有硬件的情况下,可以考虑该案例。在没有硬件的情况下,可以不考虑该案例,因为在没有硬件的情况下,无法检测到蓝牙,也不能够显示心率数据。

1.2 Java Web开发

机器学习是人工智能的一个子集,深度学习属于机器学习的子类。在建立和部署与机器学习相关的系统方面,Java仍然是一种重要且高效的工具,Deeplearning4j是Apache授权的库,该库是用于深度学习的原生Java库中较好的选择。部分临床决策支持技术需要检索与临床病例医学图像相似的医学图像,以达到辅助医生诊断的目的,比如案例的推理和循证医学[2],实现这个功能不能够只靠文字来进行检索,而是需要依靠图像的特征来检索,即基于内容的图像检索。集成机器学习和医学图像处理的智能医学影像诊断系统,能够辅助医生完成医学影像诊断,提高诊断效率。

教材选择和开发环境搭建方面。基于上述原因,在Java Web开发时,选择了中国工信出版社明恒毅编写的《自制AI图像搜索引擎》这本教材,该教材是以案例为驱动的教材,介绍了案例需要用到的图像处理和机器学习基本知识及相应的Java实现,并详细给出了基于内容的图像检索功能的实现过程,这也属于机器视觉的范畴。开发环境教材中选用的是IntelliJIDEA社区版,笔者试过2019社区版和2021.1.3社区版,这两个版本的社区版都可以正常搭建环境并运行,试过检索JPG格式医学影像,能够检索出和被检医学影像类似的图像,但是2020版却不能够正常的搭建环境。IntelliJ IDEA社区版为免费的,前端页面可以是Html页面,但不能是Jsp页面,IntelliJ IDEA正式版可以实现Jsp页面。该教材的不足之处在于没有对常用的关系型数据库中数据的增删改查显示等功能的实现。在选择该案例作为教学内容时,授课教师要了解Java的基本语法,类和对象的概念以及特性,文件输入输出流,对数据库中数据的读取等等,另外,也要了解前端开发 Html、CSS、JQuery的基本知识,Servlet,以及利用IntelliJ IDEA社区版实现Java Web的基本过程。

课程设计方面。在后端的实现特征索引库生成工具子项目这一部分中,学生可以学习到IntelliJ IDEA内置的用来管理依赖包的Maven的基本用法、提取用来匹配被检索医学图像的每幅医学图像形成的特征、且将这些特征存储到嵌入式数据库中、将子项目编译并打包到jar中的方法,这里面涉及的Java基础语法,类和对象的概念以及特性,文件流等知识,有学生没有学过的,可以穿插在其中讲,特别是在介绍深度学习和图像特征提取、图像特征索引与检索的原理与相应的Java实现时,Java基础语法、面向对象特性涉及得特别多,通过该部分的学习不仅可以学习Java基础知识,还有助于对相关原理的理解。在图像搜索引擎子项目的前端中,采用了Html、CSS、JQuery方式,这种组合方式是经典的前端开发组合方式,可以帮助学生了解前端的基本结构、常用元素、和事件。前端和后端的互动又用到了同样经典的Servlet,调用子项目中的jar包、特征数据库键值对的提取。当功能都实现后,可以将项目部署到IntelliJ IDEA内置的Tomcat7服务器上,并进行运行测试。学生可以通过该案例了解和智能医疗有关的Java Web开发的基本过程和知识点,这个过程很简单,涉及的基本知识点也不多,但这比较适合在有限的学时内给学生搭一个框架,学生再根据自己的兴趣、需求进一步去深入探索,以问题为中心,逐步将知识点加深加宽。学生可以参考Java机器学习、Java图像搜索等书籍和文献资料,试着使用其他的和机器学习相关的Java库,并和教材中的案例进行对比分析,有助于加深对机器学习原理的理解以及机器学习的部分应用。对于并不太想深入挖掘机器学习算法的同学,可以借阅查找Java Web相关的资料,将检索界面做得更美观,并加入一些与医学图像相关的病人资料的存储和管理。通过这种以问题为中心、解决问题的学习方式,获取的知识点更牢固,学生的学习兴趣会增强。

2 总结

本文介绍了基于智能医学的Java课程的一些思考,希望以案例为驱动,使学生在有限的学时内能将智能医学专业中其他专业课程知识与Java课程融合,以增加课程的广度和复杂度,提升学生的学习兴趣和内驱力。案例包括Android开发中的图像处理、人脸检测、OCR识别、人眼追踪、心率检测和低功耗蓝牙传输、Java Web开发中基于内容的医学影像图像检索。结合笔者的从教经历,主要从教材选择和环境搭建、课程设计方面提出了自己的看法。教师可以根据自己的需求选择合适的案例教学。文中提到的案例涉及的Java知识点虽然只占整个知识体系中的很少部分,但是需要教师先将Java语言基础知识、Android开发的基本知识以及Java Web开发的基础知识能够先有所准备。对于愿意从事Java开发的同学,可以为日后的工作做准备,对于不愿意从事Java开发的同学,可以通过实现案例的过程了解其他课程的作用,并有助于加深对课程的理解。

猜你喜欢
控件基础知识机器
机器狗
机器狗
清律的基础知识
未来机器城
掌握基础知识
基础知识:“互联网+”的基本概念
ASP.NET服务器端验证控件的使用
Spreadsheet控件在Delphi数据库系统中的编程与应用