見出し画像

特急券読み取り検索をリリースしました!

こんにちは、おにぎり、牧羊犬、Heavy metal is very very healthyです。ナビタイムジャパンでAIやコンピュータビジョンを用いた研究開発を担当しています。

今回は「新幹線」にフォーカスした新機能のお話です。

年末年始のお休みを利用して、帰省や旅行を計画されている方も多いかと思います。

「新幹線のきっぷを買ったけれど、何時に自宅を出ればいいの?」
「新幹線を降りてから、目的地までどう移動すればいいんだろう?」など、特に新幹線の前後の行動計画に悩むこともあるのではないでしょうか。

そんなとき、お手元に新幹線のきっぷがある方にぜひご利用いただきたい「特急券読み取り検索」機能のご紹介です!

概要

「特急券読み取り検索」は新幹線のきっぷをカメラで読み取り、その新幹線を使用した経路を検索する機能です。

実際のサービス画面

機能の詳細については、当社のプレスリリーもご覧ください。

課題

実は、『NAVITIME』『乗換NAVITIME』には利用する列車を指定した経路を検索する機能が既に存在していました。
しかし列車を指定するまでの手順が多く、便利な機能にも関わらず存在自体があまり知られていませんでした。

そんな、たくさんの手順を「カメラで撮影」の1ステップに縮めるのが、この「特急券読み取り検索」機能です。

開発経緯

この機能のアイデアは、当社のサービスに対してアイデアを気軽に投稿できる Slack チャンネルから始まりました。

ある日アイデアチャンネルにて、新幹線のきっぷを自動で読み取ってその列車を利用する経路検索ができたら嬉しいとアイデアが投稿されました。

それを読んだ私達 AI 開発チームが面白そう!と食いつき、2週間ほどでプロトタイプを作り、『NAVITIME』『乗換NAVITIME』チームに見せました。その結果プロトタイプが好評だったため、実際に機能としての開発を始めました。

どう実現したか

画像に映った文字を読み取るのに必要不可欠な技術が OCR (光学文字認識) ですが、今回は、「AI-OCR」という従来の OCR とは異なり、AI の技術を利用した OCR で文字の読み取りを実現しました。

OCR(光学文字認識)とは

カメラやスキャナーで撮影した画像内に、どんな文字が書かれているかを判断して、文字をデータ化する技術です。

OCR の「どんな文字が書かれているかを判断」する部分は、従来、人がルールを設計していました。AI-OCR はそのルール設計の部分をまるごと AI に置き換えたものです。

以下は、AI-OCR で特急券を認識した例です。

AI-OCRで特急券を認識した結果

この画像から AI-OCR で認識できたテキストが以下です。スコアは 0〜1 の値をとるので、どれも確度が高く認識できていることがわかります。

{
    "ocr_results": [
        {
            "text": "東京",
            "score": 0.9999999403953552,
        },
        {
            "text": "→",
            "score": 0.9999985694885254,
        },
        {
            "text": "新青森",
            "score": 0.9999993443489075,
        },
        {
            "text": "5月1日",
            "score": 0.9999164938926697,
        },
        {
            "text": "(22:04着)",
            "score": 0.999999463558197,
        },
        {
            "text": "(17:44発)",
            "score": 0.9996218681335449,
        },
        {
            "text": "9号車6番A席",
            "score": 0.9999962449073792,
        },
        {
            "text": "¥13,400",
            "score": 0.999987781047821,
        },
        {
            "text": "はやぶさ260号",
            "score": 0.999985933303833,
        },
        (以下略)
    ]
}

AI-OCRを採用した理由

AI-OCR を採用した理由としては、不特定多数のユーザーから送信される画像の状態 (ノイズやコントラスト) が様々であるため、従来の OCR だとルール作成が難しく精度がでないと判断したからです。

当然、AI とつくので学習データが必要です。しかしながら、数万枚オーダーの学習データなんてすぐに用意できるわけがありません。
そこで、精度の高い事前学習済み AI から少量の学習データでファインチューニングをすることにしました。社内有志から実際に利用した特急券を借用してカメラで撮影し、学習データを手作業で作成しました。その結果、400枚程度の学習データでリリースできるレベルの精度を達成することができました。

苦労した点

独特のフォントは認識できない

特急券ならではの苦労としては、JR の特急券に使われている独特のフォントの認識がとにかく大変でした。

残念ながら、上で記載した「精度の高い事前学習済み AI」をそのまま使っても、特急券の文字はほぼ認識できません。
というのも、事前学習データは普段の生活で目にするような看板や文書の画像でできているので、その画像を学習した事前学習済み AI モデルも看板や文書に使われるベーシックなフォントに特化しています。

つまり独特のフォントは事前学習データにないため、認識しにくいのです。そのため自分たちで学習データをたくさん用意する必要がありました。

アノテーション作業に時間がかかった

特急券は文字が多いです。

今回の機能で必要ではない情報もたくさん印字されているのですが、学習データにはそれらも含めてアノテーションする必要があったので想定以上に時間がかかりました。

また、AI 全般の話になりますが、十分な学習をするには数百〜数千の画像が必要なので、単純に数もこなさなければならず、アノテーション作業のみの数日を過ごしました。

今後

現状、読み取りができるのは新幹線のきっぷのみですが、今後も継続的に読み取れる範囲を広げたいと考えています。
例えば、特急列車や航空券など、カバーできる移動手段の拡張です。

また、チケットレス化も進んでいますので、紙のきっぷだけではなくEチケットにも対応することで、様々なシーンで使えるようになりそうです。

おわりに

今回新しくリリースした「特急券読み取り検索」機能をご紹介しました。
列車指定検索は今まで列車指定に時間がかかっていましたが、より少ない操作で指定できるようになりました。

年末年始の帰省のための新幹線のきっぷをお持ちの方は、ぜひ使ってみてください。