これから画像処理AIエンジニアを目指そうとしている方に向けて、メチャクチャ簡単にpythonで写真を取る方法を紹介します。
streamlitの使い方を学ぶメリットについては以前の記事でもご紹介しましたが、streamlitの素晴らしいところはソースコードが少なくてすみ、見た目がカッコいいことが挙げられます。
そして、すぐにwebアプリ化できるところが魅力です。
ブラウザから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エンジニアになれます。
是非色々試してながら動かしてみてください。
LEAVE A REPLY