from fastai.vision.all import * from io import BytesIO import requests import streamlit as st """ # 香蕉葉病害分類 """ """ #### 健康香蕉葉示例 """ img1 = Image.open('/home/user/app/healthy_1.jpg') img2 = Image.open('/home/user/app/healthy_2.jpg') img3 = Image.open('/home/user/app/healthy_3.jpg') col1, col2, col3 = st.columns(3) with col1: st.image(img1, caption="healthy_1", use_column_width=True) with col2: st.image(img2, caption="healthy_2", use_column_width=True) with col3: st.image(img3, caption="healthy_3", use_column_width=True) """ #### 香蕉葉斑病(Black sigatoka;Black leaf streak) 病原菌學名:Mycosphaerella fijiensis (= M. fijiensis var. fijiensis ) 目前仍被視為危害全球香蕉產區最嚴重之病害,對香蕉作物之生存威脅至鉅。此病不但直接危害蕉株葉片,影響蕉株健葉數,導致產期延後或減產。 亦可間接造成香蕉外銷船運期間,因採收株葉片數不足,引發蕉果果齡偏高過熟而黃化廢棄。最早於1963年被報導發生於斐濟,國內最早記載於1927年,但缺乏考證。 1960年代在國內蕉區大流行,曾造成相當嚴重之損失,惟自1978年賽洛瑪颱風,高屏蕉區被夷為平地後,舊蕉園葉斑病菌初期感染源密度明顯降低, 加上全面執行葉部病害防治作業後,葉斑病發生地區由屏東往高雄旗山主產區逐年減少,目前僅侷限於臺灣東半部台東關山以北至花蓮壽豐之間,在西半部僅零星發生於高雄美濃至台南楠西一帶。 病徵:初期病徵通常出現在第3或第4片葉背面,為紅棕色小條斑,大約5~10 ×0.1~1公厘,與葉脈平行,通常集中在葉片左側和葉尖部位。 之後條斑擴大變黑,同時亦出現在葉表面。至中期條斑擴大而呈橢圓形褐斑,周圍有黃色暈圈。至後期轉呈黑褐色或黑色病斑,而後病斑中間開始變灰色。受害葉片提早枯死。 """ img1 = Image.open('/home/user/app/sigatoka_1.jpg') img2 = Image.open('/home/user/app/sigatoka_2.jpg') img3 = Image.open('/home/user/app/sigatoka_3.jpg') col1, col2, col3 = st.columns(3) with col1: st.image(img1, caption="sigatoka_1", use_column_width=True) with col2: st.image(img2, caption="sigatoka_2", use_column_width=True) with col3: st.image(img3, caption="sigatoka_3", use_column_width=True) """ #### 圓星病(Cordana leaf spot) 病原菌學名:Cordana musae(Zimm.)Hohnel 分布極廣,但屬輕微葉部病害。當葉片弱化、老化、處逆境、營養不良、有傷口或受其他生物感染時,危害較明顯。 病斑大,橢圓形,呈同心圓,淡褐色或黃色。病斑中心為灰色、周圍繞有鮮黃色暈圈; 病斑有時會融合擴大,或在葉片邊緣銜接而使整個葉緣枯掉,本病通常只在老葉發生。 防治方法:葉部黑星病防治藥劑對本病皆有防治效果。 """ img1 = Image.open('/home/user/app/cordana_1.jpg') img2 = Image.open('/home/user/app/cordana_2.jpg') img3 = Image.open('/home/user/app/cordana_3.jpg') col1, col2, col3 = st.columns(3) with col1: st.image(img1, caption="cordana_1", use_column_width=True) with col2: st.image(img2, caption="cordana_2", use_column_width=True) with col3: st.image(img3, caption="cordana_3", use_column_width=True) """ #### 擬盤多毛胞屬真菌病害(Pestalotiopsis) 著名的植物病原體品種,主要分布於熱帶地區,可危害多種果樹,於貯後病害紀錄如檬果、番石榴、荔枝、酪梨等皆曾發現,也常引起水果的果腐病。 病徵:感染葉片則出現淡黃褐色病斑,表面散生黑色小點,此為分生孢子盤構造,常發生於破損葉片或生長勢較弱的植株; 受感染植株在新梢的修剪傷口附近可見病班,病斑表面黑色小點突起,為分生孢子盤內有分生孢子,可由表面頂點孔處釋出。 """ img1 = Image.open('/home/user/app/pestalotiopsis_1.jpg') img2 = Image.open('/home/user/app/pestalotiopsis_2.jpg') img3 = Image.open('/home/user/app/pestalotiopsis_3.jpg') col1, col2, col3 = st.columns(3) with col1: st.image(img1, caption="pestalotiopsis_1", use_column_width=True) with col2: st.image(img2, caption="pestalotiopsis_2", use_column_width=True) with col3: st.image(img3, caption="pestalotiopsis_3", use_column_width=True) def predict(img): st.image(img, caption="Your image", use_column_width=True) pred, key, probs = learn_inf.predict(img) # st.write(learn_inf.predict(img)) f""" ## This **{'is cordana' if pred == 'cordana' else 'is pestalotiopsis' if pred == 'pestalotiopsis' else 'is sigatoka' if pred == 'sigatoka' else 'is healthy'}** banana leaf. ### Prediction result: {pred} ### Probability of {pred}: {probs[key].item()*100: .2f}% """ path = "./" learn_inf = load_learner(path + "demo_model.pkl") option = st.radio("", ["Upload Image", "Image URL"]) if option == "Upload Image": uploaded_file = st.file_uploader("Please upload an image.") if uploaded_file is not None: img = PILImage.create(uploaded_file) predict(img) else: url = st.text_input("Please input a url.") if url != "": try: response = requests.get(url) pil_img = PILImage.create(BytesIO(response.content)) predict(pil_img) except: st.text("Problem reading image from", url)