99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>基于FPGA的披薩切片角度計算器

基于FPGA的披薩切片角度計算器

2023-06-16 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

介紹

嗨,在這個項目中,我想向您展示如何構(gòu)建一個基于 FPGA 加速 Yolov3 網(wǎng)絡(luò)的披薩切片角度計算器。披薩配料由 Yolov3 網(wǎng)絡(luò)分析。根據(jù) Yolo 輸出,計算出意大利辣香腸熱圖。此熱圖用于計算將比薩餅切成兩半的完美角度。最佳切割角度的結(jié)果投影在披薩附近。Avnet 的 Ultra96-V2 板用于所有計算。GoPro Hero 相機用于從意大利辣香腸比薩餅中捕捉圖像。相機和投影儀連接到 Ultra96-V2 板。我使用了定制的 HDMI 板,但您可以使用 USB 網(wǎng)絡(luò)攝像頭進行圖像捕捉。來自相機的傳入圖像會調(diào)整大小,這是通過可編程邏輯 (PL) 加速器完成的。Yolov3對象檢測網(wǎng)絡(luò),DPU ) 執(zhí)行比薩餅和意大利辣香腸檢測。#projectofthemonth

pYYBAGN1HgqAEqbhAAA6AVUESW4941.png
系統(tǒng)總覽
?

在你開始之前

項目文檔分為“入門”、“從數(shù)據(jù)集到DPU精靈”和“切片器程序”三個部分。“入門”部分描述了在 Ultra96V2 板上運行基于 Yolo 的披薩切片機所需的步驟。“從數(shù)據(jù)集到 DPU elf”一節(jié)描述了從自定義數(shù)據(jù)集到 DPU elf 文件的整個開發(fā)過程。該項目的這一部分最耗時,因為賽靈思文檔和示例僅涵蓋了整個開發(fā)過程的一部分。目前,這部分正在建設(shè)中,但結(jié)合項目源代碼,它是您自定義 Xilinx DPU 項目的良好起點。就在這個項目在 hackster 上發(fā)布前幾個小時,LogicTronix 發(fā)布了這個教程,其中涵蓋了 Yolov3 到 DPU 精靈編譯的某些部分。最后但同樣重要的是,您可以在“切片器程序”部分找到實現(xiàn) Pizza 切片器應(yīng)用程序的 Python 代碼的詳細描述。

入門

  • 下載 Ultra96V2 的 PYNQ V2.6映像
  • 從這個黑客教程安裝 PYNQ-DPU
  • 為了提高 OpenCV 的速度,我Tengine 支持下重建了 OpenCV。這提高了基于 ARM 處理器的系統(tǒng)的整體性能。
  • 克隆我的項目存儲庫以構(gòu)建 FPGA 硬件。我使用了定制的 HDMI 板,因此 Pizza-base-without-hdmi.tcl 創(chuàng)建了帶有 pl 圖像調(diào)整器和 DPU 的 Ultra96-V2 板,沒有 HDMI 輸入/輸出。
  • 從 Vitis ai docker 運行 compile-caffe.sh 腳本。該腳本使用預(yù)訓(xùn)練的 Caffe 模型。我還將用于 DPU 量化和編譯的測試圖像放入存儲庫中。
  • 復(fù)制板上的FPGA *.bin 文件和DPU *.elf 文件。但一切都在與披薩切片機 jupyter notebook 相同的目錄中。
  • 使用我的 repo 中的披薩切片機 jupyter notebook 并測試 yolov3 網(wǎng)絡(luò)并切片一些披薩。

?

從數(shù)據(jù)集到 DPU 精靈

遺憾的是,Xilinx 的 Zoo 模型沒有提供用于比薩檢測的預(yù)訓(xùn)練網(wǎng)絡(luò),所以我不得不從頭開始構(gòu)建網(wǎng)絡(luò)。下圖顯示了在 Xilinx DPU 上運行 Yolo 網(wǎng)絡(luò)所需的步驟。

poYBAGN1Hg2AB4CNAACqeb0xOQk890.png
從數(shù)據(jù)集到 DPU 精靈的工作流程
?

