LoginSignup
1
5

More than 1 year has passed since last update.

Steamlitでスマホのカメラを動かすだけのアプリを作る

Last updated at Posted at 2022-04-17

目次

ざっくりと以下の様な事が書いてあります。
1.背景:カメラで撮った写真を使って何かしたいです
2.目的:スマホのカメラを使う為だけのアプリをデプロイします
3.結果:スマホのカメラが起動しました
4.方法:我妻先生のコードを参考に最小限のコードでデプロイしました
5.考察:画像データがどのように移動しているのかがコードを通してざっくり分かりました
6.課題:感情分析アプリやOCRを使った文字認識アプリに応用したい

1.背景:カメラで撮った写真を使って何かしたいです

具体的には本棚をカメラで撮った画像の文字認識をして、リストを作成したいです。、

2.目的:スマホのカメラを使う為だけのアプリをデプロイします

前回の記事(Streamlit Cloudで画像認識AIアプリをデプロイする(2020.4.12))を参考にStreamlit Cloudにデプロイします。GitHub経由でデプロイします。

3.結果:スマホのカメラが起動しました

アプリのURLへ移動するとこのような画面が現れます。
Screenshot_2022-04-17-14-26-01-021_com.android.chrome.jpg
ここで、カメラで撮影をタップすると
Screenshot_2022-04-17-14-26-31-349_com.android.chrome.jpg
こうなりました。無事、カメラが起動しているのが分かります。

4.方法:我妻先生のコードを参考に最小限のコードでデプロイしました

GitHub経由でデプロイするんですが、ディレクトリには

  1. app.py:カメラを起動するためのコード
  2. requirements.txt:インストールするライブラリが記述されています

基本的にはこの2つで良いです。私は、開発環境にGoogle Colaboratoryを使うので、app.pyとrequirements.txtを作るコードが記述されているcamera_app.ipynbも入れています。

image.png

5.考察:画像データがどのように移動しているのかがコードを通してざっくり分かりました

カメラを起動するためのコードは以下だと思われます。streamlitのライブラリの便利さが良く分かります。

camera_app.ipynb
if ...中略...:
    ...
elif img_source == "カメラで撮影":
    img_file = st.camera_input("カメラで撮影")

if img_file is not None:
    with st.spinner("推定中..."):
        img = Image.open(img_file)
...中略...

カメラで撮った写真はimg_fileに移り、Image.openで画像からデータへ変換されるものと考えられます。st.camera_inputはjpegなどの画像ファイルを返す記述がされていそうです。

6.課題:感情分析アプリやOCRを使った文字認識アプリに応用したい

当面の目的は文字認識アプリにする事ですが、Streamlitを使った感情分析アプリの作り方が乗っている記事を見かけたので、作り方の分かっている物から作りたいと思います。まだ、Streamlitのルールに慣れる意味合いもあります。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5