液體泄露識別檢測算法通過 yolov8+python網(wǎng)絡(luò)模型技術(shù),液體泄露識別檢測算法對管道的液體泄露情況進行全天候不間斷實時監(jiān)測,檢測到畫面中管道設(shè)備液體泄露現(xiàn)象時,將自動發(fā)出警報提示相關(guān)人員及時采取措施。YOLOv8 算法的核心特性和改動可以歸結(jié)為如下:提供了一個全新的?SOTA?模型,包括 P5 640 和 P6 1280 分辨率的目標檢測網(wǎng)絡(luò)和基于 YOLACT 的實例分割模型。和 YOLOv5 一樣,基于縮放系數(shù)也提供了 N/S/M/L/X 尺度的不同大小模型,用于滿足不同場景需求。Backbone:骨干網(wǎng)絡(luò)和 Neck 部分可能參考了 YOLOv7 ELAN 設(shè)計思想,將 YOLOv5 的?C3?
結(jié)構(gòu)換成了梯度流更豐富的?C2f?
結(jié)構(gòu),并對不同尺度模型調(diào)整了不同的通道數(shù)。
Head: Head部分較yolov5而言有兩大改進:1)換成了目前主流的解耦頭結(jié)構(gòu)(Decoupled-Head
),將分類和檢測頭分離 2)同時也從 Anchor-Based 換成了 Anchor-Free。Loss?:1) YOLOv8拋棄了以往的IOU匹配或者單邊比例的分配方式,而是使用了Task-Aligned Assigner
正負樣本匹配方式。2)并引入了?Distribution Focal Loss(DFL)。
從上面可以看出,YOLOv8 主要參考了最近提出的諸如 YOLOX、YOLOv6、YOLOv7 和 PPYOLOE 等算法的相關(guān)設(shè)計,本身的創(chuàng)新點不多,偏向工程實踐,主推的還是 ultralytics 這個框架本身。
Backbone和Neck的具體變化?a)?第一個卷積層的 kernel 從 6x6 變成了 3x3。b)?所有的 C3 模塊換成 C2f,結(jié)構(gòu)如下所示,可以發(fā)現(xiàn)多了更多的跳層連接和額外的 Split 操作。c)去掉了 Neck 模塊中的 2 個卷積連接層。d) Backbone 中 C2f 的 block 數(shù)從 3-6-9-3 改成了 3-6-6-3。e) 查看 N/S/M/L/X 等不同大小模型,可以發(fā)現(xiàn) N/S 和 L/X 兩組模型只是改了縮放系數(shù),但是 S/M/L 等骨干網(wǎng)絡(luò)的通道數(shù)設(shè)置不一樣,沒有遵循同一套縮放系數(shù)。如此設(shè)計的原因應(yīng)該是同一套縮放系數(shù)下的通道設(shè)置不是最優(yōu)設(shè)計,YOLOv7 網(wǎng)絡(luò)設(shè)計時也沒有遵循一套縮放系數(shù)作用于所有模型。
Adapter接口定義了如下方法:
public abstract void registerDataSetObserver (DataSetObserver observer)
Adapter表示一個數(shù)據(jù)源,這個數(shù)據(jù)源是有可能發(fā)生變化的,比如增加了數(shù)據(jù)、刪除了數(shù)據(jù)、修改了數(shù)據(jù),當(dāng)數(shù)據(jù)發(fā)生變化的時候,它要通知相應(yīng)的AdapterView做出相應(yīng)的改變。為了實現(xiàn)這個功能,Adapter使用了觀察者模式,Adapter本身相當(dāng)于被觀察的對象,AdapterView相當(dāng)于觀察者,通過調(diào)用registerDataSetObserver方法,給Adapter注冊觀察者。
public abstract void unregisterDataSetObserver (DataSetObserver observer)
通過調(diào)用unregisterDataSetObserver方法,反注冊觀察者。
public abstract int getCount () 返回Adapter中數(shù)據(jù)的數(shù)量。
public abstract Object getItem (int position)
Adapter中的數(shù)據(jù)類似于數(shù)組,里面每一項就是對應(yīng)一條數(shù)據(jù),每條數(shù)據(jù)都有一個索引位置,即position,根據(jù)position可以獲取Adapter中對應(yīng)的數(shù)據(jù)項。
public abstract long getItemId (int position)
獲取指定position數(shù)據(jù)項的id,通常情況下會將position作為id。在Adapter中,相對來說,position使用比id使用頻率更高。
public abstract boolean hasStableIds ()
hasStableIds表示當(dāng)數(shù)據(jù)源發(fā)生了變化的時候,原有數(shù)據(jù)項的id會不會發(fā)生變化,如果返回true表示Id不變,返回false表示可能會變化。Android所提供的Adapter的子類(包括直接子類和間接子類)的hasStableIds方法都返回false。
public abstract View getView (int position, View convertView, ViewGroup parent)文章來源:http://www.zghlxwxcb.cn/news/detail-496752.html
getView是Adapter中一個很重要的方法,該方法會根據(jù)數(shù)據(jù)項的索引為AdapterView創(chuàng)建對應(yīng)的UI項。文章來源地址http://www.zghlxwxcb.cn/news/detail-496752.html
到了這里,關(guān)于液體泄露識別檢測算法 監(jiān)控識別管道液體泄漏的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!