詳細的工作流程:

  • 圖片:首先我必須得到一些意大利辣香腸披薩的圖片。我使用了來自 Google 的 22 張圖片,后來我添加了一些來自 GoPro 的真實圖片。所有圖像都已調(diào)整大小并裁剪為 320x320 像素。
  • 圖像注釋:圖像注釋的一個很好的工具是Microsoft VoTT 。對于披薩切片機應(yīng)用程序,使用了披薩和意大利辣香腸的邊界框。VoTT 可以導(dǎo)出不同格式的數(shù)據(jù)集,我使用Pascal VOC 格式進行導(dǎo)出。
  • 數(shù)據(jù)增強:訓(xùn)練一個只有 22 張圖像的網(wǎng)絡(luò)對于網(wǎng)絡(luò)推理來說不是很健壯。為了提高訓(xùn)練數(shù)據(jù)集和魯棒性,來自roboflow ai的數(shù)據(jù)增強工作流程. 用來。這是一種修改小型數(shù)據(jù)集并添加一些預(yù)處理圖像進行訓(xùn)練的簡單方法。使用每個數(shù)據(jù)集限制為 1000 張圖像的免費帳戶,可以構(gòu)建一個小型數(shù)據(jù)集。對于這個用例,旋轉(zhuǎn)和飽和是模擬真實世界場景的好方法。很酷的是,roboflow 在預(yù)處理步驟中更新注釋。我的最終數(shù)據(jù)集包含大約 800 張披薩圖像,慢慢地我餓了…… 需要將預(yù)處理的數(shù)據(jù)集導(dǎo)出到 Pascal VOC(Xilinx DPU 編譯)和 Yolo 數(shù)據(jù)集(用于訓(xùn)練)。生成多種輸出格式的可能性是 roboflow 的另一個重要功能。
  • 網(wǎng)絡(luò)訓(xùn)練:YOLO 網(wǎng)絡(luò)是用darknet訓(xùn)練的。對于訓(xùn)練,使用了Google Colab GPU 筆記本。培訓(xùn)筆記本可在我的 GitHub 存儲庫中找到。我在我的 Colab 筆記本中添加了對 yolov2-tiny、yolov3-tiny 和 yolov4-tiny 訓(xùn)練的支持。訓(xùn)練后,您可以比較不同的網(wǎng)絡(luò)及其輸出。用于該項目的預(yù)訓(xùn)練網(wǎng)絡(luò)可在我的 GitHub 存儲庫中獲得。
  • Darknet to Caffe convert:要將 Yolo 網(wǎng)絡(luò)與 Xilinx DPU 一起使用,必須將網(wǎng)絡(luò)轉(zhuǎn)換為 Caffe 格式。這一步很棘手。幾乎沒有關(guān)于如何將暗網(wǎng)輸出轉(zhuǎn)換為與 Xilinx Vitis ai 編譯器兼容的 Caffe 模型的文檔。Xilinx 在Vitis-Ai存儲庫中提供了 xilinx-caffe 版本。我構(gòu)建了一個docker 容器,它構(gòu)建了 xilinx-caffe 版本,該容器能夠?qū)稻W(wǎng)模型轉(zhuǎn)換為 caffe 模型。要轉(zhuǎn)換暗網(wǎng)模型(*cfg 和 *weights),請使用convert.py腳本,該腳本位于Vitis-AI/AI-Model-Zoo/caffe-xilinx/scripts/如果一切正常,您將獲得一個 *.prototxt 和一個 *.caffe 模型
  • 編譯DPU elf:最后一步,DPU elf文件的量化和編譯需要一些準(zhǔn)備。需要一個 Vivado 硬件項目,其中包括 DPU IP、Pascal 驗證數(shù)據(jù)集、Caffe 網(wǎng)絡(luò)和 Vitis-AI docker 容器。這僅對 Ultra96-V2 板 DPU 上的 Yolo 網(wǎng)絡(luò)有效,對于其他網(wǎng)絡(luò)類型,要求可能有所不同。需要在 Vitis Ai docker 容器內(nèi)執(zhí)行以下步驟。但在我們能夠編譯模型之前,我們必須更改 *.prototxt 文件的第一個“層”。請參閱項目 GitHub RepoXilinx 教程。 量化步驟需要有效的網(wǎng)絡(luò)輸入數(shù)據(jù)。為了讓第一層的圖像加載器運行起來,我們需要 ms coco 數(shù)據(jù)集格式的圖像。幸運的是,roboflow 可以以 coco 格式導(dǎo)出數(shù)據(jù)集(參見“數(shù)據(jù)增強”步驟)。對于量化,可以使用來自 roboflow 的測試圖像。Roboflow 自動將數(shù)據(jù)集拆分為測試、訓(xùn)練和有效部分。完整的編譯代碼、測試圖像和 DPU 配置是我 repo 的一部分。除了網(wǎng)絡(luò)層適配之外,DPU 編譯器還需要一些有關(guān) DPU 的信息,這些信息在硬件設(shè)計中實現(xiàn)。配置存儲在 JSON 文件中。JSON 文件分為兩部分,一是 CPU 架構(gòu)和 DPU 類型,另一部分是 DPU 配置(Cores、Softmax 等)。這個 JSON 文件可以使用 DELT 工具生成。DELT 工具將 *.hwh 文件轉(zhuǎn)換為 JSON 文件,可用于編譯。有關(guān)更多信息,請參閱此賽靈思論壇帖子。我的自定義 JSON 文件是我的repo的一部分。如果你準(zhǔn)備好了一切,你就可以量化和編譯 DPU 精靈了。從您的自定義網(wǎng)絡(luò)。如果一切成功,就會生成dpu.elf文件。該文件可以使用 PYNQ-DPU python 框架加載。

