Photo OCRが分かる【Coursera Machine Learning Week11】を日本語でまとめてみた

Coursera

アメリカのeラーニングサイトであるCourseraでは、GoogleやBaiduでAIのチームをリードしてきたAndrew Ng先生によるMachine Learningの講義動画が無料で公開されています。

全編英語なので少々敷居が高いのは確かですが、受講し続けているとその説明の分かりやすさに感動するはず!

本記事では、

・CourseraのMachine Learningに少し興味がある
・内容のつまみ食いがしたい
・講義を受けたけど復習したい

そんな人のためにMachine Learning Week11の内容をまとめてみました。

講義動画は1時間半くらいありますが、この記事であれば5分もあれば読むことができると思います。

Photo OCR

Problem Description and Pipeline

Problem Description and Pipeline - Application Example: Photo OCR | Coursera
Video created by Stanford University for the course "Machine Learning". Identifying and recognizing objects, words, and digits in an image is a challenging task...

機械学習の応用例であるPhoto OCR(Photo Optical Character Recognition)についてです。

Photo OCRでは、次のようなステップを踏みます。

  1. 写真のどこに文字列があるかを検出する(Text detection)
  2. 文字列を文字に分割する(Character segmentation)
  3. 文字を認識する(Character classification)

これらはそれぞれ異なる機械学習の手法ですが、Photo OCRという機能を実現するために一連の処理として繋がっています。

Sliding Windows

Sliding Windows - Application Example: Photo OCR | Coursera
Video created by Stanford University for the course "Machine Learning". Identifying and recognizing objects, words, and digits in an image is a challenging task...

Sliding Windowsとは

テキスト検出や物体検出ではSliding Windowsというものを使っています。

写真の中から人間を検出したいとき、人間を囲う長方形の枠(windows)を写真の左上から右下にslidingさせて人間を探すので、Sliding Windowsといいます

歩行者検出(Pedestrian detection)

テキスト検出について詳しく説明する前に、まず簡単な歩行者検出について考えてみます。

歩行者とそうでない同じアスペクト比(82×36)の写真を用意し、教師あり学習で機械に学習させます。

学習が終わったら、実際の写真に長方形のパッチ(Sliding window)を走らせていき、歩行者に該当するパッチがあるかどうか確認していきます

テキスト検出(Text detection)

次にテキスト検出ですが、まず文字の写真を機械に学習させます。

学習が終わったら、歩行者検出と同様にSliding windowを写真に走らせていき、文字を検出します。

その後、文字の領域を拡張し、文字列の領域(長方形)を描きます。

文字列分割(Character segmentation)

文字列分割では、文字列のどこに境界を引くかを機械に学習させます。

文字認識(Character classification)

文字認識では、英語の場合、文字を26文字に分類します。数字も入れれば36文字の分類問題になりです。

Getting Lots of Data and Artificial Data

Getting Lots of Data and Artificial Data - Application Example: Photo OCR | Coursera
Video created by Stanford University for the course "Machine Learning". Identifying and recognizing objects, words, and digits in an image is a challenging task...

機械学習用のデータが少ししか得られなかったときに、データを生み出したり増幅する方法についてです。

文字認識のデータ増幅

文字認識においては、OSが持っているフォントデータを加工して、データを生み出すことが可能です。

また、実際に撮った写真の文字を色んな方法でゆがませてデータを増やすのも1つの手です。

音声認識のデータ増幅

音声認識の場合なら、実際の音声に様々なノイズを加えることでデータを増やすことができます。

データを増幅する前に考えるべきこと

  • 低バイアスのモデルかどうか?
  • 今の10倍のデータを得るために必要な労力はどれくらいか?

単純に手を動かしてサンプルを集めることが、実は思ったほど時間がかからないこともあるそうです。

Ceiling Analysis: What Part of the Pipeline to Work on Next

エンジニアが何か月も機械学習のモデルの改善に取り組んだあと、それらの努力が徒労だったと気づくことほど悲しいことはありません

この講義では、シーリング分析という手法を使って、機械学習のパイプラインのどこを改善するのが最もいいパフォーマンスを生むかを調べます。

例えば、先ほどの例で「①テキスト検出」「②テキスト分割」「③文字認識」という一連のプロセスがあり、全体の精度が80%だった場合、まず①を正解ラベルばかりにして、その精度を100%にしてみます。そこで、全体の精度が90%になったとすると、「①テキスト検出」は10%の精度向上の余地があるということが分かるわけです。

アンドリュー先生ほど機械学習に精通していても、「どのコンポーネントを改善すべきか自分の直感を信じないようにしているため、シーリング分析のような手法を用いる」ということでした。

Summary and Thank You

Summary and Thank You - Application Example: Photo OCR | Coursera
Video created by Stanford University for the course "Machine Learning". Identifying and recognizing objects, words, and digits in an image is a challenging task...

長かったMachine Learningの講義も、ついに終わりが近づいてきました。Andrew先生から、学習を終えたみなさんへの最後のメッセージです。

この動画はここまで何十時間もかけて機械学習を学んできた人にとって、Andrew先生からのかけがえのないのない贈り物になるはずです。ぜひ、学習を終えてこの目で見てみてください。

以上、最後までお読みいただきありがとうございました。

 

コメント

タイトルとURLをコピーしました