摘要:的文本檢測器是一種基于新穎架構(gòu)和訓(xùn)練模式的深度學(xué)習(xí)模型。深度學(xué)習(xí)文本檢測器圖文本檢測全卷積網(wǎng)絡(luò)的結(jié)構(gòu)等人的圖。隨著和的發(fā)布,我們現(xiàn)在可以使用一種名為的基于深度學(xué)習(xí)的文本檢測器,它基于等人的年論文一種高效精確的場景文本檢測器。
by Adrian Rosebrock on August 20, 2018 in Deep Learning, Optical Character Recognition (OCR), Tutorials
點擊這里下載這篇文章的源代碼
在本教程中,您將學(xué)習(xí)如何使用EAST文本檢測器使用OpenCV檢測自然場景圖像中的文本。
OpenCV的EAST文本檢測器是一種基于新穎架構(gòu)和訓(xùn)練模式的深度學(xué)習(xí)模型。它能夠(1)在720p圖像上以13 FPS接近實時運行,并且(2)獲得最先進的文本檢測精度。
在本教程的其余部分,您將學(xué)習(xí)如何使用OpenCV的EAST檢測器自動檢測圖像和視頻流中的文本。
在本教程中,您將學(xué)習(xí)如何使用EAST文本檢測器使用OpenCV檢測圖像中的文本。
EAST文本檢測器要求我們在我們的系統(tǒng)上運行OpenCV 3.4.2或OpenCV 4 - 如果您還沒有安裝OpenCV 3.4.2或更高版本,請參閱我的OpenCV安裝指南并按照各自的操作系統(tǒng)進行操作。
在今天的教程的第一部分中,我將討論為什么在自然場景圖像中檢測文本會如此具有挑戰(zhàn)性。
從那里我將簡要討論EAST文本檢測器,我們?yōu)槭裁词褂盟?,以及使算法如此新穎的原因 - 我還將包含原始論文的鏈接,以便您可以閱讀詳細信息,如果您如此傾向。
最后,我將提供我的Python + OpenCV文本檢測實現(xiàn),以便您可以開始在自己的應(yīng)用程序中應(yīng)用文本檢測。
為什么自然場景文本檢測如此具有挑戰(zhàn)性
圖1:自然場景圖像的示例,其中文本檢測由于光照條件,圖像質(zhì)量和非平面物體而具有挑戰(zhàn)性(Mancas-Thillou和Gosselin的圖1)。
在受約束的受控環(huán)境中檢測文本通??梢酝ㄟ^使用基于啟發(fā)式的方法來完成,例如利用梯度信息或者文本通常被分組成段落并且字符出現(xiàn)在直線上的事實。在我之前關(guān)于檢測護照圖像中的機器可讀區(qū)域的博客文章中可以看到這種基于啟發(fā)式的文本檢測器的示例。
自然場景文本檢測雖然不同 - 而且更具挑戰(zhàn)性。
由于廉價數(shù)碼相機的普及,更不用說幾乎每部智能手機現(xiàn)在都有攝像頭這一事實,我們需要高度關(guān)注拍攝圖像的條件 - 此外,我們能做什么和不能做什么假設(shè)。我已經(jīng)包含了Celine Mancas-Thillou和Bernard Gosselin在2017年優(yōu)秀論文“自然場景文本理解”中描述的自然場景文本檢測挑戰(zhàn)的總結(jié)版本:
.圖像/傳感器噪聲:手持式攝像機的傳感器噪聲通常高于傳統(tǒng)掃描儀的噪聲。此外,低價相機通常會插入原始傳感器的像素以產(chǎn)生真實的顏色。
.視角:自然場景文本自然可以具有與文本不平行的視角,使文本更難識別。
.模糊:不受控制的環(huán)境往往會模糊,特別是如果最終用戶使用的智能手機沒有某種形式的穩(wěn)定性。
.照明條件:我們無法對自然場景圖像中的照明條件做出任何假設(shè)。它可能接近黑暗,相機上的閃光燈可能會亮起,或者太陽可能會發(fā)出明亮的光線,使整個圖像飽和。
.分辨率:并非所有攝像機都是相同的 - 我們可能在處理分辨率低于標準的相機。
.非紙質(zhì)對象:大多數(shù)(但不是全部)紙張都不是反光的(至少在您嘗試掃描的紙張環(huán)境中)。自然場景中的文字可能是反光的,包括徽標,標志等。
.非平面物體:考慮當您將文本環(huán)繞在瓶子周圍時會發(fā)生什么 - 表面上的文本變得扭曲和變形。雖然人類仍然可以輕松地“檢測”并閱讀文本,但我們的算法會很困難。我們需要能夠處理這樣的用例。
.未知布局:我們不能使用任何先驗信息來為我們的算法提供關(guān)于文本所在位置的“線索”。
正如我們將要了解的那樣,OpenCV的EAST文本檢測器實現(xiàn)非常強大,即使文本模糊,反射或部分模糊,也能夠?qū)ξ谋具M行本地化:
圖2:OpenCV的EAST場景文本檢測器即使在模糊和模糊的圖像中也能檢測到。
EAST深度學(xué)習(xí)文本檢測器
圖3:EAST文本檢測全卷積網(wǎng)絡(luò)的結(jié)構(gòu)(Zhou等人的圖3)。
隨著OpenCV 3.4.2和OpenCV 4的發(fā)布,我們現(xiàn)在可以使用一種名為EAST的基于深度學(xué)習(xí)的文本檢測器,它基于Zhou等人的2017年論文“EAST:一種高效精確的場景文本檢測器”。
我們將算法稱為“EAST”,因為它是:高效且準確的場景文本檢測管道。
據(jù)作者說,EAST管道能夠在720p圖像上以任意方向預(yù)測文本的單詞和行,并且能夠以13 FPS運行。
也許最重要的是,由于深度學(xué)習(xí)模型是端到端的,因此可以回避其他文本檢測器通常應(yīng)用的計算上昂貴的子算法,包括候選聚合和字分區(qū)。
為了構(gòu)建和訓(xùn)練這樣一種深度學(xué)習(xí)模型,EAST方法采用了新穎,精心設(shè)計的損失函數(shù)。
有關(guān)EAST的更多詳細信息,包括架構(gòu)設(shè)計和培訓(xùn)方法,請務(wù)必參考作者的出版物。
項目結(jié)構(gòu)
首先,請訪問“下載”部分,確保將源代碼+圖像抓取到今天的帖子。從那里,只需使用tree terminal命令查看項目結(jié)構(gòu):
$ tree --dirsfirst . ├── images │ ├── car_wash.png │ ├── lebron_james.jpg │ └── sign.jpg ├── frozen_east_text_detection.pb ├── text_detection.py └── text_detection_video.py 1 directory, 6 files
請注意,我在images /目錄中提供了三張示例圖片。您可能希望添加自己使用智能手機收集的圖像或在線查找的圖像。
我們今天將審查兩個.py文件:
text_detection.py:檢測靜態(tài)圖像中的文本。
text_detection_video.py:通過網(wǎng)絡(luò)攝像頭或輸入視頻文件檢測文本。
這兩個腳本都使用了序列化的EAST模型(frozen_east_text_detection.pb),以便在“下載”中提供。
實施說明
我今天包含的文本檢測實現(xiàn)基于OpenCV的官方C ++示例;但是,我必須承認在將其轉(zhuǎn)換為Python時遇到了一些麻煩。
首先,Python中沒有Point2f和RotatedRect函數(shù),因此,我無法100%模仿C ++實現(xiàn)。 C ++實現(xiàn)可以生成旋轉(zhuǎn)的邊界框,但不幸的是,我今天與你分享的那個不能。
其次,NMSBoxes函數(shù)不返回Python綁定的任何值(至少對于我的OpenCV 4預(yù)發(fā)布安裝),最終導(dǎo)致OpenCV拋出錯誤。 NMSBoxes函數(shù)可以在OpenCV 3.4.2中工作,但我無法對其進行詳盡的測試。
我解決了這個問題,我在imutils中使用我自己的非最大值抑制實現(xiàn),但同樣,我不相信這兩個是100%可互換的,因為看起來NMSBoxes接受其他參數(shù)。
鑒于這一切,我盡力使用我的工作功能和資源為您提供最好的OpenCV文本檢測實現(xiàn)。如果您對方法有任何改進,請隨時在下面的評論中分享。
使用OpenCV實現(xiàn)我們的文本檢測器
在我們開始之前,我想指出您至少需要在系統(tǒng)上安裝OpenCV 3.4.2(或OpenCV 4)才能使用OpenCV的EAST文本檢測器,因此如果您尚未安裝OpenCV 3.4.2或更高版本在您的系統(tǒng)上,請參閱我的OpenCV安裝指南。
接下來,確保您的系統(tǒng)上還安裝/升級了imutils:
pip install --upgrade imutils
此時您的系統(tǒng)已配置好,因此打開text_detection.py并插入以下代碼:
首先,我們在第2-6行導(dǎo)入我們所需的包和模塊。值得注意的是,我們從imutils.object_detection導(dǎo)入NumPy,OpenCV和我的non_max_suppression實現(xiàn)。
然后我們繼續(xù)解析第9-20行的五個命令行參數(shù):
--image:輸入圖像的路徑。
--east:EAST場景文本檢測器模型文件路徑。
--min-confidence:確定文本的概率閾值。可選,默認值= 0.5。
--width:調(diào)整后的圖像寬度 - 必須是32的倍數(shù)??蛇x,默認值= 320。
--height:調(diào)整后的圖像高度 - 必須是32的倍數(shù)??蛇x,默認值= 320。
重要提示:EAST文本要求輸入圖像尺寸為32的倍數(shù),因此如果您選擇調(diào)整--width和--height值,請確保它們是32的倍數(shù)!
從那里,讓我們加載我們的圖像并調(diào)整它的大小:
在第23和24行,我們加載并復(fù)制輸入圖像。
從那里,第30行和第31行確定原始圖像尺寸與新圖像尺寸的比率(基于為--width和--height提供的命令行參數(shù))。
然后我們調(diào)整圖像大小,忽略縱橫比(第34行)。
為了使用OpenCV和EAST深度學(xué)習(xí)模型執(zhí)行文本檢測,我們需要提取兩層的輸出特征映射:
我們在40-42行構(gòu)建一個layerNames列表:
第一層是我們的輸出sigmoid激活,它給出了包含文本或不包含文本的區(qū)域的概率。
第二層是表示圖像“幾何”的輸出要素圖 - 我們將能夠使用此幾何來導(dǎo)出輸入圖像中文本的邊界框坐標
讓我們加載OpenCV的EAST文本檢測器:
我們使用cv2.dnn.readNet將神經(jīng)網(wǎng)絡(luò)加載到內(nèi)存中,方法是將路徑傳遞給EAST檢測器(包含在我們的命令行args字典中)作為第46行的參數(shù)。
然后我們通過將其轉(zhuǎn)換為第50行和第51行的blob來準備我們的圖像。要了解有關(guān)此步驟的更多信息,請參閱深度學(xué)習(xí):OpenCV的blobFromImage如何工作。
要預(yù)測文本,我們可以簡單地將blob設(shè)置為輸入并調(diào)用net.forward(第53和54行)。這些行被抓取時間戳包圍,以便我們可以在第58行打印經(jīng)過的時間。
通過將layerNames作為參數(shù)提供給net.forward,我們正在指示OpenCV返回我們感興趣的兩個特征映射:
輸出幾何圖用于導(dǎo)出輸入圖像中文本的邊界框坐標
類似地,分數(shù)圖包含包含文本的給定區(qū)域的概率
我們需要逐個遍歷每個值:
我們首先抓住得分量的維度(第63行),然后初始化兩個列表:
rects:存儲文本區(qū)域的邊界框(x,y) - 坐標
置信度:存儲與rects中每個邊界框關(guān)聯(lián)的概率
我們稍后將對這些區(qū)域應(yīng)用非最大值抑制。
在第68行開始循環(huán)。
第72-77行提取當前行的分數(shù)和幾何數(shù)據(jù)y。
接下來,我們遍歷當前所選行的每個列索引:
對于每一行,我們開始循環(huán)第80行的列。
我們需要通過忽略不具有足夠高概率的區(qū)域來過濾掉弱文本檢測(第82和83行)。
當文本通過網(wǎng)絡(luò)時,EAST文本檢測器自然地減小了體積大小 - 我們的體積大小實際上比輸入圖像小4倍,所以我們乘以4使坐標回到原始圖像的方向。
我已經(jīng)介紹了如何在第91-93行提取角度數(shù)據(jù);但是,正如我在上一節(jié)中所提到的,我無法像在C ++實現(xiàn)中那樣構(gòu)建一個旋轉(zhuǎn)的邊界框 - 如果你想要處理任務(wù),從第91行的角度開始將是你的第一個步。
從那里,第97-105行導(dǎo)出文本區(qū)域的邊界框坐標。
然后,我們分別更新我們的rects和confidences列表(第109和110行)。
我們差不多完成了!
最后一步是將非最大值抑制應(yīng)用于我們的邊界框以抑制弱重疊邊界框,然后顯示結(jié)果文本預(yù)測:
正如我在上一節(jié)中提到的,我無法在我的OpenCV 4安裝(cv2.dnn.NMSBoxes)中使用非最大值抑制,因為Python綁定沒有返回值,最終導(dǎo)致OpenCV錯誤輸出。我無法完全在OpenCV 3.4.2中進行測試,因此它可以在v3.4.2中運行。
相反,我使用了imutils包中提供的非最大值抑制實現(xiàn)(第114行)。結(jié)果仍然很好;但是,我無法將輸出與NMSBoxes函數(shù)進行比較,看看它們是否相同。
第117-126行環(huán)繞我們的邊界框,將坐標縮放回原始圖像尺寸,并將輸出繪制到我們的原始圖像。顯示原始圖像,直到按下一個鍵(第129和130行)。
作為最后的實現(xiàn)說明,我想提一下,我們的兩個嵌套for循環(huán)用于循環(huán)第68-110行的分數(shù)和幾何體積,這將是一個很好的例子,你可以利用Cython來大大加速你的管道。我已經(jīng)展示了Cython在Fast中的強大功能,使用OpenCV和Python優(yōu)化了"for"像素循環(huán)。
OpenCV文本檢測結(jié)果
你準備好對圖像應(yīng)用文本檢測了嗎?
首先抓住此博客文章的“下載”并解壓縮文件。
從那里,您可以在終端中執(zhí)行以下命令(記下兩個命令行參數(shù)):
$ python text_detection.py --image images/lebron_james.jpg --east frozen_east_text_detection.pb [INFO] loading EAST text detector... [INFO] text detection took 0.142082 seconds
您的結(jié)果應(yīng)類似于以下圖像:
圖4:著名的籃球運動員,Lebron James的球衣文字通過OpenCV和EAST文本檢測成功識別。
勒布朗詹姆斯確定了三個文本區(qū)域。
現(xiàn)在讓我們嘗試檢測商業(yè)標志的文字:
$ python text_detection.py --image images/car_wash.png --east frozen_east_text_detection.pb [INFO] loading EAST text detector... [INFO] text detection took 0.142295 seconds
圖5:在洗車站的這個自然場景中使用EAST和Python以及OpenCV可以輕松識別文本。
最后,我們將嘗試一個路標:
$ python text_detection.py --image images/sign.jpg --east frozen_east_text_detection.pb [INFO] loading EAST text detector... [INFO] text detection took 0.141675 seconds
圖6:使用Python + OpenCV進行場景文本檢測,EAST文本檢測器成功檢測到此西班牙語停止標志上的文本。
此場景包含西班牙停車標志。 OpenCV和EAST正確檢測到“ALTO”這個詞。
正如您所知,EAST非常準確且相對較快,每張圖像的平均時間約為0.14秒。
使用OpenCV在視頻中進行文本檢測
現(xiàn)在我們已經(jīng)看到了如何檢測圖像中的文本,讓我們繼續(xù)使用OpenCV檢測視頻中的文本。
這個解釋非常簡短;有關(guān)詳細信息,請參閱上一節(jié)。
打開text_detection_video.py并插入以下代碼:
# import the necessary packages from imutils.video import VideoStream from imutils.video import FPS from imutils.object_detection import non_max_suppression import numpy as np import argparse import imutils import time import cv2
我們首先導(dǎo)入我們的包。我們將使用VideoStream訪問網(wǎng)絡(luò)攝像頭和FPS以對此腳本的每秒幀數(shù)進行基準測試。其他所有內(nèi)容與上一節(jié)中的相同。
為方便起見,讓我們定義一個新函數(shù)來解碼我們的預(yù)測函數(shù) - 它將被重用于每個幀并使我們的循環(huán)更清晰
def decode_predictions(scores, geometry): # grab the number of rows and columns from the scores volume, then # initialize our set of bounding box rectangles and corresponding # confidence scores (numRows, numCols) = scores.shape[2:4] rects = [] confidences = [] # loop over the number of rows for y in range(0, numRows): # extract the scores (probabilities), followed by the # geometrical data used to derive potential bounding box # coordinates that surround text scoresData = scores[0, 0, y] xData0 = geometry[0, 0, y] xData1 = geometry[0, 1, y] xData2 = geometry[0, 2, y] xData3 = geometry[0, 3, y] anglesData = geometry[0, 4, y] # loop over the number of columns for x in range(0, numCols): # if our score does not have sufficient probability, # ignore it if scoresData[x] < args["min_confidence"]: continue # compute the offset factor as our resulting feature # maps will be 4x smaller than the input image (offsetX, offsetY) = (x * 4.0, y * 4.0) # extract the rotation angle for the prediction and # then compute the sin and cosine angle = anglesData[x] cos = np.cos(angle) sin = np.sin(angle) # use the geometry volume to derive the width and height # of the bounding box h = xData0[x] + xData2[x] w = xData1[x] + xData3[x] # compute both the starting and ending (x, y)-coordinates # for the text prediction bounding box endX = int(offsetX + (cos * xData1[x]) + (sin * xData2[x])) endY = int(offsetY - (sin * xData1[x]) + (cos * xData2[x])) startX = int(endX - w) startY = int(endY - h) # add the bounding box coordinates and probability score # to our respective lists rects.append((startX, startY, endX, endY)) confidences.append(scoresData[x]) # return a tuple of the bounding boxes and associated confidences return (rects, confidences)
我們定義了decode_predictions函數(shù)。此函數(shù)用于提取:
文本區(qū)域的邊界框坐標
以及文本區(qū)域檢測的概率
這個專用函數(shù)將使代碼在以后的腳本中更易于閱讀和管理。
# construct the argument parser and parse the arguments ap = argparse.ArgumentParser() ap.add_argument("-east", "--east", type=str, required=True, help="path to input EAST text detector") ap.add_argument("-v", "--video", type=str, help="path to optinal input video file") ap.add_argument("-c", "--min-confidence", type=float, default=0.5, help="minimum probability required to inspect a region") ap.add_argument("-w", "--width", type=int, default=320, help="resized image width (should be multiple of 32)") ap.add_argument("-e", "--height", type=int, default=320, help="resized image height (should be multiple of 32)") args = vars(ap.parse_args())
我們的命令行參數(shù)解析:
--east:EAST場景文本檢測器模型文件路徑。
--video:輸入視頻的路徑??蛇x - 如果提供了視頻路徑,則不會使用網(wǎng)絡(luò)攝像頭。
--min-confidence:確定文本的概率閾值。可選,默認值= 0.5。
--width:調(diào)整后的圖像寬度(必須是32的倍數(shù))??蛇x,默認值= 320。
--height:調(diào)整后的圖像高度(必須是32的倍數(shù))??蛇x,默認值= 320。
上一節(jié)中僅使用圖像的腳本(就命令行參數(shù)而言)的主要變化是我用--video替換了--image參數(shù)。
重要提示:EAST文本要求輸入圖像尺寸為32的倍數(shù),因此如果您選擇調(diào)整--width和--height值,請確保它們是32的倍數(shù)!
接下來,我們將執(zhí)行模仿前一個腳本的重要初始化:
第84-86行的高度/寬度和比率初始化將允許我們稍后正確地縮放我們的邊界框。
定義了輸出層名稱,我們在第91-97行加載了預(yù)訓(xùn)練的EAST文本檢測器。
以下塊設(shè)置我們的視頻流和每秒幀數(shù)計數(shù)器:
我們的視頻流設(shè)置為:
網(wǎng)絡(luò)攝像頭(100-103行)
或視頻文件(第106-107行)
從那里我們初始化我們在第110行的每秒幀數(shù),并開始循環(huán)傳入幀:
我們開始在113行??的視頻/網(wǎng)絡(luò)攝像頭幀上循環(huán)。
我們的框架調(diào)整大小,保持縱橫比(第124行)。從那里,我們抓住尺寸并計算比例比(第129-132行)。然后我們再次調(diào)整框架的大小(必須是32的倍數(shù)),這次忽略縱橫比,因為我們已經(jīng)存儲了安全保持的比率(第135行)。
預(yù)測和繪圖文本區(qū)域邊界框發(fā)生在以下行:
在這個塊中我們:
使用EAST通過創(chuàng)建blob并將其傳遞通過網(wǎng)絡(luò)來檢測文本區(qū)域(第139-142行)
解碼預(yù)測并應(yīng)用NMS(第146和147行)。我們使用此腳本中先前定義的decode_predictions函數(shù)和我的imutils non_max_suppression便利函數(shù)。
環(huán)繞邊界框并在框架上繪制它們(第150-159行)。這涉及通過先前收集的比率來縮放框。
從那里我們將關(guān)閉幀處理循環(huán)以及腳本本身:
我們在循環(huán)的每次迭代中更新我們的fps計數(shù)器(第162行),以便在我們突破循環(huán)時計算并顯示計時(第173-175行)。
我們在165行顯示EAST文本檢測的輸出并處理按鍵(第166-170行)。如果按“q”進行“退出”,我們就會跳出循環(huán)并繼續(xù)清理并釋放指針。
視頻文本檢測結(jié)果
要使用OpenCV將文本檢測應(yīng)用于視頻,請務(wù)必使用此博客文章的“下載”部分。
從那里,打開一個終端并執(zhí)行以下命令(這將啟動你的網(wǎng)絡(luò)攝像頭,因為我們沒有通過命令行參數(shù)提供--video):
$ python text_detection_video.py --east frozen_east_text_detection.pb [INFO] loading EAST text detector... [INFO] starting video stream... [INFO] elasped time: 59.76 [INFO] approx. FPS: 8.85
我們的OpenCV文本檢測視頻腳本可實現(xiàn)7-9 FPS。
這個結(jié)果并不像作者報道的那么快(13 FPS);但是,我們使用的是Python而不是C ++。通過使用Cython優(yōu)化for循環(huán),我們應(yīng)該能夠提高文本檢測管道的速度。
摘要
在今天的博客文章中,我們學(xué)習(xí)了如何使用OpenCV的新EAST文本檢測器來自動檢測自然場景圖像中是否存在文本。
文本檢測器不僅準確,而且能夠在720p圖像上以近似實時的速度運行,大約13 FPS。
為了提供OpenCV的EAST文本檢測器的實現(xiàn),我需要轉(zhuǎn)換OpenCV的C ++示例;然而,我遇到了許多挑戰(zhàn),例如:
無法使用OpenCV的NMSBox進行非最大值抑制,而是必須使用imutils的實現(xiàn)。
由于缺少RotatedRect的Python綁定,無法計算真正的旋轉(zhuǎn)邊界框。
我試圖讓我的實現(xiàn)盡可能接近OpenCV,但請記住,我的版本與C ++版本沒有100%完全相同,并且可能會有一兩個小問題需要隨著時間的推移而解決。
無論如何,我希望你喜歡今天的OpenCV文本檢測教程!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43439.html
摘要:納入深度學(xué)習(xí)模型來進一步提升準確率只是時間問題,事實上,這個時間已經(jīng)到來。最新版本支持基于深度學(xué)習(xí)的,準確率顯著提高。該函數(shù)使用基于深度學(xué)習(xí)的文本檢測器來檢測不是識別圖像中的文本區(qū)域。高效使用概率最高的文本區(qū)域,刪除其他重疊區(qū)域。 By Adrian Rosebrock on September 17, 2018 in Deep Learning, Optical Character ...
摘要:工作原理以前的檢測系統(tǒng)通過重復(fù)利用分類器和定位器來實現(xiàn)目標識別。修改檢測閾值缺省情況下,只顯示信心大于的對象。用法如下這個,呵呵,不完美把白馬識別成綿羊了,把黑狗識別成奶牛了,但確實很快。 原標題:YOLO: Real-Time Object Detection英文原文:https://pjreddie.com/darknet/... 強烈推薦(TED視頻):https://www....
摘要:工作原理以前的檢測系統(tǒng)通過重復(fù)利用分類器和定位器來實現(xiàn)目標識別。修改檢測閾值缺省情況下,只顯示信心大于的對象。用法如下這個,呵呵,不完美把白馬識別成綿羊了,把黑狗識別成奶牛了,但確實很快。 原標題:YOLO: Real-Time Object Detection英文原文:https://pjreddie.com/darknet/... 強烈推薦(TED視頻):https://www....
摘要:摘要本文介紹使用和完成視頻流目標檢測,代碼解釋詳細,附源碼,上手快。將應(yīng)用于視頻流對象檢測首先打開文件并插入以下代碼同樣,首先從導(dǎo)入相關(guān)數(shù)據(jù)包和命令行參數(shù)開始。 摘要:?本文介紹使用opencv和yolo完成視頻流目標檢測,代碼解釋詳細,附源碼,上手快。 在上一節(jié)內(nèi)容中,介紹了如何將YOLO應(yīng)用于圖像目標檢測中,那么在學(xué)會檢測單張圖像后,我們也可以利用YOLO算法實現(xiàn)視頻流中的目標檢...
閱讀 805·2023-04-25 15:13
閱讀 1425·2021-11-22 12:03
閱讀 844·2021-11-19 09:40
閱讀 1929·2021-11-17 09:38
閱讀 1739·2021-11-08 13:18
閱讀 675·2021-09-02 15:15
閱讀 1791·2019-08-30 15:54
閱讀 2661·2019-08-30 11:12