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

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

基于國產(chǎn)AI編譯器ICRAFT部署YOLOv5邊緣端計算的實戰(zhàn)案例

國產(chǎn)FPGA之家 ? 來源:國產(chǎn)FPGA之家 ? 2024-01-03 10:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1)背景介紹

1.1 邊緣端部署

人工智能領域中各種算法模型的不斷研究和改進。隨著深度學習的興起,包括卷積神經(jīng)網(wǎng)絡(CNN)、循環(huán)神經(jīng)網(wǎng)絡(RNN)、生成對抗網(wǎng)絡(GAN)、transformer等在內(nèi)的各種深度學習算法被廣泛應用于圖像識別、自然語言處理、語音識別等任務中。AI算法的作用是通過訓練模型來實現(xiàn)自動化的數(shù)據(jù)分析、決策和預測,幫助人類解決復雜的問題。

為了將AI算法賦能社會生產(chǎn)生活的各個領域中,AI加速芯片和配套使用的AI算法編譯器也逐漸發(fā)展成熟。本篇主要介紹在邊緣設備部署AI算法的經(jīng)驗。邊緣設備一般指智能手機、汽車電子智能工業(yè)、農(nóng)業(yè)物聯(lián)網(wǎng)設備等。部署到邊緣設備上的AI模型能夠實時地對數(shù)據(jù)進行處理,可以在不需要云端服務器的情況下,提供快速的響應和處理能力。邊緣端AI部署的優(yōu)勢主要體現(xiàn)在以下幾個方面:

1. 實時性:邊緣設備上部署的AI模型可以實時地對數(shù)據(jù)進行處理,不需要傳輸數(shù)據(jù)到云端服務器進行處理,能夠大大減少數(shù)據(jù)傳輸和處理延遲。

2. 隱私保護:由于邊緣設備上處理數(shù)據(jù)時不需要將數(shù)據(jù)傳輸?shù)皆贫朔掌鳎虼四軌蚋玫乇Wo用戶隱私,減少因數(shù)據(jù)傳輸而帶來的潛在安全風險。

3. 節(jié)約成本:邊緣設備上的AI模型可以避免云端服務器的成本,能夠有效地節(jié)約部署成本,尤其是在大規(guī)模部署時效果更為明顯。

4. 靈活性:邊緣設備上的AI模型可以與其他不同類型的設備相結合,構建出更為靈活、智能化的系統(tǒng),例如智能家居、互聯(lián)網(wǎng)醫(yī)療等。

1.2 AI加速芯片

為了在邊緣端設備部署AI算法,往往需要專用AI加速芯片來加速算法計算。相比于通用的圖形處理單元(GPU),用于邊緣端的專用AI加速芯片具有以下優(yōu)勢:

- 高效性能:AI專用加速芯片采用了專門優(yōu)化的計算架構,能夠更高效地執(zhí)行深度學習計算,提供更快的推理速度和更低的能耗。

- 低功耗:AI專用加速芯片在設計上注重節(jié)能,能夠在相同計算能力下?lián)碛懈偷墓模m合移動設備和嵌入式系統(tǒng)等對能耗要求較高的場景。

- 支持量化計算:AI專用加速芯片通常支持低精度的量化計算,能夠在保持模型精度的同時減少模型的內(nèi)存占用和計算量。

- 專注深度學習:由于AI專用芯片是專門為深度學習任務設計的,因此在深度學習計算方面有著更好的優(yōu)化和支持,能夠提供更好的用戶體驗和性能表現(xiàn)。

1.3 AI編譯器

AI編譯器是一種用于優(yōu)化深度學習模型的工具,其主要功能是將高級的深度學習模型轉化為底層硬件能夠執(zhí)行的低級指令序列,以提高模型的推理速度和效率。AI編譯器可以針對特定的硬件平臺進行優(yōu)化,充分發(fā)揮硬件資源的性能潛力。 AI編譯器的主要工作流程包括模型解析、優(yōu)化、代碼生成等過程。在模型解析階段,AI編譯器會解析深度學習模型的結構和參數(shù),以便后續(xù)的優(yōu)化工作。在優(yōu)化階段,AI編譯器會進行各種優(yōu)化技術,如張量融合、內(nèi)存優(yōu)化、量化計算等,以提高模型的性能和效率。最后,在代碼生成階段,AI編譯器會將優(yōu)化后的模型轉化為特定硬件平臺上的可執(zhí)行指令序列,以實現(xiàn)高效的模型推理。

