近年來,國產化替代的進程正在加快。在眾多國產平臺中,昇騰平臺具有高性能、低功耗、易擴展、軟件棧全面成熟等優勢,其產品和技術在國內眾多領域實現了廣泛應用;作為昇騰的APN伙伴和IHV合作伙伴,英碼科技攜手昇騰推出了一系列邊緣計算產品,具備性能強勁、更寬工溫、外設接口豐富、利舊性強等特點,同時,得益于昇騰AI軟件棧的全面支持,這些產品為各行業AI應用高效、低成本落地提供了強有力的支撐。
YOLOv7是目前YOLO系列目標檢測算法的最新版本,能夠快速檢測多種尺度和多標簽的對象,同時具有高精度、低時延等特點,是目標較為主流的目標檢測算法,在安防監控、自動駕駛、醫療影像分析等領域發揮著重要的作用。
今天來介紹【基于昇騰AI】技術干貨系列的另一個主題:如何將Yolov7模型遷移到昇騰平臺?
下面以英碼科技基于昇騰平臺開發的EA500I邊緣計算盒子為硬件載體,詳細講解Yolov7模型遷移的流程,以及實際應用的演示。
Yolov7模型遷移到昇騰平臺&案例演示
前置條件
開發環境部署說明
基于昇騰平臺的全系邊緣計算盒子已完成環境部署工作,客戶無需重新部署。
Yolov7源碼下載
git clone https://github.com/WongKinYiu/yolov7.git
預訓練模型的下載
cd yolov7 wget --no-check-certificate https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7.pt
*溫馨提示:如果下載速度慢可到官網下載
驗證模型是否可以正常識別圖片
python3 detect.py --weight yolov7.pt
訓練模型轉ONNX模型
由于 Ascend 推理工具還未支持Pytorch的pt,pth模型,需要轉換成ONNX才能使用yolov7有兩種訓練配置文件分別為deploy和traing,Detect層不一樣導致轉onnx上有略微區別,本次測試的為deploy
python3 export.py --weights yolov7.pt --grid --simplify --img-size 640 640
--weights:指定預訓練模型yolov7.pt
--grid: 保留 Detect層
--simplify :簡化onnx模型結構
Yolov7模型推理(EA500I)
1、環境聲明
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest
創建THIRDPART_PATH路徑
mkdir -p ${THIRDPART_PATH}
acllite注:源碼安裝
ffmpeg
主要是為了acllite庫的安裝 執行以下命令安裝x264
# 下載x264 cd ${HOME} git clone https://code.videolan.org/videolan/x264.git cd x264 # 安裝x264 ./configure --enable-shared --disable-asm make sudo make install sudo cp /usr/local/lib/libx264.so.164 /lib
執行以下命令安裝ffmpeg
# 下載ffmpeg cd ${HOME} wget http://www.ffmpeg.org/releases/ffmpeg-4.1.3.tar.gz --no-check-certificate tar -zxvf ffmpeg-4.1.3.tar.gz cd ffmpeg-4.1.3 # 安裝ffmpeg ./configure --enable-shared --enable-pic --enable-static --disable-x86asm --enable-libx264 --enable-gpl --prefix=${THIRDPART_PATH} make -j8 make install
執行以下命令安裝acllite
cd ${HOME}/samples/inference/acllite/cplusplus make make install
opencv執行以下命令安裝opencv(注:確保是3.x版本)
sudo apt-get install libopencv-dev
2、樣例運行
①數據準備請從以下鏈接獲取該樣例的輸入圖片,放在data目錄下。
cd $HOME/samples/inference/modelInference/sampleYOLOV7/data wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg
②ATC模型轉換將
前面(5)的yolov7.onnx
模型轉換為適配昇騰310處理器的離線模型(*.om文件),放在model路徑下。
# 為了方便下載,在這里直接給出原始模型下載及模型轉換命令,可以直接拷貝執行。
cd $HOME/samples/inference/modelInference/sampleYOLOV7/model wget --no-check-certificate https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov7/yolov7x.onnx wget --no-check-certificate https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov7/aipp.cfg atc --model=yolov7x.onnx --framework=5 --output=yolov7x --input_shape="images:1,3,640,640" --soc_version=Ascend310B1 --insert_op_conf=aipp.cfg
③樣例編譯執行以下命令,執行編譯腳本,開始樣例編譯。
cd $HOME/samples/inference/modelInference/sampleYOLOV7/scripts bash sample_build.sh
④樣例運行執行運行腳本,開始樣例運行。
bash sample_run.sh
⑤樣例結果展示運行完成后,會在樣例工程的out目錄下生成推理后的圖片,顯示對比結果如下所示
結語
以上詳細介紹了如何將Yolov7模型遷移到昇騰平臺EA500I邊緣計算盒子,希望能夠幫助提升研發效率、縮短項目落地時間,如需更多技術和產品支持,歡迎留言!
審核編輯 黃宇
-
模型
+關注
關注
1文章
3298瀏覽量
49067 -
邊緣計算
+關注
關注
22文章
3121瀏覽量
49334 -
昇騰AI
+關注
關注
0文章
79瀏覽量
603
發布評論請先 登錄
相關推薦
評論