<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          微信二維碼引擎OpenCV開源!3行代碼讓你擁有微信掃碼能力

          共 2848字,需瀏覽 6分鐘

           ·

          2021-02-01 22:20

          ↑ 點擊藍字?關注極市平臺

          作者丨蔡博侖
          來源丨OpenCV團隊
          編輯丨極市平臺

          極市導讀

          ?

          在騰訊WeChatCV團隊的貢獻下,微信掃碼引擎正式加入OpenCV開源了!只需3行代碼,你便輕松擁有微信的掃碼能力!?>>加入極市CV技術交流群,走在計算機視覺的最前沿

          2011年12月微信3.5版本正式上線“掃一掃”二維碼,歷經(jīng)9年蛻變,“掃一掃”從二維碼名片到掃碼支付、從小程序碼到健康碼,二維碼已經(jīng)成為一種生活方式,連接著數(shù)字與現(xiàn)實。


          現(xiàn)在,在騰訊WeChatCV團隊的貢獻下,微信掃碼引擎正式加入OpenCV開源了!只需3行代碼,你便輕松擁有微信的掃碼能力:


          import?cv2

          detector?=?cv2.wechat_qrcode_WeChatQRCode("detect.prototxt",?"detect.caffemodel",?"sr.prototxt",?"sr.caffemodel")
          img?=?cv2.imread("img.jpg")
          res,?points?=?detector.detectAndDecode(img)

          print(res,?points)
          微信掃碼引擎收錄于:
          opencv_contrib/modules/wechat_qrcode
          開發(fā)文檔:
          https://docs.opencv.org/master/d5/d04/classcv_1_1wechat__qrcode_1_1WeChatQRCode.html

          微信掃碼引擎是一款基于開源引擎ZXing,并高度優(yōu)化和深度改造的高性能輕量二維碼識別器。



          1.?基于CNN的二維碼檢測


          “一圖多碼”是掃碼支付經(jīng)常遇到的線下場景。早在2016年,微信掃碼引擎在業(yè)內(nèi)率先支持遠距離二維碼檢測、自動調(diào)焦定位、多碼檢測識別。然而,傳統(tǒng)方法需要犧牲40%以上的性能來支持多碼的檢測與識別。伴隨著深度學習技術的成熟和移動端計算能力的提升,微信掃碼引擎引入基于CNN的二維碼檢測器解決上述問題。


          圖1 二維碼檢測器


          我們以SSD框架為基礎,構造了短小精干的二維碼檢測器(圖1),采用殘差連接(Residual Concat)、深度卷積(Depthwise Convolution)、空洞卷積(Dilated Convolution)、卷積投影(Convolution Projection)等技術進行了針對性的優(yōu)化。整個模型大小僅943KB,iPhone7(A10)單CPU的推理時間僅需20ms,很好地滿足“低延時、小體積、高召回”的業(yè)務需求。

          檢測代碼:
          https://github.com/opencv/opencv_contrib/blob/master/modules/wechat_qrcode/src/wechat_qrcode.cpp#L156
          模型文件:
          https://github.com/WeChatCV/opencv_3rdparty/blob/wechat_qrcode/detect.prototxt
          參數(shù)文件:
          https://github.com/WeChatCV/opencv_3rdparty/blob/wechat_qrcode/detect.caffemodel



          2. 基于CNN的二維碼增強

          大圖小碼”是遠距掃碼和長按識碼經(jīng)常面臨的難點,二維碼增強技術可以讓小碼更加清晰。2014年,微信率先在對話中上線“識別圖中二維碼”能力,離不開增強技術的加持。在長按識別的場景中,二維碼圖像經(jīng)過用戶的裁剪、壓縮、轉發(fā),圖像質量嚴重受損,分辨率急劇下降,邊緣變得模糊不清,這給掃碼引擎的識別帶來了極大的挑戰(zhàn)。

          傳統(tǒng)圖像增強算法很難完美地解決以上問題,因此微信掃碼引擎率先在識別流程中引入了基于深度學習的超分辨率技術(圖2)。在網(wǎng)絡結構上,密集連接(Dense Concat)、深度卷積(Depthwise Convolution)、反向卷積(Deconvolution)、殘差學習(Residual Learning)等技術改善模型的性能;在目標函數(shù)上,針對二維碼強邊緣和二值化的特點,結合L2/L1損失、邊界加權、二值約束設計了針對二維碼的目標函數(shù)。經(jīng)過精心的調(diào)優(yōu),超分辨率模型大小僅23KB,在iPhone7(A10)單CPU的推理時間僅需6ms(100x100超分200x200),完全滿足移動端的應用需求。

          圖2?二維碼超分辨率

          超分代碼:https://github.com/opencv/opencv_contrib/blob/master/modules/wechat_qrcode/src/wechat_qrcode.cpp#L68
          模型文件:
          https://github.com/WeChatCV/opencv_3rdparty/blob/wechat_qrcode/sr.prototxt
          參數(shù)文件:
          https://github.com/WeChatCV/opencv_3rdparty/blob/wechat_qrcode/sr.caffemodel


          3. 更魯棒的定位點檢測

          二維碼在識別的時候,通常需要根據(jù)掃描像素行/列匹配對應比例來尋找定位點(圖3)。

          圖3 二維碼定位點

          在定位點檢測上,我們提出面積法的定位點檢測方法,相比于傳統(tǒng)掃描線方法更為魯棒和高效,有效地避免了誤召回和漏召回;在定位點匹配上,特征聚類方法使得掃碼引擎可以高效和準確地匹配多個定位點;在圖像二值化上,引入多種更為魯棒的二值化方法,有效地提高解碼的成功率。


          核心代碼:
          https://github.com/opencv/opencv_contrib/blob/master/modules/wechat_qrcode/src/wechat_qrcode.cpp#L117

          推薦閱讀



          添加極市小助手微信(ID : cvmart2),備注:姓名-學校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳),即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術交流群:每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~
          △長按添加極市小助手

          △長按關注極市平臺,獲取最新CV干貨

          覺得有用麻煩給個在看啦~??
          瀏覽 98
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久人人爽人人爽人人av东京热 | 1234无码在线观看 | 操逼亚洲视频 | 欧美操逼视频免费观看 | 综合激情五月亚洲网图片 |