飞道的博客

道路病害识别监测系统 CNN网络

268人阅读  评论(0)

道路病害识别监测系统通过CNN网络深度学习算法,道路病害识别监测对巡检车上实时监控道路影像数据进行分析,输出道路病害裂缝巡检报告并落图展示。在CNN出现之前,对于图像的处理一直都是一个很大的问题,一方面因为图像处理的数据量太大,比如一张512 x 512的灰度图,它的输入参数就已经达到了252144个,更别说1024x1024x3之类的彩色图,这也导致了它的处理成本十分昂贵且效率极低。另一方面,图像在数字化的过程中很难保证原有的特征,这也导致了图像处理的准确率不高。

CNN的开山之作,是LeCun在98年解决手写是数字识别任务时提出的,从那时起CNN的基本架构就定下来了:卷积、池化、全连接层。CNN网络能够很好的解决以上两个问题。对于第一个问题,CNN网络它能够很好的将复杂的问题简单化,将大量的参数降维成少量的参数再做处理。也就是说,在大部分的场景下,我们使用降维不会影响结果。比如在日常生活中,我们用一张1024x1024x3表示鸟的彩色图和一张100x100x3表示鸟的彩色图,我们基本上都能够用肉眼辨别出这是一只鸟而不是一只狗。这也是卷积神经网络在图像分类里的一个重要应用。

在CNN网络结构的演化上,出现过许多优秀的CNN网络,CNN的经典结构始于1998年的LeNet,成于2012年历史性的AlexNet,从此大盛于图像相关领域,主要包括:发展历史:Lenet --> Alexnet --> ZFnet --> VGG --> NIN --> GoogLeNet -->ResNet --> DenseNet -->ResNeXt ---> EfficientNet。

Adapter接口定义了如下方法:

public abstract void registerDataSetObserver (DataSetObserver observer)

Adapter表示一个数据源,这个数据源是有可能发生变化的,比如增加了数据、删除了数据、修改了数据,当数据发生变化的时候,它要通知相应的AdapterView做出相应的改变。为了实现这个功能,Adapter使用了观察者模式,Adapter本身相当于被观察的对象,AdapterView相当于观察者,通过调用registerDataSetObserver方法,给Adapter注册观察者。

public abstract void unregisterDataSetObserver (DataSetObserver observer)

通过调用unregisterDataSetObserver方法,反注册观察者。

public abstract int getCount () 返回Adapter中数据的数量。

public abstract Object getItem (int position)

Adapter中的数据类似于数组,里面每一项就是对应一条数据,每条数据都有一个索引位置,即position,根据position可以获取Adapter中对应的数据项。

public abstract long getItemId (int position)

获取指定position数据项的id,通常情况下会将position作为id。在Adapter中,相对来说,position使用比id使用频率更高。

public abstract boolean hasStableIds ()

hasStableIds表示当数据源发生了变化的时候,原有数据项的id会不会发生变化,如果返回true表示Id不变,返回false表示可能会变化。Android所提供的Adapter的子类(包括直接子类和间接子类)的hasStableIds方法都返回false。

public abstract View getView (int position, View convertView, ViewGroup parent)

getView是Adapter中一个很重要的方法,该方法会根据数据项的索引为AdapterView创建对应的UI项。


转载:https://blog.csdn.net/KO_159/article/details/128889302
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场