【PyQt5】接口百度AI的文字识别集成系统——数据库和识别历史窗口

该项目利用PyQt5结合百度AI的文字识别服务,实现了包括身份证、银行卡等在内的多种识别功能,并通过SQLite数据库保存识别历史。用户可以查看和模糊查询识别记录。系统设计灵感来源于他人博客,详细代码和数据库设计可在Github找到。

项目使用PyQt5接口百度AI文字识别服务,使用SQLite为数据库引擎,开发实现普通文字识别、身份证识别、银行卡识别、驾驶证识别、行驶证识别和车牌识别的集成系统,百度AI的文字识别还有很多别的功能,可以根据个体不同需要调入。
Github地址:https://github.com/shanghaixuhuan/myOCR
系统的识别历史窗口直接模仿了我的大神朋友的博客。https://blog.csdn.net/weixin_38312031/article/details/80145652
界面效果如图,能够实现对识别历史的查看和根据不同属性进行模糊查询。
在这里插入图片描述
数据库设计如下,除了身份证是正反面两张图的,其他都是识别一张图的,比较雷同,所以就建立在同一张表上了。

在这里插入图片描述
另外详细信息可以查看识别的图片,具体信息和识别结果。
在这里插入图片描述
窗口代码如下:

import sys
from PyQt5.QtWidgets import (QWidget, QApplication, QVBoxLayout, QHBoxLayout,
                             QLineEdit, QPushButton, QComboBox, QLabel, QMessageBox,
                             QTableView, QAbstractItemView, QDialog)
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import Qt
from PyQt5.QtSql import QSqlDatabase, QSqlQueryModel
import qdarkstyle
from RecordDetail import RecordDetailDialog
from RecordDetail_id import RecordDetailDialog_id


