第3回 roboflow：アノテーション（2/2）

:::note info
本記事は、システムズナカシマの[ブログ記事](https://www.systems.nakashima.co.jp/rf/roboflow/blog/)を基に作成しています。
:::

こんにちは、システムズナカシマの松浦です。

前回に続き**アノテーション**の方法について解説します。

本記事をお読みになる前に、アカウントをお持ちでない方（[サインアップ](https://qiita.com/ShingoMatsuura/items/7d7a7940061f8990f50b#%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90)）、ワークスペース・プロジェクトの準備がお済みでない方は以下の記事をご確認ください。

 - [第1回：ワークスペースとプロジェクトの作成（1/2)](https://qiita.com/ShingoMatsuura/items/7d7a7940061f8990f50b)、[(2/2)](https://qiita.com/ShingoMatsuura/items/407bd9122bf07fd0ac4a)
 - [第2回：データのアップロード](https://qiita.com/ShingoMatsuura/items/5443bd69f2ee51ae6b1f)
 - [第3回：アノテーション（1/2）](https://qiita.com/ShingoMatsuura/items/23d241ec31727efd2e66)

また、roboflowで何ができるか、概要を知りたい方は[「はじめてのroboflow」](https://qiita.com/ShingoMatsuura/items/c2df30e0b6109ab25c32)の記事をご参照ください。

<iframe width="560" height="315" src="https://www.youtube.com/embed/Q12SXpYIvhY?si=M-OeKp0rw6axME4-" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

本記事では、以下の特徴的なアノテーション支援機能について説明します。:point_up_tone1:

|No|機能名|概要|説明|
|-|-|-|-|
|1|**Smart Polygon**|ワンクリックポリゴン|ワンクリックで画像内の対象物の輪郭を認識します。|
|2|**Label Assist**|自動ラベリング|roboflow上で学習したモデルを使ってアノテーションを行います。|
|3|**Box prompting (AI Labeling)**|ビジュアルプロンプトによるラベリング|画像内にある同一形状の対象物を一括でアノテーションします。|
|4|**Repeat Previous**|繰り返し|一つ前の画像で行なったアノテーションを繰り返します。動画から切り出した画像でアノテーションを行う際に便利です。|
|5|**Mark Null**|背景画像として学習|検出対象が写っていない画像を明示的に学習データとして収集し誤認識を軽減します。|

## 1. Smart Polygonによる自動輪郭抽出
まず、初めに「**Smart Polygon**」について説明します。

「**Smart Polygon**」を使うことでクリックされた位置にある**対象物の輪郭を自動で抽出**することができます。この機能は、Meta社により開発された「**Segment Anything**」を利用し開発されています。新しい技術を取り入れるスピードがかなり早いですね。:astonished: :rocket:

この機能は、セグメンテーションモデル用のアノテーションを行う際に大変重宝します。:point_up_tone1:

以下、実際に利用している様子です。
画像の中にあるお寿司をクリックすると自動で輪郭が抽出されます。:sushi:

![smart_polygon.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882762/c492f122-143b-90ff-ae53-b4fb3fd1b098.gif)

## 2. Label Assistによる自動ラベリング
「**Label Assist**」は、roboflow上で**学習したAIモデル**、公開されているAIモデル（COCO）を利用し、自動でアノテーションを行う機能です。

一度利用すると手放せなくなる優れた機能です。:smirk:

アノテーションをする方は、**クラス（ラベル）の確認**と**位置・サイズの調整**に集中することができるのでかなり効率良く作業が行えます。


以下、実際に利用している様子です。
認識しない場合は「**confidence**（画面右上）」の値を小さくすることでラベリングされます。

![label_assist.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882762/a3d6bd63-48c5-dac9-0640-e524832f9e17.gif)

## 3. Box prompting (AI Labeling)による一括アノテーション
「**Box prompting (AI Labeling)**」は、画像内に**複数存在する類似した形状箇所**を一括でアノテーションする機能です。今流行りのLLMを利用した先進的なアノテーション手法です。

以下は、イクラのお寿司のイクラの粒を一括でアノテーションする例となります。（そんな状況あります？:sweat_smile:）

![box_prompting.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882762/84d8290b-c77b-5fe5-5af7-89a569045702.gif)


## 4. Repeat Previousによるアノテーションの繰り返し
「**Repeat Previous**」では、一つ前の画像で行ったアノテーションを繰り返すことができます。

動画から切り出したフレーム画像に対してアノテーションを実施する際など同じクラスで同じような位置をアノテーションする際に大変便利な機能です。

以下、実際に利用している様子です。
最初の画像は手動でアノテーションを行い、2枚目以降は「**Repeat Previous**」を利用してアノテーションを行っています。

![repeat_previous.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882762/b2692668-2fb9-68f5-b081-1b5465455a3d.gif)

## 5.Mark Nullとは？
「**Mark Null**」は、画像にアノテーションを行う**対象物が写っていない場合にON**にします。

学習したAIモデルが、画像の背景を対象物として誤認識する際には、この「**Mark Null**」を利用し**対象物が写っていない画像を学習データとして利用**できるようにします。

![mark_null.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882762/d40cad50-3205-82a6-e0b4-a23782dbb9f4.gif)



## 最後に

次回は、「データ増強（オーグメンテーション）」について解説します。
次回も楽しみにしておいてください。:wink:

> ※記事一覧
> - [第1回：ワークスペースとプロジェクトの作成（1/2)](https://qiita.com/ShingoMatsuura/items/7d7a7940061f8990f50b)、[（2/2）](https://qiita.com/ShingoMatsuura/items/407bd9122bf07fd0ac4a)
> - [第2回：データのアップロード](https://qiita.com/ShingoMatsuura/items/5443bd69f2ee51ae6b1f)
> - [第3回：アノテーション（1/2）](https://qiita.com/ShingoMatsuura/items/23d241ec31727efd2e66)、[（2/2）](https://qiita.com/ShingoMatsuura/items/1a078681c6e370faeeb9)
> - [第4回：データ増強（オーグメンテーション）](https://qiita.com/ShingoMatsuura/items/64f0255c058b425fe8c1)
> - [第5回：学習](https://qiita.com/ShingoMatsuura/items/4ef2e9edd96191337c00)
> - [第6回：推論結果の確認](https://qiita.com/ShingoMatsuura/items/14c5d717e9d9637f81c8)

システムズナカシマでは、roboflowに関する個別相談・無料デモを行っております。
是非お気軽にご相談ください。

https://www.systems.nakashima.co.jp/inquiry/roboflow/contact/