オリジナルデータでYOLACTを作って動かそう! Part.1 パソコンの環境構築からアノテーションまで

3.8K Views

April 27, 24

スライド概要

インスタンスセグメンテーションAIの「YOLACT」を自分で用意した画像でファインチューニングして使いたい方向けの資料です。
Part1ではインスタンスセグメンテーションの説明からPCの準備、各種セットアップ、アノテーションの方法を紹介します。

profile-image

主にオープンソースを利用して、ディープラーニングやArduPilotの自律走行ロボットを開発しています。 バリバリ農学部出身ですが、異分野にも挑戦中。 これまで作った資料を順次公開しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

オリジナルデータで YOLACTを作って動かそう! Part.1 セットアップ~アノテーション 作成者:スプレッドナレッジ

2.

【Part.1 の内容】 1. インスタンスセグメンテーションAIとは? 2. 物体検出AI作成用パソコンのセットアップ方法 3. 勉強会で作成するAIの内容について 4. Labelmeを使ったアノテーション

3.

1. インスタンス セグメンテーションAI とは?

4.

1-1 AI(人工知能)とは? 人間のような判断をする システムの総称 デジタルデータ ディープラーニング 畳み込み ニューラルネットワーク (CNN)

5.

1-1 AI(人工知能)とは? ディープラーニング(DL):AIの作成方法の一つ AI(ソフトウェア)を作成する手法 機械学習 Machine Learning ディープラーニング Deep Learning AIの作成方法は ディープラーニング だけではない

6.

1-1 第1次AIブーム (1950~1970) AI(人工知能)とは? 第2次AIブーム (1980~1990) 第3次AIブーム (2010~)

7.

1-2 様々なAI分野 AI(人工知能) 文章認識 音声認識 制御関連 異常検知 画像認識・物体検出

8.

1-4 画像認識AIと物体検出AI 分類 猫です のみ 画像認識 Image classification 検出 赤枠に + 猫がいます 分類 物体検出 Object Detection

9.

1-5 インスタンスセグメンテーションAI ・物体検出 : 対象物の検出+分類 ・インスタンスセグメンテーション : 対象物の検出+分類+領域抽出 対象物を検出して分類する機能は一緒 元画像 物体検出 インスタンスセグメンテーション

10.

1-6 ディープラーニングでのAI開発の流れ ①AIに検出・分類させたいものを考える ④ディープラーニングでAI作成 ②画像や動画を収集 ③正解情報を追加(アノテーション)

11.

1-7 本資料で説明する インスタンスセグメンテーションAIの種類 YOLACT(ヨラクト) 【YOLACTの特徴】 ①2020年に論文とオープンソースが公開された ②インスタンスセグメンテーションAIの中でも リアルタイム性(処理スピード)に優れる ③MITライセンス →商用利用可能なライセンスがついている 引用:https://arxiv.org/pdf/1912.06218.pdf

12.

2. 物体検出AI作成用パソコン のセットアップ方法

13.

2-1 物体検出AI作成用パソコンについて 【ハードウェア】 ・マザーボード ・CPU ・GPU(NVIDIA社のもの) ・ROMメモリ (HDDやSSD) ・RAMメモリ ・PC電源 ※ゲーミングノートパソコンをそのまま買ってもよいです。

14.

2-1 物体検出AI作成用パソコンについて 【ソフトウェア】 ①OS(Windows®やLINUXなど) ②NVIDIAドライバー ③CUDA(クーダ) ④cuDNN(クーディーエヌエヌ) ⑤Anaconda(アナコンダ) ⑥各種Pythonライブラリ ⑦Labelme ⑧YOLACTのソースコード ※GPUやCUDAは無くても動作はします

15.

2-1 物体検出AI作成用パソコンについて Debian デビアン Ubuntu ウブンツ RedHat レッドハット CentOS セントオーエス Fedra フェドラ Windows ウィンドウズ ・ ・ ・ Mac マック Linux リナックス ここからはUbuntuを使う前提で解説します

16.

2-1 物体検出AI作成用パソコンについて ②NVIDIAドライバ:OSがGPUを認識するために必要 →パソコンにGPUを挿すだけでは使用できないので注意 + NVIDIAドライバー

