chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是邊緣檢測(cè)?邊緣檢測(cè)的算法由來

新機(jī)器視覺 ? 來源:AI公園 ? 作者:ANKIT SACHAN ? 2021-03-12 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導(dǎo)讀

分析了Canny的優(yōu)劣,并給出了OpenCV使用深度學(xué)習(xí)做邊緣檢測(cè)的流程,文末有代碼鏈接。

在這篇文章中,我們將學(xué)習(xí)如何在OpenCV中使用基于深度學(xué)習(xí)的邊緣檢測(cè),它比目前流行的canny邊緣檢測(cè)器更精確。邊緣檢測(cè)在許多用例中是有用的,如視覺顯著性檢測(cè),目標(biāo)檢測(cè),跟蹤和運(yùn)動(dòng)分析,結(jié)構(gòu)從運(yùn)動(dòng),3D重建,自動(dòng)駕駛,圖像到文本分析等等。

什么是邊緣檢測(cè)?

邊緣檢測(cè)是計(jì)算機(jī)視覺中一個(gè)非常古老的問題,它涉及到檢測(cè)圖像中的邊緣來確定目標(biāo)的邊界,從而分離感興趣的目標(biāo)。最流行的邊緣檢測(cè)技術(shù)之一是Canny邊緣檢測(cè),它已經(jīng)成為大多數(shù)計(jì)算機(jī)視覺研究人員和實(shí)踐者的首選方法。讓我們快速看一下Canny邊緣檢測(cè)。

Canny邊緣檢測(cè)算法

1983年,John Canny在麻省理工學(xué)院發(fā)明了Canny邊緣檢測(cè)。它將邊緣檢測(cè)視為一個(gè)信號(hào)處理問題。其核心思想是,如果你觀察圖像中每個(gè)像素的強(qiáng)度變化,它在邊緣的時(shí)候非常高。

在下面這張簡(jiǎn)單的圖片中,強(qiáng)度變化只發(fā)生在邊界上。所以,你可以很容易地通過觀察像素強(qiáng)度的變化來識(shí)別邊緣。

現(xiàn)在,看下這張圖片。強(qiáng)度不是恒定的,但強(qiáng)度的變化率在邊緣處最高。(微積分復(fù)習(xí):變化率可以用一階導(dǎo)數(shù)(梯度)來計(jì)算。)

Canny邊緣檢測(cè)器通過4步來識(shí)別邊緣:

去噪:因?yàn)檫@種方法依賴于強(qiáng)度的突然變化,如果圖像有很多隨機(jī)噪聲,那么會(huì)將噪聲作為邊緣。所以,使用5×5的高斯濾波器平滑你的圖像是一個(gè)非常好的主意。

梯度計(jì)算:下一步,我們計(jì)算圖像中每個(gè)像素的強(qiáng)度的梯度(強(qiáng)度變化率)。我們也計(jì)算梯度的方向。

梯度方向垂直于邊緣,它被映射到四個(gè)方向中的一個(gè)(水平、垂直和兩個(gè)對(duì)角線方向)。

非極大值抑制:現(xiàn)在,我們想刪除不是邊緣的像素(設(shè)置它們的值為0)。你可能會(huì)說,我們可以簡(jiǎn)單地選取梯度值最高的像素,這些就是我們的邊。然而,在真實(shí)的圖像中,梯度不是簡(jiǎn)單地在只一個(gè)像素處達(dá)到峰值,而是在臨近邊緣的像素處都非常高。因此我們?cè)谔荻确较蛏先?×3附近的局部最大值。

遲滯閾值化:在下一步中,我們需要決定一個(gè)梯度的閾值,低于這個(gè)閾值所有的像素都將被抑制(設(shè)置為0)。而Canny邊緣檢測(cè)器則采用遲滯閾值法。遲滯閾值法是一種非常簡(jiǎn)單而有效的方法。我們使用兩個(gè)閾值來代替只用一個(gè)閾值:

高閾值 = 選擇一個(gè)非常高的值,這樣任何梯度值高于這個(gè)值的像素都肯定是一個(gè)邊緣。

低閾值 = 選擇一個(gè)非常低的值,任何梯度值低于該值的像素絕對(duì)不是邊緣。

