こんにちは。CTOの西平です。
BearTailの開発ブログが出来ました。
BearTailはDr.Walletという家計簿サービスを開発しています。
Dr.Walletは、レシートをスマートフォンで撮影するだけで家計簿がつけられる、最も入力が簡単な家計簿サービスです。
このブログでは、Dr.Walletの開発を通して得られたノウハウの共有や、イベントのレポートを行っていきます。
第一回のエントリーとなりますが、いきなりイベントレポートから始まります!
9/30日にSansan株式会社様と開催した合同LT会のレポートです。
Sansan株式会社様はクラウド名刺管理サービスSansanや100万人が使う名刺管理アプリEightの開発をしています。
最近はTVCMなども放映されており、知っている方も多いのでは無いでしょうか?
今回の勉強会では、「写真を撮ったらデータ化される」という共通の機能をもったサービスを提供する会社同士で、サービスの裏側の仕組みや、データ入力の効率化をどのように行っているのか、という話題でプレゼンを行いました。
「名刺のピース切出し」 Sansan株式会社 安川 武志
名刺の画像を、項目ごとにバラバラに分割する工程についての発表でした。
機械で文字を読み取る際には、画像の文字列部分をOCRのシステムに与える必要があります。
そのために、名刺画像の文字列や、文字列以外の部分を項目ごとに切り取る技術について紹介されました。
全ての項目を同じように切り出すのではなく、項目によって異なる検出方法を用いる点が印象的でした。
「クラウドソーシングで学習データを爆速で作る」 株式会社BearTail 西平 基志
機械学習では、数千枚や数万枚のオーダーの学習データが要求されますが、エンジニアが膨大な量の学習データの作成をしては、時間が勿体無いです。
属人的でない、学習データの作成作業を、在宅ワーカーが簡単に行えるシステムの紹介をしました。
このシステムによって数千枚の学習データも、1日以内に作成が可能になり、研究開発のスピードを上げる事に成功しました。
「OCRは古い技術」Sansan株式会社 小林 幸司
文字認識の研究はすでにかなり進んでおり、綺麗に切り出した文字画像の認識精度は十分高くなっている事を示し、OCR処理をするための文字列の検出など、前工程がボトルネックになる事が指摘されました。
その問題点を踏まえ、全体の精度を上げるために、「あぶり出し」という手法が提案されました。
いくつもの工程に分かれている画像処理は、前工程の精度が後工程に直接影響してしまうような、実装にしてしまうと、ボトルネックの部分で全体の精度がガクッと下がってしまいます。
紹介されている「候補を多く持つ事」と「複数工程をまとめて評価する事」は、OCRだけでなく、複数工程に分かれている画像処理全般で、上記の問題を解決し、精度の向上に役立つ手法だと感じました。
「銀行の明細をサービスに登録するまで」 株式会社BearTail 原澤 友輝
Dr.Walletが提供している、アカウントアグリゲーション機能の仕組みを紹介しました。
capybaraとmechanizeの組み合わせで、jsの実行が必須なサイトの対応をしつつ、高速なスクレイピングを実現する方法を紹介しました。
また、取得した明細の重複を検知する手法についても触れています。
趣味のプログラミングでも、スクレイピングはよく行われますので、気になった方は高速化を試してみてはどうでしょうか?
「入力補完で入力作業を効率化する」株式会社BearTail 山本舜
レシートの内容を打ち込む作業を効率化する、ブラウザ上で動く、IMEのような入力補完機能について紹介しました。
打ち間違いも含まれるDBから、どのように補完候補を選ぶのか、入力速度に負けないような高速な補完を実現するために、どのようなデータ構造になっているのかを説明しています。
「名刺を周波数で観る」 Sansan株式会社 江崎日淑
画像処理のエンジニアは、どのように名刺の画像を解析しているのか紹介されました。
画像を周波数空間に変換した時の具体例を交えながら、その原理についての説明もされています。
ImageJというOSSを使って気軽に試せるそうです。
「@マークセキュリティ」 Sansan株式会社 島貴宏
@マークを目印に、メールアドレス部分の画像の分割をする技術について紹介されました。
たくさんのフォントの@マークに対応するために、機械学習を導入し、従来手法の数十倍の高速化ができたという事です。
多くのフォントに対応しなければいけない点が、レシートと異なり、名刺読み取りの難しい点だと感じました。
同じような問題を解いていますが、レシートと名刺で、取り組むべき問題が違っている事が興味深かったです。
まとめ
BearTailにとって、初めての合同勉強会でしたが、Sansan株式会社様のご協力により、素晴らしい会を開催することができました。
自然感あふれる、すばらしい会場の提供もしてくださり、ありがとうございます!
LT後に懇親会があり、似ている問題に取り組んでいるエンジニア同士、意見交換をする事ができて、大変参考になりました。
データ入力や画像処理を主要な機能として開発、運用している会社は少なく、発表される内容は汎用性が低めで、エッジの効いたものになりました。
しかし、画像処理などに興味のあるエンジニアにとっては、実用されているシステムのノウハウが公開される貴重な場だったと思います。
画像処理関連の勉強会で、企業が取り組んでいる内容について話される場は、web関連の勉強会に比べるとまだまだ少なく、なかなか無いのではないでしょうか。
ノウハウが溜まった頃に、また開催できたらと思っています。
そのときは、是非ご参加ください!