91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在KV260上快速體驗(yàn)Vitsi AI圖像分類示例程序

電子發(fā)燒友論壇 ? 來源:電子發(fā)燒友論壇 ? 2023-09-12 10:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文首先將會(huì)對(duì)Vitis統(tǒng)一軟件平臺(tái)和Vitsi AI進(jìn)行簡(jiǎn)單介紹,然后介紹如何在KV260上部署DPU鏡像,最后在KV260 DPU鏡像上運(yùn)行Vitis AI自帶的圖像分類示例。通過本文,你將會(huì)對(duì)Vitis軟件平臺(tái)、Vitsi AI架構(gòu)有初步認(rèn)識(shí),并知道如何在KV260上快速體驗(yàn)Vitsi AI圖像分類示例程序。

01一、背景簡(jiǎn)介

開始本文的實(shí)操環(huán)節(jié)之前,這里我先介紹一些背景知識(shí),分別是Vitis統(tǒng)一軟件平臺(tái)和Vitis AI。

1.1 Vitis 統(tǒng)一軟件平臺(tái)簡(jiǎn)介

來自Xilinx官網(wǎng)的簡(jiǎn)介,Vitis 統(tǒng)一軟件平臺(tái)包括:

全面的內(nèi)核開發(fā)套件,可無縫構(gòu)建加速應(yīng)用

完整的硬件加速開源庫(kù),針對(duì) AMD FPGA 和 Versal 自適應(yīng) SoC 硬件平臺(tái)進(jìn)行了優(yōu)化

插入特定領(lǐng)域的開發(fā)環(huán)境,可直接在熟悉的更高層次框架中進(jìn)行開發(fā)

不斷發(fā)展的硬件加速合作伙伴庫(kù)和預(yù)建應(yīng)用生態(tài)系統(tǒng)

Vitis Model Composer 是一款基于模型的設(shè)計(jì)工具,不僅可在 MathWorks MATLABSimulink 環(huán)境中實(shí)現(xiàn)快速設(shè)計(jì)探索與驗(yàn)證 ,而且還可加速 AMD 器件的生產(chǎn)進(jìn)程。

Vitis Networking P4 允許創(chuàng)建軟定義網(wǎng)絡(luò)。VitisNetP4 數(shù)據(jù)平面構(gòu)建器生成的系統(tǒng)可以針對(duì)從簡(jiǎn)單的數(shù)據(jù)包分類到復(fù)雜的數(shù)據(jù)包編輯的各種數(shù)據(jù)包處理功能進(jìn)行編程。

來自官網(wǎng)的Vitis統(tǒng)一軟件平臺(tái)架構(gòu)圖:

fe278d48-50ff-11ee-a25d-92fbcf53809c.jpg

從官網(wǎng)的介紹頁(yè)面我們也可以看到,Vitis 統(tǒng)一軟件平臺(tái)包括如下組件:

Vitis AI

Vitis 視頻分析SDK

Vitis 庫(kù)

Vitis HLS

Vitis Model Composer

今天我們將會(huì)重點(diǎn)介紹Vitis AI。

1.2 Vitsi AI簡(jiǎn)介

本節(jié)內(nèi)容主要參考了自官方github.io文檔。

AMD Vitis AI 是一個(gè)集成開發(fā)環(huán)境,可用于加速 AMD 平臺(tái)上的 AI 推理。該工具鏈提供優(yōu)化的IP、工具、庫(kù)、模型以及資源,例如示例設(shè)計(jì)和教程,可在整個(gè)開發(fā)過程中為用戶提供幫助。它在設(shè)計(jì)時(shí)充分考慮了高效率和易用性,在 AMD 自適應(yīng) SoC 和 Alveo 數(shù)據(jù)中心加速卡上釋放了 AI 加速的全部潛力。

Vitis AI 解決方案由三個(gè)主要組件組成:

深度學(xué)習(xí)處理器單元 (DPU),用于優(yōu)化 ML 模型推理的硬件引擎。

模型開發(fā)工具,用于為 DPU 編譯和優(yōu)化 ML 模型。

模型部署庫(kù)和 API,用于從軟件應(yīng)用程序在 DPU 引擎上集成和執(zhí)行 ML 模型。

Vitis AI 解決方案的打包和交付方式如下:

AMD 開放下載:集成 DPU 的預(yù)構(gòu)建目標(biāo)映像(以下簡(jiǎn)稱“DPU鏡像”)

Vitis AI Docker容器:模型開發(fā)工具

Vitis AI github 存儲(chǔ)庫(kù):模型部署庫(kù)、設(shè)置腳本、示例和參考設(shè)計(jì)

02二、部署DPU鏡像到KV260

2.1 下載DPU鏡像

在KV260開發(fā)板上正式體驗(yàn)Vitis AI之前,需要將上一節(jié)中提到的DPU鏡像下載下來并燒錄到SD上。

支持KV260的最新DPU鏡像下載鏈接:https://china.xilinx.com/member/forms/download/design-license-xef.html?filename=xilinx-kv260-dpu-v2022.2-v3.0.0.img.gz

2.2 寫入DPU鏡像到SD卡

下載完成后,解壓壓縮包,通過Rufus將解壓的wic文件寫入SD卡。使用Rufus選擇文件時(shí),需要注意將右側(cè)的默認(rèn)文件類型修改為全部文件,否則默認(rèn)不支持wic文件:

fe35e672-50ff-11ee-a25d-92fbcf53809c.png

寫入過程顯示進(jìn)度:

fe4d145a-50ff-11ee-a25d-92fbcf53809c.png

2.3 啟動(dòng)DPU鏡像系統(tǒng)

完成DPU鏡像寫入SD卡后,將SD卡讀卡器從PC移除后,將SD卡插入到開發(fā)板,插好串口線,打開串口終端,波特率設(shè)置為115200,就可以準(zhǔn)備上電開機(jī)了。

啟動(dòng)之后會(huì)自動(dòng)登錄root賬號(hào)(默認(rèn)密碼為root):

fe5ae396-50ff-11ee-a25d-92fbcf53809c.png

插上網(wǎng)線的話,啟動(dòng)后還可以看到輸出了dashborad訪問鏈接:

fe8685d2-50ff-11ee-a25d-92fbcf53809c.png

根據(jù)ifconfig查看的IP地址,瀏覽器訪問dashboard鏈接,可以看到實(shí)時(shí)狀態(tài)監(jiān)控:

fea2b068-50ff-11ee-a25d-92fbcf53809c.png

03三、運(yùn)行Vitsi AI圖像分類示例

3.1 DPU鏡像自帶的一些文件介紹

DPU鏡像默認(rèn)帶有SSH服務(wù),并且是開機(jī)啟動(dòng)的,因此可以使用MobaXterm的SSH客戶端通過網(wǎng)絡(luò)登錄KV260,如下圖所示:

fecb22be-50ff-11ee-a25d-92fbcf53809c.png

MobaXterm的SSH客戶端時(shí)帶有X11-forwarding功能的,支持將遠(yuǎn)程程序界面通過SSH協(xié)議顯示在本地。

登錄系統(tǒng)后,可以看到,/home/root目錄下已經(jīng)有了兩個(gè)目錄。

使用tree命令,可以看到Vitis-AI目錄結(jié)構(gòu):

fef4319a-50ff-11ee-a25d-92fbcf53809c.png

接下來我們將會(huì)嘗試運(yùn)行vai_runtime下的resnet50示例程序,我們先看看這個(gè)目錄下的文件結(jié)構(gòu):

ff018192-50ff-11ee-a25d-92fbcf53809c.png

里面有文件的作用分別為:

build.sh,編譯腳本,里面包含編譯src/main.cc的命令

resnet50,已經(jīng)編譯好的可執(zhí)行程序,由src/main.cc編譯生成

readme,說明文件

words.txt,分類標(biāo)簽

src/main.cc,示例程序源碼

DPU鏡像默認(rèn)已經(jīng)安裝了gcc,直接運(yùn)行build.sh就可以編譯src/main.cc,并生成resnet50可執(zhí)行文件??梢試L試將resnet50可執(zhí)行文件刪除掉,再運(yùn)行build.sh腳本,觀察是否重新生成了resnet50。

ff1950ce-50ff-11ee-a25d-92fbcf53809c.png

3.2 下載resnet50測(cè)試圖片

通過以下命令,下載并解壓resnet50測(cè)試圖片:

cd ~
wget https://china.xilinx.com/bin/public/openDownload?filename=vitis_ai_runtime_r3.0.0_image_video.tar.gz -O vitis_ai_runtime_r3.0.0_image_video.tar.gz
mkdir vitis_ai_runtime_r3.0.0_image_video
tar -C vitis_ai_runtime_r3.0.0_image_video -xzvf vitis_ai_runtime_r3.0.0_image_video.tar.gz

(左右移動(dòng)查看全部?jī)?nèi)容)

3.3 運(yùn)行resnet50示例程序

接下來,通過如下命令,運(yùn)行resnet50示例程序:

cd ~/Vitis-AI/examples/vai_runtime/resnet50
./resnet50 /usr/share/vitis_ai_library/models/resnet50/resnet50.xmodel

(左右移動(dòng)查看全部?jī)?nèi)容)

運(yùn)行結(jié)果如下:

ff22e12a-50ff-11ee-a25d-92fbcf53809c.png

報(bào)錯(cuò)說../images目錄找不到。

創(chuàng)建../images目錄,并將剛剛下載的resnet50測(cè)試圖片拷貝到該目錄中:

mkdir -v ../images
cp -vr ~/vitis_ai_runtime_r3.0.0_image_video/images/* ../images/

(左右移動(dòng)查看全部?jī)?nèi)容)

運(yùn)行輸出如下:

ff4dfd06-50ff-11ee-a25d-92fbcf53809c.png

再次運(yùn)行resnet50示例程序:

ff6a080c-50ff-11ee-a25d-92fbcf53809c.png

成功識(shí)別了。

命令行第二個(gè)參數(shù) /usr/share/vitis_ai_library/models/resnet50/resnet50.xmodel 是resnet50的DPU模型文件,該文件在DPU鏡像中已經(jīng)有了,因此不需要手動(dòng)下載。

3.4 使用金魚圖片進(jìn)行測(cè)試

words.txt 文件中是resnet50識(shí)別結(jié)果的分類標(biāo)簽,可以看到前面幾行中包含金魚(goldfish)分類:

ff84b134-50ff-11ee-a25d-92fbcf53809c.png

因此,可以找一個(gè)金魚圖片進(jìn)行測(cè)試。

隨便找了一張:

通過MobaXterm左側(cè)邊欄的上傳功能傳到開發(fā)板上:

ffbca742-50ff-11ee-a25d-92fbcf53809c.png

默認(rèn)上傳位置為HOME目錄(~)。

接下來,將金魚圖片拷貝到../images目錄,并將原來的測(cè)試圖片刪除掉,重新運(yùn)行resnet50示例程序,可以看到成功識(shí)別了金魚:

ffd5b354-50ff-11ee-a25d-92fbcf53809c.png

04四、示例程序源碼解讀

接下來我們看看resnet50目錄下的src/main.cc文件內(nèi)容。

4.2 main函數(shù)

首先是main函數(shù):

/**
 * [url=home.php?mod=space&uid=2666770]@Brief[/url] Entry for runing ResNet50 neural network
 *
 * [url=home.php?mod=space&uid=1902110]@NOTE[/url] Runner APIs prefixed with "dpu" are used to easily program &
 *    deploy ResNet50 on DPU platform.
 *
 */
int main(int argc, char* argv[]) {
 // Check args
 if (argc != 2) {
  cout << "Usage of resnet50 demo: ./resnet50 [model_file]" << endl;
 ? ?return -1;
 ?}
 ?auto graph = xir::deserialize(argv[1]);
 ?auto subgraph = get_dpu_subgraph(graph.get());
 ?CHECK_EQ(subgraph.size(), 1u)
 ? ? ?<< "resnet50 should have one and only one dpu subgraph.";
 ?LOG(INFO) << "create running for subgraph: " << subgraph[0]->get_name();
 /*create runner*/
 auto runner = vart::create_runner(subgraph[0], "run");
 // ai::XdpuRunner* runner = new ai::XdpuRunner("./");
 /*get in/out tensor*/
 auto inputTensors = runner->get_input_tensors();
 auto outputTensors = runner->get_output_tensors();


 /*get in/out tensor shape*/
 int inputCnt = inputTensors.size();
 int outputCnt = outputTensors.size();
 TensorShape inshapes[inputCnt];
 TensorShape outshapes[outputCnt];
 shapes.inTensorList = inshapes;
 shapes.outTensorList = outshapes;
 getTensorShape(runner.get(), &shapes, inputCnt, outputCnt);


 /*run with batch*/
 runResnet50(runner.get());
 return 0;
}

(左右移動(dòng)查看全部?jī)?nèi)容)

其中:

auto graph = xir::deserialize(argv[1]); 用于加載模型

auto runner = vart::create_runner(subgraph[0], "run"); 用于創(chuàng)建Runner對(duì)象

auto inputTensors = runner->get_input_tensors(); 用于獲取輸入Tensor對(duì)象

auto outputTensors = runner->get_output_tensors(); 用于獲取輸出Tensor對(duì)象

最后的 runResnet50(runner.get()); 運(yùn)行模型

4.2 runRestnet50函數(shù)

接下來我們看看runReset50函數(shù):

/**
 * @brief Run DPU Task for ResNet50
 *
 * [url=home.php?mod=space&uid=3142012]@param[/url] taskResnet50 - pointer to ResNet50 Task
 *
 * [url=home.php?mod=space&uid=1141835]@Return[/url] none
 */
void runResnet50(vart::Runner* runner) {
 /* Mean value for ResNet50 specified in Caffe prototxt */
 vector kinds, images;


 /* Load all image names.*/
 ListImages(baseImagePath, images);
 if (images.size() == 0) {
  cerr << "
Error: No images existing under " << baseImagePath << endl;
 ? ?return;
 ?}


 ?/* Load all kinds words.*/
 ?LoadWords(wordsPath + "words.txt", kinds);
 ?if (kinds.size() == 0) {
 ? ?cerr << "
Error: No words exist in file words.txt." << endl;
 ? ?return;
 ?}
 ?float mean[3] = {104, 107, 123};


 ?/* get in/out tensors and dims*/
 ?auto outputTensors = runner->get_output_tensors();
 auto inputTensors = runner->get_input_tensors();
 auto out_dims = outputTensors[0]->get_shape();
 auto in_dims = inputTensors[0]->get_shape();


 auto input_scale = get_input_scale(inputTensors[0]);
 auto output_scale = get_output_scale(outputTensors[0]);


 /*get shape info*/
 int outSize = shapes.outTensorList[0].size;
 int inSize = shapes.inTensorList[0].size;
 int inHeight = shapes.inTensorList[0].height;
 int inWidth = shapes.inTensorList[0].width;


 int batchSize = in_dims[0];


 std::vector> inputs, outputs;


 vector imageList;
 int8_t* imageInputs = new int8_t[inSize * batchSize];


 float* softmax = new float[outSize];
 int8_t* FCResult = new int8_t[batchSize * outSize];
 std::vector inputsPtr, outputsPtr;
 std::vector> batchTensors;
 /*run with batch*/
 for (unsigned int n = 0; n < images.size(); n += batchSize) {
 ? ?unsigned int runSize =
 ? ? ? ?(images.size() < (n + batchSize)) ? (images.size() - n) : batchSize;
 ? ?in_dims[0] = runSize;
 ? ?out_dims[0] = batchSize;
 ? ?for (unsigned int i = 0; i < runSize; i++) {
 ? ? ?Mat image = imread(baseImagePath + images[n + i]);


 ? ? ?/*image pre-process*/
 ? ? ?Mat image2; ?//= cv::Mat(inHeight, inWidth, CV_8SC3);
 ? ? ?resize(image, image2, Size(inHeight, inWidth), 0, 0);
 ? ? ?for (int h = 0; h < inHeight; h++) {
 ? ? ? ?for (int w = 0; w < inWidth; w++) {
 ? ? ? ? ?for (int c = 0; c < 3; c++) {
 ? ? ? ? ? ?imageInputs[i * inSize + h * inWidth * 3 + w * 3 + c] =
 ? ? ? ? ? ? ? ?(int8_t)((image2.at(h, w)[c] - mean[c]) * input_scale);
     }
    }
   }
   imageList.push_back(image);
  }


  /* in/out tensor refactory for batch inout/output */
  batchTensors.push_back(std::shared_ptr(
    xir::create(inputTensors[0]->get_name(), in_dims,
              xir::DataType{xir::XINT, 8u})));
  inputs.push_back(std::make_unique(
    imageInputs, batchTensors.back().get()));
  batchTensors.push_back(std::shared_ptr(
    xir::create(outputTensors[0]->get_name(), out_dims,
              xir::DataType{xir::XINT, 8u})));
  outputs.push_back(std::make_unique(
    FCResult, batchTensors.back().get()));


  /*tensor buffer input/output */
  inputsPtr.clear();
  outputsPtr.clear();
  inputsPtr.push_back(inputs[0].get());
  outputsPtr.push_back(outputs[0].get());


  /*run*/
  auto job_id = runner->execute_async(inputsPtr, outputsPtr);
  runner->wait(job_id.first, -1);
  for (unsigned int i = 0; i < runSize; i++) {
 ? ? ?cout << "
Image : " << images[n + i] << endl;
 ? ? ?/* Calculate softmax on CPU and display TOP-5 classification results */
 ? ? ?CPUCalcSoftmax(&FCResult[i * outSize], outSize, softmax, output_scale);
 ? ? ?TopK(softmax, outSize, 5, kinds);
 ? ? ?/* Display the impage */
 ? ? ?bool quiet = (getenv("QUIET_RUN") != nullptr);
 ? ? ?if (!quiet) {
 ? ? ? ?cv::imshow("Classification of ResNet50", imageList[i]);
 ? ? ? ?cv::waitKey(10000);
 ? ? ?}
 ? ?}
 ? ?imageList.clear();
 ? ?inputs.clear();
 ? ?outputs.clear();
 ?}
 ?delete[] FCResult;
 ?delete[] imageInputs;
 ?delete[] softmax;
}

(左右移動(dòng)查看全部?jī)?nèi)容)

其中,關(guān)鍵代碼行如下:

ListImages(baseImagePath, images); 用于列出../images目錄中的圖片文件

LoadWords(wordsPath + "words.txt", kinds); 用于讀取words.txt中的分類標(biāo)簽

Mat image = imread(baseImagePath + images[n + i]); 用于讀取圖片

resize(image, image2, Size(inHeight, inWidth), 0, 0); 用于將圖片縮放為模型需要的尺寸

auto job_id = runner->execute_async(inputsPtr, outputsPtr); 開始異步執(zhí)行模型推理

runner->wait(job_id.first, -1); 等待異步執(zhí)行完成

cv::imshow("Classification of ResNet50", imageList[i]); 顯示圖片

cv::waitKey(10000); 等待鍵盤按鍵10秒

好了本篇內(nèi)容就到這里了,感謝閱讀,下次再會(huì)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2200

    瀏覽量

    131131
  • AI
    AI
    +關(guān)注

    關(guān)注

    91

    文章

    39793

    瀏覽量

    301383
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3846

    瀏覽量

    85238
  • 圖像分類
    +關(guān)注

    關(guān)注

    0

    文章

    96

    瀏覽量

    12489

原文標(biāo)題:【試用報(bào)告】如何在KV260上快速體驗(yàn)Vitsi AI圖像分類示例程序

文章出處:【微信號(hào):gh_9b9470648b3c,微信公眾號(hào):電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    KV260視覺入門套件smartcamera體驗(yàn)

    KV260視覺入門套件smartcamera體驗(yàn)
    的頭像 發(fā)表于 09-11 13:04 ?5729次閱讀
    <b class='flag-5'>KV260</b>視覺入門套件smartcamera體驗(yàn)

    [KV260視覺入門套件試用體驗(yàn)]+KV260 開發(fā)套件使用初體驗(yàn)

    KV260開發(fā)板,我們可以接攝像頭,在顯示器顯示攝像頭圖像,以及對(duì)攝像頭視頻數(shù)據(jù)做AI應(yīng)用。 KV2
    發(fā)表于 07-31 01:26

    KV260視覺入門套件試用體驗(yàn)】運(yùn)行SmartCamera示例程序

    將會(huì)了解如何在KV260安裝最新版本Docker,以及如何在KV260運(yùn)行Xilinx官方的
    發(fā)表于 08-20 23:38

    KV260視覺入門套件試用體驗(yàn)】KV260 開發(fā)套件使用體驗(yàn)(二、接通攝像頭)

    ) 在KV260開發(fā)板,我們可以接攝像頭,在顯示器顯示攝像頭圖像,以及對(duì)攝像頭視頻數(shù)據(jù)做AI應(yīng)用。 2、
    發(fā)表于 09-03 11:41

    KV260視覺入門套件試用體驗(yàn)】部署DPU鏡像并運(yùn)行Vitis AI圖像分類示例程序

    對(duì)Vitis軟件平臺(tái)、Vitsi AI架構(gòu)有初步認(rèn)識(shí),并知道如何在KV260快速體驗(yàn)
    發(fā)表于 09-10 23:01

    KV260視覺入門套件試用體驗(yàn)】KV260開發(fā)板初使用

    的硅器件、存儲(chǔ)器、引導(dǎo)和安全模塊。 Kria KV260 Vision AI是Xilinx公司推出的一款視覺AI入門套件,旨在為客戶提供一個(gè)平臺(tái)來評(píng)估他們的目標(biāo)應(yīng)用程序并最終設(shè)計(jì)他們
    發(fā)表于 09-18 14:56

    KV260視覺入門套件試用體驗(yàn)】Vitis-AI加速的YOLOX視頻目標(biāo)檢測(cè)示例體驗(yàn)和原理解析

    示例體驗(yàn) 參考此前的帖子:【KV260視覺入門套件試用體驗(yàn)】部署DPU鏡像并運(yùn)行Vitis AI圖像分類
    發(fā)表于 10-06 23:32

    KV260視覺入門套件試用體驗(yàn)】+03.SmartCamera人臉識(shí)別示例程序(zmj)

    **【KV260視覺入門套件試用體驗(yàn)】+03.SmartCamera人臉識(shí)別示例程序(zmj) ** 本篇主要介紹在KV260視覺入門套件使用Ubuntu-22.04-LTS系統(tǒng)鏡像實(shí)現(xiàn)
    發(fā)表于 10-15 23:47

    KV260視覺入門套件試用體驗(yàn)】KV260開箱及鏡像燒寫

    是所有部件的照片 簡(jiǎn)單介紹一下kv260吧,Kria? KV260 視覺 AI 入門套件是評(píng)估基于視覺 AI 的應(yīng)用程序的開發(fā)平臺(tái)。 系統(tǒng)鏡
    發(fā)表于 10-16 03:31

    KV260視覺入門套件試用體驗(yàn)】四、KV260 視覺入門套件和固件更新

    設(shè)備 Kria? KV260 Vision AI 入門套件具有主啟動(dòng)設(shè)備和輔助啟動(dòng)設(shè)備,可將特定于平臺(tái)的啟動(dòng)固件,與運(yùn)行時(shí)的操作系統(tǒng)和應(yīng)用程序隔離。這使你能夠?qū)W⒂陂_發(fā)和更新應(yīng)用程序
    發(fā)表于 10-17 08:28

    Kria KV260的動(dòng)態(tài)交通燈系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《Kria KV260的動(dòng)態(tài)交通燈系統(tǒng).zip》資料免費(fèi)下載
    發(fā)表于 10-26 11:18 ?3次下載
    Kria <b class='flag-5'>KV260</b><b class='flag-5'>上</b>的動(dòng)態(tài)交通燈系統(tǒng)

    使用Xilinx Kria KV260進(jìn)行AI火災(zāi)探測(cè)

    電子發(fā)燒友網(wǎng)站提供《使用Xilinx Kria KV260進(jìn)行AI火災(zāi)探測(cè).zip》資料免費(fèi)下載
    發(fā)表于 10-27 10:12 ?7次下載
    使用Xilinx Kria <b class='flag-5'>KV260</b>進(jìn)行<b class='flag-5'>AI</b>火災(zāi)探測(cè)

    Kria KV260 AI視覺套件入門

    電子發(fā)燒友網(wǎng)站提供《Kria KV260 AI視覺套件入門.zip》資料免費(fèi)下載
    發(fā)表于 11-15 11:29 ?3次下載
    Kria <b class='flag-5'>KV260</b> <b class='flag-5'>AI</b>視覺套件入門

    Vitis ai 1.4 KV260鏡像開源

    電子發(fā)燒友網(wǎng)站提供《Vitis ai 1.4 KV260鏡像開源.zip》資料免費(fèi)下載
    發(fā)表于 06-14 14:31 ?0次下載
    Vitis <b class='flag-5'>ai</b> 1.4 <b class='flag-5'>KV260</b>鏡像開源

    Kria KV260視覺AI入門套件用戶指南

    電子發(fā)燒友網(wǎng)站提供《Kria KV260視覺AI入門套件用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 14:53 ?3次下載
    Kria <b class='flag-5'>KV260</b>視覺<b class='flag-5'>AI</b>入門套件用戶指南