2)YOLOv5介紹

b5528d0e-a959-11ee-8b88-92fbcf53809c.png

YOLOv5是一種目標檢測算法,它是YOLO(You Only Look Once)系列模型的經(jīng)典版本。YOLOv5通過使用深度卷積神經(jīng)網(wǎng)絡來實現(xiàn)實時、準確地檢測圖像或視頻中的多個對象。

1. 高精度:YOLOv5在目標檢測任務上取得了很好的性能,相較于之前版本的YOLO,YOLOv5在速度和準確率方面都有所提升。

2. 輕量級:YOLOv5采用了輕量級的網(wǎng)絡結構設計,具有較少的參數(shù)量和計算量,適合在資源受限的環(huán)境下部署和應用。

3. 多尺度檢測:YOLOv5引入了多尺度檢測機制,可以在不同尺度下對目標進行檢測,提高了對小目標和遠距離目標的檢測效果。

4. 強大的數(shù)據(jù)增強:YOLOv5采用了大量的數(shù)據(jù)增強技術,如隨機縮放、隨機扭曲等,來擴充訓練集,提高模型的泛化能力和魯棒性。

5. 簡單易用:YOLOv5提供了簡潔的代碼和易于使用的接口,用戶可以方便地進行訓練、測試和部署。

3)ICRAFT編譯器介紹 ICRAFT是一款輕量易用的純國產(chǎn)自主研發(fā)AI編譯器,其優(yōu)勢有:

- 易用性:安裝環(huán)境簡單,使用方便

- 擴展性強:支持用戶自定義算子,以及算子后端

- 性能優(yōu)秀:在同類產(chǎn)品中(相同算力后端芯片),推力性能以及模型精度處于上游水平

目前支持pytorch,tensorflow,paddle-paddle,darknet,caffe等主流框架所保存的模型轉換。編譯器將各環(huán)節(jié)組件打包成可執(zhí)行程序,通過命令行調(diào)用,配合外部ini配置文件執(zhí)行各個組件。如圖所示,目前ICRAFT按功能層次劃分了5個組件,分別是:

- 解析:將模型解析并用ICRAFT IR重新表達、序列化成新模型

- 優(yōu)化:做圖優(yōu)化,減少計算量

- 量化:將模型參數(shù)量化

- 硬件適配:根據(jù)硬件情況進行計算圖優(yōu)化

- 指令生成:生成硬件指令

每個環(huán)節(jié)產(chǎn)生的中間模型都會被保存用于仿真驗證。

b5987c7e-a959-11ee-8b88-92fbcf53809c.png

此外,ICRAFT還提供了c/c++(未來還會提供python)的device和runtime庫用于在硬件上部署編譯后的模型。 下面我們就以yolov5為例,為大家介紹模型的編譯部署流程。

4)基于ICRAFT部署YOLOv5的流程 部署流程分為3步:

1. 框架模型導出

2. 使用ICRAFT編譯模型

3. 運行時工程搭建

下面結合pytorch框架下的yolov5分別介紹每一步操作:

3.1 框架模型導出

框架模型導出目的:導出能夠被ICRAFT編譯的模型 框架模型導出背景:

1. pytorch保存的模型文件為.pt或.pth等格式。不同的保存方式會導致模型里面的內(nèi)容不同。目前ICRAFT能夠編譯的pytorch模型需要是帶有計算圖的靜態(tài)模型,因此需要用pytorch的`torch.jit.trace`保存出torchscript模型。

2. 由于ICRAFT的目標硬件是異構融合的芯片,包括npu、cpu、fpga等硬件資源,一個模型算法的不同計算部分由不同的后端執(zhí)行。在ICRAFT2.x版本中,ICRAFT編譯的部分是在npu上執(zhí)行的部分,而模型的前后處理是在其他后端進行的,因此在導出模型時,需要把前后處理部分去掉。

了解以上背景后,我們來看看在yolov5這個算法。此算法導出模型時需要處理的有兩點:

