アノテーションを整理してみた

# 背景・目的
画像認識や物体検出を含むコンピュータビジョン分野では、アノテーションデータが必要になると言われます。
このあたりの知識を有していなかったので今回、基本的な知識を整理します。

# まとめ
下記に特徴をまとめます

|特徴|説明|
|:--|:--|
|コンピュータービジョンとは|機械学習とニューラルネットワークを使用して、コンピューターとシステムにデジタル画像、動画、その他の視覚データから意味のある情報を導き出し下記を実行する、人工知能（AI）のいち分野|
|コンピュータビジョンの学習|コンピューター・ビジョンには、大量のデータが必要<BR>特徴を識別し、最終的に画像を認識するまで、データの分析を繰り返し実行する<BR><BR>例）自動車のタイヤをコンピューターに認識させるには、膨大な量のタイヤ画像やタイヤに関するアイテムを与えて違いを学習させ、特に欠陥のないタイヤを認識させる必要がある|
|コンピュータビジョンのテクノロジー|下記を使用する<BR>・ディープラーニング<BR>・畳み込みニューラル・ネットワーク（CNN）|
|コンピュータビジョンの例|・画像分類<BR>・オブジェクト検出<BR>・オブジェクト・トラッキング<BR>・コンテンツ・ベースの画像検索|
|アノテーションとは|アノテーションとは、AIを機械学習させる際のデータに記載する「説明を入れること」を指す。その説明を、「ラベル」と読んだり、「注釈」「アノテーション」と呼ばれたりする<BR><BR>機械学習を使用しているビジネスの場面では、アノテーションが成功の鍵を握る|
|アノテーションの種類|下記の種類のアノテーションがある<BR>・画像分類<BR>・物体検出<BR>・領域検出<BR>・キーポイント<BR>・音声データ<BR>・テキスト|


# 概要
## コンピュータービジョンとは
アノテーションの前に、コンピュータービジョンについて簡単に整理します。

下記の記事を基にまとめます。

https://www.ibm.com/jp-ja/topics/computer-vision?utm_source=chatgpt.com

> コンピューター・ビジョンとは、機械学習とニューラル・ネットワークを使用して、コンピューターとシステムにデジタル画像、動画、その他の視覚データから意味のある情報を導き出し、欠陥や問題が特定されたときに推奨事項を作成したりアクションを実行したりするように教える人工知能（AI）の一分野のことです。

- コンピュータービジョン
    - 機械学習とニューラルネットワークを使用して、コンピューターとシステムにデジタル画像、動画、その他の視覚データから意味のある情報を導き出し下記を実行する、人工知能（AI）のいち分野
        - 欠陥や問題が特定されたときに推奨事項を作成
        - アクション


> AIによってコンピューターが考えることができるようになると、コンピューター・ビジョンによって、コンピューターは確認し、観察し、理解できるようになります。

- コンピュータビジョンにより、コンピュータは確認し、観察、理解できるようになる

> コンピューター・ビジョンは、人間が有利にスタートを切ることができるという点を除けば、人間のビジョンとほとんど同じように機能します。人間の視覚には、オブジェクトを区別する方法、オブジェクト間の距離、オブジェクトが動いているかどうか、画像に何か問題があるかどうかを把握するためのコンテキストの学習の蓄積という利点があります。

- 人が有利にスタートを切ることを除けば、人間のビジョンとほとんど同じように機能する
- 人間の視覚には、下記の利点がある
    - オブジェクトを区別する方
    - オブジェクト間の距離
    - オブジェクトが動いているか
    - 画像になにか問題があるかどうか、把握するためのコンテキストの学習の蓄積

> コンピューター・ビジョンは、こうした機能を実行するように機械を訓練しますが、網膜、視神経、視覚野によるものではなく、カメラ、データ、アルゴリズムを使用して、はるかに短い時間で実行する必要があります。製品の検査や生産資産の監視を行うように訓練されたシステムは、数千の製品やプロセスを瞬時に分析し、知覚できない欠陥や問題を認識することができるため、人間の能力をすぐに超える可能性があります。

- コンピュータービジョンは上記の機能を実行するように機械を訓練する
- カメラ、データ、アルゴリズムを使用して、遥かに短い時間で実行する必要がある
- 製品検査、生産資産の監視をこなうように区連されたシステムは、数千の製品やプロセスを瞬時に分析し、知覚できない欠陥や問題を認識することができるため、人間の能力をすぐに超える可能性がある

> コンピューター・ビジョンは、エネルギー・公共事業から製造業や自動車に至るまで幅広い業界で使用されており、市場は成長を続けています。2022年までに486億米ドルに達すると予想されています。

