日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 实现显著性检测_使用python轻松实现高大上的YOLOV4对象检测算法

發(fā)布時(shí)間:2024/7/23 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 实现显著性检测_使用python轻松实现高大上的YOLOV4对象检测算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

YOLO系列對(duì)象檢測(cè)算法,算是人工智能技術(shù)領(lǐng)域的一匹黑馬,當(dāng)開發(fā)者宣布不再為YOLO系列檢測(cè)算法更新時(shí),很多開發(fā)者瞬間失去了”精神食糧“。突然,當(dāng)YOLOV4檢測(cè)算法發(fā)布的時(shí)候,讓很多開發(fā)者喜出望外。

YOLOV4對(duì)象檢測(cè)

YOLOV4對(duì)象檢測(cè)算法綜述:

COCO 模型上的檢測(cè)數(shù)據(jù)

43.5%mAP+65FPS 精度速度最優(yōu)平衡,YOLOV4無論是在速度上,還是在精度上,都絕對(duì)碾壓很多對(duì)象檢測(cè)算法,在論文中,作者也是采用了大量的調(diào)優(yōu)算法來加速YOLOV4的檢測(cè)模型

加權(quán)殘差連接(WRC)

跨階段部分連接(CSP)

跨小批量標(biāo)準(zhǔn)化(CmBN)

自對(duì)抗訓(xùn)練(SAT)

Mish激活

馬賽克數(shù)據(jù)增強(qiáng)

CmBN

DropBlock正則化

CIoU Loss

對(duì)象檢測(cè)

模型中的名詞

Input:算法的輸入,包括整個(gè)圖像,一個(gè)patch,或者是image pyramid

Backbone:可以理解為提取圖像特征的部分,可以參考經(jīng)訓(xùn)練好的網(wǎng)絡(luò),例如(VGG16,ResNet-50, ResNeXt-101, Darknet53等)

Neck:特征增強(qiáng)模塊,前面的backbone已經(jīng)提取到了一些相關(guān)的淺層特征,由這部分對(duì)backbone提取到的淺層特征(low-level feature)進(jìn)行加工,增強(qiáng),從而使得模型學(xué)到的特征是想要的特征。

Head:檢測(cè)頭。如果想直接得到bbox,那就可以接conv來輸出結(jié)果,例如Yolo,SSD

因此,一個(gè)檢測(cè)算法可以理解為:

Object Detection = Input+Backbone + Neck + Head

Bag of freebies

什么叫Bag of freebies?在目標(biāo)檢測(cè)中是指:用一些比較有用的訓(xùn)練技巧來訓(xùn)練模型,從而使得模型取得更好的準(zhǔn)確率但是不增加模型的復(fù)雜度,也就不增加推理(inference)是的計(jì)算量(cost)。在目標(biāo)檢測(cè)中,提到bag of freebies,首先會(huì)想到的 就是Data augmentation。

Data augmentation

目的在于增加訓(xùn)練樣本的多樣性,使得檢測(cè)模型具有高的魯棒性。常見的數(shù)據(jù)增強(qiáng)方式包括兩個(gè)方面:幾何增強(qiáng)以及色彩增強(qiáng)。

  • 幾何增強(qiáng)包括:隨機(jī)翻轉(zhuǎn)(水平翻轉(zhuǎn)較多,垂直翻轉(zhuǎn)較少),隨機(jī)裁剪(crop),拉伸,以及旋轉(zhuǎn)。

  • 色彩增強(qiáng)包括:對(duì)比度增強(qiáng),亮度增強(qiáng),以及較為關(guān)鍵的HSV空間增強(qiáng)。

.Bag of specials

什么叫做bag of specials:就是指一些plugin modules(例如特征增強(qiáng)模型,或者一些后處理),這部分增加的計(jì)算量(cost)很少,但是能有效地增加物體檢測(cè)的準(zhǔn)確率,我們將這部分稱之為Bag of specials

架構(gòu)選擇

架構(gòu)選擇

一個(gè)模型的分類效果好不見得其檢測(cè)效果就好,想要檢測(cè)效果好需要以下幾點(diǎn):

  • 更大的網(wǎng)絡(luò)輸入分辨率——用于檢測(cè)小目標(biāo)

  • 更深的網(wǎng)絡(luò)層——能夠覆蓋更大面積的感受野

  • 更多的參數(shù)——更好的檢測(cè)同一圖像內(nèi)不同size的目標(biāo)

為了增大感受野,作者使用了SPP-block,使用PANet代替FPN進(jìn)行參數(shù)聚合以適用于不同level的目標(biāo)檢測(cè)。

YOLOv4的架構(gòu):

  • backbone:CSPResNext50

  • additional block:SPP-block

  • path-aggregation neck:PANet

  • heads:YOLOv3的heads

YOLOV4的改進(jìn),作者不僅增加了以上的優(yōu)化算法,更是改進(jìn)了其他方面的技術(shù),比如:

  • 一種新的數(shù)據(jù)增強(qiáng)Mosaic法和Self-AdversarialTraining 自對(duì)抗訓(xùn)練法。

