SlideShare a Scribd company logo
オープンソースの文字認識ライブラリ
    Tesseract OCRに触ってみた
                  id: takmin
背景
   お客様からたまに、携帯カメラで文字認識したいという相
    談をうける。
   AR的に認識した文字に合わせた動画や3次元モデルを
    表示するなどをしたい。
   特定物体認識では賞品のパッケージは認識できても、
    個別の製品番号まで認識できない。
       製品番号まで認識出来れば、より強力なマーケティングツー
        ルになる

        というわけで、何か使えるものがないか調べてた

                Tesseract OCR
Tesseract OCRとは?
   http://code.google.com/p/tesseract-ocr/
Tesseract OCRとは?
   オープンソースのOCR(光学文字認識)エンジン
   認識可能な言語
       日本語含む、30ヶ国語以上
   歴史
       1984年-1994年 Hewlett Packard にて研究・開発
       1995年 UNLV Accuracy Testでトップ3に入る
       2005年 オープンソース化
   現在のスポンサーはGoogle
       Google Booksで使うため?
Tesseract OCRとは?
   最新バージョン3.0 (2010年9月)
   Apache 2.0ライセンス
   使用言語:C++
   動作確認プラットフォーム
       Ubuntu
       Windows
       Mac OSやその他のLinuxでも動く(正式なテストはしてな
        い)


   ドキュメントの充実度はいまいち、、、
Tesseract OCRとは?
   関連プロジェクト
       OCROPUS
         http://code.google.com/p/ocropus/
         レイアウトも含めた文書解析システム
         Tesseract OCRの機能を使用
         開発はあまり活発ではない模様
             最後のリリースが2009年5月

           Tesseract OCR3.0からレイアウト解析が加わったので、ど
            う住み分けをしていくのか要注目
インストール方法概要
   Google Codeから各プラットフォーム用のファイルをダウンロード
       http://code.google.com/p/tesseract-ocr/downloads/list
インストール方法概要
   Windowsの場合
       バイナリだけ欲しい場合は、インストーラをダウンロードしてイ
        ンストール
       インストール途中、コンポーネントを選ぶように指示されるの
        で、英語以外の認識をしたい場合は、ここでパッケージを選択
フォルダ構成
   指定した場所に以下のようなフォルダ構成でインストー
    ルされる。
             インストールフォルダ。ここにtesseract.exeが置かれる。
             ReleaseNoteやReadmeなど

             各言語のデータ

             設定ファイル

             設定ファイル

             言語データ訓練用実行ファイル群


ここでは実行ファイル形式で提供されている。
ライブラリで欲しい場合は、ソースをダウロードしてコンパイルする必要。
使い方
   コマンドラインで実行

Usage: tesseract imagename outputbase [-l lang] [configfile [[+|-]varfile]...]

                     入力画像      出力ファイル           言語    設定ファイル




    例:
    tesseract input.bmp result -l jpn

                               画像どう しのマッチング                 日本語
         input.bmp                      result.txt
文字認識の結果例(英語)




1 Introduction
There has been a steady increase in the performance of object category detection as measured bythe
annual PASCAL VOC challenges [3]. The training data provided for these challenges specifies if an
object is truncated » when the provided axis aligned bounding box does not cover the full extent of
the object. The principal cause of truncation is that the object partially lies outside Lhe image area.
Most participants simple disregard the truncated training instances and learn from the non-truncated
ones. This is a waste of training material, but more seriously many truncated instances are missed
in testing, signilicantly reducing the recall and hence decreasing overall recognition performance.
文字認識の結果例(日本語)

          轄 画灘の局F卿な特微を
           手かかりとして操す
          主要な特定物体認言哉アヌレゴゴJ ズムでは、 剛象
          の中から と く に特徴的なテク スチヤ部分(局所
          特徴量) をい く つ も抜き 出 して、 それを手がか
          り に画像どう しのマ ツ チ ン グを行っ ていますo
          局所特徴量 を 用し 丶た特定物体認識は、 画像デ ー
          タぺースを框築するフェーズと クエリ となる
          画像を投げて、 マ ッ チする画像をデー タべース
          から検索するフエーズの2つブpらなりますc デー
          夕べ・-スの椿築と画像による検索は、 それぞれ
          次の流れで行v丶ますo
