开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 9634|回复: 24
收起左侧

[技术专题] VX二维码引擎OpenCV开源!3行代码让你拥有VX扫码能力

[复制链接]
结帖率:89% (79/89)
发表于 2021-6-24 15:54:52 | 显示全部楼层 |阅读模式   江苏省苏州市
作者:蔡博仑(腾讯高级研究员)
2011年12月微信3.5版本正式上线“扫一扫”二维码,历经9年蜕变,“扫一扫”从二维码名片到扫码支付、从小程序码到健康码,二维码已经成为一种生活方式,连接着数字与现实。
现在,在腾讯WeChatCV团队的贡献下,微信扫码引擎正式加入OpenCV开源了!只需3行代码,你便轻松拥有微信的扫码能力:
  
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
检测器微信二维码 
信息文本向量 
视觉_图像读取 (图片.指针, 编辑框3.内容, 1)
检测器.初始化 (“sr.prototxt”, “detect.caffemodel”, “sr.caffemodel”, “detect.prototxt”)
检测器.检测和解码 (图片.指针, 信息.指针)
编辑框4.内容 = 信息.取数据 (0)


i支持库列表   支持库注释   
cv(未知支持库)
微信扫码引擎收录于:
opencv_contrib/modules/wechat_qrcode
开发文档:https://docs.opencv.org/master/d5/d04/classcv_1_1wechat__qrcode_1_1WeChatQRCode.html
微信扫码引擎是一款基于开源引擎ZXing,并高度优化和深度改造的高性能轻量二维码识别器。
1. 基于CNN的二维码检测
“一图多码”是扫码支付经常遇到的线下场景。早在2016年,微信扫码引擎在业内率先支持远距离二维码检测、自动调焦定位、多码检测识别。然而,传统方法需要牺牲40%以上的性能来支持多码的检测与识别。伴随着深度学习技术的成熟和移动端计算能力的提升,微信扫码引擎引入基于CNN的二维码检测器解决上述问题。
v2-95bd16ec8482ccb1b1663e23f3477bb0_720w.jpg
我们以SSD框架为基础,构造了短小精干的二维码检测器(图1),采用残差连接(Residual Concat)、深度卷积(Depthwise Convolution)、空洞卷积(DilatedConvolution)、卷积投影(Convolution Projection)等技术进行了针对性的优化。整个模型大小仅943KB,iPhone7(A10)单CPU的推理时间仅需20ms,很好地满足“低延时、小体积、高召回”的业务需求。
检测代码: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
参数文件:https://github.com/WeChatCV/opencv_3rdparty/blob/wechat_qrcode/detect.caffemodel

2. 基于CNN的二维码增强

“大图小码”是远距扫码和长按识码经常面临的难点,二维码增强技术可以让小码更加清晰。2014年,微信率先在对话中上线“识别图中二维码”能力,离不开增强技术的加持。在长按识别的场景中,二维码图像经过用户的裁剪、压缩、转发,图像质量严重受损,分辨率急剧下降,边缘变得模糊不清,这给扫码引擎的识别带来了极大的挑战。
传统图像增强算法很难完美地解决以上问题,因此微信扫码引擎率先在识别流程中引入了基于深度学习的超分辨率技术(图2)。在网络结构上,密集连接(Dense Concat)、深度卷积(Depthwise Convolution)、反向卷积(Deconvolution)、残差学习(Residual Learning)等技术改善模型的性能;在目标函数上,针对二维码强边缘和二值化的特点,结合L2/L1损失、边界加权、二值约束设计了针对二维码的目标函数。经过精心的调优,超分辨率模型大小仅23KB,在iPhone7(A10)单CPU的推理时间仅需6ms(100x100超分200x200),完全满足移动端的应用需求。
v2-c1cf0edb59c6629524e92c9d6965b1c7_720w.jpg
超分代码: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
参数文件:https://github.com/WeChatCV/opencv_3rdparty/blob/wechat_qrcode/sr.caffemodel

3. 更鲁棒的定位点检测
二维码在识别的时候,通常需要根据扫描像素行/列匹配对应比例来寻找定位点(图3)。
v2-649b755f326eea64f3b4c1e5b1ccbfc1_720w.jpg
在定位点检测上,我们提出面积法的定位点检测方法,相比于传统扫描线方法更为鲁棒和高效,有效地避免了误召回和漏召回;在定位点匹配上,特征聚类方法使得扫码引擎可以高效和准确地匹配多个定位点;在图像二值化上,引入多种更为鲁棒的二值化方法,有效地提高解码的成功率。
核心代码:https://github.com/opencv/opencv_contrib/blob/master/modules/wechat_qrcode/src/wechat_qrcode.cpp#L117
结合传统计算机视觉和深度学习技术,微信扫码引擎解决了一图多码、大图小码、鲁棒解码等业务痛点和技术难点。如今,该引擎在OpenCV上正式开源,期待广大开发者与我们一同打造业内领先的扫码引擎!

感谢腾讯WeChatCV团队的贡献,更多关于微信二维码引擎的技术分析,敬请关注OpenCV中国团队的OpenCV Webinar。



结帖率:96% (24/25)

签到天数: 8 天

发表于 2021-10-3 20:46:41 | 显示全部楼层   福建省福州市
这个很高端. 不懂...
回复 支持 反对

使用道具 举报

发表于 2021-9-28 16:44:44 | 显示全部楼层   湖南省湘潭市
看看能做成啥要帮啊
回复 支持 反对

使用道具 举报

发表于 2021-9-2 16:42:42 | 显示全部楼层   山西省临汾市
cv文件都没有,在这干啥说的
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 13 天

发表于 2021-8-22 11:53:41 | 显示全部楼层   安徽省芜湖市
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:89% (79/89)

签到天数: 11 天

 楼主| 发表于 2021-8-10 08:21:01 | 显示全部楼层   江苏省苏州市
穗玉天涯 发表于 2021-8-5 16:28
我愿意为教程付费,不愿意为软件付费。

???????????            这不是软件
回复 支持 反对

使用道具 举报

结帖率:100% (16/16)

签到天数: 4 天

发表于 2021-8-5 16:28:13 | 显示全部楼层   江苏省苏州市
我愿意为教程付费,不愿意为软件付费。
回复 支持 反对

使用道具 举报

结帖率:78% (46/59)
发表于 2021-8-3 18:31:28 | 显示全部楼层   广东省汕头市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:89% (79/89)

签到天数: 11 天

 楼主| 发表于 2021-7-16 19:22:25 | 显示全部楼层   江苏省苏州市

群里有免费库 与相应例子  基于4.5.2     可以试试
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 2 天

发表于 2021-7-16 18:49:04 | 显示全部楼层   广西壮族自治区柳州市
要钱的 散了吧
回复 支持 反对

使用道具 举报

发表于 2021-7-7 19:27:49 | 显示全部楼层   上海市上海市
66666666666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表