運行特徵圖例程錯誤解決

這個神經網絡處理器第二個例程就非常的曲折了,由於工具有限,解決方案也是十分有限。因爲這個是特別以前的例程了,在現在的IDE 上不能很好實現,後用到終端Putty實現了一下例程,現在就簡介一下歷時兩天的心酸路。

例程2:運行特徵圖

據羣主介紹,這些運行特徵圖的例程都太古老了,不能在咱們新版IDE實現,有以下錯誤。

在原有例程的基礎上,做以改動,可以運行,說明攝像頭可以正確採集圖像,可以再次說明是例程和模型版本問題。
在這裏插入圖片描述
例程如下

# Untitled - By: 86177 - 週四 2月 6 2020
import sensor,image,lcd
import KPU as kpu

lcd.init()
sensor.reset()#初始化單目攝像頭
sensor.set_pixformat(sensor.RGB565)#設置攝像頭輸出格式 RGB565
sensor.set_framesize(sensor.QVGA)#設置幀大小 QVGA
sensor.run(1)#開啓芯片捕獲對象
task=kpu.load(0x300000)#從flash中加載模型,模型在flash中偏移大小
img=image.Image()#創建圖像對象
info=kpu.netinfo(task)#獲取模型的網絡結構對象
layer=info[3]#當前層子在網絡中的層數
w=layer.wo()#輸出寬度
h=layer.ho()#輸出高度
num=int(320*240/w/h)
list=[None]*num
x_step=int(320/w)
y_step=int(240/h)
img_lcd=image.Image()
while True:
    img=sensor.snapshot()#控制攝像頭捕捉圖像
#網絡前向運算,輸出目標層的特徵圖
#對象,從sensor採集到的圖像,層數
    fmap=kpu.forward(task,img,3)
    for i in range(0,num):#取特徵圖的指定通道數據到image對象
        list[i]=kpu.fmap(fmap,i)
    for i in range(0,num):
        list[i].stretch(64,255)
    for i in range(0,num):
        a=img_lcd.draw_image(list[i],((i%x_step)*w,(int(i/x_step))*h))
        lcd.display(img_lcd)#在液晶屏上顯示一張 image
        kpu.fmap_free(fmap)#釋放特徵圖對象

羣主大人接着又讓我試了另外一個運行特徵圖的例程,還是版本問題。
顯示的一直連接不上,應該又是模型錯誤了。
在這裏插入圖片描述
在將固件再次更新到0.5後,才又成功連接。發現的確是模型太老了,不匹配。如下。在這裏插入圖片描述

於是還是在羣主大人開始建議的Putty終端實踐這個例程,明明之前成功用過一次Putty,可是這次錯誤百出,還是開始學的不認真呀,沒有底子。
錯誤一:打開Putty後回車沒反應,也敲不上去字,更不要說什麼交互界面了。那就要勾選以下選項了,好運。
在這裏插入圖片描述
如果敲不上字,回車沒反應,就必須勾選以下選項了。
在這裏插入圖片描述
錯誤二:不能運行
粘貼進去例程,回車或者ctrl d都不能運行。
這是因爲搞錯了順序,一定要記住,要先用ctrl d,reset開機
現在好了,終於可以可以開機了。
在這裏插入圖片描述
在Putty裏的複製粘貼不太常規哦,複製過來的代碼要用鼠標右鍵粘貼,選擇、複製這些操作也都是通過鼠標來完成的。在 Window-〉Selection 這裏可以設置複製和粘貼的方式。在這裏插入圖片描述
默認的 鼠標按鍵的功能的選項是 :
選中,直接用鼠標左鍵拖拉選中,或者是用鼠標中鍵單擊選中區域的開頭,用滾動條拖拉到期望選中區域的末尾,再用鼠標中鍵單擊。
複製,單擊鼠標左鍵。
粘貼,右擊鼠標右鍵。
現在,粘貼進特徵圖的代碼,運行正確。
在這裏插入圖片描述
在這裏插入圖片描述
注:其實這個還可以把模型文件放到sd卡上面試試,工具有限,先留着。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章