1)`export.py`已經(jīng)提供了導出torchscript模型的方法,但是我們需要把`yolo.py`中的 `Detect`類中的一部分處理bbox的算子從模型中移出,處理方法就是,在導出模型時,修改detect類的forward函數(shù):

   class Detect(nn.Module):
       stride = None  # strides computed during build
       onnx_dynamic = False  # ONNX export parameter
       export = False  # export mode
       trace = False
       ...
       def forward(self, x):
           z = []  # inference output
           for i in range(self.nl):
               x[i] = self.m[i](x[i])  # conv
               if not self.trace:
                   ...
           if self.trace:
returnx
在detetct類中加入trace的判斷條件,在導出模型時設置為true,使這部分的計算流停止到最后一層卷積算子的計算,即`x[i] = self.m[i](x[i]) # conv`,之后立刻返回結果。當然,這只是一種操作辦法,能達到相同的效果的方法都可以使用。

2)在yolov5早期版本中,算法起始部分使用了`focus`(有些算法里叫`reorg`)模塊,這種操作在硬件上支持起來并不劃算,為此我們可以用一個卷積來等效該操作: 為了方便理解,我們把weights用數(shù)字的方式展現(xiàn):
   class Focus(nn.Module):
       device = torch.device("cpu")
       weights = torch.tensor([[[[1,0],[0,0]],[[0,0],[0,0]],[[0,0],[0,0]]],
                                 [[[0,0],[0,0]],[[1,0],[0,0]],[[0,0],[0,0]]],
                                 [[[0,0],[0,0]],[[0,0],[0,0]],[[1,0],[0,0]]],
   
                                 [[[0,0],[1,0]],[[0,0],[0,0]],[[0,0],[0,0]]],
                                 [[[0,0],[0,0]],[[0,0],[1,0]],[[0,0],[0,0]]],
                                 [[[0,0],[0,0]],[[0,0],[0,0]],[[0,0],[1,0]]],
   
                                 [[[0,1],[0,0]],[[0,0],[0,0]],[[0,0],[0,0]]],
                                 [[[0,0],[0,0]],[[0,1],[0,0]],[[0,0],[0,0]]],
                                 [[[0,0],[0,0]],[[0,0],[0,0]],[[0,1],[0,0]]],
       
                                 [[[0,0],[0,1]],[[0,0],[0,0]],[[0,0],[0,0]]],  
                                 [[[0,0],[0,0]],[[0,0],[0,1]],[[0,0],[0,0]]],
                                 [[[0,0],[0,0]],[[0,0],[0,0]],[[0,0],[0,1]]]],
                              dtype=torch.float32).to(device)
   
       def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True):  # ch_in, ch_out, kernel, stride, padding, groups
           super(Focus, self).__init__()
           self.conv = Conv(c1 * 4, c2, k, s, p, g, act)   
   
       def forward(self, x):  
           x = nn.functional.conv2d(x,self.weights,bias=None,stride=2)
           x = self.conv(x)
           return x
這個后加入的`nn.functional.conv2d`與`focus`中的若干`slice` ,`concat`計算等效,可以不用重訓模型。

3.2 ICRAFT編譯

使用icraft編譯模型十分方便,只需要準備好編譯模型所需的若干文件后,在命令行執(zhí)行:`icraft compile [配置文件路徑]`即可一鍵編譯。 需要準備的文件有3方面:

1. 第一步導出的模型

2. 配置文件

3. 量化校準集

配置文件說明: icraft2.x及之前版本,需要一份`.ini`格式的配置文件,下面以icraft2.2版本的yolov5配置文件為例展開說明:(涉及到具體某個組件的所有配置參數(shù)與說明,可以參考隨ICRAFT外發(fā)的用戶手冊說明)
# 在icraft的使用中,此文件以“#”作為注釋符,而不是默認的“;”


# config用來配置使用哪些內(nèi)置的FPGA算子(后面簡稱硬算子)用于加速
# ImageMake的作用是加速輸入圖片的傳入速率
# IcorePost的作用是為目標檢測網(wǎng)絡做閾值篩選,將合格的目標信息傳出,加速輸出速率
# customop_config是硬算子的配置文件,后面介紹
[config]
customop_on = ImageMake, IcorePost
customop_config = configs/customop/yolov5.ini


