点云算法在条码识别任务中的应用
20210514 KOODLE
前言
標準條碼都是矩形,如果能找到條碼的中心位置和任意兩條邊,就可以將條碼的位置區域還原。在日常生活中,大部分場景中條碼自然是以正常的狀態呈現,然而在一些特殊的場合,例如飲料瓶,一些零食的包裝,二維碼通常會有一些形變。此外,圖像采集的過程中也會有這些情況產生。那么對于一些產生形變的條碼,應當是可以通過定位到條碼的中心位置將形變的圖像矯正。
一、點云算法示例
1.1 SPOT
SPOT出自論文SPOT:SPOT:Selective Point Cloud Voting for Better Proposal in Point Cloud Object Detection。作者認為,點云的稀疏性限制了深度學習模型獲取長期相關性的能力,使得模型獲取的特征模糊。在點云目標檢測中,特征模糊會使detectors定位目標中心困難,如圖1。因此作者提出了SPOT模塊,該模塊使用了注意力機制,幫助檢測器聚焦于相對清晰的特征,保持它們映射到多目標中心。
SPOT有兩步操作,檢測目標附近可疑點,綜合臨近點的投票結果。SPOT模塊見下圖。該模塊可以被用來代替現有的點云檢測模塊。
SPOT可以被視為一種注意力機制,其目的是在上圖的提案階段將注意力集中在表明可疑重合的興趣點上,例如三條3D線在同一點上匯合形成一個3D角。給定一組興趣點qi=(zi,fi)q^{i} = (z^{i},f^{i})qi=(zi,fi),它產生一組投票vji=(dji,fji,pji)v_j^{i}=(d_j^{i},f_j^{i},p_j^{i})vji?=(dji?,fji?,pji?)。每個興趣點可以貢獻一個或多個投票,這取決于它的可疑程度。投票vjiv_j^{i}vji?由3D坐標djid_j^{i}dji?,一個D維描述符fjif_j^{i}fji?以及概率pjip_j^{i}pji?組成。3D坐標是預測中心,描述符是一個改進版本的描述符fjif_j^{i}fji?輸入感興趣的點提供,概率是這個投票被預測為一個有效的對象中心的后驗。SPOT的目標是增加對可疑巧合點周圍點云的關注,并減少其他地方的關注。這是通過兩步操作來完成的:1.檢測可疑的重合位置,2.有選擇地投票給這些位置附近的對象中心。
1.2 PCN
PCN出自論文PCN:Point Completion Network。作者提出的PCN是一種新的形狀補全方法,該網絡直接對原始點云進行操作,不需要任何關于底層形狀的結構假設。PCN網絡結構見下圖。
論文中提出的Point Feature Encoding,Multistage Point Generation在處理目標檢測工作有值得借鑒的地方。
1.3 PointRCNN
PointRCNN出自論文PointRCNN:3D Object Proposal Generation and Detection from Point Cloud。作者提出了一種自下而上的基于點云的3D邊界框提案生成算法,將點云分割維前景和背景對象來生成少量高質量的3D提案。網絡模型見下圖。
PointRCNN包括兩個階段,第一階段旨在以自下而上的方案生成3D邊界框提案,基于3D邊界框生成真實分割掩模,分割前景點并同時從分割點生成少量邊界框提案。這樣的策略避免了在整個3D空間中使用大量3D錨框*(這點在條碼識別的任務中值得借鑒)*。第二階段進行規范的3D box優化。在生成3D提案之后,采用點云區域池化操作來“pool”來自Stage-1學到的點表示。與直接估計全局box坐標的方法不同,“pooled”3D點被轉換為規范坐標并與“pooled”的點特征以及Stage-1的分割掩模組合完成坐標優化。該策略充分利用了Stage-1的分割和提案子網絡提供的信息。
1.4 小結
點云算法常用于3D目標檢測應用領域,當前在自動駕駛領域應用較為廣泛。但對于條碼識別任務,當前來看意義不大。因為條碼圖片的結構是一種1D的結構,沒有空間幾何信息,使用點云算法無法檢測關鍵模糊點,效果有可能會變差。但是,由于點云算法使用的多為3DConv,計算量較大,維解決這一問題許多算法對卷積操作和信息恢復的過程加入了一些減少參數的方法,這點在我們條碼識別算法優化有借鑒意義。
參考
3D點云目標檢測算法匯總
PointRCNN
總結
以上是生活随笔為你收集整理的点云算法在条码识别任务中的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新手到黑客的最全入门路径图(附全部学习资
- 下一篇: 分布式数据一致性