基于机器视觉的割草系统青草识别研究

基于机器视觉的割草系统青草识别研究


2024年4月6日发(作者:)

第 34 卷 第 4 期

2020 年 12 月

上 海 工 程 技 术 大 学 学 报

JOURNAL OF SHANGHAI UNIVERSITY OF ENGINEERING SCIENCE

Vol. 34 No. 4

Dec. 2020

文章编号: 1009 − 444X(2020)04 − 0369 − 06

基于机器视觉的割草系统青草识别研究

艾永平

a

,唐巧兴

a

,王泽杰

b

,莫庆林

c

(上海工程技术大学 a. 材料工程学院;b. 电子电气工程学院;c. 机械与汽车工程学院,上海 201620)

摘要:为使割草机系统实现青草识别,规划割草机运动路径并自动进行割草工作,采用单步多

框检测器(SSD)目标检测算法和卷积神经网络框架(Caffe)在工作机上训练青草识别模型.

通过树莓派(RPi)拍摄割草场地照片并传送到工作机,工作机计算青草在图片中的坐标值并返

回至树莓派,树莓派再根据青草的坐标值自动计算车桥转动角度和后轮电动机运行时间及方

向,调动割草机机械部分进行割草作业. 实验结果表明,较之于传统的人工机械割草机或围栏式

割草机,训练的青草识别模型能正常识别青草,割草机能较好地自动规划割草路径,具有一定除

草效果. 研究结果实现了机器视觉和传统机械的结合,为今后智能机械的研究提供一定思路.

关键词:青草识别;单步多框检测器(SSD)模型;机器视觉;三维建模

中图分类号: TP 311.1 文献标志码: A

Research on Grass Recognition of Mowing System

Based on Machine Vision

AI Yongping

a

,TANG Qiaoxing

a

,WANG Zejie

b

,MO Qinglin

c

( a. School of Materials Engineering;b. School of Electronic and Electrical Engineering;

c. School of Mechanical and Automotive Engineering, Shanghai University of Engineering Science, Shanghai 201620, China)

Abstract:In order to realize the grass recognition in the mower system, plan the moving path of the mower

and cut the grass automatically, the target detection algorithm of single shot multibox detector (SSD) and

convolutional architecture for fast feature embedding (Caffe) were used to train the grass recognition model on

the mower. Pictures of grass cutting field were taken by raspberry pie (RPi) and sent to the working machine.

The coordinate values of the grass in the picture were calculated by the working machine and returned to

raspberry pie, and the axle rotation angle, the running time and direction of the rear wheel motor according to

the coordinate value of the grass were calculated automatically, and then the mechanical parts of the mower

were mobilized to mow the grass. The experimental results show that compared with the traditional manual

mechanical mower or fence mower, the trained grass recognition model can recognize the grass normally, and

the mower can better plan the mowing path automatically, which has a certain weeding effect. The research

results realize the combination of machine vision and traditional machinery, and provide some ideas for the

future research of intelligent machinery.

Key words:grass recognition;single shot multibox detector (SSD) model;machine vision;3D modeling

收稿日期: 2019 − 04 − 12

基金项目: 上海工程技术大学校级大学生科研创新资助项目(CX1905005)

作者简介: 艾永平(1996 − ),男,在读本科生,研究方向为计算机应用. E-mail:*****************

通信作者: 王泽杰(1977 − ),男,副教授,博士,研究方向为人工智能. E-mail:*****************

·

370

·

上 海 工 程 技 术 大 学 学 报第 34 卷

对很多学校和大公司来说,草坪修理是需定

时进行的一项工作,马振峰

[1]

介绍了一种用智能

视觉和硬件控制的智能割草机,但其研究主要突

出其系统的硬件组成,对于机器视觉方面的实现

介绍得并不多. 徐伟峰等

[2]

介绍了一种智能割草

机器人,但其研究的割草机主要通过GPS定位控

制割草机运动,割草机的智能程度仍有提高空间.

机器视觉近年来在目标检测、自动驾驶领域大量

使用,其技术较为成熟,国内研究者也已经进行了

相关技术研究

[3 − 5]

.

现有割草机存在过于依赖人工、噪声大等缺点,

为尽量减少人工操作割草机,使割草机能自动、智能

地识别工作区域的青草位置,自动规划路径并进行割草

工作,本研究将人工智能和传统机械、电气相结合,基

于单步多框检测器(Single Shot MultiBox Detector,

SSD)、卷积神经网络框架(Convolutional Architecture

for Fast Feature Embedding,Caffe)算法和单片机控