17.

2-1 物体検出AI作成用パソコンについて ③CUDA:GPUを使ってディープラーニングなどの並列演算を行 うためのプラットフォーム(プログラム言語の一種) ④cuDNN:GPUによる計算を高速化するプログラム cuDNN CUDA Anaconda (Python3) NVIDIAドライバー OS(Ubuntu)

18.

2-1 物体検出AI作成用パソコンについて ⑤Anaconda:Python3というプログラム言語を 動かすための開発環境 ・YOLACTはPytorchを使って作成する &PytorchはPython3で動く UbutnuでYOLACT向けの開発環境を作るため Anacondaをインストールして YOLACTのセットアップを行う

19.

2-2 各種ソフトウェアのインストール方法 ①Ubuntu20.04LTSのインストール 物体検出AI 作成用 パソコン Windowsのパソコンで 「Ubuntu22.04LTS」のインストール メディアを作成 AI作成用パソコンのSSDへ Ubuntu22.04LTSをインストール

20.

①Ubuntu20.04LTSのインストール:USBインストールメディアの作り方 YouTubeに 解説動画を 公開しています https://youtu.be/dLDVuxDHPG4

21.

①Ubuntu20.04LTSのインストール:インストール画面の操作方法 https://youtu.be/GrM8gb4vHkU

22.

2-2 各種ソフトウェアのインストール方法 ②Ubuntuの起動とインターネットの設定 →ソフトウェアのインストールするときは必ずインターネットへ接続 有線LAN もしくは 無線LAN

23.

2-2 各種ソフトウェアのインストール方法 ②Ubuntuの起動とインターネットの設定:続き ・有線LANでIPアドレスを設定しないと接続できない場合 Ubuntuの画面右上の をクリック &「有線設定」をクリック マークをクリック

24.

2-2 各種ソフトウェアのインストール方法 ②Ubuntuの起動とインターネットの設定:続き ・有線LANでIPアドレスを設定しないと接続できない場合 IPアドレスなどを 入力したら 「適用」をクリック して保存する 「IPv4」もしくは「IPv6」をクリック 「手動」をクリックして IPアドレスやネットマスク等を入力する

25.

2-2 各種ソフトウェアのインストール方法 ②Ubuntuの起動とインターネットの設定:続き ・無線LAN(Wi-Fi)の設定方法 →Ubuntuのホーム画面の右上にある「▽」マークを クリックする →表示されたグレーのウィンドウ内にある「Wi-Fi未 接続」の右側にある「▷」をクリックする →「Wi-Fi未接続」の欄内に表示される「ネット ワークを選択」をクリックする

26.

2-2 各種ソフトウェアのインストール方法 ②Ubuntuの起動とインターネットの設定:続き →「ネットワークを選択」をクリックするとPCと交信可 能なWi-Fi機器名が表示される →自分が使用しているWi-Fi機器名をクリックし、 右下の「接続」をクリックする →パスワード入力ウィンドウが出るので、Wi-Fi機 器に設定されているパスワードを入力する →パスワード入力後、右下の「接続」をクリックする 画面右上に「 」マークが追加されたら接続完了!

27.

2-2 各種ソフトウェアのインストール方法 ③NVIDIAドライバーなどのインストール:インストール順番について NVIDIAドライバ Anaconda Python3の各種ライブラリ YOLACTのソースコード NVIDIAドライバは 必ず最初にインストール してください。 CUDAなどはAnacondaで インストールします (本資料のみ)。

28.

【補足】Ubuntuで重要な「端末(ターミナル)」とは? この白いバーが点滅 しているときにコマ ンドが入力できる ・緑色の文字:自分のコンピューター名 ・青色の文字(ここでは「~」):自分が現在端末上で入っているディレ クトリ(Windowsのフォルダーと同義) ・$以降:コマンドの入力部

29.

2-3 NVIDIAドライバのインストール ・端末を起動して以下のコマンドを順に実行する ① sudo add-apt-repository ppa:graphics-drivers/ppa ② sudo apt update ③ sudo apt upgrade ④ sudo apt install nvidia-driver ⑤ sudo reboot →ここでUbuntuが再起動します。 【参考】https://nisshingeppo.com/ai/install-nvidia-driver/

