首页 > 解决方案 > 训练模型以偏向给定背景

问题描述

我正在重新训练一个 inception resnet v2 模型来识别一个 3 位数字序列(特定字体类型)。该序列是用白色背景上的黑色字母人工生成的。我认为让模型仅查看特定背景将帮助我消除错误检测(在这种情况下,任何其他不在白色背景上的 3 位序列),因为模型不会预测(高概率)的序列背景不是白色的。这是一个有效的假设吗?

PS:我之前尝试过使用 tesseract 从图像中提取文本。我使用东部文本检测器进行检测,它为我提供了文本的边界框。我使用 pytesseract 对 OCR 进行了跟踪,但它总是返回一个空字符串。此外,在旋转数字时,东方文本检测器无法识别旋转的数字序列。因此,我别无选择,只能使用神经网络模型训练和执行文本检测和提取。

pytesseract 的代码:

import cv2
import numpy as np
import pytesseract
from pytesseract import  image_to_string
from PIL import Image
refPt=[(486,302),(540,308),(538,328),(484,323)] #the bbox returned by east
refpt = np.array(refPt,dtype=np.int32)
roi_corners=np.array(refPt[0:4],np.int32).reshape((-1,1,2))
inp_img=cv2.imread("1.jpg")
mask = np.zeros(inp_img.shape, dtype=np.uint8)
channel_count = inp_img.shape[2]
ignore_mask_color = (255,)*channel_count
mask = cv2.fillPoly(mask,   np.array(refPt[0:4],np.int32).reshape((-1,1,2))], ignore_mask_color)
masked_image = cv2.bitwise_and(inp_img, mask)
print (image_to_string(Image.fromarray(masked_image),lang='eng'))

这是在文本检测之后对其执行 OCR 的示例图像 这是一张旋转图像,东方文本检测器无法识别数字序列

标签: tensorflowmachine-learningcomputer-vision

解决方案


推荐阅读