制系统,研发一种完全自动化的割草机器人.

1 割草机工作原理

割草机系统由青草识别、局域网、单片机电

路、机械组成、数据展示等5个子系统组成,主要

零件组成如图1所示. 割草机的工作原理为:1)建

立一个局域网络,将割草机搭载的树莓派(RPi)以

及搭载青草识别模型的Ubuntu16.04工作机(下文

简称工作机)接入此局域网;2)通过树莓派控制安

装在割草机上的摄像头拍摄照片,工作机通过局域

网下载树莓派拍摄的照片;3)工作机上的青草识别

系统用此前训练好的青草识别模型(模型基于SSD

算法)识别图片中出现青草位置的坐标信息,并更

新工作机上青草识别信息数据库(基于MySQL5.7)

里的相关数据信息;4)树莓派通过局域网读取工作

机数据库中的相关信息并将这些信息发送至Arduino;

5)Arduino将树莓派发送来的信息作为参数传入

内部运动函数,控制割草机运动并割草. 当所在区

域割草任务完成后,割草机将割草函数返回的数

据发送给树莓派,树莓派控制摄像头旋转一定角

度拍照,割草机开始重复下一轮识别、割草工作.

2 割草机系统

2.1 割草机软硬件组成

本研究的割草机实物首先运用SolidWorks进

10111213

9

14

8

15

7

16

6

17

5

18

4

19

3

21212220

1—底板;2—刀片;3—前轮转向舵机;4—温度传感器;5—割草

电机;6—后轮;7—电池固定架;8—割草电机固定架;9—电池;

10—各传感器;11—树莓派;12—面包板;13—摄像头;14—变压

器;15—摄像头竖直运动舵机;16—摄像头水平运动舵机;

17—搭载板;18—散热风扇;19—前轮车桥;20—Arduino;

21—连杆;22—搭载板支撑杆.

图 1 割草机零件组成

Fig. 1 Components of mower

行三维建模,之后再组装各零件,各零件具体名称

及组成关系如图1所示. 割草机软件系统组成包

括:青草识别系统、局域网树莓派与工作机数据交

换系统、单片机运动工作控制系统、网络服务器、

数据库网页展示系统.

2.2 青草识别系统

1)选择SSD识别模型

割草机器人采用目标检测

[6 − 8]

方式识别青

草. 主流识别模型算法有快速区域卷积神经网络

(Faster Region-based Convolutional Neural Networks,

Faster R-CNN)、SSD

[9 − 11]

和一次检测(You Only Look

Once, YOLO). 各检测模型的性能见表1.

表 1 检测模型性能对比

Table 1 Performance comparison of detection models

检测算法

MapFPS

批尺寸

Boxes

输入归结

Faster R-CNN(VGG16)73.2716 0001 000 × 600

Fast YOLO52.7155198448 × 448

YOLO(VGG16)66.421198448 × 448

SSD30074.34618 732300 × 300

SSD51276.819124 564512 × 512

SSD30074.35988 732300 × 300

表中,Map为检测精确度,数值越高,检测越

精确;FPS为检测速度,数值越高,检测越快;Boxes

为检测适合物体大小.由表1可以看出,基于Caffe

框架的SSD模型系列算法比R-CNN检测模型速

第 4 期艾永平 等:基于机器视觉的割草系统青草识别研究

·

371

·

度更快,比YOLO模型更准确,因此本研究综合采

用Caffe-SSD模型训练目标检测模型. 其中,SSD

损失函数表达式为

L(x,c,l,g)=

1

N

(

L

conf

(x,c)+αL

loc

(x,l,g))(1)

式中:L为SSD算法的损失函数;c为置信度;l为

预测框;L

conf

为置信损失;L

loc

为定位损失;α为损

失函数分类和回归的权重;N为匹配到的default

box的数量;x为预测框与有效数据之间的差异;

cx

g为真框.其中,

cx

(g

cx

j

−d

i

)

cy

(g

cycy

j

−d

i

)

j

=

ˆ

j

=

ˆ

ω

d

ω

g

h

g

j

=

h

i

d

i

log

g

ω

j

d

ω

ˆ

h

=log

g

j

i

g

j

d

h

.

i

损失函数的位置误差为

{

smooth

L

(x)=

0.5x

2

,

|

x

|

<1

|

x

|

−0.5,其他

(2)

置信度误差(Confidence Loss)L

conf

公式为

Lx,c)=−

N

conf

(x

p

ij

log(ˆc

p

i

)−

i∈Pos

log(ˆc

0

i

)wherecˆ

p

i

=

exp(c

p

i

)

(3)

i∈Neg

p

exp(c

p

i

)

2)训练青草识别系统