30.

2-3 NVIDIAドライバのインストール ・続き:再起動後、以下のコマンドを実行する ⑥ nvidia-smi →このようなドライバの情報が表示されればインストール完了。 【参考】https://nisshingeppo.com/ai/install-nvidia-driver/

31.

2-4 Anacondaのインストール (1)以下のサイトからUbuntu向けのインストーラーをダウンロードする。 https://www.anaconda.co m/download/success

32.

2-4 Anacondaのインストール (2)ダウンロードしたファイルが「Downloads」ディレクトリ内に保存さ れていることを確認する。homeディレクトリを英語化していない 場合は「ダウンロード」ディレクトリに保存されている。 ← ダウンロード時期によって ファイル名が異なる。

33.

2-4 Anacondaのインストール (3)端末で以下のコマンドを実行し、Anacondaのインストーラーを 起動する。 ① cd Downloads ② bash Anaconda3-2022.05-Linux-x86_64.sh 赤字の部分はダウンロードした 時期によって異なる。 ファイル名と照らし合わせて 異なっていた場合は変更する。 (4)以下の表示が出たら、そのまま何も入力せずEnterキーを押す。

34.

2-4 Anacondaのインストール (5)Enterを押すと、以下のような表示が出る。ここにはライセンスが 表示されておりEnterを長押しして読み進めていく。 すると[Yes|No]を聞いてくるので、利用規約に同意する意を 込めて「yes」と端末に入力してEnterを押す。 ここでyesと入力

35.

2-4 Anacondaのインストール (6)しばらくすると以下のような表示が出る。これはパス(環境変 数)の指定について聞かれており、そのまま何も入力せずEnter を押して進める。 この状態でEnterを押す

36.

2-4 Anacondaのインストール (7)しばらくすると以下のように表示が出る。そうしたら、「yes」と入力 してEnterを押す。 すると「Thank you for installing Anaconda3!」と表示される。 その後一度端末を×ボタンで消し、もう一度立ち上げ直す。 インストールに成功していると、左端に(base)と表示されるよ うになる。 (base)と表示 ここでyesと入力

37.

2-5 仮想環境の作成とPyTorch&YOLACTの修正 ・端末を起動して、以下のコマンドを実行して仮想環境を作る 途中でyes/noを聞いて くるのでyesと 入力して続行する ① conda create -n yolact python=3.10 ② conda activate yolact ③ conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch ← ③を実行して以下のような表示が 出たら、半角の「y」の1文字だけ 入力してEnterキーを押す。 すると仮想環境へPyTorchなどが インストールされる

38.

2-5 仮想環境の作成とPyTorch&YOLACTの修正 ④ ⑤ ⑥ ⑦ ⑧ cd ~ git clone https://github.com/dbolya/yolact.git pip install opencv-python cython pillow pycocotools matplotlib cd ~/anaconda3/envs/yolact/lib/python3.10/site-packages/torch/utils/data gedit sampler.py 「gedit sampler.py」を実行したら、テキストエディターで sampler.pyというプログラムを開くことができる。そうし たら、112行目周辺にある「generator = torch.Generator()」 を「generator = torch.Generator(device='cuda')」へ書き直し て保存する。保存してウィンドウを閉じたら、引き続き コマンドをコピペして実行していく。

39.

2-5 仮想環境の作成とPyTorch&YOLACTの修正 ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ cd ~/yolact/external rm -r DCNv2 git clone https://github.com/jinfagang/DCNv2_latest.git mv DCNv2_latest DCNv2 cd DCNv2 python setup.py build develop 右のように「Finished processing dependencies for DCNv2==0.1」と 表示されれば修正完了

40.

3. 勉強会で作成するAIの 内容について

41.

3-1 AI開発の前に必ず行うこと (1)AIに見つけてもらいもの・分類してもらいたいものが 何であるか考える (2)AI開発用データはAIに見つけてもらいもの・分類し てもらいたいものが必ず写っているものを準備する (3)AIにどう見つけてもらいたいか(アノテーションでの 対象物の範囲指定方法などの整理) 何に使うためのAIか? そのためのデータを収集できているか? どうAIに判別してもらいたいのか?