# parse section 用于配置解析組件的參數(shù)
[parse]
name = YoloV5s            # 編譯成的json/raw模型名字
framework = pytorch          # 使用的框架
frame_version = 1.9          # pytorch的版本
input = 1, 640, 640, 3        # 輸入的dims,4維輸入要按照NHWC的順序;其他維度與框架一致
input_format = NHWC          # 輸入的layout,4維:NHWC;其他:FD
pre_method = resize          # 前處理方法,默認寫resize即可
pre_scale = 255, 255, 255      # 輸出歸一化參數(shù)
pre_mean = 0, 0, 0          # 輸出歸一化參數(shù)
chann_swap = 2, 1, 0        # 圖像輸入,按照opencv讀入可能需要做bgr轉rgb
network = models/YoloV5/YoloV5s_640x640_traced.pt  # 第一步導出的模型地址
jr_path = json&raw/YoloV5s_BY/    # 編譯后產(chǎn)生的中間模型保存路徑
        
# optimize section 用于配置優(yōu)化組件的參數(shù)
# 該組件只有少數(shù)情況需要特別配置,例如在某些圖優(yōu)化導致bug時,關閉某些優(yōu)化pass
[optimize]
target = BUYI                    # 目標硬件
json = json&raw/YoloV5s_BY/YoloV5s_parsed.json    # 上一個組件產(chǎn)生的中間模型
raw = json&raw/YoloV5s_BY/YoloV5s_parsed.raw    # 上一個組件產(chǎn)生的中間模型
jr_path = json&raw/YoloV5s_BY/            # 編譯后產(chǎn)生的中間模型保存路徑
debug = false


# quantize section 用于配置量化組件的參數(shù)
[quantize]
forward_mode = image                 # 圖片輸入的方式
saturation = kld                  # 量化飽和點選取方式
per = tensor                    # 按層/通道的量化方式
forward_dir = images/coco              # 量化校準集圖片文件夾路徑
forward_list = images/coco.txt             # 量化校準集選取哪些圖片的txt配置
batch = 1                      # 量化前向每次推理的圖片數(shù)
bits = 8                      # 量化到多少bit
json = json&raw/YoloV5s_BY/YoloV5s_optimized.json   # 上一個組件產(chǎn)生的中間模型
raw = json&raw/YoloV5s_BY/YoloV5s_optimized.raw   # 上一個組件產(chǎn)生的中間模型
jr_path = json&raw/YoloV5s_BY/            # 編譯后產(chǎn)生的中間模型保存路徑  


# adapt section 用于配置硬件適配組件的參數(shù)
# 該組件與optmize組件類似都是會做一些圖結構的等效修改
[adapt]  
target = BUYI                    
json = json&raw/YoloV5s_BY/YoloV5s_quantized.json 
raw = json&raw/YoloV5s_BY/YoloV5s_quantized.raw 
jr_path = json&raw/YoloV5s_BY/
debug = false


# generate section 用于配置指令生成組件的參數(shù)
[generate]
json = json&raw/YoloV5s_BY/YoloV5s_adapted.json
raw = json&raw/YoloV5s_BY/YoloV5s_adapted.raw
jr_path = json&raw/YoloV5s_BY/
log_path = ./logs/
qbits = 8                      # 與量化bit數(shù)保持一致  
rows = 4                      # 使用MPE核心數(shù),默認即可
cols = 4                      # 使用MPE核心數(shù),默認即可


# simulate section 用于配置仿真組件的參數(shù)
[simulate]  
target = BUYI                # 目標硬件
log_time = true
log_io = true
dump_ftmp = SFB                # 保存網(wǎng)絡每個算子計算結果;SFB:浮點;SQB:定點
show = true                  # 少數(shù)分類網(wǎng)絡可以直接查看結果
names = names/coco.names
json = json&raw/YoloV5s_BY/YoloV5s_BY.json  # 待仿真的中間模型路徑
raw = json&raw/YoloV5s_BY/YoloV5s_BY.raw  # 待仿真的中間模型路徑
image = images/coco/test_640x640.jpg    # 輸入圖片路徑
硬算子配置文件:
[IcorePost]
forward_dll = C:Icraft-CLIcustomopIcorePostIcorePost.dll
forward_so = /home/fmsh/ModelZoo/Deps/so/libcustom_IcorePost.so
quantized = true
# 需要修改之處
cmp_en = 1      # 是否做閾值比較
thr_f = 0.1     # 閾值 測精度時改為0.001
groups = 3      # 有幾個輸出head
anchor_num = 3    # 每個cell對應幾個anchor;anchor free的情況配1
position = 5    # socre所在的位置;如果沒有score,則配all,通過所有類別prob選?。?