首先,在不同角度、不同光照条件下拍摄一定

量青草照片并在网上用爬虫下载一定量青草照

片;其次,筛选出可用的青草照片,并用图片标注

工具标注出图中青草位置;再次,在Ubuntu上下载

配置Caffe-SSD;最后,设置labelmap_xt

的item参数为grass和background两个类别,改变

base_lr、batch_size等参数的值使loss参数逐渐降

低并收敛(即调参),获得收敛且可正常识别青草

的模型,训练流程如图2所示. 最终获得的青草识

别模型的识别准确率为93.73%.

3)使用识别模型并计算出现实长度

目前,路径规划被广泛应用于导航、机器人运

动、车辆自动控制等方面

[12 − 13]

. 用ssd_

识别照片中的青草区域,识别示例如图3所示. 在

ssd_脚本里加入计算距离函数,计算青草

区域偏离割草机的角度函数,向MySQL数据库中

插入数据函数,用ssd_识别出青草所在

区域的坐标. 在摄像头竖直方向角度固定的情况

下,图片中距离与实际距离呈一定的比例关系,可

通过多次测量取期望得出图片与实际距离的比例

关系. 最后,将图片中的目标区域坐标转换成实际

配置 Ubuntu

Caffe-SSD 环境

Python 脚本

实地拍摄

爬取图片

采集青草样本

照片100张

筛选可用

照片200张

将图片做成

LMDB 数据

用 LabelImg 工具

标注图片

设置网络参数

设置初始 base_lr、

为 Grass 和

配置各

Background

训练参数

batch_size 等参数

运行 ssd_ 脚本训练模型

改变 base_lr、

Loss = nan

观察

Loss = 0

batch_size 的值Loss 值

用青草图片

测试模型

图 2 训练青草识别模型流程

Fig. 2 Training grass identification model flow

割草机需要运动的角度和距离,角度计算示意图

如图4所示.

青草概率: 0.999 993

图 3 青草检测样本图

Fig. 3 Sample graph of grass detection

W

青草图片

(x

3

, y

3

)

H

(x

2

, y

2

)

L

α

(x

0

, y

0

)

割草机

图 4 青草检测示意图

Fig. 4 Sketch map of grass detection

·

372

·

上 海 工 程 技 术 大 学 学 报第 34 卷

图4中,W为青草照片的横向长度(1 280 pixel);

H为青草照片的竖直长度(960 pixel);(x

0

,y

0

)为

拍摄照片的左下角坐标;(x

2

;y

2

)为割草机在照片

中的理想位置(水平中点);(x

3

;y

3

)为青草区域右

下角的坐标;α为青草区域偏离割草机的角度;

L为青草照片中割草机到青草区域右下角的长度,

计算式为

α=90

−arctan

W

W

x

3

2

(5)

将青草照片的横向长度进行分割,分割公式为

m

=W×0.2

1

m

2

=W×0.4

(6)

m

3

=W×0.6

m

4

=W×0.8

式中:m

1

、m

2

、m

3

、m

4、

W分别为将拍摄的青草图片

L=

(

W

)

2

x

3

−+y

2

2

2

(4)

平均分割为5段,距离图片原点边的各段长度.

图片中相关距离、角度通过一定的转换比例

青草区域偏离割草机角度α的计算式为可转换为现实中的距离、角度,转换比例公式为

L×10,0⩽L⩽m

1

m

1

×10+(L−m

1

)×30,m

1

2

m

1

×(10+30)+(L−m

2

)×50,m

2

3

(7)

RL=

m

1

×(10+30+50)+(L−m

3

)×70,m

3

4

m

×(10+30+50+70)+(L−m

)×90,m

144

式中:RL为各图片中用青草识别模型识别出的青

草长度对应现实中的距离. 在将图片中的相关参

数转换成现实世界中的参数时,最大只能转换整

个图片长度的数据.

将计算得到的数据与其他相关数据插入到

Ubuntu软件上MySQL数据库的grass表中,并更

新表中的字段is_update值为1,表示图片位置数

据信息已更新.

4)数据传输与拍照系统

如图1所示,树莓派安装了raspberry pi(32位)

系统,其主要功能包括作为服务器存放拍摄的青

草照片、从工作机的MySQL中获取青草识别数

据、将从数据库中下载的数据发送至Arduino、通

过连接到树莓派上的摄像头进行拍照.

具体步骤为:在树莓派上安装Apache服务器

和MySQL数据库,并通过局域网系统用Python