42.

3-2 AI開発の打ち合わせ例 インスタンスセグメンテーションAIに 植物の病気を見つけてもらおう 病気が発生している画像を収集しよう アノテーションは〇〇の部分を 範囲指定しよう

43.

4. Labelmeを使った アノテーション

44.

4-1 Labelmeとは ・Labelme:インスタンスセグメンテーションAIの作成に 必要な学習データ(教師データ)を作成するための Pythonアプリケーション 引用:https://github.com/wkentaro/labelme

45.

4-2 Labelmeのインストール (1)アノテーションを行う作業用パソコンへAnacondaをインストール https://www.anaconda.com/ download/success → Windowsの場合、インストーラーを ダウンロードしてインストールしてください。

46.

4-2 Labelmeのインストール (2)Anacondaをインストールしたら 端末(コマンドプロンプト)を起動して以下のコマンドを 順に入力する

47.

4-2 Labelmeのインストール (2)続き ① conda create –n labelme python=3.9 ② conda activate labelme ③ conda install labelme -c conda-forge 【コマンドの意味】 ①「labelme」という名前のPython3の 仮想環境を作成 ②仮想環境「labelme」の起動 ③仮想環境へLabelmeをインストール

48.

4-3 Labelmeの起動とアノテーション (0)アノテーションでの対象物の囲み方や分類項目名(半角英数)を 事前に決めてメンバーと共有する →間違えるとアノテーションデータが使い物にならなくなるので注意 耳やしっぽまで 細かく囲もう 猫は「cat」 犬は「dog」で ?? アノテーションの 方法を資料にまとめて シェアすると良い

49.

4-3 Labelmeの起動とアノテーション (1)コマンドプロンプトを起動して、以下のコマンドを順に実行する ① conda ② labelme activate labelme ←仮想環境「labelme」の 起動 ←仮想環境に入った状態で「labelme」の起動コマンドを実行

50.

4-3 Labelmeの起動とアノテーション (2)Labelme起動後、画面右上の「File」をクリック →「Save Automatically」をクリック →今後アノテーション内容が自動保存されるようになる ※Labelmeを開いたら毎回行う

51.

4-3 Labelmeの起動とアノテーション (3)「 」をクリックして画像データが保存されているフォルダを 選択して開く

52.

4-3 Labelmeの起動とアノテーション (4)画面右上の「 」をクリックするとアノテーションを開始できる (5)AIに検出・分類させたい対象物の周囲を順にクリックして囲む (6)囲み終わったら、分類項目名を選択して「OK」をクリック →最初だけ手動で分類項目名を入力してOKをクリックする

53.

4-3 Labelmeの起動とアノテーション (7)画面右側の「Label List」に分類項目名が追加される →次の画像へ進む場合、「 」をクリックする (8)(4)~(7)を繰り返してアノテーションを続行する

54.

4-4 Labelmeの使い方の補足 ・囲み間違えた場合:ひとまず最後までクリックして囲む →「 」をクリックして、囲み間違えた部分の点を 動かして囲み方を修正する 囲み間違えた部分

55.

4-4 Labelmeの使い方の補足 ・拡大してアノテーションしたい場合: Ctrlキーを押しつつマウスホイールを上に回す or タッチパッドで指2本で拡大の操作をする

56.

4-4 Labelmeの使い方の補足 ・アノテーションしたものを削除したい場合: 「 」をクリックして消したい部分へマウスポインタ―を移動させる →「Delete Polygons」をクリックする →その後に出てきたウィンドウの「Yes」をクリックすると削除できる

57.

4-5 アノテーションが終わったら ・アノテーションが終わると画像データが保存されている フォルダにアノテーションデータ(.json)がしっかり 保存されているか確認

58.

4-5 アノテーションが終わったら 画像データ(.jpg) & アノテーションデータ(.json) 画像データ(.jpg) & アノテーションデータ(.json) 画像データ(.jpg) & アノテーションデータ(.json) practice 1つのフォルダーへ まとめましょう!