1.內存卡的裝配
詳見:https://blog.csdn.net/weixin_38438451/article/details/83474479
在這一步,開發板啓動後,可以通過超級終端HyperTerminal軟件連接到Pynq,通過com端口查看ip進行以太網連接。
2.pynq上網
一、筆記本電腦需要先連上外網,可以連上家裏的WIFI,或者手機開熱點(本人未測試過連接手機的熱點,但是理論上應該可行)。
二、打開網絡共享中心->更改適配器設置->無線網絡連接->屬性->共享->允許其他網絡用戶通過此計算機連接->選擇本地連接->確定
三、完成第二部後會分配一個ip給本地連接,例如我的無線網絡連接的ip是192.168.7.34,分配給本地連接的ip是192.168.137.1,我們需要的就是這個本地連接的ip,這個ip也是開發板的網關ip。電腦本地連接ip == 開發板的網關ip!
四、開發板通過網線連接筆記本電腦,修改開發板的ip地址,需要對應好自己的網關地址配置ip,例如網關ip是192.168.137.1,配置ip的命令:ifconfig eth0 192.168.137.XXX,XXX隨便寫個數字(除了1)
五、網關配置爲筆記本電腦上的本地連接的ip地址,例如:route add default gw 192.168.137.1,記住這個ip每臺電腦分配的都可能不同,把這個ip修改成自己電腦上對應的本地連接ip。
六、最後嘗試ping www.baidu.com吧!
3.安裝pip
詳見:https://www.runoob.com/w3cnote/python-pip-install-usage.html
4.Tiny YOLO上板測試
參考大神之作:https://github.com/Xilinx/QNN-MO-PYNQ
1)下載文件(可能需要10分鐘時間左右,我的網速比較慢,)
# (on PYNQ v2.3 only)
sudo pip install git+https://github.com/Xilinx/QNN-MO-PYNQ.git
漫長的等待呀......
一杯茶的功夫,終於完成了
安裝完成後,我們可以看到jupyter中出現了我們剛纔安裝的庫用例。
2)初始化,打開該文件,即可運行我們的Tiny YOLO。
內部的邏輯欣賞一下:
首先導入必要的庫。我們在安裝pip的時候,安裝了qnn庫和yolo算法的darknet庫。
然後安裝分類器,初始化我們的加速器(配置文件形式和權重形式)。
在我個過程中,我們的加速器Overlay被示例化進我們的FPGA中,成爲我們的硬件協加速器。
該加速器已經由庫設計好,
在以後在進階開發中,我們可以創建自己的協加速器。
注意:
當項目過大時,git clone時會出現error: RPC failed;
如果在clone的時候報錯了,需要在命令後加 --depth 1
git clone https://github.com/Xilinx/QNN-MO-PYNQ.git --depth 1
depth用於指定克隆深度,爲1即表示只克隆最近一次commit.
這種方法克隆的項目只包含最近的一次commit的一個分支,體積很小,即可解決文章開頭提到的項目過大導致Timeout的問題,但會產生另外一個問題,他只會把默認分支clone下來,其他遠程分支並不在本地,所以這種情況下,需要用如下方法拉取其他分支:
$ git clone --depth 1 https://github.com/dogescript/xxxxxxx.git
$ git remote set-branches origin 'remote_branch_name'
$ git fetch --depth 1 origin remote_branch_name
$ git checkout remote_branch_name
5.解決問題
出現了一點問題,被卡了半天,就是python2裏沒有pynq這個庫,所以我們還是要把python版本進行切換,重新再來一次......
首先先來看一下我們的默認Python版本:
$ python --version
Python 2.x.x
然後我們修改一下別名
$ alias python='/usr/bin/python3':
$ python --version
Python 3.6.5 # 版本已經改變
1)再次下載文件(繼續消耗我那珍貴的10分鐘時間)
sudo pip3 install git+https://github.com/Xilinx/QNN-MO-PYNQ.git
又是漫長的等待呀......
終於呀,又完成任務
2)運行文件
直接運行tiny-yolo-image-loop.ipynb
上圖
大功告成!