# Ocr在线识别平台
**Repository Path**: myqfdev/ocr-ddd
## Basic Information
- **Project Name**: Ocr在线识别平台
- **Description**: 基于DDD架构的Java和Python混编项目
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master-cloud
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 7
- **Created**: 2024-12-05
- **Last Updated**: 2024-12-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OCR 项目 :sparkles:
## 📚 项目简介 :sunrise:
本项目是一个结合了DDD(领域驱动设计)架构理念的Java-Python跨界之作,旨在提供精准高效的OCR服务。
利用Python的[Paddle OCR](https://github.com/PaddlePaddle/PaddleOCR)库进行文字识别,该库以其高准确率和对复杂场景的适应性著称,能够轻松识别包括180°翻转在内的多种文本形式。
与此同时,Java部分采用了DDD架构,不仅加深了业务理解,也提升了代码的可维护性和扩展性。
前端则选用了Ant Design Pro,为用户提供流畅的交互体验。
前端代码仓库同样开源,欢迎您查阅和贡献:
- **前端项目地址**:[Laurc2004/ocr-frontend](https://github.com/Laurc2004/ocr-frontend) 使用Ant Design Pro构建,为用户带来极致的Web体验。
## 🔄 调用流程与功能说明 :gear:
### 💻 单体版本
- **公众号集成**:用户通过公众号发送图片或图片链接,根据引导即可启动OCR服务。
- **Python OCR引擎**:图片信息转发至Python后端,调用Paddle OCR进行文字识别。
- **Java处理逻辑**:识别结果被Java后端反序列化,提取关键信息并暂存于Redis(时效5分钟),利用线程池与Redission实现并发控制与流量限制。
### 🌐 微服务版本
- **Web界面操作**:用户访问Web界面,关注公众号后获取验证码登录,享受更丰富的功能。
- **用户认证与注册**:通过Spring Security实现安全验证,新用户自动注册。
- **多样化识别选项**:支持上传文件或输入URL,策略模式与工厂模式灵活选择处理策略,预留扩展接口如Base64识别。
- **结果输出定制**:提供专业模式输出详细坐标信息及文本识别分数,非专业模式则快速提取特定类型信息(如英文、车牌、身份证号等)。
- **支付与订单管理**:集成微信支付,采用EventBus解耦支付回调逻辑,配合定时任务处理异常订单。(前端暂时未做,本人微信商户到期)
## 🎨 功能展示 :framed_picture:
- **体验地址**:[在线体验](http://lixp.online:9888/)
- **截图预览**:
单体:
微服务:

- **测试图片**:[示例图片](https://img0.pcauto.com.cn/pcauto/1812/25/14171817_paizhao.jpg)
## 🛠️ 软件架构 :wrench:
遵循DDD原则,项目分为四层:
- **触发层**:http、消息队列、定时任务等
- **应用层**:协调业务逻辑
- **领域层**:核心业务规则与实体
- **基础设施层**:数据库、缓存等
## 🔧 技术栈亮点 :key:
### Java & 中间件
- **Spring生态**:Spring Boot, MVC, Security
- **网络与数据**:Okhttp, Jackson, Mybatis, MySQL, Redis
- **API管理与文档**:Knife4j
- **开发辅助**:Lombok
- **消息传递**:EventBus(Guava)
- **配置与服务发现**:Nacos
- **流量控制**:Sentinel
- **分布式锁**:Redission
### Python
- **轻量级Web框架**:Flask
- **OCR库**:PaddleOCR
### 前端技术
- **React + Ant Design Pro**:构建现代Web应用
- **ArkTs**(规划中):面向鸿蒙应用的TypeScript库
- **ReactNative**(规划中):面向移动端
## 📖 安装部署教程 :book:
[1.0.0简易版教程](https://github.com/Laurc2004/ocr-ddd/wiki/%E5%AE%89%E8%A3%85%E5%92%8C%E8%BF%90%E8%A1%8C%E6%95%99%E7%A8%8B(1.0.0%E7%AE%80%E6%98%93%E7%89%88))
[2.0.0微服务版教程](https://github.com/Laurc2004/ocr-ddd/wiki/%E5%AE%89%E8%A3%85%E5%92%8C%E8%BF%90%E8%A1%8C%E6%95%99%E7%A8%8B(2.0.0%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%89%88))
欢迎Star🌟 和Fork该项目,您的反馈与贡献是我们不断进步的动力!