配色: 字号:
《AI硬件与Pyhthon编程实践》11计算机视觉与二维码识别写字字帖
2023-05-24 | 阅:  转:  |  分享 
  
计算机视觉与二维码识别人工智能开源硬件与python编程实践情境导入共享单车应用,其实就是通过“用户手机-二维码-云端后台-智能车锁”之间
的信息传递来完成的。用户使用手机先扫单车上二维码,而后向云端发起解锁请求。云端对用户信息、单车信息进行核查,而后将授权信息发送给手
机。用户通过手机蓝牙接口将解锁指令和授权信息传递给单车的智能锁,智能锁核验授权信息后解锁,并将解锁成功的信息通知手机。手机将解锁成
功的信息回复给云端,云端开始给用户计费。任务与目标了解图像处理及二维码识别技术的基本原理、相关算法和应用框架;掌握运用人工智能开源
硬件设计智能应用系统的方法,掌握Python语言的编程方法;应用人工智能开源硬件和Python相关算法模块设计二维码扫描与识别应用
系统;利用Python编程,编写二维码提取及识别算法,实现对二维码的识别解码功能,针对生活应用场景,进一步创新设计具有实用价值的二
维码应用系统。知识拓展:二维码 二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;
使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。它具有条码技术的一
些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有校验功能等。知识拓展:矩阵式二维码 二维码可以分为堆叠式二维码和矩阵
式二维码。 堆叠式二维码由多行短截的一维条码堆叠而成,其编码原理是建立在一维条码基础之上,按需要堆积成二行或多行;矩阵式二维码是建
立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。矩阵式二维码以矩阵的形式组成,在矩阵相应元素位置上
用“点”表示二进制“1”, 用“空”表示二进制“0”,“点”和“空”的排列组成代码。矩阵式二维码在一个矩形空间通过黑、白像素在矩阵
中的不同分布进行编码。知识拓展:二维码的特点 编码信息容量大。可容纳多达1850个大写字母,或2710个数字,或1108个字节,或
500多个汉字,比普通条码信息容量约高几十倍。编码范围广。二维码可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码,用条
码表示出来;可以表示多种语言文字;可表示图像数据。容错纠错能力强。这使得二维码因穿孔、污损等引起局部损坏时,照样可以正确得到识读,
损毁面积达30%仍可恢复信息。译码可靠性高。它比普通条码译码错误率百万分之二要低得多,误码率不超过千万分之一。便于推广应用。可引入
加密措施,保密性、防伪性好。二维码形状、尺寸大小可变,成本低,易制作,持久耐用。知识拓展:QR Code二维码 知识拓展: QR码
图形结构 QR码的图形要可以分为编码区和功能图形如图所示,编码区又可以分为数据与纠错码、个格式信息模块和个版本信息模块版本号大于,
功能图形主要包括寻像图像、定位图像以及校正图像。知识拓展:二维码解码识别技术 分为五个步骤:图像预处理、定位与校正、读取数据、纠错
以及译码。设计与实践二维码的定位与检测图像畸变校正二维码识别Python程序调试、验证及完善二维码结构特征 二维码扫描首先要做的就
是要发现下图中三个黑色正方形区域 ,如果找到这个三个区域,就成功的检测到一个二维码了;三个角上的正方形区域从左到右,从上到下黑白比
例为1:1:3:1:1。 二维码的定位与检测算法 先对图片进行灰度处理,再对图像做二值化处理;对二值化图像在垂直y、水平x方向进
行形态学上的开操作,即进行先腐蚀后膨胀的操作;接下来标记联通区域,找到二维码的三个特征区域;通过定位二维码图案找到二维码所在的区域
,提取这个区域。图像畸变校正image.lens_corr([strength=1.8[, zoom=1.0]])方法进行镜头畸变
校正,以去除镜头造成的图像鱼眼效果。其中,strength 值确定了对图像进行去鱼眼效果的程度。zoom 是在对图像进行缩放的数值
。默认值为 1.0 。镜头畸变校正的Python代码如下: img = sensor.snapshot() img.l
ens_corr(1.3) # strength of 1.3 is good for the 2.8mm lens.二维码的识别
image.find_qrcodes([roi])方法查找 roi 区域内的所有二维码,返回一个 image.qrcode 对象的
列表。利用image.lens_corr方法消除镜头的桶形畸变。进行二维码的识别的Python代码如下: img = sen
sor.snapshot() img.lens_corr(1.3) #对于2.8mm镜头strength的经验值为1.3.
for code in img.find_qrcodes(): print(code)二维码的识别find_q
rcodes函数只能用于识别QRCODE码,应用时需要注意;可以利用串口终端显示区观察二维码的识别情况,通过print(code)
把识别出的二维码信息显示出来;分析与思考互联网上有很多在线二维码生成器,了解他们的功能和用法,看看能否生成一批你所需要的二维码。提
出你的设计方案,并进行尝试。了解人工智能开源硬件板的对外接口,利用人工智能开源硬件板可以设计二维码应用系统吗?针对你的创意还有什么
欠缺,给出一个解决方案。针对校园或社会生活,二维码还能发挥什么作用?结合诸如Arduino等开源硬件和传感器设计一个解决方案。早期火车票实名制实施初期票面二维码采用明文 QR编码,曾被不法分子利用来收集旅客姓名、身份证等用户隐私信息。进一步了解二维码应用系统存在哪些安全隐患,思考有什么对策。
献花(0)
+1
(本文系大高老师首藏)