Vol 49 No. 1
Jan.2021
第49卷第1期
林业机械与木工设备
2021 年 1 月
FORESTRY MACHINERY & WOODWORKING EQUIPMENT
研究与设计
基于 OpenCV-Python 的 木材缺陷图像分割教学软件
程玉柱
(南京林业大学机械电子工程学院,江苏南京210037)
摘 要:OpenCV 是一个开源计算机视觉与机器学习软件库,Python 是一种通用的流行编程语言,
OpenCV-Python 是OpenCV 的Python API 绑定库。针对林业图像处理“金课”课程,构建一套基于OpenCV-Py- thon 的木材缺陷图像分割教学软件。介绍了 OpenCV-Python 库的特点及图像分割算法的分类;利用Anaconda
及PyCharm 搭建基于0penCV 图像处理开发平台,实现10种木材缺陷图像阈值分割方法,其中Sauvola 及
ISODATA 算法最优;利用OpenCV 与Tensorflow 的有机结合,实现木材缺陷图像语义分割。实践表明,构建的
软件便于互动式教学及后续扩展,促进了林业图像处理课程“金课”的建设。
关键词:OpenCV ; Python ;木材缺陷;图像分割;金课中图分类号:TP391.41
文献标识码:A 文章编号:2095 -2953(2021)01 -0036 -04
Wood Defect Image Segmentation Teaching Software Based on OpenCV Python
CHENG Yu-zhu
(College of Mechanical and Electronic Engineering ,Nanjing Forestry University ,Nanjing Jiangsu 210037, China)
Abstract : OpenCV is an open source computer vision and machine learning software library , Python is a common
popular programming language , and OpenCV-Python is OpenCV Python API binding library. Aiming at the u golden
courseof forestry image processing , a set of wood defect image segmentation teaching software based on OpenCV Py thon was constructed. The characteristics of OpenCV Python library and the classification of image segmentation algo rithms were introduced ; a image processing development platform based on OpenCV was built using Anaconda and Pycharm to realize 10 kinds of wood defect image threshold segmentation methods , among which Sauvola and ISODA
TA algorithm are the be 就;finally ; the organic combination of OpenCV and Tensorflow was used to realize the seman tic segmentation of wood defect images. The practice shows that the software is convenient for interactive teaching and fiollow-up expansion , and it can
promote the golden courseconstruction of forestry image processing course.
Key words : OpenCV ; Python ; wood defect ; image segmentation ; golden course
“金课”建设是当前本科教育的一个热点,是提 高本科教学质量及一流专业建设的关键。图像处理 技术可应用到林业生产、森林保护、环境检测等多方 面。林业图像处理课程作为“金课”建设对象,要体
现“高阶性、创新性、挑战度图像分割是图像
处理中的一个重要教学内容,OpenCV 是一个开源重 要的计算机视觉库,包含了大量的图像分割与识别
函数,可以利用OpenCV-Python 帮助学习图像分割的
收稿日期=2020-08 -13
基金项目:南京林业大学2019教学质量提升工程项目(2019nfukczs019)
作者简介:程玉柱(1980 -),男,讲师,博士,研究方向为林业图像分割与识别研究,E-mail :chengyuzhu2003@ 163. com o
第1期程玉柱:基于OpenCV-Python的木材缺陷图像分割教学软件37知识,培养学生解决复杂系统问
题的能力,提高教学
效果I。
图像分割算法有多种,主要包括传统法和语义分割法。传统法有阈值分割、聚类分析、泛函能量法、区域分析法、分类器法[7-10]o最新的语义分割为深度学习方法,有块分类、全卷积法、编码-解码结构、孔洞卷积法、条件随机场法等⑴「⑷。这些分割方法都可用于木材缺陷图像检测,实现图像分割软件的构建。
以深度学习为代表的人工智能技术是第四次工业革命的关键技术之一。Python语言是当前使用最广泛的深度学习编程语言,传统上图像处理教学大多采用Matlab的图像处理工具箱进行,Matlab的优势主要适合于科学研究,而Python软件既适合科研,也可以进行工程应用。大多数深度学习软件最新的应用多数是基于Python开发的,如卷积神经网络(convolutional neural network,CNN)等。因此,将OpenCV-Python引入到林业图像处理课程中很有必要,可突出“金课”的“两性一度”。以木材缺陷图像为研究对象,构建一套基于OpenCV-Python的木材缺陷图像分割教学软件,此软件包括绝大多数图像分割函数,同时便于扩展最新分割算法,帮助学生掌握基础理论,接触新知识及技术,锻炼学生的编程能力。
1基于0penCV的图像分割方法
1.1OpenCV
OpenCV是一个开源计算机视觉和机器学习软件库,该库具有2500多种优化算法,其中包括一整套经典和最新的计算机视觉和机器学习算法。这些算法可用于检测和识别面部,识别物体,对视频中的人为行为进行分类,跟踪相机运动,跟踪运动物体,提取物体的3D模型,从立体相机产生3D点云,将图像缝合在一起以产生高分辨率整个场景的图像,从图像数据库中查相似的图像,从使用闪光灯拍摄的图像中消除红眼,跟随眼睛的运动,识别风景并建立标记以将其与增强现实叠加在一起等。它具有C++、Python、Java和MATLAB接口,并支持Windows A Linux A Android和Mac0S o OpenCV主要倾向于实时视觉应用,用C++原生编写,并具有可与STL容器无缝配合的模板化接口。1.2OpenCV-Python
Python是一种通用编程语言,由Guido van Ros-sum创建,是一种面向对象的解释型高级程序设计语言,主要特点为语法简单、清晰、优雅,能帮助编程者从语法规则中走出来,从而专注于解决问题,而且具有大量的第三方函数库,满足大量开发需求,其用户数量急速增长。OpenCV-Python是OpenCV的Python API,它结合OpenCV C++API和Python的最佳特性语言,是一个Python绑定库,用于解决计算机视觉问题。对于像C/C++这样的语言,Python速度较慢。Python可以很容易地用C/C++来扩展,可以在C/C++中编写计算密集型代码,并创建可以用作Python模块的Python包装器。OpenCV-Python具有两个优点:第一,代码和原来的C/C++代码一样快(因为它是后台工作的实际C++代码),其
次,在Python中比C/C++更容易进行编码。OpenCV-Python就是一个Python包装器,用于原始OpenCV C++实现,同时使用Numpy库,具有MAT-LAB风格的语法。所有OpenCV数组结构都可与Numpy数组进行转换。
1.3图像分割分类
图像分割是图像处理的基本任务之一,把图像分成不同属性的目标和区域。本质上,可看成像素目标的检测、分类或识别问题,因此,机器学习及人工智能的相关理论都可以应用到图像分割的研究中。图像分割方法如图1所示,可将这些图像分割算法应用到木材缺陷检测中。
2木材缺陷图像分割
2.1平台搭建
开发平台在Window10下构建,主要包括Anaconda A Py C harm A OpenCV库等。Anaconda是Python 的一个开源发行版本,包括conda^python等180多个科学包及其依赖项。Anaconda下载地址为http://w ww.anaconda,com/download/,其版本可随时更新。下载得到安装软件,根据指示按步骤安装至完成。PyChaim是一种简单易用的编辑器,可采用开源版本PyCharm Community,下载地址为Http:// www.jetbrains,com/pycharm/download/#section二win-dows,下载安装软件,根据指示按步骤安装至完成。OpenCV-Python有以下三种安装方法:①PyCharm 的
38林业机械与木工设备第49卷Project Interpreter中的界面安装;②PyCharm的Ter
minal中pip install opencv-python指令安装;③从https://www.l£d.uci.edu/〜gohlke/pythonlibs/_F载OpenCV的Whl文件后直接安装,此方法不需要额外编译,稳定不易出错。
图1图像分割方法2.3算法比较分析
利用四种评价指标ACC、SOB、SEN和SPE[15-20],其定义如式1所示。对10种图像分割方法进行比较计算,得到指标结果,见表1。方法分成局域法和全局法两类,Sauvola在局域法中算法最优, Isodata在全局法中算法最优。
图2示例代码
2.2算法实现
图像分割方法较多,为了便于说明Python实现过程,本文以阈值分割为例加以说明。利用PyCharm 编程,用import命令导入cv2skimage A matplotlib库,利用cv2.imread读取图像,利用skimage.filters, threshold.*函数实现图像阈值分割。*表示有10种方法,包括local()、mean()、minimum()、niblack ()^sauvola()A triangle()^isodata()、li()、yen()A otsu (),示例代码如图2所示。运行代码得到分割结果,如图3所示,不同的阈值方法有不同的分割结果。方法可分成局部阈值和全局阈值两类,局部阈值
有local()A niblack()sauvola();其他的七种为全局阈值。左上方为木材缺陷RGB彩图,经过灰度化后得到灰度图,然后利用10种阈值分割方法得到各自的分割结果。
50
RGB彩图灰度图local
(T
50-
KM)
On
50-
100
0200
01
1UU2UU0100200
sauvola mean
U
50
10(
10()
rilil<i<-k
100
20001002000
triangle
0100
minimum
50-
100200
isodata
5(
100
5(
100
1002000
yen
」5l j150
1002000……
1002000
li
100200
otsu
l10W
1002000100200
图3
python新手适合的软件阈值分割
第1期程玉柱:基于OpenCV-Python的木材缺陷图像分割教学软件39
ACC
TP+TN
TP+TN+FP+FN
SOB=------------
TP+FP+FN
SEN=
TP
TP+FN
(1)
SPE=
TP TN+FP
式中:7P为正确的正样本;FP为错误的正样本;FN 为错误的负样本;77V为正确的负样本。
表1算法性能
方法ACC SOB SEN SPE
局
Local52.33 1.8160.8152.20 Niblack63.45 2.7371.0263.34
域
Sauvola99.375&0560.8199.93
Mean61.17 3.58100.0060.60
Minimum99.9395.4995.49100.00
全Triangle99.4873.60100.0099.48 Isodata99.9496.1199.7699.94
局Li73.94 5.25100.0073.56 Yen99.8087.89100.0099.80
Otsu76.26 5.73100.0075.91
3教学软件应用与扩展
根据图1中的图像分割分类方法,利用PyCharm 的集成开发环境,实现多种图像分割,分割结果如图4所示。图4(a)-(c)分别为K-均值、均值漂移、FCM;(d)~(f)分别为CV模型、MRF模型、Graph模型;(g)~(h)分别为区域增长、分水岭;(i)~(j)分别为支持向量机(SVM)和卷积神经网络(CNN)。其中大部分
都采用OpenCV库中的函数实现,相对应的辅助库可通过pip install命令进行安装,例如,CNN 可采用Tensorflow深度学习框架进行编程。
本软件只是初步实现了图像分割的一些算法,可在此软件基础上进一步改进或扩展,方便学生学习和创新。图像语义分割(Semantic Segmentation)是图像处理和机器视觉技术中关于图像理解的重要一环,也是AI领域中一个重要的分支。语义分割是对图像中每一个像素点进行分类,确定每个点的类别(如属于背景、人或车等),从而进行区域划分。目前,语义分割已经被广泛应用于自动驾驶、无人机落点判定等场景中。传统的方法为TextonForest和基于随机森林分类器等,而深度学习方法有块分类、全卷积法、编码-解码结构、孔洞卷积法、条件随机场法等。利用此软件,可灵活地使用OpenCV与TesnsorFlow及PyTorch等框架结合,实现多种语义图像分割算法,方便学生快速掌握深度学习和人工智能的基础知识。
(1)以“图像分割”作为林业图像处理课程的教学内容,进行图像处理“金课”建设,构建一套基于木材缺陷图像分割的教学软件。
(2)以“OpenCV-Python”为实现方式,利用WinlO+Anaconda搭建开发平台,开发了多种阈值分割方法,比较了木材缺陷分割的性能。
(3)以“卷积神经网络”为创新点,预留分割教学软件的扩展余地,与Skimage、Tensorflow等Python 库
相结合,提升“金课”建设效果。
参考文献:
[1]卢荣德.理实交融赋能“金课”建设[J].大学物理,2020,39
(8):43-47+67.
[2]曹成茂,孙福,秦宽.坚持“以本为本”提高农业工程类本科专业
人才培养质量[J].教育教学论坛,2020(31):128-130.
[3]王忠芝,刘文萍,王昭,等.“数字图像处理”课程教学改革探
索[J].中国林业教育,2019,37(3);66-69.
[4]吴天冬,戚澎.基于OpenCV的桜树人工林林木株数识别与统
计研究[J].林业科技,2020,45(5):37-38.
[5]胡嫣然.一种基于Python+OpenCV的视频处理办法[J].计算
机产品与流通,2020(8):139+141.
(下转第42
页)
42林业机械与木工设备第49卷
然气、电能为动力的林业机械,可进一步降低污染排放。基于结构简便,在生态林业修复发展探索中,需设法解决过于繁重这一林业机械缺点,努力实现林业机械的轻便化。基于整体改进,需正视生态林业修复发展中林业机械的重要地位,其能够提供巨大的助力推进生态林业的修复发展,需扩大林业机械的发展资金,生态林业修复不仅需要关注林木的引进,同时还需要关注林业机械的引进和换代。林业机械的发展不应单纯淘汰落后的林业机械,而是需要以现有林业机械为模板开展针对性的改进。
基于生态效益优先,生态林业修复发展中林业机械必须坚持社会效益、经济效益、生态效益的统一,同时还要坚持专业性和适用性相结合的原则。基于生态林业修复特点,林业机械的适用性需考虑所在地的林木特性、林地立地条件等综合因素,真正做到立足专业,充分发挥生态林业修复优势,推进社会效益、经济效益、生态效益的和谐统一。不同于农业生产,生态林业修复中涉及的林木育种及播种专业性较强,对于休眠期长的林木种子,生态林业修复涉及的生产播种机具专业性必须得到保障,还需要考虑植树机具能否用于荒地、平原、山地、采伐迹地。生态林业修复不仅需要适用性强,也需要做到针对性强,并坚持专业性和通用性相结合的原则。在满足生态林业修复发展的同时,林业机械的
通用性扩大也极为关键,如喷灌设施、整地机具的通用性较强,可同时用于农业生产和生态林业修复,割灌机则能够同时用于城市园林绿化和生态林业修复。坚持通用性和专业性并举,坚持多元化,林业机械即可更好地实现社会效益、经济效益、生态效益的协调发展,更好的服务于生态林业修复。国家林业政策调整对林业机械发展带来的影响也需要得到重视。
3结束语
林业机械在生态林业修复发展中的应用需关注多方面因素的影响,本文探讨了林业机械的基本应用要点、应用价值分析、具体应用途径等内容,提出了生态林业修复发展中林业机械应用的策略。为更好推进生态林业修复发展,也应重视林业机械操作人员的培训、各类新型先进林业机械的引进。
参考文献:
[1]梁黎.林业发展存在的问题及对策[J].现代农业科技,2020
(13)
:129+132.
[2]本刊讯•提升生态林业服务保障能力实现林业建设高质量发
展—
—中卫市技术服务组工作报告[J].宁夏林业,2020(3):29
-31+37.
[3]胡雪凡,张会儒,张晓红.中国代表性森林经营技术模式对比研
究[J]•森林工程,2019,35(4):32-38.
[4]张京,徐雁南.基于Web AppBuilder的县级森林资源管理系统
构建[J]•森林工程,2020,36(4):38-44.
[5]朱立东,李善锋•林业生态栽培中的机械自动化技术与应
用[J].林产工业,2019,56(11):83-85.
[6]李改萍.林业生态修复与环境保护措施研究[J].乡村科技,
2019(19):62-63.
(责任编辑王琦)
(上接第39页)
[6]韩志豪,刘晓英.基于Python的机器视觉实验教学平台设
计[J].计算机测量与控制,2020,28(3):250-254+259.
[7]周宇,周仲凯,于音什,等•基于RCDA的家具表面死节缺陷图
像分割[JJ-林业机械与木工设备,2019,47(8):8-11.
[8]于莲芝,刘海宁.一种结合CV模型与贝叶斯的肺实质分割方
法[J].小型微型计算机系统,2020,41(4):843-848.
[9]袁雯雯,姜树海,史晨辉.基于改进GMM算法的林火烟雾识别
研究[J].火灾科学,2019,28(3):149-155.
[10]顾权,李赵春.基于稀疏表示分类的家具表面缺陷检测[J].家
具,2019,40(2):112-116.
[11]孙绩婷,戚大伟•基于图像融合的竹塑复合材内部缺陷边缘检
测研究[J]•森林工程,2019,35(3):36-40.
[12]Fahad Lateef,Yassine Ruichek.Survey on semantic segmentation
using deep learning techniques[J].Neurocomputing,2019.
[13]Alberto Garcia-Garcia,Sergio Orts-Escolano, Sergiu Oprea, et al.A
survey on deep learning techniques for image and video semantic
segmentation J].Applied Soft Computing,2018.[14]Afshin Azizi,Yousef Abbaspour-Gilandeh,Edwige Vannier,et al.
Semantic segmentation:A modem approach for identifying soil
clods in precision farming[J].Biosystems Engineering,2020. [15]盛韩伟,戴培山,刘智航,等•基于拓扑结构的眼底图像分割评
价新方法[Jh生物医学工程学杂志,2015,32(5)=1100
-1105.
[16]青晨,禹晶,肖创柏,等.深度卷积神经网络图像语义分割研究
进展[J]•中国图象图形学报,2020,25(6):1069-1090. [17]齐明霞•木材加工剩余物再利用产业的发展研究[JL林产工
业.2019,56(12):68-69+75.
[18]王巍,李新宁,王云婷.基于数字图像处理的樟子松锯材分级
研究[JX林产工业,2019,46(4):3-8.
[19]乔虹,冯全,赵兵,等•基于Ma吐R-CNN的葡萄叶片实例分
割[J]•林业机械与木工设备,2019,47(10):15-22.
[20]张苗苗,吕嘉洛,倪海明,等•基于新型加和算法的叶片图像分
割研究[J]■森林工程,2019,35(4):65-69.
(责任编辑王琦)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论