仁新企业集团有限公司
摘要:随着我国经济的快速发展,国家对环境卫生也愈发重视,智能垃圾分类也成了时代的发展,现在的垃圾分类随着科技的发展逐步发展成现在的智能视频监控技术。视频监控技术的出现代替了人工执行的一些操作行为,本文主要是对可回收垃圾智能细分游戏机程序的探讨和实现。
关键词:视频监控技术;Visual Studio;摄像头;垃圾细分识别
1
1 引言
我国经济飞速发展、城市化的进程不断推进的今天,垃圾成为城市管理、生态文明建设的重点内容。在城市居民生活生产过程中产生的垃圾目前普遍采用填埋和焚烧方式,这种方式会占用大量土地资源,还会造成环境污染,并且会造成资源的极大浪费,影响我国可持续发展进程。在生活中垃圾收集多种多样的,无论采用什么处理方式,最基础的就是先对它进行分类,进而根据分类特点来进行针对性的处理。这样不仅可以高效的处理垃圾,还能促进生态环境的保护。本研究内容是将优化的深度学习对象检测模型应用于垃圾识别问题,以实现准确、高效地识别出垃圾的类别和材料,以及垃圾的计数。主要的工作是基于深度学习的理论和技术。针对我国垃圾识别现状和垃圾处理面临的各种问题,将改进的网络模型应用于垃圾识别处理,通过学习大量垃圾图像的特征,得到模型参数,利用摄像头进行垃圾识别,实现一个自动分类和识别视频监控和标签的C#系统。
2系统的分析与设计
2.1设计理念
本次设计主要通过红外摄像头采集垃圾信息进行识别,以及进行所投入垃圾的计数,通过人与机器简单交流互动的方式,提升大家进行垃圾分类的乐趣。
2.2检测方法和需求分析
本次设计可以应用于生活中各个方面,当民众想丢垃圾又不清楚材质时,在路上看到可以进行垃圾分类识别的垃圾桶或者垃圾站时,把垃圾放入识别窗口就可以知道是什么垃圾,并丢入相应的垃圾箱,系统主要由用户指令、前端、后端、后台界面四个部分组成。在用户发出启动系统的命令后,前端显示模块调用摄像机并将视频发送到后台处理模块。后台处理模块预处理数据后,将数据输入训练模型,获取视频中垃圾的类型。获得垃圾类型和位置信息后,结果显示后处理后返回前端显示模块,后台界面可实时分类,实时更新视频中的垃圾类型信息。
系统提供两种垃圾信息输入方法,可检测实时摄像机传输的传输图像,提供视频文件检测接口,满足大规模分布式垃圾分拣系统的要求。
2.3 客户端相关模块处理
互联网接受过滤装置创建一个数据缓冲区域,对RTP数据文件开展缓存、资产重组等解决,另外接收推送端发过来的RTCP包,运用RTP库中的信息及SR包信息,造成RR包,周期性地推送RTCP包。
2.3.1 RTP相关处理
当排序在互联网中推送时,不同的排序很有可能根据不同的途径,因此发布者推送的排序的次序很有可能打乱。即便接收到的排序的次序同样,每一个排序抵达接收器的间隔时间也不同。这时,若将接收到的数据文件直接发给编解码控制模块,则会发生数据帧不详细或载入图像颤动,导致不一致。因而,系统信号接收器设定接收缓冲器。当接到RTP信息时,将其放进缓冲区域中。依据RTP系列号和时间戳对报文序列进行排序。最后,将介质样品包装,提取并转移至下游过滤器。 虽然使用接收缓冲器技术会导致一定的读取延迟,但是只要根据网络条件设置适当的接收缓冲器大小,用户就可以接收到这个延迟。
2.3.2 RTCP相关处理
线程负责RTCP数据包的接收、统计分析、生成和传输。 接收RTP数据包丢包率、收到的字节数、时间间隔、抖动、数据统计应用发布者推送的SR数据文件的内容和RTP数据文件中的信息进行的,而且储存动态性转化成的结果并转化成RR包,在其中每一个给出的RTCP距离推送RR包并在离去组时推送BYE包。根据RR包和统计数据搭建SR包的过程较为繁杂,并不是文中的具体内容,在此不再重复。
2.4 系统整体结构设计
开发一个可回收垃圾智能细分游戏机程序是为了更加有效率的进行图像的监视。
图1系统总体结构图
3可回收垃圾智能细分游戏机程序的实现
3.1可回收垃圾智能细分游戏机程序架构设计
在本研究中,对硬件配置的规定简易,收集机器设备只必须应用一般的USB监控摄像头作为媒介加在电脑上,收集的图像尺寸为320×240。全部系统如图2。
图2可回收垃圾智能细分游戏机程序
系统是该系统的重点部分,分成图像数据收集、图像传送、图像表明三个部分。
接收端程序使用单线程。上图只是处理一帧的流程。程序总是等待接收数据,然后每次接收到的数据移动到另一个缓冲区,但每次接收到的数据只是一个数据帧的一部分,所以它必须判断一帧已经收到后将它们移到另一个缓冲区,一旦确定,有一个完整的帧图像数据的缓冲区,直接调用显示功能,将图像发送到显示器,实现实时效果。在显示之后,线程直接返回继续接收数据。
发送方还使用单线程。当捕获的图像数据被发送到屏幕上时,它们也被存储在等待发送的固定缓冲区中。 当程序不执行
sent命令时,固定缓冲区中下一帧的数据将覆盖和更新上一帧的数据。 当程序执行命令时,会马上推送为每一个帧捕捉的数据。假如一个数据帧没有被完全推送,程序流程便会被锁在那里,下一张图片就不会被再次捕捉。换句话说,在再次捕捉下一帧以前,程序流程彻底推送每一个帧捕捉的图像数据。那样,能够即时推送每一帧视频数据。
3.2获取图像数据的实现
3.2.1捕获图像数据的方法
该系统首先通过摄像头采集并传输实时路况图像,将图像呈现给监控人员,然后对得到的视频进行分析和数字化处理,为后续的一系列处理奠定基础。 使用DirectShow的捕获图形生成器捕获视频,并在处理视频图像时创建和控制捕捉图。 首先获取并初始化捕获图形生成器接口,然后选择合适的视频采集设备,为该设备创建捕获过滤器,随后启用AddFilter将捕捉过滤装置加上到FilterGraph中。 在此基础上,调用Capture Graph Builder2:Render Stream。通过DirectShow的Grabber filter定义一个类来实现Grabber的回调接口IsAmpleGrabberCB,然后调用Render Stream连接StillPin、Sample Grabber和默认系统,完成捕获数据图。
3.2.2获取图像数据的具体流程
从MPEG视频文件中抓取图片,获取像素数据的主要流程为:开始→定义IMediaDet的接口实例→将影片的文件名转换成BSTR类型→设置IMdediaDet接口的文件关联→从此影片中检索视频流和音频流→取出影片的视频流→结束。
3.2.3获取图像数据的方法
函数功能:从MPEG视频文件中抓取图片,获取像素数据。
参数:sourceFile:MPEG视频文件路径。
Width:BMP图片的宽度。
height:BMP图片的高度。
time:要抓取的图片在影片中的时间。
3.3图像灰度化的实现
3.3.1图像灰度化处理的具体流程
首先初始化两个值,一个最大值255,和一个最小值0→:通过循环比较找出此灰度图像中最大灰度像素值和最小灰度像素值→将最大值减去最小值再除以2得到其阈值T→通过循环使图像每个坐标的像素值与阈值T进行比较,大于或等于阈值T的像素被判定为属于特定物体,其灰度值为255表示(即为1),否则这些像素点被排除在物体区域以外,灰度值为0(即为0),表示背景或者例外的物体区域。
3.3.2图像灰度化处理的部分代码
函数功能:BMP图片每个像素的灰度化处理
参数:pBMPContent:指向BMP图片像素数据区的指针。
width:BMP图片的宽度。
Height:BMP图片的高度。
bCount:每一像素数据的字节数。
3.4图像二值化处理的实现
二值化后的图像仍存在很多噪声,为了提高结果的准确度需要进一步去噪。本系统用得去噪方法是中值滤波。
3.4.1图像二值化处理的具体流程
首先初始化两个值,一个最大值255,和一个最小值0→通过循环比较找出此二值化中较大 灰度清晰度值和最少灰度清晰度值;将最高值减掉极小值再除于2获得其阀值T→通过循环使图像每一个坐标的清晰度值与阀值T开展较为,大于或等于阈值T的清晰度被判断为归属于特殊物件,其灰度级为255表明(即是1),不然这种像素数被清除在物件地区之外,灰度级为0(即是0),表示背景或者例外的物体区域。
3.4.2二值化处理的部分代码
函数功能:图像二值化处理
参数:pBMPContent:指向BMP图片像素数据区的指针。
width:BMP图片的宽度。
height:BMP图片的高度。
3.5图像去噪处理的实现
二值化后的图象仍存有许多噪音,为了更好地提升结果的精确度大家必须进一步去噪。本系统用得去噪方式是中值滤波。图像去噪处理的具体流程如下:
定义一个滤波器,设置它的高度h,宽度w,中心元素x坐标,中心元素y坐标→得到当前帧对应的工作窗口→将工作中对话框内各清晰度按灰度级由小到大排列→排列后获得中间部位的灰度级替代原灰度级。
3.6 系统详细设计
3.6.1系统总体设计
本系统主要由用户指令、前端、后端和后台接口四部分组成。用户在发出启动本系统命令后,前端显示模块调用摄像头并将视频传递给后台处理模块。后台处理模块在对数据进行预处理后将数据输入给训练好的模型中,得出视频中垃圾的种类和位置信息。得到垃圾的种类和位置信息后,经过后处理将结果回传给前端显示模块用于结果展示并在后台接口实时更新视频中垃圾的种类和位置信息,以供垃圾分拣系统等实时调用。
系统提供两种垃圾信息输入方式,可以对实时摄像头的传输图像进行检测,同时也提供对视频文件的检测接口,可以满足大型分布式垃圾分拣系统的需求。
本文使用基于 Python 语言的Open CV库进行系统实现,Open CV库是 Python 语言针对图形界面开发专门提供的程序库,其界面简洁且交互简单,具有良好的实时性, 通过
tkinter 库编写的软件可以实时、快速地满足本文的垃圾检测系统要求。
3.6.2 垃圾实时检测模块
垃圾检测算法是基于图像的深度学习算法,能够得到清晰、高质量的图像是获取准确检测结果的基础。系统通过调用摄像头驱动程序得到摄像头拍摄的图像,并且在系统未正确连接摄像头时进行提示。同时,模块提供对本地视频流文件的读取功能接口。 在大型垃圾分拣的场景中,摄像头和处理软件通常分布在不同的工作环境中,通过有线或无线的方式连接,使用视频分段的方法传输。通过两种图像获取方法,系统可以同时满足实时摄像头和大型分布式垃圾分拣现场的检测需求。
在通过实时摄像头或对视频进行拆帧处理获取图像后,得到待处理的垃圾图像。 在本文的改进 Deep SORT 垃圾检测算法输入中,需要对输入图像进行预处理得到输入网络的归一化图像。图像的预处理工作在后台实时完成,通过对图像进行尺寸归一化和去均值归一化等处理,可以输入给网络。
通过在后台调用训练好的模型,并使用显卡加速计算,得到改进的DeepSORT 垃圾检测模型输出结果,再通过对结果进行二值化处理得到最终的输出结果,并将输出结果实时显示到软件界面中,实现检测结果的可视化。同时,检测结果在后台实时更新, 为机械手抓取系统提供位置和种类信息。
3.7 系统实现
3.7.1打开摄像头
此模块主要完成了摄像头的读取和调用。
图3 打开摄像头界面
3.7.2检测
对采集到的视频图像进行分析。
图4 视频图像分析界面
3.7.3 智能细分结果
对视频图像进行详细分析可以看出,得出具体的分类并且显示。
图5 监控界面
4结语
本研究通过红外摄像头获取外界的视频信息,然后进行分析,检测出垃圾的材质,并在计算机上显示,不仅有了一定的游戏体验感,也能让垃圾分类这样枯燥的工作能拥有一定的乐趣。
参考文献
[1]黄文通.城市生活垃圾处理技术现状与监管对策研究[J].环境与发展,2019,31(02).
[2]钱珏.垃圾分类有线智慧监管方案探讨[J].广播电视网络,2021,28(06).
作者简介:胡豪杰,男,1993.7.23,仁新企业集团有限公司,浙江人,硕士学历。研究方向:循环经济。
1