streamlit + opencv/YOLOv3 快速構(gòu)建自己的圖像目標(biāo)檢測(cè)demo網(wǎng)頁(yè)
機(jī)器學(xué)習(xí)開(kāi)發(fā)者想要打造一款 App 有多難?事實(shí)上,你只需要會(huì) Python 代碼就可以了,剩下的工作都可以交給一個(gè)工具。一些介紹可參考:
文章
公眾號(hào):機(jī)器之心從Python代碼到APP,你只需要一個(gè)小工具:GitHub已超3000星

streamlit可以自行構(gòu)建工具的流程:
部署 Flask app,寫(xiě) HTML、CSS 和 JavaScript,嘗試對(duì)從 notebook 到樣式表的所有一些進(jìn)行版本控制。
寫(xiě)此類(lèi)工具感覺(jué)就像訓(xùn)練神經(jīng)網(wǎng)絡(luò)或者在 Jupyter 中執(zhí)行點(diǎn)對(duì)點(diǎn)分析(ad-hoc analysis)!同時(shí),我們還想保留強(qiáng)大 app 框架的靈活性。我們想創(chuàng)造出令工程師驕傲的好工具。
我們希望的 app 構(gòu)建流程如下:
簡(jiǎn)而言之,Streamlit 的工作流程如下:
每次用戶(hù)交互均需要從頭運(yùn)行全部腳本。
Streamlit 根據(jù) widget 狀態(tài)為每個(gè)變量分配最新值。
緩存保證 Streamlit 重用數(shù)據(jù)和計(jì)算。

同時(shí)streamlit 可以支持中文,很友好:

而且只要保存文件,不用重啟api就可以直接反應(yīng)上來(lái),非常方便,同時(shí)如果運(yùn)行有報(bào)錯(cuò),就會(huì)如下面這般顯示:

總的來(lái)說(shuō),可以把steamlit當(dāng)作一種IDE,交互非常及時(shí)。
再來(lái)看筆者的一個(gè)圖像識(shí)別的目標(biāo)檢測(cè)案例
本案例脫胎于Udacity自動(dòng)駕駛汽車(chē)圖像識(shí)別,
代碼鏈接:implemented in less than 300 lines of Python
原案例中無(wú)法自己上傳本地圖片進(jìn)行檢測(cè),事先提供好了圖片url連接(標(biāo)記了所有圖像Ground Truth的原標(biāo)簽數(shù)據(jù)集),直接download使用,所以不太滿(mǎn)足要求 。
筆者這邊對(duì)該案例進(jìn)行了一定的魔改,讓其可以支持本地圖片的使用。
這樣才能制作自己的檢測(cè)器,先貼一下筆者最終微調(diào)的結(jié)果:


依賴(lài)安裝使用之前需要加載:
或者直接用線上的文件也是可以的:
頁(yè)面使用

使用步驟:
第一步:選擇本地的一張圖片(png/jpg)…
第二步:調(diào)整目標(biāo)檢測(cè)參數(shù)
第三步:點(diǎn)擊檢測(cè)的按鈕
其中,切換頁(yè)面模式,繼承了源碼的三種:目標(biāo)檢測(cè) + 顯示介紹 + 展示原始code

最終的效果如圖,展示原圖 + 目標(biāo)檢測(cè)之后的圖:

練習(xí)題代碼可見(jiàn)github https://github.com/mattzheng/streamlit_demo/tree/main/demo2-opencv+yolov3