在這兩個(gè)閾值之間有梯度的像素會(huì)被檢查,如果它們和邊緣相連,就會(huì)留下,否則就會(huì)去掉。

遲滯閾值化

Canny 邊緣檢測(cè)的問題:

由于Canny邊緣檢測(cè)器只關(guān)注局部變化,沒有語義(理解圖像的內(nèi)容)理解,精度有限(很多時(shí)候是這樣)。

Canny邊緣檢測(cè)器在這種情況下會(huì)失敗,因?yàn)闆]有理解圖像的上下文

語義理解對(duì)于邊緣檢測(cè)是至關(guān)重要的,這就是為什么使用機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的基于學(xué)習(xí)的檢測(cè)器比canny邊緣檢測(cè)器產(chǎn)生更好的結(jié)果。

OpenCV中基于深度學(xué)習(xí)的邊緣檢測(cè)

OpenCV在其全新的DNN模塊中集成了基于深度學(xué)習(xí)的邊緣檢測(cè)技術(shù)。你需要OpenCV 3.4.3或更高版本。這種技術(shù)被稱為整體嵌套邊緣檢測(cè)或HED,是一種基于學(xué)習(xí)的端到端邊緣檢測(cè)系統(tǒng),使用修剪過的類似vgg的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像到圖像的預(yù)測(cè)任務(wù)。

HED利用了中間層的輸出。之前的層的輸出稱為side output,將所有5個(gè)卷積層的輸出進(jìn)行融合,生成最終的預(yù)測(cè)。由于在每一層生成的特征圖大小不同,它可以有效地以不同的尺度查看圖像。

網(wǎng)絡(luò)結(jié)構(gòu):整體嵌套邊緣檢測(cè)

HED方法不僅比其他基于深度學(xué)習(xí)的方法更準(zhǔn)確,而且速度也比其他方法快得多。這就是為什么OpenCV決定將其集成到新的DNN模塊中。以下是這篇論文的結(jié)果:

在OpenCV中訓(xùn)練深度學(xué)習(xí)邊緣檢測(cè)的代碼

OpenCV使用的預(yù)訓(xùn)練模型已經(jīng)在Caffe框架中訓(xùn)練過了,可以這樣加載:

sh download_pretrained.sh

網(wǎng)絡(luò)中有一個(gè)crop層,默認(rèn)是沒有實(shí)現(xiàn)的,所以我們需要自己實(shí)現(xiàn)一下。

class CropLayer(object):

def __init__(self, params, blobs):

self.xstart = 0

self.xend = 0

self.ystart = 0

self.yend = 0

# Our layer receives two inputs. We need to crop the first input blob

# to match a shape of the second one (keeping batch size and number of channels)

def getMemoryShapes(self, inputs):

inputShape, targetShape = inputs[0], inputs[1]

batchSize, numChannels = inputShape[0], inputShape[1]

height, width = targetShape[2], targetShape[3]

self.ystart = (inputShape[2] - targetShape[2]) // 2

self.xstart = (inputShape[3] - targetShape[3]) // 2

self.yend = self.ystart + height

self.xend = self.xstart + width

return [[batchSize, numChannels, height, width]]

def forward(self, inputs):

return [inputs[0][:,:,self.ystart:self.yend,self.xstart:self.xend]]

現(xiàn)在,我們可以重載這個(gè)類,只需用一行代碼注冊(cè)該層。

cv.dnn_registerLayer(‘Crop’, CropLayer)

現(xiàn)在,我們準(zhǔn)備構(gòu)建網(wǎng)絡(luò)圖并加載權(quán)重,這可以通過OpenCV的dnn.readNe函數(shù)。

net = cv.dnn.readNet(args.prototxt, args.caffemodel)

現(xiàn)在,下一步是批量加載圖像,并通過網(wǎng)絡(luò)運(yùn)行它們。為此,我們使用cv2.dnn.blobFromImage方法。該方法從輸入圖像中創(chuàng)建四維blob。

blob = cv.dnn.blobFromImage(image, scalefactor, size, mean, swapRB, crop)

其中:

image:是我們想要發(fā)送給神經(jīng)網(wǎng)絡(luò)進(jìn)行推理的輸入圖像。

scalefactor:圖像縮放常數(shù),很多時(shí)候我們需要把uint8的圖像除以255,這樣所有的像素都在0到1之間。默認(rèn)值是1.0,不縮放。

size:輸出圖像的空間大小。它將等于后續(xù)神經(jīng)網(wǎng)絡(luò)作為blobFromImage輸出所需的輸入大小。

swapRB:布爾值,表示我們是否想在3通道圖像中交換第一個(gè)和最后一個(gè)通道。OpenCV默認(rèn)圖像為BGR格式,但如果我們想將此順序轉(zhuǎn)換為RGB,我們可以將此標(biāo)志設(shè)置為True,這也是默認(rèn)值。

mean:為了進(jìn)行歸一化,有時(shí)我們計(jì)算訓(xùn)練數(shù)據(jù)集上的平均像素值,并在訓(xùn)練過程中從每幅圖像中減去它。如果我們?cè)谟?xùn)練中做均值減法,那么我們必須在推理中應(yīng)用它。這個(gè)平均值是一個(gè)對(duì)應(yīng)于R, G, B通道的元組。例如Imagenet數(shù)據(jù)集的均值是R=103.93, G=116.77, B=123.68。如果我們使用swapRB=False,那么這個(gè)順序?qū)⑹牵˙, G, R)。

crop:布爾標(biāo)志,表示我們是否想居中裁剪圖像。如果設(shè)置為True,則從中心裁剪輸入圖像時(shí),較小的尺寸等于相應(yīng)的尺寸,而其他尺寸等于或大于該尺寸。然而,如果我們將其設(shè)置為False,它將保留長(zhǎng)寬比,只是將其調(diào)整為固定尺寸大小。

在我們這個(gè)場(chǎng)景下:

inp = cv.dnn.blobFromImage(frame, scalefactor=1.0, size=(args.width, args.height),

mean=(104.00698793, 116.66876762, 122.67891434), swapRB=False,

crop=False)

現(xiàn)在,我們只需要調(diào)用一下前向方法。

net.setInput(inp)

out = net.forward()

out = out[0, 0]

out = cv.resize(out, (frame.shape[1], frame.shape[0]))

out = 255 * out

out = out.astype(np.uint8)

out=cv.cvtColor(out,cv.COLOR_GRAY2BGR)

con=np.concatenate((frame,out),axis=1)

cv.imshow(kWinName,con)

結(jié)果:

中間的圖像是人工標(biāo)注的圖像,右邊是HED的結(jié)果

中間的圖像是人工標(biāo)注的圖像,右邊是HED的結(jié)果

文中的代碼:

https://github.com/sankit1/cv-tricks.com/tree/master/OpenCV/Edge_detection