[ImageMake]
forward_dll = C:Icraft-CLIcustomopImageMakeImageMake.dll
forward_so = /home/fmsh/ModelZoo/Deps/so/libcustom_ImageMake.so
no_imkpad = 0
#mode = 1
quantized = true
準備好以上文件后,執(zhí)行編譯命令,得到最終的`yolov5_BY.json`,`yolov5_BY.raw`,即可進行下一步。

3.3 運行時工程

icraft提供了device 和運行時庫,只需要新建一個c++工程依賴這些api,即可調(diào)用專用的AI硬件執(zhí)行模型推理。

主要運行時api介紹:
# 打開設備
auto device = icraft::open(url.data());
# 傳入json和raw文件,構造網(wǎng)絡
auto network_ptr = std::make_shared(jsonPath.data(), rawPath.data());
# 構造runtime
icraft::Runtime runtime(network_ptr, device);
# 前處理
...
# 執(zhí)行前向
# 輸入需要是RutimeTensor的數(shù)據(jù)結構,只需要了解其構造方式即可自行做好前處理后傳入
auto result_tensor = runtime_view->forward({ img_tensor });
# 得到的result_tensor也是RutimeTensor的數(shù)據(jù)結構,繼續(xù)做后處理即可
# 后處理
完成運行時工程的編寫后,即可在片上系統(tǒng)或交叉編譯環(huán)境編譯出可執(zhí)行程序。然后在片上執(zhí)行,即可得到推理結果。

b5ab923c-a959-11ee-8b88-92fbcf53809c.png






審核編輯:劉清

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

    關注

    28

    文章

    4930

    瀏覽量

    130991
  • 物聯(lián)網(wǎng)

    關注

    2930

    文章

    46128

    瀏覽量

    390759
  • 人工智能
    +關注

    關注

    1805

    文章

    48932

    瀏覽量

    248263
  • AI芯片
    +關注

    關注

    17

    文章

    1979

    瀏覽量

    35809
  • 卷積神經(jīng)網(wǎng)絡

    關注

    4

    文章

    369

    瀏覽量

    12259

原文標題:ICRAFT部署實戰(zhàn)之YOLOv5邊緣端部署詳細流程

