論文の解説記事を書いています。2019.10.26こんにちは。Networks」というモデルを動かしてみました。ソースを公開しています。非常にざっくり言うと、画像の中から文字が書いてある領域を見つけ出し、その文字を認識するモデルです。達成していることから(個人的に)注目の論文です。日現在、審査中のようです。文字単位と単語単位での認識ができるようです。今までにも高精度な「文字の検出を行うモデル」、「文字の認識を行うモデル」は提案されていました。単体のモデルとして最適化された二つのモデルを組み合わせても精度に限界があると筆者は指摘しています。本論文のネットワークはこれらを同時に訓練して解くため、そういった個別最適化による精度の限界を越えることができたようです。実際に動かしてみるでは、さっそく動かしてみましょう!ちなみに、ソースは公開されているのですが現時点で学習用のコードがなく、論文中にも損失関数に関する記載がないため、独自のデータセットの学習ができないようです。これについてはしばらく待つしかなさそうです。ランタイムをGPUに変更しましょう。「保存」をクリック次に、ソースの取得、必要なモジュールのインストール、重みファイルの取得を行います。認識したい画像を格納するディレクトリを作っておきます。いうディレクトリができています。これをクリックすると中にあるディレクトリが確認できます。今回はこんな画像を用意しました。1枚目は比較的簡単そうな道路標識です。2枚目は細かめの文字が書かれた道路標識です。学習データにおそらく日本語がないので、2枚は英語の標識を持ってきました。道路標識を瞬時に読んでテキスト化できると自動運転にも役立つのではないでしょうか。Chromeの初期画面です。自然画像で学習されているようだったので、こういった画面のキャプションが読めるのかを確認です。キャプションが読めれば紙をスキャンした画像なんかも読めるのかもしれませんね。認識は以下で実行します。result_dir簡単ですね。実行が完了したら、結果を見てみましょう。以下のコマンドで確認ができます。plt.show()結果はNotebookに出力されます。result_dir内に画像とテキストが保存されます。それでは、ダウンロードした画像をみてみましょう。以下のようになりました。うまく認識できている。結果が重なってしまっているが細かくても読めているようだ。右の速度表記が認識できていない。大きすぎる文字や日本語は読めないのだろうか。こんな感じになりました。秒)のと、細かい文字も割と読めているので驚きました。短い文字が読めないことが気になりましたが、3文字以下は読まないように設定されているようです。設定次第では読めるようになるかも?あとは、大きい文字も読めていませんでした。これは理由がパッと分かりませんが画像のサイズに対して大きすぎる文字は読めないのでしょうか。モデルなので非常に期待しています。今後学習用のコードが公開されたら日本語のデータセットでモデルを作ってみたいですね。ここまで読んでいただきありがとうございました。画像認識で利用されるニューラルネットワークの一種です。