英文原文:https://cv-tricks.com/opencv-dnn/edge-detection-hed/
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:在OpenCV中基于深度學(xué)習(xí)的邊緣檢測(cè)

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    煤炭傳送帶狀態(tài)檢測(cè)系統(tǒng) 基于YOLOv8與邊緣計(jì)算

    煤炭傳送帶狀態(tài)檢測(cè)系統(tǒng)通過機(jī)器視覺+邊緣分析技術(shù)對(duì)煤炭皮帶狀況進(jìn)行實(shí)時(shí)監(jiān)測(cè),一旦煤炭傳送帶狀態(tài)檢測(cè)系統(tǒng)監(jiān)測(cè)到皮帶跑偏、堆煤、撕裂、異物等其他情況,煤炭傳送帶狀態(tài)檢測(cè)系統(tǒng)馬上開展警報(bào)提醒
    的頭像 發(fā)表于 12-19 20:17 ?414次閱讀
    煤炭傳送帶狀態(tài)<b class='flag-5'>檢測(cè)</b>系統(tǒng) 基于YOLOv8與<b class='flag-5'>邊緣</b>計(jì)算

    一文了解AI邊緣算力盒子是到底是個(gè)啥產(chǎn)品??

    天數(shù)智算AI邊緣算力盒子目前已適配涵蓋如園區(qū)、社區(qū)、工地、校園等場(chǎng)景的多種AI智能算法與AI數(shù)據(jù)平臺(tái),包括火焰檢測(cè)、煙霧檢測(cè)、抽煙檢測(cè)、打電
    的頭像 發(fā)表于 12-17 17:05 ?893次閱讀
    一文了解AI<b class='flag-5'>邊緣</b>算力盒子是到底是個(gè)啥產(chǎn)品??

    晶振為什么不能放置在PCB邊緣?

    晶振為什么不能放置在PCB邊緣
    發(fā)表于 12-05 07:13

    基于級(jí)聯(lián)分類器的人臉檢測(cè)基本原理

    本次分享的內(nèi)容是基于級(jí)聯(lián)分類器的人臉檢測(cè)基本原理 1) 人臉檢測(cè)概述 關(guān)于人臉檢測(cè)算法,目前主流方法分為兩類,一類是基于知識(shí),主要方法包括模板匹配,人臉特征,形狀和邊緣,紋理特征,
    發(fā)表于 10-30 06:14

    結(jié)合AI算法邊緣計(jì)算服務(wù)器,在城市管理場(chǎng)景有什么作用?

    在智慧城市建設(shè)的棋盤上,邊緣計(jì)算服務(wù)器正成為激活全城AI細(xì)胞的"神經(jīng)突觸"。當(dāng)算法模型走出數(shù)據(jù)中心,通過邊緣計(jì)算服務(wù)器、邊緣計(jì)算盒子、邊緣計(jì)
    的頭像 發(fā)表于 10-17 15:31 ?435次閱讀
    結(jié)合AI<b class='flag-5'>算法</b>的<b class='flag-5'>邊緣</b>計(jì)算服務(wù)器,在城市管理場(chǎng)景有什么作用?

    工業(yè)視覺網(wǎng)關(guān):RK3576賦能多路檢測(cè)邊緣AI

    IPC+獨(dú)顯的組合。 二、方案核心:多路檢測(cè) + 編解碼 + 邊緣AI + MES對(duì)接多路并發(fā)采集RK3576 提供 3×4-lane MIPI-CSI,配合視頻轉(zhuǎn)換模塊可并發(fā)接入 12路
    發(fā)表于 10-16 17:56

    一文了解AI邊緣算力盒子是到底是個(gè)啥產(chǎn)品?

    騰視科技AI邊緣算力盒子目前已適配涵蓋如園區(qū)、社區(qū)、工地、校園等場(chǎng)景的多種AI智能算法與AI數(shù)據(jù)平臺(tái),包括火焰檢測(cè)、煙霧檢測(cè)、抽煙檢測(cè)、打電
    的頭像 發(fā)表于 09-19 15:32 ?1781次閱讀
    一文了解AI<b class='flag-5'>邊緣</b>算力盒子是到底是個(gè)啥產(chǎn)品?

    一文了解AI邊緣算力盒子是到底是個(gè)啥產(chǎn)品?

    騰視科技AI邊緣算力盒子目前已適配涵蓋如園區(qū)、社區(qū)、工地、校園等場(chǎng)景的多種AI智能算法與AI數(shù)據(jù)平臺(tái),包括火焰檢測(cè)、煙霧檢測(cè)、抽煙檢測(cè)、打電
    的頭像 發(fā)表于 09-19 15:30 ?852次閱讀
    一文了解AI<b class='flag-5'>邊緣</b>算力盒子是到底是個(gè)啥產(chǎn)品?

    有哪些常見的AI算法可以用于裝置數(shù)據(jù)的異常檢測(cè)?

    (如邊緣 / 云端)。以下按 算法類型分類 ,詳細(xì)介紹常見 AI 算法的原理、適用場(chǎng)景、優(yōu)缺點(diǎn)及裝置數(shù)據(jù)適配性: 一、無監(jiān)督式異常檢測(cè)算法(主流選擇) 裝置數(shù)據(jù)多為 無標(biāo)注數(shù)據(jù) (僅記
    的頭像 發(fā)表于 09-18 09:27 ?783次閱讀
    有哪些常見的AI<b class='flag-5'>算法</b>可以用于裝置數(shù)據(jù)的異常<b class='flag-5'>檢測(cè)</b>?

    邊緣AI關(guān)鍵驅(qū)動(dòng)與應(yīng)用場(chǎng)景講解

    ? ?邊緣AI(Edge AI)是指在本地邊緣設(shè)備(如傳感器、物聯(lián)網(wǎng)設(shè)備、智能手機(jī)、無人機(jī)、攝像頭、邊緣服務(wù)器等)上運(yùn)行人工智能算法和機(jī)器學(xué)習(xí)(ML)模型,以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理和分析,而
    的頭像 發(fā)表于 09-10 16:06 ?698次閱讀

    AI 邊緣計(jì)算網(wǎng)關(guān):開啟智能新時(shí)代的鑰匙?—龍興物聯(lián)

    計(jì)算網(wǎng)關(guān)在本地實(shí)時(shí)分析,一旦檢測(cè)到盜竊、斗毆等異常行為,能立即發(fā)出警報(bào),極大提高了安防監(jiān)控的及時(shí)性和準(zhǔn)確性,同時(shí)減輕了云端計(jì)算壓力,降低了網(wǎng)絡(luò)成本。? 豐富的人工智能算法應(yīng)用,是AI 邊緣計(jì)算網(wǎng)關(guān)實(shí)現(xiàn)
    發(fā)表于 08-09 16:40

    邊緣智能網(wǎng)關(guān)在水務(wù)行業(yè)中的應(yīng)用—龍興物聯(lián)

    、水庫等關(guān)鍵設(shè)施進(jìn)行視頻監(jiān)控(結(jié)合邊緣AI)、門禁控制、環(huán)境監(jiān)測(cè)(溫濕度、有害氣體)。 優(yōu)勢(shì):? 本地智能分析:? 視頻AI在邊緣端完成入侵檢測(cè)、人員行為識(shí)別(如未穿防護(hù)服)、設(shè)備運(yùn)行狀態(tài)視覺檢查等
    發(fā)表于 08-02 18:28

    邊緣AI盒子技術(shù)解析:ASIC/FPGA/GPU芯片及邊緣-云端協(xié)同與自適應(yīng)推理

    ? 電子發(fā)燒友網(wǎng)綜合報(bào)道 邊緣AI盒子是一種集成了高性能芯片、AI算法和數(shù)據(jù)處理能力的硬件設(shè)備,部署在數(shù)據(jù)源的邊緣側(cè),如工廠、商場(chǎng)、交通路口等,能在本地進(jìn)行數(shù)據(jù)采集、預(yù)處理、分析和決策,無需將所有
    的頭像 發(fā)表于 07-13 08:25 ?4563次閱讀

    邊緣AI實(shí)現(xiàn)的核心環(huán)節(jié):硬件選擇和模型部署

    邊緣AI的實(shí)現(xiàn)原理是將人工智能算法和模型部署到靠近數(shù)據(jù)源的邊緣設(shè)備上,使這些設(shè)備能夠在本地進(jìn)行數(shù)據(jù)處理、分析和決策,而無需將數(shù)據(jù)傳輸?shù)竭h(yuǎn)程的云端服務(wù)器。邊緣AI的實(shí)現(xiàn)旨在將人工智能能力
    的頭像 發(fā)表于 06-19 12:19 ?1395次閱讀
    <b class='flag-5'>邊緣</b>AI實(shí)現(xiàn)的核心環(huán)節(jié):硬件選擇和模型部署

    邊緣AI的優(yōu)勢(shì)和技術(shù)基石

    在萬物皆可AI(人工智能)的今天,市場(chǎng)上幾乎每家企業(yè)都在宣稱自己的業(yè)務(wù)中有了AI成分。因此,將AI接入極靠近終端客戶的網(wǎng)絡(luò)邊緣也就沒什么懸念了。這里的邊緣人工智能(即Edge AI,或邊緣AI)主要是指將人工智能系統(tǒng)(如預(yù)測(cè)分析
    的頭像 發(fā)表于 06-12 10:14 ?1472次閱讀
    <b class='flag-5'>邊緣</b>AI的優(yōu)勢(shì)和技術(shù)基石