前提
Streamlitで画像分類アプリを作っています。
学習済みモデルを適用することを念頭に、
drawable_canvasで描いた画像を読み込む機能を実装中、
以下のエラーメッセージが発生しております。
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
st.file_uploaderで画像ファイルを読み込ませるのと同様に、
drawable_canvasで描いた画像をアプリに読み込ませたいのですが、
上手くできないという状況です。
もし打開策がありましたら、ご教示いただけますと幸いです。
実現したいこと
-描いた内容をアプリが読み込めるようにする(そして画像分類できるようにする)
発生している問題・エラーメッセージ
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() Traceback: File "/usr/local/lib/python3.7/dist-packages/streamlit/runtime/scriptrunner/script_runner.py", line 563, in _run_script exec(code, module.__dict__) File "/content/app.py", line 72, in <module> img_file = st.file_uploader(canvas_result.image_data) File "/usr/local/lib/python3.7/dist-packages/streamlit/runtime/metrics_util.py", line 311, in wrapped_func result = non_optional_func(*args, **kwargs) File "/usr/local/lib/python3.7/dist-packages/streamlit/elements/file_uploader.py", line 332, in file_uploader ctx=ctx, File "/usr/local/lib/python3.7/dist-packages/streamlit/elements/file_uploader.py", line 353, in _file_uploader maybe_raise_label_warnings(label, label_visibility) File "/usr/local/lib/python3.7/dist-packages/streamlit/type_util.py", line 676, in maybe_raise_label_warnings if not label:
該当のソースコード
Python
1import streamlit as st 2from PIL import Image 3from model import predict 4from streamlit_drawable_canvas import st_canvas 5 6# canvasのパラメータ設定(略) 7# canvasのコンポーネント作成(略) 8# canvasの描画内容を取り込み(問題発生個所![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-10/2028979f-9c5e-4462-9cc1-72307bebc7e0.jpeg)) 9if st.button('Go!'): 10 img_file = st.file_uploader(canvas_result.image_data) 11 12# 画像の判定・予測(一部抜粋) 13if img_file is not None: 14 with st.spinner("推定中..."): 15 img = Image.open(img_file) 16 st.image(img, caption="対象の画像", width=480) 17 st.write("") 18 results = predict(img)
試したこと
次のように、img_fileに描画結果を直接代入しても、うまくいかなかったです。
Python
1 # img_file = st.file_uploader(canvas_result.image_data)の代わりに下記を試行 2 img_file = canvas_result.image_data
エラー内容
AttributeError: 'numpy.ndarray' object has no attribute 'read'
補足情報(FW/ツールのバージョンなど)
python: 3.7
streamlit: 1.14.0
streamlit-drawable-canvas: 0.9.2
Google Colaboratory使用
回答1件
あなたの回答
tips
プレビュー