脚本下载青草数据信息,同时将工作机grass表中

is_update字段的值设置为0,将获取的信息通过

Python脚本的serial端口发送至Arduino;用Python

脚本调用终端的fswebcam命令,通过摄像头拍摄

1280 × 720(pixel)的青草照片,并将照片存储在树

莓派搭建的服务器目录下,以供局域网中识别青

草的工作机获取青草图片;树莓派检测工作机

grass表中is_update字段的值是否为1,若为1,便

获取目标区域4个实际坐标值与距离、角度等参

数,并将这些参数通过字符串函数转换成各数据

相连接的字符串,再通过Python脚本里面的serial

库函数传输到Arduino.

2.3 Arduino单片机运动及工作控制系统

1)Arduino通过get_prameter函数处理传过来

的数据字符串,将其解析为实际距离、实际角度、

再通过其他函数将距离转换成电动机运动的时间

和舵机运动的角度等. Arduino通过调节电压大小

和方向控制机器人的前进、后退、速度. 通过转向

舵机转动一定角度带动前轮车桥运动,实现机器

人的转向功能. 当割草机一次割草动作完成后向

树莓派发送信号,树莓派再通过脚本控制摄像头

水平旋转180度拍摄6张照片,Ubuntu通过wget

得到图片并进行训练青草识别.

2)割草机主要由2个后轮电机提供动力,由于

电机功率较大,所以2个后轮电机都连接了大功

率电机驱动模块. 用前轮的车桥系统作为割草机

转向系统,割草机通过割草电机和割草刀片组成

割草系统.

3)通过安装在Arduino上的APC220无线模块

和DFR0008 DFRobot(遥控板)可在1 000 m的远

程控制割草机的运动及工作开关.

2.4 网页展示系统

此网站由PHP+MySQL开发,将MySQL和

Apache部署在Ubuntu上,网站主要功能为显示割

草机的各项参数,操作人员也可通过网页改变割

草机的各项参数.割草机的总体系统组成和工作原

理如图5所示.

第 4 期艾永平 等:基于机器视觉的割草系统青草识别研究

建立存储各

参数的数据库

·

373

·

在局域网中

网站读取数据并显示

Ubuntu 16.04

架设服务器、数据

展示网站

Ubuntu wget

树莓派拍摄的照片

识别到图片中无青草运行青草识别模型

识别到图片中有青草

树莓派控制摄像头拍照

发送青草区域的

坐标点、角度等数据

Python 脚本

图片传送

Update 数据库中

的 is_grass 值为1

存放照片于

树莓派服务器

树莓派

Serial 库函数

发送数据

Serial 两次发送信号

Arduino 接收

数据并根据

数据控制小车

运动及割草

割草机将青草

区域割草完毕

图 5 割草机总体原理图

Fig. 5 Schematic diagram of mower

3 实验测试

3.1 软件测试

1)训练模型

硬件环境:联想小新潮7000,Genforce 940MX,

GPU一个;软件环境:Ubuntu 16.04,cuda-10.1,cudnn

7.4.2.24,nvidia-418.56,Caffe-SSD,opencv-3.4.3;

训练时间:30 h;训练样本:200张图片;训练各参

数:base_lr=0.000 000 4, batch_size=2, max_iter=

120 000. weight_decay=0.000 5, gamma=0.1;网络

标签参数:1)background;2)grass.

2)展示网站开发

网站采用Thinkphp5+MySQL+Html+JS+CSS3

开发. Apache服务器和MySQL数据库放置于Ubuntu

机上.

3)Arduino控制脚本编写

脚本主要包含解析字符串函数、运动控制、割

草机控制函数、远程遥控函数、舵机控制函数以及

各参数计算函数,如割草机运行时间、速度等.

Arduino通过()函数读取树莓派和遥控

器传送的数据,通过()函数向树莓派输

出信号数据,且需编写能解析从树莓派传送过来

数据的函数.

4)树莓派各脚本编写

用Python语言编写fswebcam软件捕获青草

图片的shell脚本;配置树莓派上的服务器,将拍

摄的图片放置于网站目录下,供Ubuntu获取;用

Python语言编写操作Ubuntu数据库的各函数,如

update、select,向MySQL读取和更新数据;用

Python语言的serial库与Arduino通信,但通信时

只能传送字符串,所以树莓派需将从Ubuntu数

据库中获取的各字段数据重新组合成正确的字

符串.

5)Arduino、树莓派、Ubuntu互相联网开发

此步骤主要是树莓派、Arduino、Ubuntu之间