Mosaic法和Self-AdversarialTraining

  • 應(yīng)用遺傳算法選擇最優(yōu)超參數(shù)。

  • 改進(jìn)SAM,改進(jìn)PAN,和交叉小批量標(biāo)準(zhǔn)化(CmBN),使設(shè)計(jì)適合于有效的訓(xùn)練和檢測(cè)

SAM,PAN

更加詳細(xì)的技術(shù),大家可以參考作者的論文以及GitHub源代碼進(jìn)行分享學(xué)習(xí)

python+opencv 實(shí)現(xiàn)YOLOV4

python+opencv 實(shí)現(xiàn)YOLOV4

YOLOV4的實(shí)現(xiàn),除了作者分享的Darknet之外,現(xiàn)在還有了tensorflow、Pytorch、keras等等方法的實(shí)現(xiàn),但是始終沒有比較簡答的代碼實(shí)現(xiàn)(畢竟tensorflow、Pytorch、keras技術(shù),不是很好掌握)

opencv4.4版本的發(fā)布,宣布支持最新的YOLOV4對(duì)象檢測(cè)算法,同時(shí)還優(yōu)化了大量的工作

本部分代碼需要升級(jí)一下你的opencv版本到4.4

YOLOV4 圖片識(shí)別

模型初始化

import numpy as np
import timeimport cv2import oslabelsPath = "yolo-coco/coco.names"
LABELS = Nonewith open(labelsPath,'rt') as f:
LABELS = f.read().rstrip('\n').split("\n")
np.random.seed(42)
COLORS = np.random.randint(0, 255, size=(len(LABELS), 3),dtype="uint8")
weightsPath = "yolo-coco/yolov4.weights"
configPath = "yolo-coco/yolov4.cfg"
net = cv2.dnn.readNetFromDarknet(configPath, weightsPath)

1-5行:首先我們導(dǎo)入第三方庫

7-10行:我們加載YOLOV4在COCO訓(xùn)練集上的對(duì)象名稱

12-13行:初始化隨機(jī)的顏色,這里主要是為后續(xù)檢測(cè)到不同的對(duì)象,進(jìn)行不同顏色的邊框畫圖

15-17:初始化YOLOV4的模型,cv2.dnn.readNetFromDarknet(configPath, weightsPath)函數(shù)來加載模型的CFG以及weights參數(shù)

代碼截圖

加載圖片進(jìn)行神經(jīng)網(wǎng)絡(luò)檢測(cè)

image = cv2.imread("images/3.jpg")
(H, W) = image.shape[:2]
ln = net.getLayerNames()ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
blob = cv2.dnn.blobFromImage(image, 1 / 255.0, (416, 416),swapRB=True, crop=False)
net.setInput(blob)start = time.time()
layerOutputs = net.forward(ln)end = time.time()
print("[INFO] YOLO took {:.6f} seconds".format(end - start))

19-20行:輸入圖片,獲取圖片的長度與寬度

22-28行:計(jì)算圖片的blob值,輸入神經(jīng)網(wǎng)絡(luò),進(jìn)行前向反饋預(yù)測(cè)圖片,只不過net.forward里面是ln, 神經(jīng)網(wǎng)絡(luò)的所有out層,這里我們定義了一個(gè)time函數(shù),用來計(jì)算YOLOV4的檢測(cè)時(shí)間

代碼截圖

遍歷檢測(cè)結(jié)果

boxes = []
confidences = []classIDs = []for output in layerOutputs:
for detection in output:
scores = detection[5:]
classID = np.argmax(scores) confidence = scores[classID] if confidence > 0.5:
box = detection[0:4] * np.array([W, H, W, H])
(centerX, centerY, width, height) = box.astype("int")
x = int(centerX - (width / 2))
y = int(centerY - (height / 2))
boxes.append([x, y, int(width), int(height)])
confidences.append(float(confidence))
classIDs.append(classID)

32-34:首先初始化一些參數(shù),主要用來存檢測(cè)到的結(jié)果數(shù)據(jù)

36-42:遍歷所有的檢測(cè)層,提取檢測(cè)到的圖片對(duì)象置信度以及l(fā)abel ID

44-53:我們過濾到置信度小于0.5的對(duì)象,提取大于0.5置信度的對(duì)象,分別計(jì)算每個(gè)檢測(cè)對(duì)象的BOX、置信度以及l(fā)abel ID,并保存在如下先前建立的初始化參數(shù)list里面

boxes = []

confidences = []

classIDs = []

代碼截圖

通過以上代碼便實(shí)現(xiàn)了python的YOLOV4對(duì)象檢測(cè),但是檢測(cè)的結(jié)果并不理想,對(duì)于每個(gè)對(duì)象,Yolo4 會(huì)框出 3 個(gè)左右的區(qū)域,但是我們只需要顯示出最合適的區(qū)域。非最大值抑制算法,就是搜索出局部最大值,將置信度最大的框保存,其余刪除。