認識する文字を制限する場合
   例えば認識対象は「数字だけ」だと分かっている場合、
    以下のような設定ファイルを用意する
    digits.txt
    tessedit_char_whitelist   0123456789
                 パラメータ             値


    コマンド:
    tesseract input.bmp result digits.txt
文字認識の結果例(デジカメ画像)
  デジカメ画像




  通常の結果

           |r§23ossu11

  数字に限定

           17923055011
デジカメ用二値化プログラムを実装してみた

  デジカメ画像




  二値化画像




  認識結果(数字限定無し)

           1923055019058
アルゴリズム概要
   アルゴリズムについては、以下の資料を参照
       Ray Smith, “An Overview of the Tesseract OCR Engine”,
        O„Reilly Open Source Convention (OSCON), 2007
           http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseracticdar2007.pdf
           http://tesseract-ocr.googlecode.com/files/TesseractOSCON.pdf


   2007年当時のものなので、色々変更になっている可能性
    あり
       1995年当時のアルゴリズムがほとんど
アルゴリズム概要(前処理)
アルゴリズム概要(前処理)
   Adaptive Thresholding
           適応的二値化




   Line Finding
       テキストラインの検出
       おおまかなテキスト領域の抽出は完了しているという前提
       文字が横方向に並行して並んでいるものとして、blobをテキス
        トラインに割り当てる
アルゴリズム概要(前処理)
   Baseline Fitting
       検出したテキストラインに対して、ベースラインを2次スプライ
        ン曲線で当てはめる
           ページの湾曲に対応するため
           上からアセンダーライン、ミーンライン、ベースライン、ディセンダーラ
            インが平行に引かれる。




                       ベースラインフィッティングの例
                        一番上の黒いラインは直線
アルゴリズム概要(前処理)
   Word Finding
       まず、文字のピッチが均等かどうかを判断
       ピッチが一定なら、等間隔で文字を分割して、単語を抽出




       ピッチが均等でない、イタリック体などBounding Boxが重なる
        などの場合、単語の分割は”Word Recognition”処理で行う
アルゴリズム概要(Word Recognition)
アルゴリズム概要(Word Recognition)
   Polygonal Approximation
       Blobを多角形近似する




   Chopping Jointed Characters
           文字認識の結果、Confidenceの低い領域の分割を試みる
           凹んだ頂点を候補とし、Confidenceが高くなるよう分割
アルゴリズム概要(Word Recognition)
   Associating Broken Characters
       Chopping処理後、今度は壊れた文字断片をつないでいく。
アルゴリズム概要(Character Classifier)
   Features and Matching
       輪郭の断片を特徴として使用
       プロトタイプとのマッチングを取る
その他
   tesseract OCRを組み込んだGUI付きのソフトも取得可能
   新しいフォントや言語を学習させることが可能
   アルゴリズムの内部状態を見るためのデバッグツールを
    取得可能




        17923055011




                      デバッグツール
結論
   英語の精度は良い。
   日本語の精度はいまいちだが、用途によっては使い道
    はある気がする。
   携帯カメラからの入力に対してはなんらかの補正プログ
    ラムを作成する必要がある。
   文書処理やシーン解析研究の補助ツールとして使える
    かもしれない?

More Related Content

What's hot

【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
Deep Learning JP
 
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
Deep Learning JP
 
