校园食堂明厨亮灶智能视频监控通过计算机视觉深度学习技术以及yolov5网络模型架构对现场画面进行实时分析,比如不穿厨师服、不戴厨师帽或者口罩、陌生人员进入后厨、玩手机行为、后厨出现猫狗老鼠等异常行为现象。 YOLO 来源于Facebook,整个训练和检测过程都是end-to-end的,能够达到实时的目标检测,YOLO v1能够达到每秒45帧的速度,Fast YOLO能够达到每秒155帧的速度,但是YOLO v1存在目标定位不准的问题。
YOLOV4出现之后不久,YOLOv5横空出世。YOLOv5在YOLOv4算法的基础上做了进一步的改进,检测性能得到进一步的提升。虽然YOLOv5算法并没有与YOLOv4算法进行性能比较与分析,但是YOLOv5在COCO数据集上面的测试效果还是挺不错的。
YOLO的损失函数,权衡了边界框的损失和类别判断的损失,使得边界框的损失是类别判断损失的10倍,同时兼顾了大的边界框和小的边界框的IOU偏差,使得同样的损失在大框中表现出很小的影响,小框中则变现出很大的影响。
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项。