跳轉到內容

SwisTrack/Components/IDReaderRing

來自華夏公益教科書,開放書籍,開放世界

此元件透過讀取先前檢測到的粒子周圍的圓形條形碼來檢測標記的 ID 和旋轉。條形碼的 ID 和旋轉透過將條形碼與所有可能的程式碼進行相關來確定,這些程式碼是在如下所示的 XML 檔案中定義的

  <?xml version="1.0"?>
  <objectlist>
    <objects>
      <object id="1">
        <barcode>
          <chips length="14" symbol="15" />
          <angle>0</angle>
        </barcode>
      </object>
      <object id="2">
        <barcode>
          <chips length="14" symbol="332" />
          <angle>0</angle>
        </barcode>
      </object>
      <object id="3">
        <barcode>
          <chips length="14" symbol="6822" />
          <angle>0</angle>
        </barcode>
      </object>
    </objects>
  </objectlist>

該演算法還確定每個檢測的置信度級別,這可能有助於拒絕錯誤檢測的粒子(誤報)。

該演算法分兩個步驟進行

  1. 位於粒子周圍環上的所有畫素都用它們的角度進行索引。畫素的角度和半徑使用畫素的中心和(潛在的亞解析度)粒子位置來計算。
  2. 然後將這些索引畫素與所有 ID 在所有可能的角度以 1 度間隔進行相關。

最佳匹配(最高相關性)被分配給粒子。

請參考IDReaderRing 示例以獲取生成合適標記的指令碼。

請注意,該演算法假設條形碼是完美的圓形,因此在發生較大變形時表現不佳。此外,儘管該演算法在配置良好的設定中接近最優,但需要相當高的解析度(以及對焦良好的鏡頭)才能讀取此類程式碼。例如,14 晶片程式碼在影像上至少應顯示為 20x20 畫素。

這種型別的標記程式碼有特定的名稱嗎? 它可能是Wikipedia: ShotCode 還是其他Wikipedia: 2D 條形碼

檔案:SwisTrack IDReaderRingMarkers.png

使用例如 BlobDetectionCircularHough 元件檢測到的一組粒子,加上帶有圓形條形碼的灰度影像。請注意,粒子中心必須位於圓形條形碼的中心。

同一組粒子,附加了 ID、方向和置信度值。

外半徑

[編輯 | 編輯原始碼]

環的外半徑。

內半徑

[編輯 | 編輯原始碼]

環的內半徑。請注意,內半徑應選擇得當,以便標記中心的 blob(如果有)不屬於環的一部分。

物件和程式碼

[編輯 | 編輯原始碼]

包含物件列表的 XML 檔案(見上文描述)。

華夏公益教科書