论文阅读:超高分辨率图像中快速、准确的条码检测
摘要
由于目標(biāo)對象的尺度不同,超高分辨率 (UHR) 圖像中的對象檢測長期以來一直是計算機視覺中的一個具有挑戰(zhàn)性的問題。在條碼檢測方面,將 UHR 輸入圖像調(diào)整為更小的尺寸通常會導(dǎo)致相關(guān)信息的丟失,而直接處理它們的效率很高且計算成本很高。在本文中,我們建議使用語義分割來快速準(zhǔn)確地檢測 UHR 圖像中各種尺度的條形碼。我們的管道涉及大小大于 10k×10k 的圖像上的修改后的區(qū)域提議網(wǎng)絡(luò) (RPN) 和新提出的 Y-Net 分割網(wǎng)絡(luò),然后是用于在每個分割的條形碼掩碼周圍擬合邊界框的后處理工作流程。端到端系統(tǒng)的延遲為 16 毫秒,比 YOLOv4 快 2.5 倍,比 Mask R-CNN 快 5.9 倍。在準(zhǔn)確度方面,我們的方法在合成數(shù)據(jù)集上分別以 5.5% 和 47.1% 的 mAP 優(yōu)于 YOLOv4 和 Mask R-CNN。 我們在 http://www.github.com/viplabB/SBD/ 提供了生成的合成條形碼數(shù)據(jù)集及其代碼。
關(guān)鍵詞: 使用深度神經(jīng)網(wǎng)絡(luò)檢測條碼、條碼分割、超高分辨率圖像。
作者的網(wǎng)址為:http://www-video.eecs.berkeley.edu/~avz/
論文的地址為:https://www.researchgate.net/publication/349336332_Fast_Accurate_Barcode_Detection_in_Ultra_High-Resolution_Images
1 引言
條形碼是數(shù)字標(biāo)志,通常由相鄰和交替的黑白小矩形組成,已成為人類社會的固有部分。 例如,在管理中,它們用于編碼、保存和檢索各種用戶的信息。 在雜貨店,它們被用來跟蹤銷售和庫存。 在電子商務(wù)中更有趣的是,它們用于跟蹤和加快倉庫和履行中心的處理時間。
在經(jīng)典信號處理中,用于檢測的濾波器是特定于圖像的,因為輸入圖像不一定都是使用相同的照明、亮度、角度或相機獲取的。 因此,需要自適應(yīng)圖像處理算法,這會影響檢測精度 [1]。 此外,由于經(jīng)典信號處理方法通常在中央處理單元上運行,因此與在圖形處理單元 (GPU) 上輕松優(yōu)化的深度學(xué)習(xí)實現(xiàn)相比,它們往往要慢得多。
多年來,已經(jīng)提出了許多使用經(jīng)典信號處理檢測條形碼的方法 [1, 2, 3, 4, 5],但幾乎所有方法都需要很長時間來處理超高分辨率 (UHR) 圖像 . 更具體地說,[5] 使用平行線段檢測器,該檢測器改進了他們之前的工作 [6],在霍夫空間中尋找具有最大穩(wěn)定極值區(qū)域的假想垂直線來檢測條形碼。 卡托納等人 [3] 使用形態(tài)學(xué)操作進行條碼檢測,但由于不同的條碼類型具有不同的檢測性能,因此該方法不能很好地概括。 類似地,[7] 提出使用 x 和 y 導(dǎo)數(shù)差異,但不同的輸入圖像會產(chǎn)生不同的輸出,并且在 UHR 圖像上使用這種操作通常會變得非常低效。
使用神經(jīng)網(wǎng)絡(luò),雖然條形碼檢測任務(wù)有了很大改進,但很少有人解決 UHR 圖像中快速準(zhǔn)確的檢測問題。贊貝萊蒂等 [8] 為使用神經(jīng)網(wǎng)絡(luò)通過研究霍夫空間來檢測條形碼鋪平了道路。隨后是 [9],它采用了 You Only Looked Once (YOLO) 檢測器來查找低分辨率 (LR) 圖像中的條形碼,但眾所周知,YOLO 算法在處理長形物體(例如代碼 39 條形碼)時表現(xiàn)不佳。 Mask R-CNN [10] 等實例分割方法在 1024 × 1024 像素大小的圖像上表現(xiàn)更好,但在較小尺寸的圖像上,輸出的興趣區(qū)域 (RoI) 與長的一維條碼結(jié)構(gòu)不能很好地對齊。這是因為無論對象大小如何,它通常都會預(yù)測 28×28 像素上的掩碼,從而在某些條碼預(yù)測上產(chǎn)生“擺動”偽影,從而失去空間分辨率。以同樣的方式,專用對象檢測管道,例如 YOLOv4 [11],雖然它們在較低的聯(lián)合 (IoU) 閾值上表現(xiàn)良好,但在較高的 IoU 閾值下會受到準(zhǔn)確性的影響。在使用 LR 圖像分割作為檢測手段的那些中,[12] 在更高的 IoU 閾值下也往往表現(xiàn)不佳。
在本文中,我們提出了一種使用深度神經(jīng)網(wǎng)絡(luò)檢測條形碼的管道,如圖 1 所示,它由分別訓(xùn)練的兩個階段組成。與經(jīng)典的信號處理方法相比,神經(jīng)網(wǎng)絡(luò)不僅提供了更快的推理時間,而且產(chǎn)生了更高的準(zhǔn)確度,因為它們學(xué)習(xí)了有意義的過濾器以進行最佳特征提取。如圖 1 所示,在第一階段,我們擴展了 Faster R-CNN [13] 中引入的區(qū)域提議網(wǎng)絡(luò) (RPN),以提取可能存在條形碼的潛在位置的高清區(qū)域。這個階段允許我們顯著減少在第二階段本來需要的推理計算時間。在第二階段,我們引入 Y-Net,這是一種語義分割網(wǎng)絡(luò),可檢測給定輸出 RoI 圖像 (400 × 400) 中的所有條碼實例。然后我們對預(yù)測的掩碼應(yīng)用形態(tài)學(xué)操作來分離和提取相應(yīng)的邊界框,如圖 2 所示。
圖 1. 提議的方法,修改后的 RPN 后面是 Y-Net 和邊界框提取器
圖 2. 我們管道的示例輸出; 黃色 - 分段條碼像素; 紫色 - 分割的背景像素; 框 - 提取的邊界框; (a) 合成條碼圖像; (b) 真實的條碼圖像;? (a) 的預(yù)測結(jié)果; (d) (b) 的預(yù)測結(jié)果。
現(xiàn)有條碼檢測工作的局限性之一是訓(xùn)練示例數(shù)量不足。 ArTe-Lab 1D Medium Barcode Dataset [8] 和 WWU Muenster Barcode Database [14] 是現(xiàn)有可用數(shù)據(jù)集的兩個示例。 它們分別包含 365 和 595 張圖像,地面實況掩碼的分辨率為 640 × 480。ArTe-Lab 數(shù)據(jù)集中的大多數(shù)樣本每個樣本圖像只有一個 EAN13 條形碼,而在 Muenster 數(shù)據(jù)庫中很少有超過 給定圖像上的一個條形碼實例。 為了解決此數(shù)據(jù)集可用性問題,我們發(fā)布了 100,000 個 UHR 和 100,000 個 LR 合成條形碼數(shù)據(jù)集以及它們相應(yīng)的邊界框地面實況和地面實況掩碼,以促進進一步研究。 本文的大綱如下:在第 2 節(jié)中,我們描述了我們的方法的細節(jié); 在第 3 節(jié)中,我們總結(jié)了我們的實驗結(jié)果,在第 4 節(jié)中,我們總結(jié)并擴展了我們未來的工作。
2 建議的方法
如圖 1 所示,我們提出的方法由三個階段組成:修改后的區(qū)域建議網(wǎng)絡(luò)階段、我們的 Y-Net 分割網(wǎng)絡(luò)階段和邊界框提取階段。
我們的 Y-Net 架構(gòu)類似于英文字母“Y”,與 [15] 不同,[15] 使用預(yù)訓(xùn)練的編碼器網(wǎng)絡(luò),該網(wǎng)絡(luò)使用未經(jīng)訓(xùn)練的鏡像網(wǎng)絡(luò)和解碼器網(wǎng)絡(luò)進行增強。
2.1 修改后的區(qū)域建議網(wǎng)絡(luò)
區(qū)域建議在計算機視覺中具有影響力,在 UHR 圖像中的對象檢測方面更是如此。 在 UHR 圖像中,條形碼聚集在圖像的一個小區(qū)域中是很常見的。 為了過濾掉大部分非條形碼背景,我們修改了 Faster R-CNN [13] 中引入的 RPN,為我們的下一階段提出條形碼區(qū)域。 首先將 UHR 輸入圖像轉(zhuǎn)換為 256×256 大小的 LR 輸入圖像,訓(xùn)練 RPN 以識別 LR 圖像中的斑點。 一旦在識別出的斑點周圍放置了一個邊界框,所產(chǎn)生的提議邊界框就會通過透視變換重新映射到輸入的 UHR 圖像,并裁剪出結(jié)果區(qū)域。 選擇 RPN 的 LR 輸入大小為 256 × 256,因為較低的分辨率會導(dǎo)致相關(guān)信息的丟失。 非最大抑制 (NMS) 用于預(yù)測以選擇最可能的區(qū)域。
2.2 Y-Net 分割網(wǎng)絡(luò)
如圖 3 所示,Y-Net 由分布在 2 個分支中的 3 個主要模塊組成:一個以藍色顯示的正則卷積模塊構(gòu)成左分支,一個以棕色顯示的金字塔池化模塊,以及一個擴張的橙色顯示的卷積模塊經(jīng)過串聯(lián)和卷積后構(gòu)成了右分支。
圖 3. Y-Net 架構(gòu)
常規(guī)卷積模塊接收 RPN 的 400 × 400 輸出圖像,并由卷積層和池化層組成。 它從 64 通道 3 × 3 內(nèi)核開始,每層的數(shù)量翻倍。 我們在卷積和最大池化之間交替,直到我們達到 25 × 25 像素的特征圖大小。 該模塊允許模型學(xué)習(xí)輸入圖像中任何位置的一般像素信息。
膨脹卷積模塊利用條形碼具有交替的黑白矩形的事實來學(xué)習(xí)其結(jié)構(gòu)中的稀疏特征。 這個模塊的動機來自這樣一個事實,即擴張卷積算子在雙正交小波分解的“算法”中發(fā)揮著重要作用 [16]。 因此,這種過濾器可以更準(zhǔn)確地學(xué)習(xí)條形碼中交替圖案的不連續(xù)性和銳利邊緣。 此外,它們利用多分辨率和多尺度分解,因為它們允許內(nèi)核以從 1 到 16 的膨脹率擴大其感受野。這里也使用了 400 × 400 輸入圖像,我們保持 32 – 通道 3 × 3 內(nèi)核遍及整個模塊,而層的維度使用 2 的步幅逐漸減小,直到獲得 25 × 25 像素的特征圖。
Pyramid Pooling Module 允許模型學(xué)習(xí)關(guān)于不同尺度條形碼潛在位置的全局信息,并且其層與膨脹卷積模塊上的層連接,以保留從兩個模塊中提取的特征。
然后將來自右分支的結(jié)果特征圖添加到正則卷積模塊的輸出中,這允許修正任一分支可能遺漏的特征。換句話說,每個分支的輸出構(gòu)成了另一個分支的殘余校正,從而改進了每個節(jié)點的結(jié)果,如白色所示。然后對節(jié)點進行上采樣并與以相應(yīng)維度的紅色和黃色顯示的轉(zhuǎn)置卷積特征圖連接。在整個網(wǎng)絡(luò)中,我們在每一層之后使用 ReLU 作為非線性,并添加 L2 正則化以解決訓(xùn)練期間可能發(fā)生的過擬合情況。在所有數(shù)據(jù)集上,我們將 80% 用于訓(xùn)練集,10% 用于驗證集,其余 10% 用于測試集。我們使用一個 NVIDIA Tesla V100 GPU 進行訓(xùn)練。由于這是一個分割網(wǎng)絡(luò),我們對分類背景和條形碼感興趣,我們使用二進制交叉熵作為損失函數(shù)。
2.3 邊界框提取
由于一些圖像包含彼此非常接近的條形碼,它們的 Y-Net 輸出反映了相同的配置,這使得單個條形碼邊界框的提取變得復(fù)雜,如圖 4(a)所示。 為了有效地分離它們,我們使用像素校正余量執(zhí)行腐蝕、輪廓提取和邊界框擴展。 如圖 4(b) 所示,腐蝕階段允許算法擴大分段條碼之間的間隙,這些條碼可能由 1 個或多個像素分隔。 然后在圖 4? 中的輪廓提取階段,通過邊界跟蹤,使用得到的掩碼來推斷單個條形碼邊界框。 如圖 4(d) 所示,在擴展階段使用像素校正余量來恢復(fù)原始邊界框的尺寸。 我們流水線的這個后處理階段的平均處理時間為 1.5 毫秒 (ms),因為它由一組 Python 矩陣操作組成,可以有效地從預(yù)測掩碼中提取邊界框。
圖 4. (a) Y-Net 輸出; (b) 侵蝕后的 Y-Net 輸出; ? 在侵蝕輸出上提取邊界框——紅色,真實邊界框——綠色; (d) Y Net 輸出的像素校正余量后的最終邊界框; (e) 被遮擋條碼場景的 Y-Net 輸出; (f) 由于輸入圖像中的條形碼重疊,最終提取的邊界框在像素校正余量后分組
總結(jié)
以上是生活随笔為你收集整理的论文阅读:超高分辨率图像中快速、准确的条码检测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 76岁“爷爷考生”第5次备战研究生考试
- 下一篇: 漫画:如何做一款比吃鸡还厉害的游戏