3.9K Views
April 27, 24
スライド概要
インスタンスセグメンテーションAIの「YOLACT」を自分で用意した画像でファインチューニングして使いたい方向けの資料です。
Part3では画像やWebカメラを使ってインスタンスセグメンテーションを実行する方法や面積の算出方法を紹介します。
オリジナルデータで YOLACTを作って動かそう! Part.3 インスタンスセグメンテーションの実行 作成者:スプレッドナレッジ
【Part.3 の内容】 0. 前回のおさらい 1. インスタンスセグメンテーションの実行方法 2. 検出結果の確認と面積の算出
0. 前回のおさらい
0-1 前回のおさらい
0-2 YOLACTのプログラムの一部変更 ・インスタンスセグメンテーションの実行:eval.pyを実行する →検出物の面積を出力するため一部プログラムを書き加える home yolact
・eval.pyの一部変更:160行目の次に以下のプログラムを追記する
0-3 新しいディレクトリの作成 ・yolactディレクトリ内に「results」ディレクトリを新規に作成する →resultsディレクトリにインスタンスセグメンテーションの結果を出力する
1. インスタンス セグメンテーションの 実行方法
1-1 YOLACTのAIファイルの確認 ・ディープラーニング後:weightsディレクトリにYOLACTのファイル (.pth)が保存される home yolact weights
1-1 YOLACTのAIファイルの確認 ・YOLACTのファイル名:configの名前と学習回数が関係している home yolact data weights
1-2 テスト画像の用意 ・YOLACTに検出させるテスト画像を1つのディレクトリにまとめる →yolactディレクトリ内に「test_data」ディレクトリを作成 →test_dataディレクトリ内にテスト画像を保存したディレクトリを保存する home yolact test_data 名前は何でもよいが 本資料ではこの ディレクトリ名とする 〇〇
1-3 インスタンスセグメンテーションの実行 ・端末に次の3つのコマンドを入力する ① conda activate yolact ② cd yolact ③ python eval.py yolactの仮想環境を起動 cdコマンドでyolactディレクトリへ移動 --trained_model=[YOLACTモデルの指定] --images=[テスト画像の指定]:[検出結果の保存先の指定] --score_threshold=0.15 --top_k=15
【③のコマンドの記述例】 python eval.py --trained_model=weights/practice_434_10000.pth --images = test_data/practice_test:results/practice_results --score_threshold=0.15 --top_k = 15 YOLACTモデル yolact yolactディレクトリを 基準として見ると 分かりやすい weights test_data practice_434 _10000.pth practice_test テスト画像が保存されている ディレクトリ 検出結果の保存先 results practice_results
resultsディレクトリに検出結果を記録した 「results.csv」というファイルが 自動生成される
1-4 Webカメラを使う場合のeval.pyのコマンド python eval.py --trained_model=weights/practice_434_10000.pth --video_multiframe=4 --score_threshold=0.15 yolact --video=0 --top_k = 15 weights practice_434 _10000.pth 「--video=0」の0は、PC内 部のカメラの通し番号のこ と。もし0でエラーが出たら、 1、2、…と別の番号を試す。
2. 検出結果の確認と 面積の算出
2-1 検出結果の出力内容の確認 ・③のコマンドの「--images=」で指定したディレクトリに YOLACTの検出画像が出力される yolact results practice_ results results.csv
2-2 results.csvの内容について ・resultsディレクトリに「results.csv」が自動生成される →YOLACTが検出した分類項目や面積が記述されている yolact results practice_ results results.csv
【results.csvの横軸について】 ・image_name:テスト画像のファイル名 ・id:各テスト画像内でYOLACTが検出した対象物の通し番号 ・class:YOLACTが分類したクラスのクラス番号 ・score:検出信頼度 ・x1, y1, x2, y2:検出物の位置座標 ・area:検出した対象物の面積(単位:ピクセル)
2-3 検出物の面積の算出 ①各画像の画像面積(ピクセル数=縦×横)を把握する ②画像ごとに「何が, 何個」検出されたか確認する 480ピクセル x 0 画像面積 (ピクセル) = 409,920 ピクセル (854×480) 854 ピクセル y
③areaの値(検出物の面積)を合算する ④以下の式で対象物の面積割合を算出する Id:2 25246 ピクセル ③で算出した検出物の面積(ピクセル) 検出物の = 面積割合 ①で算出した画像面積(ピクセル) Id:1 42068 ピクセル 「cat_144.jpg」の catの面積 ≒ 0.16 = 42,068+25,246 409,920 cat_144.jpg