二維碼識別檢測的幾大開源庫比較

  1. QR碼的幾大開源庫對比:

二維碼已經進入人們的日常生活中,尤其是日本Denso Wave公司1994年發明的QR碼(Quick Response),由於其易於檢測、寫入信息量大、提供強大的糾錯機制,應用最爲廣泛,可說是名副其實的第一大圖像識別應用。

 

 

QR碼的檢測和解碼成爲很多應用開發的必備,面對衆多的開源庫,到底哪一種是比較好的呢?

BoofCV的作者Peter Abeles對較有影響力的五大開源庫中檢測算法進行了比較,值得大家參考。

  • 參與比較的開源庫:

BoofCV (Ver. 0.33):一種用Java實現的開源、實時的計算機視覺庫;

http://boofcv.org/

OpenCV (Ver. 4.0.1):OpenCV 4.0後加入了QR碼檢測和解碼功能,C++實現;

http://opencv.org/

Quirc (Feb 1, 2018. SHA 307473db):一種專門面向QR碼的檢測和解碼庫,C語言實現;

ZBar (Ver. 0.10):一種被廣泛使用的包含各種條碼檢測識別的專門庫,支持各種平臺,支持Python, Perl, C++等語言;

ZXing (Ver. 3.3.3):一種面向Java Android開發的各種條碼檢測識別庫,用Java開發,支持多種語言;

  • 圖像分類:

爲全方位比較各個開源庫檢測QR碼的性能,作者收集了在應用中大量常見的情況。

包括模糊、陰影、高光、扭曲、被塗損等15種情況,如下圖:

 

各類別包含的圖像數:

 

  • 檢測結果:

作者以檢測到的位置和標籤位置重合10%爲閾值定義檢測成功,計算true positives, false positives, true negatives, 與 false negatives,並最終計算F-Measure來比較檢測結果。

分類別的檢測結果統計:

不分類別的全局統計:

可見,沒有哪個庫處於統治地位完全比其他庫更好,但BoofCV在大多數情況下爲最好或者接近次好。Zbar在大多數類別下比ZXing好,但在ZXing最擅長的類別,Zbar不夠好。quirc在一般情況下都表現良好,但在其他庫表現最好的類別卻不是很好。OpenCV則是毫無疑問總是最差。

  • 檢測速度結果比較:

 

在哪一類別的表現均一致,ZXing是最快的庫,BoofCV次之。OpenCV的速度表現很穩定,最慢。。。

  • 結論:

選擇哪個庫取決於你的應用,如果二維碼比較標準建議BoofCV,它的檢測精度高而且速度也很好,如果二維碼有污損或外觀變化,ZXing是不錯的選擇。如果只能使用C++,則推薦Zbar。

(反正OpenCV是不被推薦的!)

其中Zbar的環境配置博客:Zbar開源項目二維碼識別(測試)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章