数码管数字识别方法整理

数码管数字识别方法整理

  • 图像任务
    • OCR任务
    • 图像分类
    • 目标检测
    • 图像分割
    • 图像增强
    • 视频任务
  • 正文: OCR——数码管数字识别方法整理
    • 文本检测+ 字符分割+ 单数字识别
      • 参考资料:
      • 参考博客:
      • 参考代码
      • 使用工具
      • 常见挑战
      • 比赛(数据)
      • 文本检测DB: Real-time Scene Text Detection with Differentiable Binarization
      • cook
    • 文本检测+ 序列识别
      • 序列识别 CRNN == CNN +RNN +CTC
      • 序列识别—— 基于attention文字识别
    • tessernet工具/  百度API工具

图像任务


OCR任务

参考博客:
CV综述OCR任务—目录

图像分类

构建我的classification框架记录

目标检测

参考CV综述目标检测整理—目录

图像分割

参考CV综述图像分割整理—目录

图像增强

  • 传统方法增强对比度等
  • SR任务

视频任务

  • 目标跟踪

正文: OCR——数码管数字识别方法整理


文本检测+ 字符分割+ 单数字识别

待测方法:
利用颜色信息,尝试使用R通道进行字符分割。

参考资料:

《halcon机器视觉算法原理与编程实战》 by杨青
《数字图像处理第三版》

参考博客:

CV综述OCR任务—目录
数码管数字识别

参考代码

MhLiao/DB
数码管数字识别

使用工具

  • labelme
  • paddleocr

常见挑战

  • 图像质量不清晰,干扰因素多,不均匀光照,反光等问题
  • 表盘种类多,对于不同表,不同位数需要采用不同的方法
  • 现有数据太少,需要自己收集并处理数据
  • 模型处理速度慢,需要对代码和模型进行优化

比赛(数据)

  • ICDAR2015

文本检测DB: Real-time Scene Text Detection with Differentiable Binarization

论文: Real-time Scene Text Detection with Differentiable Binarization
源码:
MhLiao/DB
参考博客:
《DB:Real-time Scene Text Detection with Differentiable Binarization》论文笔记

特点:

  • 参考paddleocr中的检测模型,效果比较好

cook

  • 第一步:采集200张数码管图片数据,使用labelme进行polymoid文本框标注,生成json格式文件; 编写json2txt.py生成 .txt标注文件,整理生成icdar2015 格式数据集。加入到icdar2015数据集中(不知道icdar2015数据集是否有必要加入训练中
(torchpy36) air@air-System-Product-Name:~/model-train/OCR/DB/datasets$ python json2txt.py 
(torchpy36) air@air-System-Product-Name:~/model-train/OCR/DB/datasets$ python getFilenames.py 
  • 参考MhLiao/DB,服务器训练db检测模型,在gtx2080ti上训练1200epoch需要两三天的时间。训练完毕后测试效果。
(torchpy36) air@air-Server:/mnt/zxx_dir/model-train/OCR/DB$ CUDA_VISIBLE_DEVICES=0 python train.py experiments/seg_detector/ic15_resnet50_deform_thre.yaml --num_gpus 1
  • 思路先用db做检测生成框,筛选出数码管显示的框框,根据数码管位数,将框平均切分,获得单字符,单字符二值化,通过数字识别模型做20个类别的分类.(0-9)/0.-9.)
(tf13py36) air@air-System-Product-Name:~/model-train/OCR/tube_digit_recognization-master$ python train.py 
  • 获得单字符的数据集: 先从标注的数据集中获得带有数码管显示的框框的图片,再通过get_rec_datas.py根据数码管位数均分(这种方法很有局限性,因为有的数码管是液晶屏幕,位数不定,使用均分法是很笨的方法不够灵活)
(torchpy36) air@air-System-Product-Name:~/model-train/OCR/DB/datasets/train$ python get_rec_datas.py

文本检测+ 序列识别

序列识别 CRNN == CNN +RNN +CTC

论文: An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition @20150721
源码: meijieru/crnn.pytorch
特点:

  • 每次都要计算概率,速度慢
  • end to end识别

参考博客
CRNN算法详解

序列识别—— 基于attention文字识别

attention_ocr


tessernet工具/  百度API工具

论文:
源码:
特点:

你可能感兴趣的:(图像分类,CNN,OCR,深度学习,机器学习)