SE5边缘计算盒子学习笔记-week1
1.隨便聊聊
? ? ? ? 題主在做的本科生科研項目中用到了這款盒子,而題主很苦逼地既沒有linux系統使用經驗,也沒有這類盒子的使用經驗,所以本貼完完全全是記錄題主的踩坑之路,如果題主能堅持寫下去的話,大概會從環境安裝開始一直到寫到程序跑通并且熟練應用這款盒子為止。
2.環境配置
? ? ? ? 1.主機環境
? ? ? ? 2.盒子環境
3.例程跑通
? ? ? ? 1.在主機上進行的模型導出和轉換
? ? ? ? 2.在SE5盒子上進行的圖像識別例程
主機環境
? ? ? ? 題主使用vmware虛擬機unbutu18.04系統作為主機,配置過程網上教程眾多,題主看的是公眾號:AI不錯呦的教程,十分詳細捏,由于題主沒遇到啥問題,這一步就不細說了。
? ? ? ??
ubuntu操作系統基本指令:
$apt update #更新apt源
$apr install vim #使用apt進行軟件包安裝
$df -h #查看文件系統磁盤使用情況
$htop #顯示系統中進程實時狀態
?$ls #顯示文件,加-lh顯示詳細信息
$pwd #顯示目錄路徑
$mkdir -p #創建多級文件夾
$cp -rp#遞歸復制目錄下所有東西,保留文件屬性不變
$mv [原文件或目錄] [目標文件或目錄] #移動文件及目錄
$rm -rf [文件] #刪除文件
本次實驗需要額外用到的指令:
$git clone [github網址] #將網站文件克隆到本地
$scp [本地文件路徑] 服務器名@服務器ip:[服務器文件路徑]
$scp 服務器名@服務器ip:[服務器文件路徑] [本地文件路徑]
#利用ssh進行文件遠程傳輸,相當好用捏
$vim [文件]
#打開并且修改文件需要配合:i(插入):q(退出):wq(保存退出)使用?
環境安裝
#安裝docker sudo apt-get install docker.io #創建docker用戶組,將當前用戶加入docker組,重啟docker服務 sudo groupadd docker sudo gpasswd -a ${USER} docker sudo service docker restart newgrp docekr?然后去盒子官網下他們的docker鏡像和sdk,直接解壓就好,到這一步主機環境就配置好了
盒子環境
這一步參考官方b站最近發的se5與電腦連接的視頻,第一次的話還要參考官網的se5數據手冊題主未遇到問題,不多說了,實現下圖就算完成
在主機上進行模型轉換及導出(以yolov5移植為例):
注:可以是ssd,yolov5等等,此處以yolov5為例,其他的大同小異
?1.運行docker鏡像
2.掛載sdk到docker鏡像
以上兩步可以參考這個教程:examples/simple/yolov5 at 3.0.0 · sophon-ai-algo/examples · GitHubexamples/simple/yolov5 at 3.0.0 · sophon-ai-algo/examples · GitHubexamples/simple/yolov5 at 3.0.0 · sophon-ai-algo/examples · GitHub
運行完之后可以得到下圖:
?
進入虛擬環境后,我們首先要搞清楚這個環境的文件結構,實際上該環境的根目錄如下:
?
我們需要知道workspace就是我們進入虛擬環境的根文件夾sophonsdk_v3.0.0,那么為了方便借來下的操作,在該文件夾下運行指令$git clone https://github.com/sophon-ai-algo/examples,將例程文件夾直接克隆到workspace之下,之后我們要用到examples/simple/yolov5文件下的數據和腳本。
3.在虛擬環境中安裝庫和設置環境變量:參考上面的教程
4.下載yolov5源碼并修改
# 在容器里, 以python3.7的docker為例 cd ${YOLOv5}# 下載yolov5源碼 git clone https://github.com/ultralytics/yolov5.git yolov5_github # 切換到yolov5工程目錄 cd yolov5_github # 使用tag從遠程創建本地v6.1 分支 git branch v6.1 v6.1# 下載yolov5s v6.1版本 wget https://github.com/ultralytics/yolov5/releases/download/v6.1/yolov5s.pt執行上段代碼,創建一個YOLOv5文件夾,并將yolov5的源碼克隆到這
修改是比較關鍵的一步,容易出錯卡殼,我們需要參考examples/simple/yolov5/doc下的說明文檔進行修改,我們下載的是v6.1,所以基本無需修改,直接在python虛擬環境進行導出即可。
# 創建python虛擬環境virtualenv pip3 install virtualenv # 切換到虛擬環境 virtualenv -p python3 --system-site-packages env_yolov5 source env_yolov5/bin/activate# 安裝依賴 pip3 install -r requirements.txt # 此過程遇到依賴沖突或者錯誤屬正常現象# 導出jit模型 python3 export.py --weights yolov5s.pt --include torchscript # 退出虛擬環境 deactivate# 將生成好的jit模型yolov5s.torchscript拷貝到${YOLOv5}/build文件夾下 mkdir ../build mkdir ../data cp yolov5s.torchscript ../build/yolov5s_coco_v6.1_3output.trace.pt# 拷貝一份到${YOLOv5}/data/models文件夾下 mkdir ../data/models cp yolov5s.torchscript ../data/models/yolov5s_coco_v6.1_3output.trace.ptcd ..這里我們要明確導出的位置,導出完后的YOLOv5文件夾如上圖,我們將pt文件存在了build和data/model中,接下來用cp指令將exampls/simple/yolov5/scripts下的兩個腳本(1_gen_fp32bmodel.sh和model_info.sh)拷貝到yolov5-github文件夾下,一定要拷貝到這個文件夾,或者你可以修改model_info腳本,相對較麻煩。運行1_gen_fp32bmodel.sh,在data/models文件夾下得到我們想要的bmodel,可以看到,這個模型是單輸出
?
?
到了這一步我們主機上的步驟基本完成啦,接下來就是把模型和需要識別的圖片或視頻以及arm格式的可執行文件拷貝到盒子中,這一步要用前文提到的scp指令,可以自行搜索或者參考我的指令進行修改
scp yolov5s_640_coco_v6.1_3output_fp32_1b.bmodel linaro@192.168.150.1:/data/yolov5_object_demo #將bmodel文件拷貝到用戶名為linaro,ip為192.168.150.1服務器下的/data/yolov5_object_demo文件夾 scp dog.jpg linaro@192.168.150.1:/data/yolov5_object_demo scp yolov5_demo.arm linaro@192.168.150.1:/data/yolov5_object_demo #服務器默認密碼為linaro在SE5盒子上進行圖像識別
我們進入之前配置好的盒子,找到我們上文將模型,圖片和可執行文件拷貝到的文件夾執行如下代碼可得到下圖結果,最后再將得到的結果圖片用scp傳輸回主機,就能看到結果啦。
$ ./yolov5_demo.arm --input=dog.jpg --bmodel=yolov5s_640_coco_v6.1_3output_fp32_1b.bmodel #此處dog.jpg是要識別的圖片,bmodel是我們轉換的模型,可以自己改名字,路徑是相對于可執行文件的,我這里全放在一個文件夾里,所以直接打名字就好下圖是盒子跑通的樣子:
下面是識別的結果圖片:?
完成啦!
?
總結
以上是生活随笔為你收集整理的SE5边缘计算盒子学习笔记-week1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读中文_挑战来了!康辉喊你读中文十级绕口
- 下一篇: 牛顿插值--python实现