近幾年人工智能項目如火如荼疏橄,但是大多處于研究階段,由于需要用到GPU奶浦,純CPU計算耗時較久兄墅,因此落地的互聯(lián)網(wǎng)項目更是少之又少。本文通過一個實際的人工智能舌診項目澳叉,簡單介紹下如何從0到1開發(fā)一款互聯(lián)網(wǎng)+人工智能落地應用隙咸。
本文內容:
1、準備訓練圖片數(shù)據(jù)成洗;
2五督、選擇開源神經(jīng)網(wǎng)絡算法模型;
3瓶殃、得到訓練模型概荷,加載模型,執(zhí)行預測碌燕。
本文需要一點機器視覺和神經(jīng)網(wǎng)絡基礎知識
1误证、準備訓練圖片數(shù)據(jù)
以識別人臉圖片為例
下載人臉圖片數(shù)據(jù)集,收集目標圖片修壕,可以從百度圖片下載愈捅,建議使用爬蟲,PHP語言推薦使用php-spider慈鸠,Python語言有很多開源爬蟲框架蓝谨;
谷歌或者百度即可
標注圖片
安裝yolo-mark
GitHub地址:https://github.com/AlexeyAB/Yolo_mark.git
安裝MSVS2015
下載OpenCV 4.x windows安裝包,官網(wǎng)有下載,下載完后解壓到指定目錄譬巫,如:e:\opencv咖楣;
導出yolo-mark源碼,用 vs 打開 yolo_mark.sln芦昔,更改工程中的OpenCV的路徑為本機安裝路徑:
右擊項目 =》屬性 =》 C/C++ =》通用 =》附加目錄 =》 添加一行: e:\opencv\opencv\build\include
右擊項目 =》屬性 =》 鏈接器 =》通用 =》附加目錄 =》 添加一行: e:\opencv\opencv\build\x64\vc14\lib
選擇編譯環(huán)境為 x64 & Release诱贿,然后右擊項目 =》 生成 x64/Release/yolo_mark.cmd;
復制訓練樣本圖片到 x64/Release/data/img咕缎;
打開 x64/Release/data/obj.data珠十,更改classes= 1,表示只有一個類型凭豪,根據(jù)實際情況更改焙蹭;
打開 x64/Release/data/obj.names,清空文件嫂伞,輸入face孔厉,多個的話一行一個;
雙擊 x64/Release/yolo_mark.cmd帖努,運行即可標注烟馅。
標注說明
標注的框只需要包含目標對象即可
如果提示確實dll文件,從OpenCV安裝目錄opencv\build\bin復制對應的文件到 x64/Release/ 目錄下即可
按數(shù)字鍵選擇對應的類型(從0開始)后再標注
2然磷、選擇開源神經(jīng)網(wǎng)絡算法模型
目前速度最快的開源神經(jīng)網(wǎng)絡算法非yolo莫屬,DNN網(wǎng)絡采用yolo-v3刊驴,和v2版本相比姿搜,增加了網(wǎng)絡的層級,支持檢測小目標捆憎。
訓練步驟
安裝Yolo_mark舅柜,github地址:https://github.com/AlexeyAB/Yolo_mark ,上面介紹的比較詳細躲惰,需要注意以下幾點:
只支持OpenCV 2.x and OpenCV 3.x致份,OpenCV安裝參考之前的教程;
編譯完成后础拨,運行x64/Release/yolo_mark.cmd氮块,如果提示缺失opencv_ffmpeg3xx_64.dll,復制OpenCV 安裝目錄下的opencv_ffmpeg3xx_64.dll诡宗,到y(tǒng)olo_mark.cmd同級目錄下
標注圖片滔蝉,參考教程:https://blog.csdn.net/qq_33485434/article/details/80597381 ;
訓練網(wǎng)絡:復制x64/Release/data目錄下的所有文件到darknet安裝目錄對應的data目錄下塔沃,更改cfg/yolov3.cfg中的classes參數(shù)蝠引,和對應的卷積層參數(shù),具體參考:https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects
常用命令:
訓練命令:darknet.exe detector train data/obj.data cfg/yolov3.cfg /backup/yolov3.weights -map 如果沒有權重文件,可以省略螃概,會隨機生成一個權重文件矫夯。
測試命令:darknet.exe detector test data/obj.data cfg/yolov3.cfg yolov3_final.weights,yolov3_final.weights為結束訓練后的權重文件
3、得到訓練模型吊洼,加載模型训貌,執(zhí)行預測
本文介紹訓練完神經(jīng)網(wǎng)絡后,在實際應用小程序“AI看舌”中的使用融蹂。歡迎大家分享給有需要的人
準備配置文件和權重文件旺订,具體教程參考前面的教程。更改配置文件為test模式超燃,準備map值最高的權重文件区拳。上傳到服務器。
服務器安裝OpenCV意乓,centos需要注意設置 OpenCV 的系統(tǒng)庫環(huán)境變量
新建SpringBoot項目樱调,導入本地OpenCV包,查看之前的教程届良,通過Java調用OpenCV的DNN模塊加載權重文件和配置文件笆凌,給出預測;
打包SpringBoot士葫,上傳到服務器乞而,通過Java -jar 方式運行,也可以打包成docker鏡像慢显,然后上傳到鏡像服務器爪模,通過docker運行。
具體參考我的github項目:GitHub - lwhua/aikanshe: 使用SpingBoot荚藻、OpenCV屋灌、yolo開發(fā)舌診小程序
AI看舌,歡迎推薦給與需要的人:AI看舌 - 愛看舌应狱,用AI看舌共郭,專業(yè)的人工智能舌診小程序,開啟人工智能舌診新時代疾呻。