切片程序

最后一部分解釋了 Pizza Slicer 代碼。該程序是用python3編寫的,并使用jupyter notebook來控制程序。源代碼

前三個單元格涵蓋了所有 Python 導(dǎo)入和 FPGA/DPU 文件加載。

pYYBAGN1Hg-AYtEWAAFSU9ME240037.png
Python 導(dǎo)入、FPGA bin 和 DPU 文件加載
?

生成切片蒙版。找到最佳角度的問題以幾何方式解決。我使用了 180 個蒙版,將 320 x 320 的圖像分成兩部分。注釋代碼,啟用繪制切片 mak 的 matplotlib 圖。

poYBAGN1HhKAUTVBAAFTr5_Rza8773.png
生成切片蒙版
?

為 Yolov3 網(wǎng)絡(luò)加載錨點。Yolov3 使用一組固定的錨點來生成邊界框。這些錨點用于評估函數(shù)。

pYYBAGN1HhWAE-I1AADfqsQYTk0897.png
yolov3 主播
?

評估函數(shù)將 Yolov3 輸出轉(zhuǎn)換為框、類和分?jǐn)?shù)。這是必需的,因為所有其他步驟都需要邊界框格式的輸出。

poYBAGN1HhiAKDd4AAIDXfeLX-I038.png
評價功能
?

用于相機輸入和投影儀輸出的 HDMI 設(shè)置。該代碼與 PYNQ HDMI 接口兼容。此時可以設(shè)置自定義輸入/輸出。

poYBAGN1HhuAYy7VAADg6QhzepI330.png
輸入/輸出設(shè)置
?

第一步中裁剪來自相機的輸入圖像,以選擇感興趣區(qū)域 (ROI)。我的 GoPro 攝像機輸出 720p 圖像,因此 ROI 設(shè)置為 440 x 440 像素,裁剪是在軟件中完成的。如果您的相機沒有固定在投影儀上,并且需要進行一些調(diào)整以使比薩餅適合 ROI 中間,這將非常有用。ROI 圖像數(shù)據(jù)被傳輸?shù)?FPGA 圖像縮放器,數(shù)據(jù)傳輸由一些 DMA 任務(wù)完成。為了啟用從 python 內(nèi)存到 PL 內(nèi)存的數(shù)據(jù)傳輸,使用了 pynq.buffer。PL 圖像縮放器的輸出用作 DPU 輸入。PL resizer 的源代碼來自這個PYNQ-Helloworld GitHub repo. PL resizer 可以處理自定義輸入/輸出圖像,輸入/輸出圖像的設(shè)置可以通過寄存器進行設(shè)置。必須設(shè)置四個寄存器值: 0x10:輸入圖像高度;0x18 輸入圖像寬度;0x20 輸出圖像高度;0x28 輸出圖像寬度