通信脚本的编写与调试. 树莓派与Arduino通过数

据线通信,树莓派与Ubuntu通过无线局域网进行

通信.

3.2 组装割草机

割草机系统主要由割草机Arduino硬件系统、

Ubuntu16.04青草识别系统、以及树莓派无线通信

系统组成,其实物如图6所示. 其中:2个后轮电机

和割草机电机用24 V可充电电池供电,且采用双

·

374

·

上 海 工 程 技 术 大 学 学 报第 34 卷

路直流电机驱动板模块,正反转PWM调速L298

逻辑7 A/160 W模块,割草电机转速为10 000转/min,

可满足割草刀片正常割草;割草机通过前轮车桥

系统转向,将机电一体化,摄像头云台安装有竖直

向、水平向2个舵机,具有竖直、水平2个方向和

2个自由度;由于树莓派、Arduino以及各模块运

行时会生热,所以采用18号零件(散热风扇为各

电子元件散热)

.

图 6 割草机实物图

Fig. 6 Physical picture of mower

将青草识别模型训练完成后并组装割草机,

之后对割草机进行实地测试,割草机系统使用训

练好的模型识别出的青草位置,然后使用位置转

换算法将图片识别到的青草位置映射到以割草机

的摄像头为原点的现实坐标中,最后割草机根据

系统计算出割草机的转动角度、方向、运行时间进

行割草工作及运动,实际测试如图7所示. 可以看

出,割草机系统能正常运转,具有一定割草效果.

基于机器视觉的除草机器人

图 7 割草机割草效果图

Fig. 7 Effect of mower cutting grass

4 结 语

相较于传统围栏式或手推式割草机,本研究

的割草机无须架设电子围栏,利用SSD算法模型

赋予割草机器人机器视觉,割草机系统能自动识

别青草在图片中的坐标,然后将青草在图片中的

位置坐标用算法映射为现实青草所在位置坐标,

割草机再进行自动除草. 本研究将SSD算法和机

械电气相结合,将机器视觉应用于割草机,使割草

机更智能化. 通过对割草机实地测试,证明SSD机

器视觉算法可与割草机相结合. 研究结果为人工

智能和机电结合提供了一种参考思路和方法,今

后,研究人员还可在割草机的运行路径规划方面

继续进行研究.

参考文献:

1

马振峰. 基于智能视觉的割草机自动控制系统设

计[J]. 计算机测量与控制,2018,26(7):84 − 87, 142.

2

徐伟锋, 刘山. 基于PLC的智能割草机器人控制系

统[J]. 农业工程,2020,10(1):22 − 25.

3

谢忠华. 基于视觉导航的割草机器人运动控制[J]. 农

业工程,2016,6(5):30 − 32.

4

马超. 浅谈我国田间机械除草现状及发展趋势[C]// 中

国农业机械学会第四届青年学术年会论文集. 天津:中

国农业机械学会,2007.

5

郭亭亭, 杨然兵, 李娟, 等. 机器视觉喷药机器人的研

发[J]. 中国农机化学报,2015,36(5):215 − 219.

6

高彦杰, 于子叶. 深度学习: 核心技术、工具与案例解

析[M]. 北京: 机械工业出版社, 2018.

7

彭红星, 黄博, 邵园园, 等. 自然环境下多类水果采摘目

标识别的通用改进SSD模型[J]. 农业工程学报,2018,

34(16):155 − 162.

8

IAN G, YOSHUA B, AARON C. 深度学习[M]. 赵申

剑, 黎彧君, 符天凡, 等译. 北京: 人民邮电出版社, 2017.

9

Liu Wei, Anguelov Dragomir, Erhan. SSD: Single Shot

MultiBox Detector[J]. 2015.

[10]

周瑶. 基于深度学习的舰船目标检测与识别[D]. 哈尔

滨: 哈尔滨工程大学, 2018.

[11]

赵杰, 胡浩然, 孙启智, 等. 改进果蝇算法的运输车辆路

径规划[J]. 黑龙江科技大学学报,2020,30(2):187 −

192, 204.

[12]

代峰燕, 高庆珊, 陈家庆, 等. 储油罐清洗机器人全覆盖

路径规划研究[J]. 机械设计与制造,2020(2):263 −

266.

[13]

XU Y, GUAN G F, SONG Q W, et al. Heuristic and

random search algorithm in optimization of route planning

for robot’s geomagnetic navigation[J]. Computer

Communications,2020,154:12 − 17.

(编辑:林立云)


发布者:admin,转转请注明出处:http://www.yc00.com/web/1712388496a2050829.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信