文章出處:【微信號:國產(chǎn)FPGA之家,微信公眾號:國產(chǎn)FPGA之家】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Yolov5算法解讀

    ,這幾個模型的結構基本一樣,不同的是depth_multiple模型深度和width_multiple模型寬度這兩個參數(shù)。 yolov5主要分為輸入,backbone,Neck,和head
    的頭像 發(fā)表于 05-17 16:38 ?1.2w次閱讀
    <b class='flag-5'>Yolov5</b>算法解讀

    YOLOv5】LabVIEW+TensorRT的yolov5部署實戰(zhàn)(含源碼)

    今天主要和大家分享在LabVIEW中使用純TensoRT工具包快速部署并實現(xiàn)yolov5的物體識別
    的頭像 發(fā)表于 08-21 22:20 ?1703次閱讀
    【<b class='flag-5'>YOLOv5</b>】LabVIEW+TensorRT的<b class='flag-5'>yolov5</b><b class='flag-5'>部署</b><b class='flag-5'>實戰(zhàn)</b>(含源碼)

    yolov5轉onnx在cubeAI上部署失敗的原因?

    第一個我是轉onnx時 想把權重文件變小點 就用了半精度 --half,則說17版本不支持半精度 后面則是沒有縮小的單精度 但是顯示哪里溢出了···· 也不說是哪里、、。。。 到底能不能部署yolov5這種東西???? 也沒看見幾個部署
    發(fā)表于 03-14 06:23

    基于迅為RK3588【RKNPU2項目實戰(zhàn)1】:YOLOV5實時目標分類

    [/url] 【RKNPU2 人工智能開發(fā)】 【AI深度學習推理加速】——RKNPU2 從入門到實踐(基于RK3588和RK3568) 【RKNPU2項目實戰(zhàn)1】:YOLOV5實時目
    發(fā)表于 08-15 10:51

    【米爾RK3576開發(fā)板評測】+項目名稱YOLOV5目標檢測

    /examples/yolov5/python python yolov5.py --model_path ../model/yolov5s_relu.onnx --img_show PC
    發(fā)表于 02-15 13:24

    yolov5轉onnx在cubeAI進行部署,部署失敗的原因?

    第一個我是轉onnx時 想把權重文件變小點 就用了半精度 --half,則說17版本不支持半精度 后面則是沒有縮小的單精度 但是顯示哪里溢出了···· 也不說是哪里、、。。。 到底能不能部署yolov5這種東西?。?? 也沒看見幾個部署
    發(fā)表于 03-07 11:38

    如何YOLOv5測試代碼?

    使用文檔“使用 YOLOv5 進行對象檢測”我試圖從文檔第 10 頁訪問以下鏈接(在 i.MX8MP 上部署 yolov5s 的步驟 - NXP 社區(qū)) ...但是這樣做時會被拒絕訪問。該文檔沒有說明需要特殊許可才能下載 tes
    發(fā)表于 05-18 06:08

    yolov5轉onnx在cubeAI進行部署的時候失敗了是什么原因造成的?

    第一個我是轉onnx時 想把權重文件變小點 就用了半精度 --half,則說17版本不支持半精度 后面則是沒有縮小的單精度 但是顯示哪里溢出了···· 也不說是哪里、 到底能不能部署yolov5這種東西啊?? 也沒看見幾個部署
    發(fā)表于 08-08 07:55

    【愛芯派 Pro 開發(fā)板試用體驗】部署愛芯派官方YOLOV5模型

    繼上文開箱后,本文主要依托愛芯元智官方的實例,進行官方YOLOV5模型的部署和測試。 一、環(huán)境搭建 由于8核A55的SoC,加上目前Debian OS的工具齊全,所以決定直接在板上編譯
    發(fā)表于 12-12 22:58

    yolov5訓練部署全鏈路教程

    本教程針對目標檢測算法yolov5的訓練和部署到EASY-EAI-Nano(RV1126)進行說明。
    的頭像 發(fā)表于 01-05 18:00 ?3729次閱讀
    <b class='flag-5'>yolov5</b>訓練<b class='flag-5'>部署</b>全鏈路教程

    在C++中使用OpenVINO工具包部署YOLOv5模型

    下載并轉換YOLOv5預訓練模型的詳細步驟,請參考:《基于OpenVINO?2022.2和蝰蛇峽谷優(yōu)化并部署YOLOv5模型》,本文所使用的OpenVINO是2022.3 LTS版。
    的頭像 發(fā)表于 02-15 16:53 ?8323次閱讀

    使用旭日X3派的BPU部署Yolov5

    本次主要介紹在旭日x3的BPU中部署yolov5。首先在ubuntu20.04安裝yolov5,并運行yolov5并使用pytoch的pt模型文件轉ONNX。
    的頭像 發(fā)表于 04-26 14:20 ?1310次閱讀
    使用旭日X3派的BPU<b class='flag-5'>部署</b><b class='flag-5'>Yolov5</b>

    【教程】yolov5訓練部署全鏈路教程

    本教程針對目標檢測算法yolov5的訓練和部署到EASY-EAI-Nano(RV1126)進行說明,而數(shù)據(jù)標注方法可以參考我們往期的文章《Labelimg的安裝與使用》。
    的頭像 發(fā)表于 01-29 15:25 ?4220次閱讀
    【教程】<b class='flag-5'>yolov5</b>訓練<b class='flag-5'>部署</b>全鏈路教程

    yolov5和YOLOX正負樣本分配策略

    整體上在正負樣本分配中,yolov7的策略算是yolov5和YOLOX的結合。因此本文先從yolov5和YOLOX正負樣本分配策略分析入手,后引入到YOLOv7的解析中。
    發(fā)表于 08-14 11:45 ?2661次閱讀
    <b class='flag-5'>yolov5</b>和YOLOX正負樣本分配策略

    在樹莓派上部署YOLOv5進行動物目標檢測的完整流程

    卓越的性能。本文將詳細介紹如何在性能更強的計算機上訓練YOLOv5模型,并將訓練好的模型部署到樹莓派4B上,通過樹莓派的攝像頭進行實時動物目標檢測。 一、在電腦上訓練YOLOv5
    的頭像 發(fā)表于 11-11 10:38 ?3608次閱讀
    在樹莓派上<b class='flag-5'>部署</b><b class='flag-5'>YOLOv5</b>進行動物目標檢測的完整流程