pYYBAGN1Hh6AYVgZAAIF_-7frdQ566.png
圖像捕捉、裁剪和調(diào)整大小
?

DPU init 和 DPU Task 啟動。評估函數(shù)將原始 Yolov3 網(wǎng)絡(luò)輸出轉(zhuǎn)換為邊界框格式。

poYBAGN1HiKAYBxNAAJ4WRgS7nY286.png
DPU 初始化和評估
?

評估函數(shù)的輸出被傳遞到排序過程。重復(fù)的比薩檢測被刪除,只使用比薩的最高置信度。如果置信度高于 0.5,則使用 Pepperoni 檢測。

pYYBAGN1HiWAEOCoAAFB_9-KNGQ399.png
重新排序原始的 Yolo 輸出
?

基于排序過程,在 320 x320 uint8 數(shù)組中繪制了一個虛擬披薩。邊界框坐標(biāo)用于在邊界框內(nèi)繪制一個橢圓。橢圓的內(nèi)部用 1 填充,外部用 0 填充。每個意大利辣香腸近似值都添加到 320 x 320 基本數(shù)組中。基本數(shù)組元素是一個披薩邊界框近似。披薩基數(shù)組之外的意大利辣香腸檢測將被忽略。結(jié)果是一個意大利辣香腸熱圖。

poYBAGN1HieAXtPVAAEtHj95q-o867.png
生成意大利辣香腸熱圖
?

意大利辣香腸熱圖,覆蓋意大利辣香腸切片也被模擬(較亮的區(qū)域)。這就是為什么使用對象檢測網(wǎng)絡(luò)而不是分割網(wǎng)絡(luò)的原因之一。使用目標(biāo)檢測網(wǎng)絡(luò)和橢圓區(qū)域近似覆蓋意大利辣香腸可以進行模擬。

pYYBAGN1HiqADkdEAAHFt3NxxFs263.png
意大利辣香腸熱圖與輸入圖像
?

3D 意大利辣香腸熱圖,重疊的意大利辣香腸區(qū)域被繪制為尖峰。該圖非常清楚地顯示了在橢圓區(qū)域近似和層添加之后如何組合熱圖數(shù)據(jù)。

poYBAGN1Hi2ANAVdAAGgfxVxGBg791.png
3D 近似熱圖
?

在計算意大利辣香腸熱圖后,必須定義最佳切割角度。這個問題是通過對意大利辣香腸熱圖應(yīng)用蒙版來解決的。掩碼將熱圖值的一半設(shè)置為零。應(yīng)用掩碼后,所有元素都被匯總。該值與原始意大利辣香腸熱圖中的所有元素的一半進行比較。二分搜索算法試圖最小化從掩碼總和到半熱圖總和的差異。我使用了我們只需要從 0 到 180 度搜索的事實,因為掩碼圍繞數(shù)組的中心旋轉(zhuǎn)。這種搜索非常有效,并且極大地減少了計算次數(shù)。

pYYBAGN1HjGAI8GPAAKQfN34lb4339.png
二分查找最佳切割角度
?

3D 最佳切割角度的可視化

poYBAGN1HjOAeKsiAAG8_JRhfCk583.png
3D 披薩切片
?

在最后一步中,計算“Cut Here”的輸出圖像和切割箭頭。

pYYBAGN1HjaAUrMmAAD5arm7sQ8364.png
輸出圖像計算
?

設(shè)置

pYYBAGN1HjuAVEPtAAncX2znGow074.jpg
帶鏡子和 GoPro 攝像頭的 Bottum Up 投影儀
?
poYBAGN1HkCAdpRjAAZGT0nCOmo868.jpg
帶鏡子和 GoPro 攝像頭的 Top Down 投影儀
?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費