- 1 -
中国科技论文在线
基于图像处理的坍塌检测系统的设计与实
现
于韶峰,段鹏瑞**
作者简介:于韶峰(1991-),男,硕士研究生,主要研究方向:多媒体技术
通信联系人:段鹏瑞(1974-),男,副教授,主要研究方向:物联网技术、通信软件与协议、应用软件系
统
(北京邮电大学智能通信软件与多媒体北京市重点实验室,北京 100876) 5
摘要:传统坍塌检测系统主要通过在检测目标内部布置压力、张力等传感器来进行检测,但
是这些方法由于工程量大,成本高,难以应用在大多数场合。本文提出了一种基于图像处理技
术的坍塌检测系统,该系统采用角点检测出的虚拟标记点和待检测物表面布置的实体标记点
相结合的方法进行坍塌检测,实时计算所确定的各个标记点的位置与预先存储的所述待检测10
物的各个对应标记点之间的位置偏差量,确定所述待检测物是否发生坍塌。由于使用了实体
标记点,因此本文对小规模的坍塌都能进行有效识别。
关键词:计算机应用技术;坍塌检测;快速 SUSAN 算法;标记点
中图分类号:TP391
15
Design and implementation of collapse detection system
based on image processing
YU Shaofeng, DUAN Pengrui
(Beijing Key Laboratory of Intelligent Telecommunications Software and Multimedia, Beijing
University of Posts and Telecommunications, Beijing 100876) 20
Abstract: The traditional collapse detection system mainly uses the pressure, tension and other
sensors to detect. Due to the large amount of work and high cost, these methods are difficult to
apply in most occasions. In this paper, a new method based on image processing technique is
proposed, which is based on the virtual marks detected by the corner detection algorithom
combined with the real marks deployed on the target. This system computes the position deviation 25
between all the respective marks and the previous marks, and then judges whether collapse
happened or system can make the right judgement of small scale collapse by using real
marks.
Key words: computer application; collapse detection; faster SUSAN algorithom;mark point
30
0 引言
由于实际场景中很多古代建筑物年久失修,经过漫长的时间受到风雨侵蚀,有些部分早
已经摇摇欲坠,甚至有些部分只是土墙,更加容易受到自然条件的影响。所以如果能对这些
建筑物墙体的坍塌进行准确检测并且对其形变趋势做出判断,及时采取有效措施,将有效保
护这些重要的文化遗产,减少文化和经济财产损失。 35
传统的坍塌检测主要是通过在检测目标内部相关检测点布置压力、张力、振动等传感器,
动态检测其内部应力情况[1]。但是该方法存在着成本高、埋设及维护繁琐、工作量大等缺点,
因此并不适用于对古建筑的长期检测[2] [3]。随着计算机图像处理和识别技术的不断发展和成
熟,针对该问题有了更加有效的解决办法。采用图像处理技术对待检测物进行实时监测,判
断是否发生坍塌。 40
本文提出了使用实体标记点组成的标记矩阵和虚拟标记点联合检测的方法,通过摄像机
- 2 -
中国科技论文在线
对标记点的位移检测从而映射到建筑物表面实际的位移。使用实体标记点和虚拟标记点相结
合的方法对建筑物坍塌和位移进行识别和检测。本文适用于所有情况下的坍塌检测,由于使
用了实体标记点,对于细微的坍塌也能进行有效识别。
实体标记点指的是实际存在的标记点,使用跟建筑物颜色相差比较大的圆形标记,将其45
固定在建筑物表面;但在某些时候,尤其是对文物进行保护的时候,是不允许在文物上做很
多标记的,因此,此时需要使用虚拟标记点,虚拟标记点就是通过图像处理在图像上虚拟出
来的标记点,主要是通过角点检测识别出虚拟标记点。
1 坍塌检测系统的功能
坍塌检测系统主要实现视频采集、坍塌检测、编码压缩、视频传输和视频展示这五个功50
能。
视频采集
本文的视频处理器终端选用了基于ARM1176JZ内核架构的三星S3C6410微处理器作为
硬件开发平台,并且采用了适合在野外部署的模拟球机摄像头。采集的视频为 YUV 格式视
频。 55
坍塌检测
受自然条件和人为因素等外界条件的影响,建筑物特别是土建筑物容易产生位移形变甚
至是坍塌。本文通过一种图像处理的方法,即实体标记点和虚拟标记点相结合的方法,通过
摄像机对实体标记点的位移检测从而映射到建筑物表面实际的位移,结合角点检测的算法对
建筑物的位移和坍塌进行判定。 60
编码压缩
视频压缩采用了基于三星 S3C6410 开发板的 MFC(Multi Format Codec)硬编码,MFC
是 ARM 微处理器内部一种支持多种硬件编码方式的硬件电路,能够编码 /解码
MPEG-4/ YUV 格式视频编
码压缩成 格式,从而为传输视频节省带宽。 65
视频传输
由于视频帧数据较大,不适宜直接对每一帧数据进行传输,因此需要先对压缩后的视频
帧进行分片重组,然后再进行网络传输。由于视频传输实时性要求较高,因此一般选用 UDP
协议进行传输。由于本文针对野外部署采集设备,因此传输网络选用的是 3G。
视频展示 70
坍塌检测系统的数据传输到接收端 PC,PC 机将接收到的 格式的视频数据解码为
YUV 格式,通过 QT Creator[4]进行界面展示系统的开发。
2 坍塌检测系统的设计
坍塌检测系统主要由两部分组成,分别是视频发送端和视频接收端。如图 1 所示。视频
发送端包括采集模块、传输模块和坍塌检测模块。其中,采集模块主要负责采集原始 YUV75
格式的视频,并分发原始 YUV 帧到传输模块、YUV 灰度帧到坍塌检测模块,还有进行视
频帧格式匹配和摄像头控制等功能。坍塌检测模块主要完成基于图像处理的坍塌检测功能。
- 3 -
中国科技论文在线
视频接收端主要包括解码模块、数据库模块以及展示模块。解码模块主要用来对接收到
的 格式的视频解码成 YUV420 格式的功能。数据库模块主要用来存储接收到的视频
文件信息,存储的是视频的相对路径信息。展示模块负责对视频以及坍塌检测结果进行界面80
展示。
Internet
3G
3G
视频发送端 ARM
传输模块 坍塌检测模块
采集模块
彩色帧 灰度帧
视频发送端 PC
图 1 坍塌检测系统设计图
Fig. 1 Structure of collapse detection system
3 坍塌检测系统的实现 85
视频发送端的实现
采集模块的实现
首先调用 open()函数打开视频设备文件。取得设备的 capability,调用 ioctl()函数,使用
VIDIOC_QUERYCAP 控制命令查询设备功能信息。将帧格式、分辨率、色彩空间等填充到
v4l2_pix_format 结构体,由于使用视频帧格式为 YUV420,每一帧的大小为 (WIDTH×90
HEIGHT) ×3/2 个字节。调用 ioctl()函数,使用 VIDIOC_S_FMT 命令将视频采集设备配置
- 4 -
中国科技论文在线
信息传输给设备寄存器。调用 ioctl()函数,使用 VIDIOC_STREAMON 命令,发出“开始采
集”的信号,将 start 置“1”。视频采集设备进入采集循环,调用 read(fp,buffer,SIZE)函数
循环读取视频帧到缓冲区。若需结束视频采集工作,则使用 VIDIOC_STREAMOFF 命令,
并将 start 置“0”,调用 ioctl()函数结束采集。 95
使用 sendto()函数将彩色帧发送到传输线程,将灰度帧发送到坍塌检测线程。
传输模块的实现
传输模块在软件启动后会进行一轮初始化操作,对变量、工作空间进行声明和赋值,然
后创建用于网络视频传输的套接字。之后此线程将会监听 stream_flag 标志的状态,若为“1”,
则启动视频编码、传输流程。编码操作首先使用 AF_UNIX 套接口从视频采集模块中接收一100
帧视频数据,然后将其映射到 视频编码子模块的工作空间,调用子模块,进行编码压
缩。压缩后得到完整的 视频帧,考虑网络传输需要,须将其分片。目前我们将其数据
净荷封装成 1KByte 大小的若干帧分片,并加入头部信息,对帧分片进行封装[5]。分片封装
完成,通过套接字进行发送。
坍塌检测模块的实现 105
首次启动时,通过改进的 SUSAN 角点检测算法[6]计算出角点位置,标定为虚拟标记点,
并将虚拟标记点坐标存入数据库中。
图 2 虚拟标记点
Fig. 2 Virtual mark point 110
根据实际需求在建筑物表面上布置好辅助的实体标记点,本文是由标记点组成 3*3的矩
阵,当然根据不同需求可以适当调整矩阵大小。
图 3 所有标记点
Fig. 3 All mark point 115
对于实体标记物的扫描算法,本文提出了使用八邻域轮廓跟踪算法和外旋扫描算法[7]
相结合的方法。
系统在首次启动时通过八邻域轮廓跟踪算法计算得到标记点中心坐标;八邻域轮廓跟踪
- 5 -
中国科技论文在线
算法描述如下:
(1)从图像中原点方向也就是图的左上方开始逐行扫描; 120
(2)若某行的像素点的灰度值均为 0,则转入下一行继续扫描;
(3)如果扫描时遇到灰度值为 255 的像素点时,标记这个像素点的图像坐标,并且
以这个像素点为起始点,按照给定的顺序依次检查它的八邻域点的灰度值;如果某一邻域
上的像素点灰度值为 0,就舍去该点,反之记录该点,继续遍历,一直遍历到起始点为止。
并对这个标记点进行编号; 125
(4)计算步骤(3)中所记录的点的图像坐标的平均值,即为目标对象体的中心坐标;
(5)将步骤(3)中所记录的点的灰度值设置为 0;
(6)转入步骤(3),继续遍历,直到遍历完整幅图像。
0
1
7
6
5
4
2
3
图 4 8 邻域 130
Fig. 4 8 neighborhood
如果不是首次启动,则使用外旋扫描算法识别标记物中心点坐标。外旋扫描算法具体过
程为:
(1)对图像中的某个标记点,以它前一次检测出的标记点中心坐标为起点开始向外旋
转式扫描; 135
(2)向外旋转扫描的轨迹如下图所示,按此轨迹依次检查每一个像素点的灰度值,若
灰度值为 0就舍去该点,若灰度值为 255 就记录该点;
(3)继续扫描,直到某一层像素点的灰度值全为 0 时结束;
(4)扫描完成后,统计被记录像素点的总数,该数就是单个圆形标记点的面积,圆心
坐标为所有像素点坐标的平均值; 140
(5)将(3)步骤中的像素点的灰度值都设置为 0,使其作为背景;
(6)按照步骤(1)-(3)的方法继续下一个实体标记点的扫描,直到扫描完整幅图像。
图 5 外旋扫描
Fig. 5 External spiral scan 145
对角点检测得到的虚拟标记点和上述的实体标记点组成的标记组合进行实时检测,在满
足以下表达式的情况下,确定该待检测物发生了坍塌,否则,确定该待检测物未发生坍塌;
Th
M
m
(1)
- 6 -
中国科技论文在线
其中,m表示计算得到的虚拟标记点的位置偏差量中大于预设的偏差量阈值的位置偏差
量的个数,M表示计算得到的针对虚拟标记点的位置偏差量的个数,Th表示预设的坍塌阈值。 150
坍塌检测过程的流程如下图所示:
检测虚拟标记点
标定实体标记点
允许布置实体标记点
首次计算所有标记物中心点坐
标,记为X0
数据库
重新计算所有标记物中心点坐
标,记为Xi
|Xi-X0|>阈值
坍塌报警
YES
NO
NO
YES
图 6 坍塌检测流程图
Fig. 6 Flow chart of collapse detection system
视频接收端的实现 155
传输模块的实现
视频接收端的传输模块通过与发送端对应的 Socket 套接字将封装过的 格式的视
频分片存入缓冲区,然后解析出其头部信息并重组成一帧大小的 视频,并将其发送到
解码模块。
解码模块的实现 160
解码模块主要实现将接收到的 格式的视频通过 FFmpeg 解码成 YUV420 的功能。
FFmpeg 是一个开源免费跨平台的视频和音频流方案,属于自由软件。它包含非常先进的音
频/视频编解码库 libavcodec,提供了录制、转换以及流化音视频的完整解决方案。FFmpeg
支持 MPEG4、FLV 等 40 多种编码,以及 AVI、ASF 等 90 多种解码。首先用 av_register_all()
函数注册 FFmpeg 所有解码器,然后用 avcodec_find_decoder()函数查找对应的解码器,并打165
开 avcodec_open(),用 avcodec_decode_video()函数编码一帧数据。解码完成后,释放解码
器:avcodec_close()和关闭文件输入流 av_close_input_file()。
- 7 -
中国科技论文在线
数据库模块的实现
数据库模块主要实现对视频数据的存储和历史数据的查询功能。首先用 MySQL 建立专
门存储视频数据信息的数据库,设计并添加相关的表,表中存放节点信息以及视频文件的路170
径,数据库调用的时候,直接调用路径。
展示模块的实现
展示模块使用 Qt Creator 作为界面开发的工具,Qt Creator 是一个用于 Qt 开发的轻量级
跨平台集成开发环境,支持 Linux,Mac OS X 以及 Windows。
在主窗口上添加四个 Widget 控件用来显示四路视频。添加 QRadioButton 控件选择当前175
显示的节点视频。接收端展示如图 7 所示。
图 7 坍塌检测系统接收端
Fig. 7 Receiving terminal of collapse detection system
坍塌检测结果展示如图 8 所示,图 8(a)目标未发生坍塌,图 8(b)表示目标发生坍塌,产180
生报警,并在接收端进行展示。
(a) 目标未发生坍塌 (b) 目标发生坍塌
图 8 一次坍塌检测结果展示
Fig. 8 One result of collapse 185
4 结论
本文介绍了坍塌检测系统的设计与实现,该系统以图像处理技术为基础,基于 ARM 嵌
- 8 -
中国科技论文在线
入式平台实现了视频图像的采集、压缩编码和坍塌检测,在 PC 端使用 Qt creator 开发了坍
塌检测分析系统的接收端进行结果的展示。实验结果表明该系统能对待监测物进行有效的实
时监测,并判断其是否发生坍塌,从而产生报警。 190
[参考文献] (References)
[1] 何满潮. 滑坡地质灾害远程检测预报系统及其工程应用[J]. 岩石力学与工程学报,2009,28(6):
1081-1090.
[2] TANG T G, BAO H, ZHU Y W. Research on technique of sliding monitoring using distributed optical fiber
sensing[J]. Chinese Journal of Sensors and Actuators, 2006, 19(3): 796-799. 195
[3] 裴华富,殷建华,朱鸿鹄. 基于光纤光栅传感技术的边坡原位测斜及稳定性评估方法[J]. 岩石力学与工
程学报,2010,29(8):1570-1576.
[4] BLANCHETTE J,SUMMERFIELD M. C++ GUI Qt4 编程(第二版)[M]. 北京:电子工业出版社,2008.
[5] 张莫. 面向目标检测的视频传感器节点软件设计与实现[D]. 北京:北京邮电大学,2014.
[6] 林鹏岳,李玲玲,李翠华. 一种改进的快速 SUSAN 角点检测算法[J]. 计算机与现代化,2010,25(2):200
67-68.
[7] 彭艺. 基于图像识别的边坡表面位移检测方法研究[D]. 重庆:重庆交通大学,2012.