調べ方について:
自分の検索の仕方が悪いのか、ラズパイを使った学習済みモデルの使い方を調べても、ラズパイを使って画像認識してみた!のような記事しかヒットしません。
たまたま動かしたい環境がRaspberry Piなだけで、Pythonを使う限り、基本的にOS的にはWindowsで動かそうがLinuxで動かそうが、CPU的にはX86-64(いわゆるPC)だろうがARM64(例えばRaspberry Pi)だろうが、(下準備のパッケージのインストールを除けば)そこまで大きく変わりません。
ですので、すでに感じられていると思いますが、「どのような環境で動かす」よりも「Pythonで何をしたいか」を重要視した方が良いと思います。
やってみたいことと記事について:
やってみたいこととしては、手書き数字の認識や簡単な物体検出など、picameraを用いた簡単なアプリケーションを作ってみたいです。
機械学習は、正しく認識させるための設定(ネットワークの重み)を学ぶ「学習」と、正しく認識する設定を使った「推論」からなっています。ですので、先の学習済みモデルの使い方を調べたらやってみた系の記事がヒットした、というのは「めんどくさい学習はすっ飛ばして、いい塩梅の重みを使って手軽に推論を試した」という記事ですので、説明としては理にかなっています。
質問の内容を見る限り、「データセットのような有り合わせのデータからの推論ではなく、USBやMIPIカメラのデータのような生きているデータからの推論をしたい」というのが本当にやりたいこと、と思います。
であれば、USBカメラであればOpenCVを使った動画の表示が良いと思いますし、より高速なMIPIカメラであればpicameraで顔認識してみた
が参考になると思います。
処理の流れは、普通は以下の感じになるはずです。上記のOpenCVのリファレンスは以下の1までの説明ですが、認識してみた系の記事であれば1~4まで対応しているはずです。カメラの種類が何であれ、画像さえ受け取ってしまえば、2以降の処理は基本的に同じですので、カメラに合わせて1.の部分を挿げ替える(cv2なのかpycameraなのかpyrealsense2なのか等)だけで済みます。
- whileの無限ループの中でカメラから画像を受け取る。
- 画像をニューラルネットワークで使える形で突っ込む。
- 推論結果を受け取る
- 推論結果を画像として表示する
- 何かしらのフレームワークを使ってアプリにする
アプリケーションについて:
ここまでの技術的なボリュームが割と大きいですので、アプリケーションの話は別に考えた方が良いと思います。
分野的には、カメラの扱いは画像処理系エンジニアの得意なところですし、認識関係は機械学習エンジニア、アプリ化はWEB系エンジニアらが得意なところと思います。いろんな範囲を横断していますので、一気にやろうとすると少ししんどいように思います。
一連の処理をdjangoでやっている例も探せば見つかりましたが、具体的に細かいことまで調べようとすると、1のカメラの扱い、2-4の推論関係、5のアプリ化は分けて調べた方がよさそうです。アプリがスタンドアロン環境であれば、OpenCVのマウスコントロールやキーボード入力の検出(cv2.imshowで表示中の画像に対しての入力を拾う)でもアプリは作れそうですし、このほかにもいわゆるプログラムのようなGUI(tkinterやPyQT、wxpythonなど)の検討もありそうです。
Goodluck :)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/05 02:19
退会済みユーザー
2021/08/05 21:17