學(xué)生考試作弊檢測(cè)系統(tǒng)采用yolov8網(wǎng)絡(luò)模型人工智能技術(shù),學(xué)生考試作弊檢測(cè)系統(tǒng)過(guò)在考場(chǎng)中安裝監(jiān)控設(shè)備,對(duì)學(xué)生的作弊行為進(jìn)行實(shí)時(shí)監(jiān)測(cè)。當(dāng)學(xué)生出現(xiàn)作弊行為時(shí),學(xué)生考試作弊檢測(cè)系統(tǒng)將自動(dòng)識(shí)別并記錄信息。YOLOv8 算法的核心特性和改動(dòng)可以歸結(jié)為如下:提供了一個(gè)全新的?SOTA?模型,包括 P5 640 和 P6 1280 分辨率的目標(biāo)檢測(cè)網(wǎng)絡(luò)和基于 YOLACT 的實(shí)例分割模型。和 YOLOv5 一樣,基于縮放系數(shù)也提供了 N/S/M/L/X 尺度的不同大小模型,用于滿足不同場(chǎng)景需求。骨干網(wǎng)絡(luò)和 Neck 部分可能參考了 YOLOv7 ELAN 設(shè)計(jì)思想,將 YOLOv5 的?C3?
結(jié)構(gòu)換成了梯度流更豐富的?C2f?
結(jié)構(gòu),并對(duì)不同尺度模型調(diào)整了不同的通道數(shù)。
屬于對(duì)模型結(jié)構(gòu)精心微調(diào),不再是無(wú)腦一套參數(shù)應(yīng)用所有模型,大幅提升了模型性能。不過(guò)這個(gè) C2f 模塊中存在 Split 等操作對(duì)特定硬件部署沒(méi)有之前那么友好了。Head: Head部分較yolov5而言有兩大改進(jìn):1)換成了目前主流的解耦頭結(jié)構(gòu)(Decoupled-Head),將分類和檢測(cè)頭分離 2)同時(shí)也從 Anchor-Based 換成了 Anchor-Free。Loss :1) YOLOv8拋棄了以往的IOU匹配或者單邊比例的分配方式,而是使用了Task-Aligned Assigner正負(fù)樣本匹配方式。2)并引入了 Distribution Focal Loss(DFL)。Train:訓(xùn)練的數(shù)據(jù)增強(qiáng)部分引入了 YOLOX 中的最后 10 epoch 關(guān)閉 Mosiac 增強(qiáng)的操作,可以有效地提升精度。
從上面可以看出,YOLOv8 主要參考了最近提出的諸如 YOLOX、YOLOv6、YOLOv7 和 PPYOLOE 等算法的相關(guān)設(shè)計(jì),本身的創(chuàng)新點(diǎn)不多,偏向工程實(shí)踐,主推的還是 ultralytics 這個(gè)框架本身。下面將按照模型結(jié)構(gòu)設(shè)計(jì)、Loss 計(jì)算、訓(xùn)練數(shù)據(jù)增強(qiáng)、訓(xùn)練策略和模型推理過(guò)程共 5 個(gè)部分詳細(xì)介紹 YOLOv8?的各種改進(jìn),實(shí)例分割部分暫時(shí)不進(jìn)行描述。現(xiàn)代目標(biāo)檢測(cè)器大部分都會(huì)在正負(fù)樣本分配策略上面做文章,典型的如 YOLOX 的 simOTA、TOOD 的 TaskAlignedAssigner 和 RTMDet 的 DynamicSoftLabelAssigner,這類 Assigner 大都是動(dòng)態(tài)分配策略,而 YOLOv5 采用的依然是靜態(tài)分配策略。考慮到動(dòng)態(tài)分配策略的優(yōu)異性,YOLOv8 算法中則直接引用了 TOOD 的 TaskAlignedAssigner。
?
Adapter接口定義了如下方法:
public abstract void registerDataSetObserver (DataSetObserver observer)
Adapter表示一個(gè)數(shù)據(jù)源,這個(gè)數(shù)據(jù)源是有可能發(fā)生變化的,比如增加了數(shù)據(jù)、刪除了數(shù)據(jù)、修改了數(shù)據(jù),當(dāng)數(shù)據(jù)發(fā)生變化的時(shí)候,它要通知相應(yīng)的AdapterView做出相應(yīng)的改變。為了實(shí)現(xiàn)這個(gè)功能,Adapter使用了觀察者模式,Adapter本身相當(dāng)于被觀察的對(duì)象,AdapterView相當(dāng)于觀察者,通過(guò)調(diào)用registerDataSetObserver方法,給Adapter注冊(cè)觀察者。
public abstract void unregisterDataSetObserver (DataSetObserver observer)
通過(guò)調(diào)用unregisterDataSetObserver方法,反注冊(cè)觀察者。
public abstract int getCount () 返回Adapter中數(shù)據(jù)的數(shù)量。
public abstract Object getItem (int position)
Adapter中的數(shù)據(jù)類似于數(shù)組,里面每一項(xiàng)就是對(duì)應(yīng)一條數(shù)據(jù),每條數(shù)據(jù)都有一個(gè)索引位置,即position,根據(jù)position可以獲取Adapter中對(duì)應(yīng)的數(shù)據(jù)項(xiàng)。
public abstract long getItemId (int position)
獲取指定position數(shù)據(jù)項(xiàng)的id,通常情況下會(huì)將position作為id。在Adapter中,相對(duì)來(lái)說(shuō),position使用比id使用頻率更高。
public abstract boolean hasStableIds ()
hasStableIds表示當(dāng)數(shù)據(jù)源發(fā)生了變化的時(shí)候,原有數(shù)據(jù)項(xiàng)的id會(huì)不會(huì)發(fā)生變化,如果返回true表示Id不變,返回false表示可能會(huì)變化。Android所提供的Adapter的子類(包括直接子類和間接子類)的hasStableIds方法都返回false。
public abstract View getView (int position, View convertView, ViewGroup parent)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-475432.html
getView是Adapter中一個(gè)很重要的方法,該方法會(huì)根據(jù)數(shù)據(jù)項(xiàng)的索引為AdapterView創(chuàng)建對(duì)應(yīng)的UI項(xiàng)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-475432.html
到了這里,關(guān)于學(xué)生考試作弊檢測(cè)系統(tǒng) yolov8的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!