- エネルギー・公共事業から製造業、自動車に至るまで幅広い業界で使用されており、市場は成長を続けている

### コンピューター・ビジョンの仕組み
> コンピューター・ビジョンには、大量のデータが必要です。特徴を識別し、最終的に画像を認識するまで、データの分析を繰り返し実行します。例えば、自動車のタイヤをコンピューターに認識させるには、膨大な量のタイヤ画像やタイヤに関するアイテムを与えて違いを学習させ、特に欠陥のないタイヤを認識させる必要があります。

- コンピューター・ビジョンには、大量のデータが必要
- 特徴を識別し、最終的に画像を認識するまで、データの分析を繰り返し実行する
- 例）自動車のタイヤをコンピューターに認識させるには、膨大な量のタイヤ画像やタイヤに関するアイテムを与えて違いを学習させ、特に欠陥のないタイヤを認識させる必要がある

> これを実現するには、ディープラーニングと呼ばれる機械学習の一種と、畳み込みニューラル・ネットワーク（CNN）の2つの重要なテクノロジーが使用されます。

- 下記のテクロジーを使用する
    - ディープラーニング
    - 畳み込みニューラル・ネットワーク（CNN）

> 機械学習では、アルゴリズム・モデルを使用し、視覚データのコンテキストについてコンピューターが自ら学習できるようにします。モデルを通じて十分なデータが提供されると、コンピューターはデータを「確認」して、ある画像と別の画像を区別するように自ら学習します。アルゴリズムにより、誰かが画像を認識するようにプログラミングするのではなく、機械が自ら学習できるようになります。

- 機械学習では、アルゴリズム・モデルを使用して視覚データのコンテキストについてコンピューターが自ら学習できるようにする
- モデルを通じて十分なデータが提供されると、コンピューターは、データを「確認」して、ある画像と別の画像を区別するように自ら学習する
- アルゴリズムににより、誰かが画像を認識するようにプログラミングするのではなく、機械が自ら学習できるようになる

> CNNは、画像をタグまたはラベルが付けられたピクセルに分割することにより、機械学習またはディープラーニング・モデルの「視覚化」をサポートします。ラベルを使用して畳み込み（2つの関数を使用して3番目の関数を生成する数学的演算）を実行し、「見ている」ものについて予測を行います。ニューラル・ネットワークは畳み込みを実行し、予測が可能になるまで、一連の反復で予測の精度をチェックします。次に、人間と同様の方法で画像を認識または表示します。

- CNN
    - 画像をタグまたはラベルが付けられたピクセルに分割することにより、機械学習またはディープラーニング・モデルの「視覚化」をサポートする
    - ラベルを使用して畳み込み（2つの関数を使用して3番目の関数を生成する数学的演算）を実行し、見ているものについて予測する
- ニューラル・ネットワーク
    - 畳み込みを実行し、予測が可能になるまで、一連の反復で予測の精度をチェックする
- 人間と同様の方法で画像を認識または表示する

> 人間が離れた場所の画像を認識するのと同じように、CNNは最初にハード・エッジと単純な形状を識別し、次に予測を反復して実行しながら情報を埋め込んでいきます。CNNは、単一の画像を理解するために使用されます。再帰型ニューラル・ネットワーク（RNN）は、動画アプリケーションでも同様の方法で使用され、一連のフレーム内の画像が互いにどのように関連しているかをコンピューターが理解できるようにします。


- CNNは最初にハード・エッジと単純な形状を識別子、次に予測を反復して実行しながら情報を埋め込んでいく
- CNNは、単一の画像を理解するために使用する
- 再帰型ニューラル・ネットワーク（RNN）は、動画アプリケーションでも同様の方法で使用され、一連のフレーム内の画像が互いにどのように関連しているかをコンピューターが理解できるようにする


### コンピューター・ビジョンの例
> - 画像分類では、画像を見て、分類すること（犬、りんご、人の顔）ができます。より正確には、特定の画像が特定のクラスに属することを正確に予測できます。例えば、ソーシャル・メディア会社は、ユーザーがアップロードした好ましくない画像を自動的に識別して分離するために使用したい場合があります。
> - オブジェクト検出では、画像の分類を使用して特定のクラスの画像を識別し、画像または動画でそれらの外観を検出して表にまとめることができます。例としては、組立ラインの損傷の検出や、保守が必要な機械の特定などがあります。
> - オブジェクト・トラッキングでは、オブジェクトが検出されると追尾または追跡します。このタスクは、多くの場合、シーケンスまたはリアルタイムの動画フィードで取り込まれた画像を使用して行われます。例えば、自動運転車は、歩行者、他の車両、道路インフラなどのオブジェクトを分類して検出するだけでなく、衝突を回避して交通法規に従うために、移動中のオブジェクトを追跡する必要があります。7
> - コンテンツ・ベースの画像検索 では、コンピューター・ビジョンを使用して、画像に関連付けられたメタデータ・タグではなく、画像のコンテンツに基づいて、大規模なデータ・ストアから画像を参照、検索、取得します。このタスクには、手動の画像タグ付けに代わる自動画像注釈を組み込むことができます。これらのタスクは、デジタル資産管理システムに使用でき、検索と取得の精度を高めることができます。

