feat: add mastery feature to recitation wheel

This commit is contained in:
赵杰 Jie Zhao (雄狮汽车科技)
2025-11-02 23:46:11 +08:00
parent eddbe71849
commit cad03268f3
14 changed files with 439 additions and 617 deletions

View File

@@ -60,8 +60,10 @@ class OCRCalorieRecognitionModule(BaseModule):
def __init__(self, config: BaseConfig):
super().__init__(config, ModuleType.DATA_COLLECTION)
# OCR配置
self.ocr_methods = ['tesseract', 'paddleocr', 'easyocr']
# OCR配置 - 优先使用轻量级OCR引擎避免内存占用过大
# 默认只使用tesseract轻量级其他OCR引擎需要手动安装且作为可选依赖
self.ocr_methods = ['tesseract'] # 轻量级默认配置
# 可选添加其他OCR引擎'paddleocr', 'easyocr' (需要安装对应依赖)
self.min_confidence = 0.6
self.max_processing_time = 30.0
@@ -278,9 +280,11 @@ class OCRCalorieRecognitionModule(BaseModule):
return None
def _paddleocr_recognize(self, image: np.ndarray) -> Optional[OCRResult]:
"""使用PaddleOCR进行识别"""
"""使用PaddleOCR进行识别可选依赖需要PaddlePaddle占用内存较大"""
try:
# 这里需要安装paddleocr: pip install paddleocr
# 注意PaddleOCR需要安装paddleocr和PaddlePaddle占用内存较大
# 如需使用,请手动安装: pip install paddleocr
# 然后需要在OCR方法列表中添加'paddleocr'
from paddleocr import PaddleOCR
if 'paddleocr' not in self.ocr_engines:
@@ -327,9 +331,11 @@ class OCRCalorieRecognitionModule(BaseModule):
return None
def _easyocr_recognize(self, image: np.ndarray) -> Optional[OCRResult]:
"""使用EasyOCR进行识别"""
"""使用EasyOCR进行识别可选依赖需要PyTorch占用内存很大"""
try:
# 这里需要安装easyocr: pip install easyocr
# 注意EasyOCR需要安装easyocr和PyTorch占用内存很大通常需要1-2GB
# 如需使用,请手动安装: pip install easyocr
# 然后需要在OCR方法列表中添加'easyocr'
import easyocr
if 'easyocr' not in self.ocr_engines: