米爾科技提醒您:您的瀏覽器版本過低或者使用了兼容模式,為了獲得更好的瀏覽體驗,建議使用IE10以上的瀏覽器或使用極速模式。 請升級瀏覽器以獲得更好的體驗!

  • <nav id="2cqek"><option id="2cqek"></option></nav>
  • 如何用百度大腦FZ3深度學習卡+Paddle模型創建你的應用?

    文章來源:米爾科技 發布日期:2020.7.17 瀏覽次數:1411
    無標題文檔


    前言:米爾科技的FZ3是與百度緊密合作推出的一款基于Xilinx Zynq Ultrascale CZU3EG芯片打造的深度學習計算卡,芯片內部集成了4核ARM A53處理器+GPU+FPGA的架構,具有多核心處理能力、FPGA可編程能能力以及視頻流硬件解碼能力等特點。

    同時內置了基于Linux操作系統+百度深度學習平臺-飛槳(Paddle)定制的深度學習軟核,深度兼容百度大腦模型資源與工具平臺(EasyDL/AIStudio),可高效、快速的實現模型的訓練-部署-推理等一系列流程,極大降低了開發驗證、產品集成、科研教學、項目部署的門檻。

     

    軟核簡介

     


    FZ3 計算卡內部搭載Linux系統,開發者可以基于Linux系統進行應用程序進行開發。 
    主要調用流程: 
    ->1.應用程序獲取視頻輸入 
    ->2.調用預測庫加載模型 
    ->3.調度模型和底層驅動加速模塊進行計算 
    ->4.獲得運行結果


    如何用Paddle模型開發應用?

    1.模型獲得

    目前Paddle-Mobile僅支持Paddle訓練的模型。如果你手中的模型是不同種類的模型,需要進行模型轉換才可以運行。驗證過的網絡包含resnet、Inception、ssd、mobilenet等。

    訓練模型:
    如果您沒有模型,可以使用sample中的模型,或自己訓練模型。
    1.通過PaddlePaddle開源深度學習框架自己訓練模型; 
    2.通過AI Studio平臺訓練模型;
    3.可以在EasyDL等平臺上傳標注數據,訓練模型;
    轉換模型:
    1.如果您已有caffe模型,我們提供了相應的轉換工具,幫助轉為Paddle模型。                                                                                                              
    2.如果您已有Tensorflow模型,我們提供了相應的轉換工具,幫助轉為Paddle模型。


    2.連接視頻數據源

    FZ3提供多種視頻輸入硬件接口,支持多種協議輸入圖像數據作為數據源。包括bt1120、usb、mipi、GIGE
    等協議。
    1.usb協議視頻數據輸入:
    可以選擇uvc usb攝像頭作為視頻源。插入usb攝像頭到FZ3 的usb接口
    2.bt1120協議視頻數據輸入:
    可以選擇海思具有bt1120視頻數據輸出的網絡攝像頭,通過fpc排線連接FZ3的BT1120接口,具體針腳的定義可參考硬件說明。
    3.mipi協議視頻數據輸入:
    可以選擇適配好的mipi攝像頭作為視頻源,通過fpc連接FZ3的mipi接口。
    4.GIGE協議視頻數據輸入:
    可以選擇支持linux系統的GIGE相機,并聯系我司進行相機官方sdk的適配,硬件連接FZ3的網口。


    3.加載驅動

    使用FZ3的加速功能,預測庫會把計算量大的op通過驅動調用fpga進行運算。運行自己的應用前需要加載驅動,編譯好的驅動位于/home/root/workspace/driver目錄,提供無日志輸出和有日志輸出兩個版本。
    加載驅動

    insmod /home/root/workspace/driver/fpgadrv.ko 

    卸載驅動(正常情況您不需要卸載驅動,若需要加載有日志輸出的版本,可以通過如下命令卸載后,再加載該版本)
    rmmod /home/root/workspace/driver/fpgadrv.ko 
    設置驅動自動加載


    1.在系統中添加自啟動腳本


    // 打開啟動目錄 
    cd /etc/init.d/ 
    // 新建啟動腳本并編輯,名稱可以自定義 
    vim eb.sh 
    腳本內容 
    chmod +x /home/root/workspace/driver/fpgadrv.ko insmod /home/root/workspace/driver/fpgadrv.ko


    2.建立軟鏈接


    cd /etc/rc5.d/ 
    ln -s /etc/init.d/eb.sh S99eb


    3.更改腳本權限


    chmod +x /etc/init.d/eb.sh reboot 
    四、使用預測庫
    FZ3支持Paddle-Moblie預測庫,編譯好的預測庫,位于/home/root/workspace/paddle-mobile。具體使用 把預測庫的頭文件和動態庫拷貝到自己應用中即可。另外可以參考我們提供的sample。Paddle-Moblie源碼可以參考https://github.com/PaddlePaddle/paddle-mobile
    五、創建應用
    1.添加預測庫
    拷貝/home/root/workspace/paddle-mobilie/下面的動態庫和頭文件到您的工程中。在CmakeLists.txt添加paddle- mobile庫的引用
    set(PADDLE_LIB_DIR "${PROJECT_SOURCE_DIR}/lib" ) 
    set(PADDLE_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/include/paddle-mobile/" )
    
    include_directories(${PADDLE_INCLUDE_DIR}) LINK_DIRECTORIES(${PADDLE_LIB_DIR}) 
    ... 
    target_link_libraries(${APP_NAME} paddle-mobile)


    2.添加模型
    拷貝自己訓練的模型到您的工程中
    3.添加預測數據源
    可以選擇圖片,攝像頭數據作為預測數據源,使用攝像頭需要插入相應的攝像頭。

    USB攝像頭
    1)插入攝像頭后,通過ls /dev/video* 查看設備接入情況。通過會顯示如下:

    /dev/video0 /dev/video1 /dev/video2
    /dev/video2為usb攝像頭v4l2輸出yuv數據,當應用提示找不到設備時,可以修改src/video_classify.cpp或者 
    src/video_detection.cpp。 通過/home/root/workspace/tools下video工具檢測攝像頭聯通性 
    // src/video_classify.cpp 169行config.dev_name = "/dev/video2";


    2)另外可以修改攝像頭分辨率

    // src/video_classify.cpp 170行 
    config.width = 1280; 
    config.height = 720;


    3)運行video工具

    //讀取usb攝像頭,采集一張圖片保存到本地 
    cd /home/root/workspace/tools/video 
    ./v4l2demo -i /dev/video2 -j -n 1 
    //如有疑問,查看幫助 
    ./v4l2demo -h


    執行程序后在build目錄下會生成jpg文件,可以查看圖片否正確。如果沒有生成圖片,檢測是否識別到USB設備。
    bt1120 ipc攝像頭
    FZ3通過bt1120協議接收原始數據進行推理后,可以把結果通過串口或spi傳回ipc(bt1120、串口、spi
    接口定義參考硬件說明)??梢栽趫D片幀的像素數據中攜帶幀編號。
    插入攝像頭后,通過/home/root/workspace/tools下video工具檢測攝像頭聯通性

    1)查看設備,正常情況下設備為/dev/vide01


    ls /dev/video* 
    /dev/video0	/dev/video1 
    2)配置攝像頭參數
    media-ctl -v --set-format '"a0010000.v_tpg":0 [RBG24 1920x1080 field:none]'


    3)運行video工具

    //讀取BT1120攝像頭,采集一張圖片保存到本地cd /home/root/workspace/tools/video 
    ./v4l2demo -i /dev/video1 -j -n 1 
    //如有疑問,查看幫助 
    ./v4l2demo -h


    執行程序后在build目錄下會生成jpg文件,可以查看圖片否正確。如果沒有生成圖片,檢測bt1120連接線是否正確。
    4.調用預測庫加載模型和使用預測數據
    初始化模型

    Predictor _predictor_handle = new Predictor(); 
    _predictor_handle->init(model, {batchNum, channel, input_height, input_width}, output_names);


    準備數據
    1.縮放圖片到指定的大小。如果網絡只能固定大小輸入,需要縮放到網絡輸入大小。
    2.圖片預處理(減均值、轉浮點、歸一化等).
    3.產出數據,由于FZ3使用的NHWC格式,通常視頻過來的數據就是NHWC格式,就不需要NHWC->NCHW轉換。預測數據
    調用API的predict接口,傳輸處理好的數據,獲取預測結果

    bool predict(const float* inputs, vector &outputs,vector > &output_shapes);


    更多說明請點擊了解:
    http://www.www.zimajie.com/product/mys-czu3eg.htm
    看到這里,你是否已經掌握了用米爾FZ3深度學習卡+百度飛槳(Paddle)模型來打造你的各種應用?
    實際應用場景參考:

     



    本文來自米爾科技,原文地址: http://www.www.zimajie.com/resource/549.asp,轉載請注明出處。

    亚洲综合在线另类社区奇米_在线视频国产欧美另类_午夜神器看大片爽免费_多人做人爱A片免费视频_日本美女_一级a做爰片视频美国_日本免费视频 2021在线观看免费国语完整版_奇米第四色在线影院_图片区小说区 另类图片_色偷偷男人的天堂a v_色五月丁香五月综合五月_五福影院学生在线看 天天爽天天摸天天碰_哥哥去哥哥干_乱人伦中文视频在线_亚洲色偷自拍高清视频_制服丝袜中文字幕_久久精品视频在线看99热官网_撸管专用图 日日摸夜夜添夜夜添爱_国产 精品 自在 线免费_国产精品自拍_色爱图图网_精品国产美女福到在线不卡_悠悠资源AV男人免费站_久草色费视频免费播放在线 奇米影视777四色米奇影院_啪影院免费线观看视频_欧美在线看欧美视频免费_在线萝福利莉视频网站_91精品国产在线观看_欧美日韩视频在线观看亚洲 亚洲天天做日日做天天欢_奇米影视_亚洲一日韩欧美中文字幕在线_亚洲日韩视频在线看观看_日本无码中文_久久综合九色综合欧美_青娱乐在线