非最大值抑制來定義最大的邊框

idxs = cv2.dnn.NMSBoxes(boxes, confidences, 0.5,0.4)
if len(idxs) > 0: for i in idxs.flatten(): (x, y) = (boxes[i][0], boxes[i][1])
(w, h) = (boxes[i][2], boxes[i][3])
color = [int(c) for c in COLORS[classIDs[i]]] cv2.rectangle(image, (x, y), (x + w, y + h), color, 2) text = "{}: {:.4f}".format(LABELS[classIDs[i]], confidences[i]) cv2.putText(image, text, (x, y - 5), cv2.FONT_HERSHEY_SIMPLEX,
0.5, color, 2)cv2.imshow("Image", image)cv2.waitKey(0)

最后,我們使用非最大值抑制算法,把每個(gè)對(duì)象的最大邊框顯示出來,以便我們檢測(cè)模型的結(jié)果

代碼截圖

以上便是完整的python opencv實(shí)現(xiàn)YOLOV4的代碼,本部分代碼與YOLOV3的實(shí)現(xiàn)類似,小伙伴們可以參考小編往期的文章關(guān)于YOLOV3的介紹,最后我們運(yùn)行一下代碼,看看實(shí)現(xiàn)檢測(cè)的效果

YOLOV4

YOLOV4的檢測(cè),用起來,確實(shí)速度有了很大的提示,就如上圖一樣,檢測(cè)只用了1.3S左右,速度與精度的結(jié)合,美中不足的地方是上圖的人的置信度才0.777

下期預(yù)告

當(dāng)然YOLOV4檢測(cè)算法完全可以使用在視頻檢測(cè),以及攝像頭的實(shí)時(shí)對(duì)象檢測(cè),本部分代碼我們下期分享

總結(jié)

以上是生活随笔為你收集整理的python 实现显著性检测_使用python轻松实现高大上的YOLOV4对象检测算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品无码人妻 | 国产一区二区三区中文字幕 | 黄色aaa大片 | 一级理论片 | 欧美性猛交99久久久久99按摩 | 骚虎视频最新网址 | 青青草免费观看视频 | 精品久久久久久久久久久久久 | 久久精品国产99精品国产亚洲性色 | 蜜臀av一区二区 | 九九热在线视频免费观看 | 日韩特级黄色片 | 亚洲天天操 | 久久成人国产 | 99国产超薄肉色丝袜交足 | 日韩一级免费 | 日日骚影院| 瑟瑟视频在线 | 无码日韩精品一区二区 | 国产欧美一区二区三区鸳鸯浴 | 一区二区三区精品免费视频 | 国产激情精品一区二区三区 | 欧美黑吊大战白妞欧美大片 | 成人涩涩网站 | 国产精品成av人在线视午夜片 | 丁香六月色| 色偷偷成人 | 欧美福利一区二区三区 | 婷婷综合av | 成人免费影视网站 | 亚洲国产一区视频 | 永久毛片 | 精品久久久久久亚洲 | 国产成人免费av一区二区午夜 | 国产又粗又硬又长又爽的演员 | 在线观看免费高清视频 | 欧美偷拍一区二区三区 | 精品国产1区 | 香蕉色网 | 美女黄色片网站 | 长篇h版少妇沉沦交换 | 国产三区四区视频 | 毛片基地在线播放 | 神马久久久久久久久久久 | 亚洲国产精品成人综合在线 | 久久久久久免费精品 | 国产精选在线 | 国产婷婷在线观看 | 亚洲精品91天天久久人人 | 性插插视频 | 91国内在线 | 黑人巨大精品欧美一区二区 | 乳揉みま痴汉4在线播放 | 午夜黄色大片 | 久射网 | 欧美xxx性| 欧美老肥妇做.爰bbww视频 | 色之久久综合 | av桃色| 中文字幕 日韩 欧美 | 亚洲精品视频一区二区三区 | 欧美毛片免费看 | 欧美大尺度做爰啪啪床戏明星 | a久久久久久| 九色av| 黄网址在线 | 激情综合五月网 | 青青网站| 亚洲成人一二三 | 少妇激情一区二区三区视频 | 日韩在线播放av | 精品66| 西川结衣在线观看 | 日韩毛片中文字幕 | 亚洲午夜av久久乱码 | av av在线| 国产美女网站视频 | 欧美做受高潮1 | 高清不卡一区二区三区 | 色婷婷综合久久久久中文 | 依人综合网| 亚洲影视一区二区 | 日本h漫在线观看 | 成人www. | 精品日韩在线观看 | 婷婷亚洲一区 | 日本色呦呦 | 成人在线观看视频网站 | 91插插插视频 | 国产又粗又黄又爽 | 欧美在线视频免费 | 国产人澡人澡澡澡人碰视频 | 德国性经典xxxx性hd | 91视频免费在线 | 成年人免费看 | yy6080午夜 | 亚洲国产一区视频 | 国产精品乱码久久久久久久久 | 夜夜噜噜噜|