class RecordsViewer(QDialog):
    def __init__(self):
        super(RecordsViewer, self).__init__()
        self.resize(800, 500)
        self.setWindowTitle('myOCR——我的识别历史')
        self.setWindowIcon(QIcon('./images/icon.png'))
        self.queryModel = None
        self.tableView = None
        self.currentPage = 0
        self.totalPage = 0
        self.totalRecord = 0
        self.pageRecord = 10
        self.initUI()

    def initUI(self):
        self.vbox = QVBoxLayout()
        self.h1box = QHBoxLayout()
        self.h2box = QHBoxLayout()

        self.searchEdit = QLineEdit()
        self.searchEdit.setFixedHeight(32)
        self.searchEdit.setFont(QFont("苏新诗柳楷繁", 15))

        self.searchButton = QPushButton("查询")
        self.searchButton.setFixedHeight(32)
        self.searchButton.setFont(QFont("苏新诗柳楷繁", 15))

        self.condisionComboBox = QComboBox()
        searchCondision = ['按识别编号查询', '按识别时间查询', '按识别类型查询',
                           '按识别文字查询']
        self.condisionComboBox.setFixedHeight(32)
        self.condisionComboBox.setFont(QFont("苏新诗柳楷繁", 15))
        self.condisionComboBox.addItems(searchCondision)

        self.h1box.addWidget(self.searchEdit)
        self.h1box.addWidget(self.condisionComboBox)
        self.h1box.addWidget(self.searchButton)

        self.jumpToLabel = QLabel(self)
        self.jumpToLabel.setText("跳转到第")
        self.jumpToLabel.setFont(QFont("苏新诗柳楷繁", 12))
        self.jumpToLabel.setFixedWidth(90)
        self.pageEdit = QLineEdit()
        self.pageEdit.setFixedWidth(30)
        self.pageEdit.setFont(QFont("苏新诗柳楷繁", 12))
        s = "/" + str(self.totalPage) + "页"
        self.pageLabel = QLabel(s)
        self.pageLabel.setFont(QFont("苏新诗柳楷繁", 12))
        self.pageLabel.setFixedWidth(40)
        self.jumpToButton = QPushButton(sel
智能教育系统能够根据学生的学习情况提供个性化的教学方案的任务书,任务书案例如上1.目的意义 通过综合性实验,让学生能够综合运用之前所学习的相关基础知识点,并将其应用于项目案例的设计开发中,从而加深对智能图像算法相关知识点的理解巩固效果。 (1)掌握Roboflow对图像数据集的标注 (2)掌握YOLOv8的目标检测算法训练推演 (3)掌握使用PyQt5构建一个智能结算系统——至诚的24h食堂界面,具备用户安全管理、视频读取、结算等模块 2.《智能结算系统》项目 2.1.项目背景 目前,随着智能信息化时代的到来,人工智能与传感技术取得了巨大进步,智能机器人的发展从传统的工业机器人逐渐转向服务机器人及教育娱乐机器人等。由于机器生产相比人工作业具有产量稳定、效率高及节省成本等巨大优势,机器取代人工的趋势愈加明显,而机器视觉是帮助机器人感知周围环境,提高机器人的灵活性、适应性及智能化水平的关键因素之一。因此,针对目前快餐结算人工结算不准确,效率低下等诸多弊端,使用机器视觉技术实现智能结算具有十分重要的意义。基本的需求大致分为:用户的注册、登录,用户管理;视频读取,菜品结算等。 2.2.项目内容 本智能结算系统的开发主要分为三大部分:数据标注、模型训练、系统开发。数据标注部分将使用Roboflow对食堂采集的快餐图像数据集进行标注;模型训练部分则需要使用YOLOv8对标注的数据集在GPU上训练推理;系统开发则包括用户安全管理、视频读取、结算等模块,用户安全管理模块包括用户账号注册,登录账户,用户注销,用户个人主页,视频读取模块包括视频流读取获取当前快餐图像帧,结算模块则要实现当前菜品的二维码结算。 2.2.1.数据集 FIT-DISH2000是专为餐盘识别而设计的图像数据集。利用2K高清摄像头,在食堂捕捉了近2000张分辨率为1080P的餐盘实物图片。共分为5个不同类别,为确保模型具有良好的泛化能力,在数据采集过程中考虑了多种环境、光照条件拍摄角度,以确保模型能够准确识别不同场景下的餐盘图片。部分数据集图片,如图所示。 FIT-DISH2000数据集图片 2.2.2.系统开发 本系统主要由计算机终端设备,支架式摄像头,基于YOLOv8的检测网络权重模型PyQt5展示窗口界面组成。搭载已经训练好的网络权重,可以做到对餐盘进行识别检测并输出价格,通过与PyQt5设计的界面窗口进行前后端的数据结合,展示出支付窗口。其总体流程概图如下: 以下将重点介绍基于PyQt5的模块介绍,PyQt5包括登录注册界面系统界面,系统界面则要包含读取视频流区域、显示检测结果区域、结算返回按钮以及显示当前菜品总计金额扫码支付二维码。 (1)用户安全管理模块 1)注册 用户没有账号时需要进行注册账号,当用户点击注册按钮,切换到注册页面,输入自己的账号密码后确认。后台获取输入的内容后传递给服务器并发送请求。若服务器请求成功,便把获取到的内容保存到后端数据库的用户表单里,并返回注册成功的消息;若请求失败,则发送注册失败的提示。 2)登录 用户需登录才能进入智能结算的主页面,当用户点击登录按钮,切换到登录页面,输入自己注册的账号密码后确认。后台获取输入的内容传递给服务器并发送请求。若服务器请求成功,便把获取到的内容与后端数据库中的用户表单中保存的账号密码进行比对,并返回对应的结果;若请求失败,则提示登录失败。 3)注销 用户点击退出按钮,即从登录状态变为非登录状态,页面将直接刷新并返回到登录页面。 4)用户主页 用户登录后可以查看用户的用户名密码的修改。 (2)视频读取模块: 使用OpenCV读取本地摄像头的视频流数据,可使用VideoCapture读取视频。 (3)结算模块: 结算模块主要通过结算按钮,从视频流中拉取一帧图像送入餐盘检测模型进行检测,并将检测结果后处理后显示在结果区,并显示总计金额收款二维码。 任务下达日期: 年 月 日 完成日期: 年 月 日 指导教师 (签名) 学 生 (签名)
最新发布
05-29
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值