疫情已经持续很久,打算做一个健康码颜色识别和信息提取的应用。本文采用opencv
和PaddleOCR、Flask来完成
PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力开发者训练出更好的模型,并应用落地。
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。
微信二维码识别
结合传统计算机视觉和深度学习技术,微信扫码引擎解决了一图多码、大图小码、鲁棒解码等业务痛点和技术难点。只需3行代码,轻松拥有微信的扫码能力。
从上面的代码中可获取二维码的范围,接下来主要使用预定好的颜色范围去生成等值线,判断是否存在
文字识别中主要使用了paddleocr,目前用的笨办法全部识别出来以后再去用正则表达式去匹配出合适的文字,主要是关注核酸时间和是否阴性。为了能离线使用,最好提前下载好模型文件。
初始化代码:
文字识别代码:
用户要通过上传图片文件来完成识别操作,这时候就需要使用flask。
上传接口需要简单设置下跨域(方便调试)以及路由接口,同时要验证文件后缀名,以保证上传指定的文件。
通过postman可以调用接口进行测试
https://baike.baidu.com/item/Flask/1241509
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/README_ch.md
https://github.com/WeChatCV/opencv_3rdparty
https://zhuanlan.zhihu.com/p/417226916
https://blog.yuanpei.me/posts/1509692610/
https://zhuanlan.zhihu.com/p/401841723
https://github.com/PaddlePaddle/PaddleOCR
https://ai.baidu.com/support/news?action=detail&id=2912
https://blog.csdn.net/Mrli0530/article/details/122185635
https://zhuanlan.zhihu.com/p/430174498
https://blog.csdn.net/Kukeoo/article/details/116245337
https://blog.csdn.net/qq_36853469/article/details/106416128
https://blog.csdn.net/juzicode00/article/details/122205315
https://zhuanlan.zhihu.com/p/348349456