近年AI開発が世界的に活発に行われておりますが、その開発工程の1つに「アノテーション」というものがあります。
今回の記事では、アノテーションとはどのようなものなのか、どのような種類があるのかについて説明していきます。
アノテーションとは何か?
「アノテーション」とは、テキストや音声、画像などあらゆる形態のデータの1つ1つにタグを付けていく作業のことです。
アノテーションは日本語訳で「記注、注釈」となりますが、各データに意味付けを行っていき、機械学習モデルにそのデータがどういうものであるのかを理解させることによって、次回から同じようなデータを読み込んだ際にそのデータを正しく解釈できるようになります。
アノテーションで取り扱うデータの類型
アノテーションを行っていくうえで取り扱うデータには様々な種類があります。
①画像や動画データ
画像や動画データのアノテーションは、画像や動画の特定の範囲を専用のツールを利用して囲っていき、機械学習モデルにその囲った範囲のデータをそれぞれ異なる種類の情報だと認識できるようにタグをつけていく作業です。
そのための具体的な手順としては、以下のようなものに沿ってアノテーションを行うことになります。
-
物体検出(画像や動画の中から特定の物体を発見し、その対象に適した意味をタグ付けする)
-
領域抽出(画像や動画の中にある領域を特定し、その領域にタグ付けをする)
-
画像分類(画像や動画の中から検出した物体に対して属性をタグ付けする)
例えば、画像の中から抽出した物体がウサギの場合、その物体にウサギ、さらに領域を特定してその領域を草原と意味付けし、そのウサギや草原に白や緑などの属性をタグ付けするなどしてそこに写っているそれぞれのものが何かを決定していきます。
②テキストデータ
テキストデータのアノテーションは、テキストカテゴリーデータを機械学習モデルにメタデータとして与えることにより、それ以降に出てくるテキストデータについてそれがどういう内容なのかを理解して適切に分類できるようにするための、テキストに対するタグ付けの作業のことです。
前もって定義されたカテゴリーをばらばらに点在しているテキストデータに振り分けていくことにより、ビジネス上の書類データなどを用途別や顧客別などのカテゴリーに分けて管理することができるようになります。
私たちが良く利用しているGmailなどのサービスについている迷惑メールの分類機能にもテキストデータのアノテーションが行われています。
③音声データ
音声データのアノテーションは、音量・音の種類、音声の意味に1つ1つタグを振り分けていく作業のことです。
音声データのアノテーションの具体的な作業としては、音声を文章にしてからその文章中のそれぞれの単語に意味をタグ付けして、全体の音声の意味を機械学習モデルに理解させていく作業になります。
このような作業を実施していくことにより、音声認識などのサービスが利用できるようになるのです。
AI開発でのアノテーションの位置づけについて
AI開発においては「教師あり学習」を採用した機械学習モデルを開発していくうえで、アノテーションの適切な実行が重要になります。
「教師あり学習」とは、AI開発において機械学習モデルにあらかじめ正解となるデータを与えて学習させるタイプの開発方法のことで、あらかじめ正解となるデータを学習させることによって機械学習モデルが対象のデータに対してどのようなものであるかを判断していけるようになります。
教師あり学習を採用した機械学習モデルの開発には、学習させるデータの中身やその意味などについてしっかりと学習させる必要があるのですが、データをそのまま持ってくれば良いわけではなく学習するために適切なデータとなるよう加工して用意する必要があります。
このように機械学習に学習させるためのデータを教師データというのですが、その教師データを準備する作業がアノテーションであり、アノテーションの実行はAIを開発するうえで欠かすことができないのです。
アノテーションするためのデータの集め方
アノテーションを実行していくためのデータの集め方にはどのようなものがあるのでしょうか、具体的には以下のようなものがあります。
①スクレイピングを行う
「スクレイピング」とは、Webサイト上にある文字や画像、URLなどのデータを収集し、それらのデータを適切な形に加工するプログラムのことです。
Pythonなどのプログラム言語を利用してスクレイピングを行うことにより、多種多様なデータを効率的に集めることができるのです。
②アプリなどを利用する
データを集めたい対象のサービスのアプリなどを、データ収集したい側の人が自分たちで利用してそのうえで得られたデータを集めていくという方法があります。
自分たちで経験したものがデータとして集められますので、その後のデータ利用の場面でもそれらのデータに関する理解も効率的に行うことが可能です。
③必要なデータを業者から購入する
AI開発関連の事業者の中には、アノテーションデータを作成するためのツールを提供している企業だけでなく、アノテーションしたデータを提供している企業も存在しています。
自社で活用したい分野のアノテーションデータを提供している企業からデータを直接購入することにより、作業工程を減らしてAI開発を行っていくことが可能です。
おすすめのアノテーションツール3選
アノテーションの実行にはツールを活用することができます。今回はおすすめのアノテーションツールとして以下の3つを紹介していきます。
①VoTT
VoTTは、Visual Object Tagging Toolの略で、以下のような特徴があるアノテーションツールです。
-
アノテーションの機能を無料で利用できる
-
動画や画像のアノテーションの操作性が簡便化されている
-
WindowsやMac、Linuxなどの互換性を気にすることなく利用できる
-
CNTK、Tensorflow(Pascal VOC)、YOLO アルゴリズムを利用する場合にもそのままの形式で出力できる
無料で一定以上の機能性があるアノテーションツールをOSの互換性などを気にすることなく利用したい事業者におすすめです。
(https://github.com/Microsoft/VoTT)
②ANNOFAB
「ANNOFAB」は、日本の来栖川電算が提供している無料のアノテーションツールのことで、以下のような特徴を持っています。
-
作業効率化や品質管理、作業の進捗管理機能によりチームで作業を行う上での利便性を向上させられる
-
ショートカットキーや自動検査など機能などの支援機能により高品質なアノテーションデータの作成が可能になっている
-
Web APIからの制御でデータが大量であっても一括処理や外部システムとの連携が簡単にできるのでデータ処理の利便性が高い
-
日本語を含めた多言語にも対応しているので安心してサポートを受けられる
高性能のアノテーションツールを低予算かつチームで効率的に作業を行うたい事業者にうってつけのアノテーションツールではないでしょうか。
まとめ
ここまでアノテーションとはどのようなものなのか、どのような種類があるのかなどについて説明してきましたが、いかがでしたか。
今後もAI技術の開発・進展はますます進んでいくモノと思われますが、効果的なAIを開発するためにはデータのアノテーション作業をしっかりと行う必要があり、そのためには利便性の高いアノテーションツールを有効活用していきたいものです。