訓練硬件平臺:SOM5992(至強E3系列CPU)、8G_DDR4內存、GTX1050ti
運行硬件平臺:EPC-R5770
OS版本:發行版ubuntu18.04
軟件版本:
Anconda3: 5.2.0-Linux-x86_64(PYTHON3.6)
Caffe: caffe-segnet
NVIDIA Driver: 450.66
CUDA: 8.0.61_375.26
cudnn: 8.0-linux-x64-v5.1
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install libopenblas-dev
sudo apt-get install liblmdb-dev
sudo apt-get install libgflags-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libavformat-dev libswscale-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
caffe-segnet
將SegNet-Tutorial-master.zip解壓到根目錄并重命名為SegNet
unzip SegNet-Tutorial-master.zip
mv SegNet-Tutorial-master /SegNet
SegNet內容如下:
修改segnet模型適配于EPC-R5770平臺
由于segnet作者已提供segnet的模型結構,其路徑為
/SegNet/Models/segnet_train.prototxt
該模型通過訓練可以在x86平臺上正常運行,可無法遷移至EPC-R5770當中,我們需要將模型進行一定的修改,具體如下:
1. NNIE沒有支持 BN層,而只支持caffe 1.0當中的batch norm層
解決方法:將prototxt文件當中的BN層修改為batchnorm層及Scale層,如圖所示
1)對于訓練的prototxt
(左)修改前 (右)修改后
2)對于推理的prototx
(左)修改前 (右)修改后
2.將數據集的樣本size改為384*480
可以自行編寫opencv腳本對數據集進行批量的圖像大小修改
3.將upsample5與upsample4層的參數upsample_w與upsample_h注釋掉
如下
4.將batch_norm層的moving_average_fraction參數修改為0.9
如下
5.segnet_train.prototxt的batch_size設置為1
一個batch_size占用了3.2G內存
6.solver文件中添加iter_size: 5
batch_size太小不利于模型的收斂,因此設置5次訓練才做一次回歸
1.下載預訓練過的VGG16的weights
鏈接如下:
http://www.robots.ox.ac.uk/~vgg/research/very_deep/
2.訓練segnet-VGG16模型
用VGG_ILSVRC_16_layers.caffemodel作為初始化權重
mkdir /SegNet/Models/Training/
./build/tools/caffe train -gpu 0 -solver/SegNet/Models/segnet_solver.prototxt -weights/SegNet/Models/VGG_ILSVRC_16_layers.caffemodel
大約訓練50-100 epochs就可以得出不錯的結果
3.修改/SegNet/Scripts/compute_bn_statistics.py的185行的輸入圖像尺寸大小及190-194行注釋
如圖所示

生成deploy.prototxt及test_weights.caffemodel
sudo python /SegNet/Scripts/compute_bn_statistics.py/SegNet/Models/segnet_train.prototxt/SegNet/Models/Training/segnet_iter_40000.caffemodel /SegNet/Models/Inference/
修改deploy.prototxt的相關格式
修改輸入層格式
(左)修改前 (右)修改后
修改所有batch_norm層的use_global_stats為true
(左)修改前 (右)修改后
經過修改過后,deploy.prototxt及test_weights.caffemodel可以用于EPC-R5770做模型的轉換了。
4.測試模型
sudo python /SegNet/Scripts/test_segmentation_camvid.py --model/SegNet/Models/segnet_inference.prototxt --weights/SegNet/Models/Inference/test_weights.caffemodel --iter 1
效果如圖所示:
模型轉換所用到的工具是Ruyi studio 其環境搭建過程及轉換方法請參考EPC-R5770相關文檔
轉換所用到的配置文件內容,如圖所示:
根據以上的配置,點擊build按鈕即可轉換模型

出現Successfully,即轉換成功。
更多AI整合軟硬件解決方案
及技術服務分析
可關注研華嵌入式物聯網伙伴峰會
11/19-11/21
3大主題峰會,70+細分話題
疫情大考和新基建等環境下,企業數字化轉型全面加速,數據驅動、數智融合的價值逐漸釋放。為加速物聯網美好未來的實現,研華今年的工業物聯網伙伴峰會,將會聚焦嵌入式物聯網、工業物聯網、智慧城市三大主題,圍繞智慧工廠、智能裝備、智慧能源與環境、智能交通、智慧醫療、智慧零售、智能物流等垂直產業,探討邊緣計算、產業AI、嵌入式創新、中國芯、工業通信、工業云平臺等技術話題。
100+業界專家,“慧”聚云端
站在大咖的肩膀上看世界,無疑會對企業的戰略方向起到重要指導作用。本次盛會,研華也邀請了來自中國信通院、工業互聯網產業聯盟、中科院、清華大學互聯網產業研究院等100多位專家學者、商業大咖以及行業領導者匯聚云端,分享他們對AIoT的前沿洞察及發展策略,探討工業物聯網落地實踐經驗,全面激發物聯網發展新思路。
50+伙伴齊聚,共贏物聯大未來
通往未來的征程絕不是孤軍奮戰,而是產業鏈伙伴間的協同與互利共贏,唯有生態互聯,方可決勝工業物聯網未來。本次峰會,研華也將攜手英特爾、ARM、微軟、京東物流、軟通智慧等全球50多家合作伙伴,共同探討AIoT新時代、新思路及新發展,一起共創、共享、共贏物聯大未來!
會上將有大量知識性主題演講
和引人深思的議題探討
干貨滿滿,大咖云集,不可錯過~
掃碼一鍵報名

即刻領取
↓↓↓
文末福利

關于研華
研華成立于1983年,以“智能地球的推手”作為企業品牌愿景,一直專注于工業物聯網、嵌入式物聯網及智慧城市三大市場。為迎接物聯網、大數據與人工智能的大趨勢,研華提出以邊緣智能和WISE-PaaS工業物聯網云平臺為核心的物聯網軟、硬件解決方案,協助客戶伙伴串接產業鏈。研華業務分布全球27個國家,擁有近8,000名員工,以強大的技術服務及營銷網絡,為客戶提供本土化響應的便捷服務。此外,研華積極推進產業伙伴共創,加速AIoT生態圈布建與發展。
研華網站:www.advantech.com.cn
研華微信:研華嵌入式
服務熱線:400-001-9088
▼點擊查看直播日歷!