Opencv之微信二维码检测与解析

简介

微信二维码检测器是由微信计算机视觉团队(WeChatCV)提供的一个高性能、轻量级的二维码检测与解码库。它已广泛应用于腾讯的各种应用,包括微信、微信、QQ、QQ浏览器等。微信二维码检测仪有四个主要特点:

  1. 基于CNN的QR码检测器。与传统的检测器不同,本文提出了一种用于多码检测的微小CNN模型。该检测器基于SSD架构,采用MobileNetV2类主干结构,运行在caffe推理框架上。
  2. 基于CNN的QR码增强。为了提高微小二维码的性能,我们设计了一种超分辨率CNN二维码模型QRSR。深度卷积、DenseNet-concat和反褶积是QRSR模型的核心技术。
  3. 更强大的搜索模式检测。除了传统的水平线搜索外,本文还提出了一种基于面积大小的搜索模式检测方法。通过计算黑白块的面积大小,利用预先计算好的连通单元来确定查找器的位置。
  4. 大规模工程优化。在zing-cpp的基础上,我们进行了大量的工程优化以提高解码成功率,如尝试更多的二值化方法、支持N:1:3:1:1查找模式检测、查找更多的对齐模式、聚类相似大小的查找模式等。

代码展示

# -*- coding:utf-8 -*-

import cv2
import numpy as np

image_path = 'image.png'
img = cv2.imread(image_path)
detector = cv2.wechat_qrcode_WeChatQRCode("detect.prototxt", "detect.caffemodel", "sr.prototxt", "sr.caffemodel")
res, points = detector.detectAndDecode(img)

for one_pt in points:
    one_pt = np.array(one_pt, dtype=np.int)
    cv2.polylines(img, [one_pt], isClosed=True, color=(255, 0, 0), thickness=2)
print('条码信息:', res)
cv2.imshow('img', img)
cv2.waitKey()

模型下载地址: https://github.com/WeChatCV/opencv_3rdparty/tree/wechat_qrcode

效果展示

Opencv之微信二维码检测与解析_第1张图片

你可能感兴趣的:(opencv)