ShuuLog

ShuuLog

2022年08月17日
XML
カテゴリ: AIの勉強
detectron2とは、Facebook AI Researchが開発したPytorchベースの物体検出ライブラリです。
detectronとMask R-CNN Benchmarkの後継となるライブラリです。

さまざまな物体検出のライブラリを試していますが、なかなか、容易に環境の構築ができず自分の技術力のなさを感じてしまいます。

さて、このdetectron2ですが、セットアップを行いインポートモジュールとして動作するようです。
ソースコードをダウンロードし、Pythonでsetup.pyを叩く感じです。

ただ、このセットアップが正常終了しなかったりするので面倒なところです。
基本的にPytorchをビルドする環境があれば、問題なさそうです。

さて、私の環境ではPytorchをビルドする必要があるため、その環境が整っています。

なので、detectron2をビルドします。


ただ、簡単な確認用プログラムを作成し動作確認すると、エラーが発生します。。。

そのエラーはnumpyのエラーでした。numpyのインポートでエラーが発生するわけですが、もちろんnumpyはインストールされています。

色々と調べてみると、numpyを再インストールすると治るよ?という事でしたので、numpyを再インストールしてみました。
numpyのエラーは無くなったものの、以下のエラーが発生します。
これにはどうにもわかりませんでした。

RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.
        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:
            if __name__ == '__main__':  
                freeze_support() 
                ...
        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.

かなり、いろいろと調べて、このエラーの前にエラーメッセージとして表示されている各種モジュールを
見てみたりしましたが、Pythonの知識が不足しているので、どうにもわかりませんでした。

と、ふとした時に、プログラムをこのメッセージの形式で書けばいいんじゃね?って思って作り替えたところ正しく動作しました!

今までは
import ~~~

処理A

処理C

みたいな感じで、普通のBASICやPHPみたいなプログラムの最初から流れるような形で単準備記載していたのですが、それを

import ~~~

def main():
 処理A

 処理C

if __name__ == '__main__':
 main()

と書き換えただけで動きました。
対応方法としては、エラーメッセージに表示されているのですが、どこをこの書き方に変えてよいのかっていうのでかなり悩みましたが、結果、動作させるメインのプログラムに書けばよかっただけという単純なものでした。

やはり、Pythonの知識不足でしょうかね。。。

んで、ようやく、detectron2での教育プログラムが動作することが分かったので、いよいよ教育していきたいと思っています。
数は少ないのですが、20程度の教育データをテスト的に用意して教育したところ、なかなかよさそうな結果が出てきているので、教育データを用意して教育してみたいと思います。
※先日環境をいろいろといじっていたら誤って教育データ(coco形式)を全削除してしまったので、作成しなおしなのです。。。orz





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2022年08月22日 09時11分17秒
コメント(0) | コメントを書く
[AIの勉強] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

プロフィール

ShuuLog

ShuuLog

カレンダー


© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: