防護(hù)服穿戴檢測(cè)識(shí)別系統(tǒng)基于yolov8網(wǎng)絡(luò)模型圖片數(shù)據(jù)識(shí)別訓(xùn)練,算法模型自動(dòng)完成對(duì)現(xiàn)場(chǎng)人員是否按照要求穿戴行為實(shí)時(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)景需求。Backbone:骨干網(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),不再是無腦一套參數(shù)應(yīng)用所有模型,大幅提升了模型性能。不過這個(gè) C2f 模塊中存在 Split 等操作對(duì)特定硬件部署沒有之前那么友好了。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)練策略和模型推理過程共 5 個(gè)部分詳細(xì)介紹 YOLOv8 目標(biāo)檢測(cè)的各種改進(jìn),實(shí)例分割部分暫時(shí)不進(jìn)行描述。
Backbone:使用的依舊是CSP的思想,不過YOLOv5中的C3模塊被替換成了C2f模塊,實(shí)現(xiàn)了進(jìn)一步的輕量化,同時(shí)YOLOv8依舊使用了YOLOv5等架構(gòu)中使用的SPPF模塊;
PAN-FPN:YOLOv8依舊使用了PAN的思想,不過通過對(duì)比YOLOv5與YOLOv8的結(jié)構(gòu)圖可以看到,YOLOv8將YOLOv5中PAN-FPN上采樣階段中的CBS 1*1的卷積結(jié)構(gòu)刪除了,同時(shí)也將C3模塊替換為了C2f模塊;Decoupled-Head:YOLOv8使用了Decoupled-Head;Anchor-Free:YOLOv8拋棄了以往的Anchor-Base,使用了Anchor-Free的思想;損失函數(shù):YOLOv8使用VFL Loss作為分類損失,使用DFL Loss+CIOU Loss作為分類損失樣本匹配:YOLOv8拋棄了以往的IOU匹配或者單邊比例的分配方式,而是使用了Task-Aligned Assigner匹配方式。
?
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)于觀察者,通過調(diào)用registerDataSetObserver方法,給Adapter注冊(cè)觀察者。
public abstract void unregisterDataSetObserver (DataSetObserver observer)
通過調(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ì)來說,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)文章來源:http://www.zghlxwxcb.cn/news/detail-436280.html
getView是Adapter中一個(gè)很重要的方法,該方法會(huì)根據(jù)數(shù)據(jù)項(xiàng)的索引為AdapterView創(chuàng)建對(duì)應(yīng)的UI項(xiàng)。文章來源地址http://www.zghlxwxcb.cn/news/detail-436280.html
到了這里,關(guān)于防護(hù)服穿戴檢測(cè)識(shí)別算法 yolov8的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!