python未経験はstreamlitで写真を取るところから学べ!!

python未経験はstreamlitで写真を取るところから学べ!!

これから画像処理AIエンジニアを目指そうとしている方に向けて、メチャクチャ簡単にpythonで写真を取る方法を紹介します。

streamlitの使い方を学ぶメリットについては以前の記事でもご紹介しましたが、streamlitの素晴らしいところはソースコードが少なくてすみ、見た目がカッコいいことが挙げられます。

そして、すぐにwebアプリ化できるところが魅力です。

爆速でAIエンジニアを目指す方向けAI講座

ソースコードをダウンロードしよう




ブラウザからWebカメラを起動できる。

こんにちは。AI coordinatorの清水です。
本日もメチャクチャ寒いですね。とういことでAIエンジニアを目指す方向けに小技を紹介していきます。

さて、そんなstreamlitですが、なんとブラウザからWebカメラを起動することが出来ます。
そして、これがメチャクチャ簡単なんです。
画像処理AIエンジニアは頻繁に写真を取得したり、AIに推論させるために画像を扱うことが非常に多いので、簡単に写真を取得できる機能は本当にありがたいです。

イメージして頂くために、写真を入力にAIを動かすサンプルを紹介しますので、興味がある方は以下の画像をクリックしてください。実際にstreamlitでwebアプリ化したものを体験できます。(アクセス集中により起動に時間がかかることがあります。)

たった2行のpythonソースコードで作ることが出来る!

話を戻して、どれぐらい簡単に出来るかというと、たった2行で写真が取れます。

import streamlit as st
picture = st.camera_input(“Take a picture”)

上記プログラムのファイル名を camera.py とします。
1行目でstreamlitをインポートし、2行目で撮影出来ます。

では実際にやってみましょう。まずはターミナルを起動して以下のコマンドでstreamlitライブラリーをインストールします。

pip install streamlit

数秒でインストールが終わったら、下記コマンドで camera.py を起動しましょう。

streamlit run camera.py

自動でブラウザが起動します。ブラウザにカメラの使用許可を聞かれたら「許可する」を押します。
するとどうでしょうか?ブラウザにパソコンのカメラの映像が写っていませんか?
(もしブラウザが自動起動しなければ、URLに “http://localhost:8501” を打ち込んでください。)

たった2行のpythonソースコードでカメラを起動することが出来ました。
さらに、カメラ映像の「Take Photo」を押下してみましょう。
映像が止まって、写真を撮影出来たのではないでしょうか?

「Clear photo」を押すと、また撮影モードに戻ります。

これだけで出来ちゃうんです。凄い。しかもこれはブラウザ上で動いているため、立派なWebアプリケーションです。

こんな感じで簡単に撮影できちゃうのがstreamlitなのです。

画像処理ではOpenCVが王道だけど・・・

pythonで画像処理をやろうと思ったら「opencv」というライブラリーが王道です。これを使わずして画像処理をやることはまずないでしょう。ただ写真を撮るソースコードを「opencv」で実装すると、そこそこ行数がかさみ、まあまあ大変です。
そういう意味でも、この行数の少なさで写真撮影が出来るのはstreamlitの大きな魅力です。

ちなみに撮影したデータは2行目のpictureに保管されています。撮影した写真を煮るやり焼くなり、YOLOv8に突っ込むなり、あとは好きに使うだけです。

如何でしたか?

さあ、AIエンジニアを目指そう!

こんな感じでブラウザ上でバリバリ動くwebアプリケーションを作りながらpythonを学ぶと、アッという間にAIエンジニアになれます。

是非色々試してながら動かしてみてください。

AI coordinatorでは、未経験の方でも簡単により実践的に扱えるソースコードを低価格で販売を開始しています。
pip installコマンドが普通に扱える方であれば、すぐに起動できるソースコードになります。
以下のリンクからソースコードをダウンロード出来ます。ぜひ学習用に使ってみてください。

すぐ試せるpythonプログラムソースコードをダウンロードしよう

爆速でAIエンジニアを目指す方向けAI講座

About The Author

Hideki
東京大学発AIスタートアップ企業でロボット開発室室長、画像解析室室長、動画解析室室長を務め、AIエンジニアとしても画像認識関連の特許を在籍中に3つ取得。その後、KDDIグループ内でプロダクトリーダーとして自然言語処理パッケージの自社開発を経て、現在はAGRISTのテックリードとして農業の人手不足の解決に向けた収穫ロボットの開発にチャレンジしている。ロボットは技術の総合格闘技との考え方から、AIだけでなく、ハードやエレキ、通信からクラウド、IOTまで幅広く手掛けることができる。最近では人とロボットの共存を目指すべく、性能だけを追い求める開発から「感動やワクワク体験」をデザインできるロボットの研究を進めており、人とロボットがうまく共存できる世界を作り出したいと日々行動している。

LEAVE A REPLY

*
*
* (公開されません)