質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1967閲覧

ラズパイを用いた画像認識ができるようになりたい

seyu0930

総合スコア20

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/08/04 10:59

画像認識プログラミングレシピという本である程度画像認識について学習しました。
https://github.com/Kokensha/book-ml

本書にもラズベリーパイで学習済みモデルを使ってみる、というのがあるのですが、githubからダウンロードして体験してみましょうというレベルで何をしているのか、何が必要で、どうやって作られているのかがわかりませんでした。

自分の検索の仕方が悪いのか、ラズパイを使った学習済みモデルの使い方を調べても、ラズパイを使って画像認識してみた!のような記事しかヒットしません。

まず自分がやってみたいこととしては、手書き数字の認識や簡単な物体検出など、picameraを用いた簡単なアプリケーションを作ってみたいです。

ラズパイを使った、もしくはラズパイを使わなくてもそれに応用できそうな、おすすめのサイトや書籍を教えていただけると嬉しいです。よろしくお願いします。

(現時点ではflaskは触ったことないですがdjangoは使えます。)
(学習中はkerasを主に使っていました。)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

調べ方について:

自分の検索の仕方が悪いのか、ラズパイを使った学習済みモデルの使い方を調べても、ラズパイを使って画像認識してみた!のような記事しかヒットしません。

たまたま動かしたい環境が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なのか等)だけで済みます。

  1. whileの無限ループの中でカメラから画像を受け取る。
  2. 画像をニューラルネットワークで使える形で突っ込む。
  3. 推論結果を受け取る
  4. 推論結果を画像として表示する
  5. 何かしらのフレームワークを使ってアプリにする

アプリケーションについて:
ここまでの技術的なボリュームが割と大きいですので、アプリケーションの話は別に考えた方が良いと思います。

分野的には、カメラの扱いは画像処理系エンジニアの得意なところですし、認識関係は機械学習エンジニア、アプリ化はWEB系エンジニアらが得意なところと思います。いろんな範囲を横断していますので、一気にやろうとすると少ししんどいように思います。

一連の処理をdjangoでやっている例も探せば見つかりましたが、具体的に細かいことまで調べようとすると、1のカメラの扱い、2-4の推論関係、5のアプリ化は分けて調べた方がよさそうです。アプリがスタンドアロン環境であれば、OpenCVのマウスコントロールやキーボード入力の検出(cv2.imshowで表示中の画像に対しての入力を拾う)でもアプリは作れそうですし、このほかにもいわゆるプログラムのようなGUI(tkinterやPyQT、wxpythonなど)の検討もありそうです。

Goodluck :)

投稿2021/08/04 21:20

編集2021/08/04 21:31
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

seyu0930

2021/08/05 02:19

丁寧なご回答ありがとうございます! 現在大学1年でどの分野にしようか色々試していますが、画像処理系が楽しいのでそちらを詳しく学ぼうと思いました。1〜4をまず学習したいと思います! 自分でローカルに試す分にはアプリはなくても実行可能ということでしょうか?それとも以下のサイトのようなところからアプリのフレームだけ借りてきて中身の学習済みモデルを入れ替える必要があるのでしょうか? https://github.com/PoodleMaster/mnister このサイトでは手書きの数字をその場で書いて判定しています。このような手書きをする場所を用意したり、リアルタイムで物体を検出するときはアプリが必要な気がするのですが、実際どうなんでしょう。
退会済みユーザー

退会済みユーザー

2021/08/05 21:17

> 自分でローカルに試す分にはアプリはなくても実行可能 そうなります。アプリにするメリットは「取っつきやすくする」ことと思います。 あらかじめ画像データを用意して置いたり、OpenCVのcv2.setMouseCallbackのように突貫工事で文字を書くような入力方法を用意して置いたり、紙に書いた文字をカメラでその場で認識させる、などできるのであれば、わざわざアプリを作らなくても同じように標準の画像を表示する関数(cv2.imshow)を動かすだけでもアプリと同じように動作確認はできます。OpenCVに簡易的なアプリを作れる機能が備わっている感じです。 > アプリのフレームだけ借りてきて中身の学習済みモデルを入れ替える必要があるのでしょうか? この方法も良いと思います。もし、すでにアプリがあって、簡単に回答の1-4の部分を挿げ替えられそうであれば、すでにあるアプリを流用するのも良いと思います。 ほかの人のソースコードを読むのは勉強にはなりますが、よほど慣れている内容のコードで合ったりよほど綺麗にに書いてなければでなければ(個人的には)ほかの人のコードというだけで結構疲れます。このような場合、本当にやりたい1-4の部分よりも見た目を調整するための5の部分に結構な時間がかかってしまう、ということも起き得ます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問