- 画像分類
    - 画像を見て、分類できる
    - 特定の画像が特定のクラスに属することを正確に予測できる
    - 例えば、ソーシャル・メディア会社は、ユーザーがアップロードした好ましくない画像を自動的に識別して分離するために使用したい場合がある
- オブジェクト検出
    - 画像の分類を使用して特定のクラスの画像を識別し、画像または動画でそれらの外観を検出して表にまとめることができる
    - 例としては、組立ラインの損傷の検出や、保守が必要な機械の特定などがある
- オブジェクト・トラッキング
    - オブジェクトが検出されると追尾または追跡します。このタスクは、多くの場合、シーケンスまたはリアルタイムの動画フィードで取り込まれた画像を使用して行われる
    - 例えば、自動運転車は、歩行者、他の車両、道路インフラなどのオブジェクトを分類して検出するだけでなく、衝突を回避して交通法規に従うために、移動中のオブジェクトを追跡する必要がある
- コンテンツ・ベースの画像検索
    - コンピューター・ビジョンを使用して、画像に関連付けられたメタデータ・タグではなく、画像のコンテンツに基づいて、大規模なデータ・ストアから画像を参照、検索、取得する
    - このタスクには、手動の画像タグ付けに代わる自動画像注釈を組み込むことができます。これらのタスクは、デジタル資産管理システムに使用でき、検索と取得の精度を高めることができる

## アノテーションとは
下記の記事を基に整理します。

https://ai-kenkyujo.com/artificial-intelligence/annotation/?utm_source=chatgpt.com


- アノテーションとは、AIを機械学習させる際のデータに記載する「説明を入れること」を指す
- 「これは人間である」、「それは食べ物である」などAIに教えてあげるための説明
- その説明を、「ラベル」と読んだり、「注釈」「アノテーション」と呼ばれたりする
- 機械学習を使用しているビジネスの場面では、アノテーションが成功の鍵を握る
- AIの精度には、教師データが必要。しかもきれいに整えられたデータが必要
- きれいなデータ＝アノテーションが間違っていない、欠損していないことが挙げられる

### アノテーションの種類
アノテーションには、下記の種類のアノテーションがある
- 画像分類
    - クラシフィケーション
    - なんの画像か
    - 画像とアノテーションを1つずつ付与する
    - 画像がどのカテゴリーにはまるか
- 物体検出
    - オブジェクトディテクション
    - 画像の対象をバウンディングボックスと呼ばれる矩形領域に対して、カテゴリーごとにアノテーションする
- 領域検出
    - セマンティックセグメンテーション
    - 画像の1ピクセルずつカテゴリ別に分類する
    - 工数は増えがち
- キーポイント
    - 画像の対象を線として捉えて、カテゴリー事にキーポイントと呼ばれる線分を用いてアノテーションする
    - 線で捉えることで、表情の認識、ポーズのような姿勢制御など細かな特徴を判別する
- 音声データ
    - 音声データを文章として書き起こし、それぞれの単語について意味を付与する
    - コールセンターでのやりとりや議事録など様々なシーンで活用される
- テキスト
    - これが重要な文章であると紐づけたり、不要であるなどと差別を付与する

### メリット・デメリット
- メリット
    - 画像認識・動画認識・音声認識の精度がよくなる
- デメリット
    - 手作業で行わなければならない
    - データにアノテーションをするのは、AI、機械学習のため
    - 人間の認識機能をそのまま教える
    - どんな作業者でも簡単にできるわけではない

# 考察
コンピュータービジョンの基礎とアノテーションの基本を学びました。コンピュータービジョンは多くの分野で応用され、その精度を支えるのがアノテーションであると理解しました。

今後はオープンソースのアノテーションツールのCVATなどを実際に使い、作業効率や活用可能性を検証することで、実践的な知見を深めようと思います。

# まとめ
https://github.com/cvat-ai/cvat#computer-vision-annotation-tool-cvat

https://www.ibm.com/jp-ja/topics/computer-vision

https://ai-kenkyujo.com/artificial-intelligence/annotation/

https://github.com/cvat-ai/cvat#computer-vision-annotation-tool-cvat