[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network
[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network
[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network
Deep Learning JP
 
[DL輪読会]Objects as Points
[DL輪読会]Objects as Points[DL輪読会]Objects as Points
[DL輪読会]Objects as Points
Deep Learning JP
 
これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由
Yoshitaka Ushiku
 
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
Takuji Tahara
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
 
物体検出の歴史まとめ(1) 20180417
物体検出の歴史まとめ(1) 20180417物体検出の歴史まとめ(1) 20180417
物体検出の歴史まとめ(1) 20180417
Masakazu Shinoda
 
Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線
Yoshitaka Ushiku
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
Hirokatsu Kataoka
 
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? 【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
Deep Learning JP
 
論文紹介 Anomaly Detection using One-Class Neural Networks (修正版
論文紹介 Anomaly Detection using One-Class Neural Networks (修正版論文紹介 Anomaly Detection using One-Class Neural Networks (修正版
論文紹介 Anomaly Detection using One-Class Neural Networks (修正版
Katsuki Ohto
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations
Deep Learning JP
 
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
Deep Learning JP
 
Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験
myxymyxomatosis
 
semantic segmentation サーベイ
semantic segmentation サーベイsemantic segmentation サーベイ
semantic segmentation サーベイ
yohei okawa
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Yusuke Uchida
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解する
AtsukiYamaguchi1
 
モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019
Yusuke Uchida
 
Tensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャTensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャ
HitoshiSHINABE1
 

What's hot (20)

【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
 
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
 
[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network
[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network
[DL輪読会]FOTS: Fast Oriented Text Spotting with a Unified Network
 
[DL輪読会]Objects as Points
[DL輪読会]Objects as Points[DL輪読会]Objects as Points
[DL輪読会]Objects as Points
 
これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由
 
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
 
物体検出の歴史まとめ(1) 20180417
物体検出の歴史まとめ(1) 20180417物体検出の歴史まとめ(1) 20180417
物体検出の歴史まとめ(1) 20180417
 
Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? 【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
 
論文紹介 Anomaly Detection using One-Class Neural Networks (修正版
論文紹介 Anomaly Detection using One-Class Neural Networks (修正版論文紹介 Anomaly Detection using One-Class Neural Networks (修正版
論文紹介 Anomaly Detection using One-Class Neural Networks (修正版
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations
 
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
 
Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験
 
semantic segmentation サーベイ
semantic segmentation サーベイsemantic segmentation サーベイ
semantic segmentation サーベイ
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解する
 
モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019
 
Tensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャTensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャ
 

Similar to Tesseract ocr

オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ
陽平 山口
 
HCL Nomad と OCR
HCL Nomad と OCRHCL Nomad と OCR
HCL Nomad と OCR
Haruyuki Nakano
 
Interop2017
Interop2017Interop2017
Interop2017
tak9029
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
Daiyu Hatakeyama
 
Deep Learningについて(改訂版)
Deep Learningについて(改訂版)Deep Learningについて(改訂版)
Deep Learningについて(改訂版)
Brains Consulting, Inc.
 
関西CVPRML勉強会(特定物体認識) 2012.1.14
関西CVPRML勉強会(特定物体認識) 2012.1.14関西CVPRML勉強会(特定物体認識) 2012.1.14
関西CVPRML勉強会(特定物体認識) 2012.1.14
Akisato Kimura
 
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようEinsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
Salesforce Developers Japan
 
Elastic ML Introduction
Elastic ML IntroductionElastic ML Introduction
Elastic ML Introduction
Hiroshi Yoshioka
 
TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?
KSK Analytics Inc.
 
おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニング
Munenori Sugimura
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
Haruki Eguchi
 
形態素解析器 売ってみた
形態素解析器 売ってみた形態素解析器 売ってみた
形態素解析器 売ってみた
JustSystems Corporation
 
SSII2014 詳細画像識別 (FGVC) @OS2
SSII2014 詳細画像識別 (FGVC) @OS2SSII2014 詳細画像識別 (FGVC) @OS2
SSII2014 詳細画像識別 (FGVC) @OS2
nlab_utokyo
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1
Kenta Hattori
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
Shuzo Kashihara
 
ジャストシステムの形態素解析技術 その2 機械学習編
ジャストシステムの形態素解析技術 その2 機械学習編ジャストシステムの形態素解析技術 その2 機械学習編
ジャストシステムの形態素解析技術 その2 機械学習編
JustSystems Corporation
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
Jiro Nishitoba
 
20120623 cv勉強会 shirasy
20120623 cv勉強会 shirasy20120623 cv勉強会 shirasy
20120623 cv勉強会 shirasy
Yoichi Shirasawa
 
ロボット用Open Source Software
ロボット用Open Source Softwareロボット用Open Source Software
ロボット用Open Source Software
たけおか しょうぞう
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
Retrieva inc.
 

Similar to Tesseract ocr (20)

オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ
 
HCL Nomad と OCR
HCL Nomad と OCRHCL Nomad と OCR
HCL Nomad と OCR
 
Interop2017
Interop2017Interop2017
Interop2017
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
 
Deep Learningについて(改訂版)
Deep Learningについて(改訂版)Deep Learningについて(改訂版)
Deep Learningについて(改訂版)
 
関西CVPRML勉強会(特定物体認識) 2012.1.14
関西CVPRML勉強会(特定物体認識) 2012.1.14関西CVPRML勉強会(特定物体認識) 2012.1.14
関西CVPRML勉強会(特定物体認識) 2012.1.14
 
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみようEinsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
 
Elastic ML Introduction
Elastic ML IntroductionElastic ML Introduction
Elastic ML Introduction
 
TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?
 
おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニング
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
 
形態素解析器 売ってみた
形態素解析器 売ってみた形態素解析器 売ってみた
形態素解析器 売ってみた
 
SSII2014 詳細画像識別 (FGVC) @OS2
SSII2014 詳細画像識別 (FGVC) @OS2SSII2014 詳細画像識別 (FGVC) @OS2
SSII2014 詳細画像識別 (FGVC) @OS2
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
ジャストシステムの形態素解析技術 その2 機械学習編
ジャストシステムの形態素解析技術 その2 機械学習編ジャストシステムの形態素解析技術 その2 機械学習編
ジャストシステムの形態素解析技術 その2 機械学習編
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
 
20120623 cv勉強会 shirasy
20120623 cv勉強会 shirasy20120623 cv勉強会 shirasy
20120623 cv勉強会 shirasy
 
ロボット用Open Source Software
ロボット用Open Source Softwareロボット用Open Source Software
ロボット用Open Source Software
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
 

More from Takuya Minagawa

第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
Takuya Minagawa
 
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
Takuya Minagawa
 
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureMachine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Takuya Minagawa
 
MobileNeRF
MobileNeRFMobileNeRF
MobileNeRF
Takuya Minagawa
 
点群SegmentationのためのTransformerサーベイ
点群SegmentationのためのTransformerサーベイ点群SegmentationのためのTransformerサーベイ
点群SegmentationのためのTransformerサーベイ
Takuya Minagawa
 
Learning to Solve Hard Minimal Problems
Learning to Solve Hard Minimal ProblemsLearning to Solve Hard Minimal Problems
Learning to Solve Hard Minimal Problems
Takuya Minagawa
 
ConditionalPointDiffusion.pdf
ConditionalPointDiffusion.pdfConditionalPointDiffusion.pdf
ConditionalPointDiffusion.pdf
Takuya Minagawa
 
楽しいコンピュータビジョンの受託仕事
楽しいコンピュータビジョンの受託仕事楽しいコンピュータビジョンの受託仕事
楽しいコンピュータビジョンの受託仕事
Takuya Minagawa
 
20210711 deepI2P
20210711 deepI2P20210711 deepI2P
20210711 deepI2P
Takuya Minagawa
 
20201010 personreid
20201010 personreid20201010 personreid
20201010 personreid
Takuya Minagawa
 
20200910コンピュータビジョン今昔物語(JPTA講演資料)
20200910コンピュータビジョン今昔物語(JPTA講演資料)20200910コンピュータビジョン今昔物語(JPTA講演資料)
20200910コンピュータビジョン今昔物語(JPTA講演資料)
Takuya Minagawa
 
2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)
Takuya Minagawa
 
20200704 bsp net
20200704 bsp net20200704 bsp net
20200704 bsp net
Takuya Minagawa
 
20190825 vins mono
20190825 vins mono20190825 vins mono
20190825 vins mono
Takuya Minagawa
 
20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation
Takuya Minagawa
 
20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summary
Takuya Minagawa
 
Visual slam
Visual slamVisual slam
Visual slam
Takuya Minagawa
 
20190131 lidar-camera fusion semantic segmentation survey
20190131 lidar-camera fusion semantic segmentation survey20190131 lidar-camera fusion semantic segmentation survey
20190131 lidar-camera fusion semantic segmentation survey
Takuya Minagawa
 
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
Takuya Minagawa
 
run Keras model on opencv
run Keras model on opencvrun Keras model on opencv
run Keras model on opencv
Takuya Minagawa
 

More from Takuya Minagawa (20)

第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
 
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
 
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureMachine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
 
MobileNeRF
MobileNeRFMobileNeRF
MobileNeRF
 
点群SegmentationのためのTransformerサーベイ
点群SegmentationのためのTransformerサーベイ点群SegmentationのためのTransformerサーベイ
点群SegmentationのためのTransformerサーベイ
 
Learning to Solve Hard Minimal Problems
Learning to Solve Hard Minimal ProblemsLearning to Solve Hard Minimal Problems
Learning to Solve Hard Minimal Problems
 
ConditionalPointDiffusion.pdf
ConditionalPointDiffusion.pdfConditionalPointDiffusion.pdf
ConditionalPointDiffusion.pdf
 
楽しいコンピュータビジョンの受託仕事
楽しいコンピュータビジョンの受託仕事楽しいコンピュータビジョンの受託仕事
楽しいコンピュータビジョンの受託仕事
 
20210711 deepI2P
20210711 deepI2P20210711 deepI2P
20210711 deepI2P
 
20201010 personreid
20201010 personreid20201010 personreid
20201010 personreid
 
20200910コンピュータビジョン今昔物語(JPTA講演資料)
20200910コンピュータビジョン今昔物語(JPTA講演資料)20200910コンピュータビジョン今昔物語(JPTA講演資料)
20200910コンピュータビジョン今昔物語(JPTA講演資料)
 
2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)
 
20200704 bsp net
20200704 bsp net20200704 bsp net
20200704 bsp net
 
20190825 vins mono
20190825 vins mono20190825 vins mono
20190825 vins mono
 
20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation
 
20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summary
 
Visual slam
Visual slamVisual slam
Visual slam
 
20190131 lidar-camera fusion semantic segmentation survey
20190131 lidar-camera fusion semantic segmentation survey20190131 lidar-camera fusion semantic segmentation survey
20190131 lidar-camera fusion semantic segmentation survey
 
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
 
run Keras model on opencv
run Keras model on opencvrun Keras model on opencv
run Keras model on opencv
 

Tesseract ocr

  • 1. オープンソースの文字認識ライブラリ Tesseract OCRに触ってみた id: takmin
  • 2. 背景  お客様からたまに、携帯カメラで文字認識したいという相 談をうける。  AR的に認識した文字に合わせた動画や3次元モデルを 表示するなどをしたい。  特定物体認識では賞品のパッケージは認識できても、 個別の製品番号まで認識できない。  製品番号まで認識出来れば、より強力なマーケティングツー ルになる というわけで、何か使えるものがないか調べてた Tesseract OCR
  • 3. Tesseract OCRとは?  http://code.google.com/p/tesseract-ocr/
  • 4. Tesseract OCRとは?  オープンソースのOCR(光学文字認識)エンジン  認識可能な言語  日本語含む、30ヶ国語以上  歴史  1984年-1994年 Hewlett Packard にて研究・開発  1995年 UNLV Accuracy Testでトップ3に入る  2005年 オープンソース化  現在のスポンサーはGoogle  Google Booksで使うため?
  • 5. Tesseract OCRとは?  最新バージョン3.0 (2010年9月)  Apache 2.0ライセンス  使用言語:C++  動作確認プラットフォーム  Ubuntu  Windows  Mac OSやその他のLinuxでも動く(正式なテストはしてな い)  ドキュメントの充実度はいまいち、、、
  • 6. Tesseract OCRとは?  関連プロジェクト  OCROPUS  http://code.google.com/p/ocropus/  レイアウトも含めた文書解析システム  Tesseract OCRの機能を使用  開発はあまり活発ではない模様  最後のリリースが2009年5月  Tesseract OCR3.0からレイアウト解析が加わったので、ど う住み分けをしていくのか要注目
  • 7. インストール方法概要  Google Codeから各プラットフォーム用のファイルをダウンロード  http://code.google.com/p/tesseract-ocr/downloads/list
  • 8. インストール方法概要  Windowsの場合  バイナリだけ欲しい場合は、インストーラをダウンロードしてイ ンストール  インストール途中、コンポーネントを選ぶように指示されるの で、英語以外の認識をしたい場合は、ここでパッケージを選択
  • 9. フォルダ構成  指定した場所に以下のようなフォルダ構成でインストー ルされる。 インストールフォルダ。ここにtesseract.exeが置かれる。 ReleaseNoteやReadmeなど 各言語のデータ 設定ファイル 設定ファイル 言語データ訓練用実行ファイル群 ここでは実行ファイル形式で提供されている。 ライブラリで欲しい場合は、ソースをダウロードしてコンパイルする必要。
  • 10. 使い方  コマンドラインで実行 Usage: tesseract imagename outputbase [-l lang] [configfile [[+|-]varfile]...] 入力画像 出力ファイル 言語 設定ファイル 例: tesseract input.bmp result -l jpn 画像どう しのマッチング 日本語 input.bmp result.txt
  • 11. 文字認識の結果例(英語) 1 Introduction There has been a steady increase in the performance of object category detection as measured bythe annual PASCAL VOC challenges [3]. The training data provided for these challenges specifies if an object is truncated » when the provided axis aligned bounding box does not cover the full extent of the object. The principal cause of truncation is that the object partially lies outside Lhe image area. Most participants simple disregard the truncated training instances and learn from the non-truncated ones. This is a waste of training material, but more seriously many truncated instances are missed in testing, signilicantly reducing the recall and hence decreasing overall recognition performance.
  • 12. 文字認識の結果例(日本語) 轄 画灘の局F卿な特微を 手かかりとして操す 主要な特定物体認言哉アヌレゴゴJ ズムでは、 剛象 の中から と く に特徴的なテク スチヤ部分(局所 特徴量) をい く つ も抜き 出 して、 それを手がか り に画像どう しのマ ツ チ ン グを行っ ていますo 局所特徴量 を 用し 丶た特定物体認識は、 画像デ ー タぺースを框築するフェーズと クエリ となる 画像を投げて、 マ ッ チする画像をデー タべース から検索するフエーズの2つブpらなりますc デー 夕べ・-スの椿築と画像による検索は、 それぞれ 次の流れで行v丶ますo
  • 13. 認識する文字を制限する場合  例えば認識対象は「数字だけ」だと分かっている場合、 以下のような設定ファイルを用意する digits.txt tessedit_char_whitelist 0123456789 パラメータ 値 コマンド: tesseract input.bmp result digits.txt
  • 14. 文字認識の結果例(デジカメ画像) デジカメ画像 通常の結果 |r§23ossu11 数字に限定 17923055011
  • 15. デジカメ用二値化プログラムを実装してみた デジカメ画像 二値化画像 認識結果(数字限定無し) 1923055019058
  • 16. アルゴリズム概要  アルゴリズムについては、以下の資料を参照  Ray Smith, “An Overview of the Tesseract OCR Engine”, O„Reilly Open Source Convention (OSCON), 2007  http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseracticdar2007.pdf  http://tesseract-ocr.googlecode.com/files/TesseractOSCON.pdf  2007年当時のものなので、色々変更になっている可能性 あり  1995年当時のアルゴリズムがほとんど
  • 18. アルゴリズム概要(前処理)  Adaptive Thresholding  適応的二値化  Line Finding  テキストラインの検出  おおまかなテキスト領域の抽出は完了しているという前提  文字が横方向に並行して並んでいるものとして、blobをテキス トラインに割り当てる
  • 19. アルゴリズム概要(前処理)  Baseline Fitting  検出したテキストラインに対して、ベースラインを2次スプライ ン曲線で当てはめる  ページの湾曲に対応するため  上からアセンダーライン、ミーンライン、ベースライン、ディセンダーラ インが平行に引かれる。 ベースラインフィッティングの例 一番上の黒いラインは直線
  • 20. アルゴリズム概要(前処理)  Word Finding  まず、文字のピッチが均等かどうかを判断  ピッチが一定なら、等間隔で文字を分割して、単語を抽出  ピッチが均等でない、イタリック体などBounding Boxが重なる などの場合、単語の分割は”Word Recognition”処理で行う
  • 22. アルゴリズム概要(Word Recognition)  Polygonal Approximation  Blobを多角形近似する  Chopping Jointed Characters  文字認識の結果、Confidenceの低い領域の分割を試みる  凹んだ頂点を候補とし、Confidenceが高くなるよう分割
  • 23. アルゴリズム概要(Word Recognition)  Associating Broken Characters  Chopping処理後、今度は壊れた文字断片をつないでいく。
  • 24. アルゴリズム概要(Character Classifier)  Features and Matching  輪郭の断片を特徴として使用  プロトタイプとのマッチングを取る
  • 25. その他  tesseract OCRを組み込んだGUI付きのソフトも取得可能  新しいフォントや言語を学習させることが可能  アルゴリズムの内部状態を見るためのデバッグツールを 取得可能 17923055011 デバッグツール
  • 26. 結論  英語の精度は良い。  日本語の精度はいまいちだが、用途によっては使い道 はある気がする。  携帯カメラからの入力に対してはなんらかの補正プログ ラムを作成する必要がある。  文書処理やシーン解析研究の補助ツールとして使える かもしれない?