<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          邊緣設(shè)備上的計(jì)算機(jī)視覺(jué)

          共 8409字,需瀏覽 17分鐘

           ·

          2021-04-19 16:48

          點(diǎn)擊上方AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”

          重磅干貨,第一時(shí)間送達(dá)

          幾周前,當(dāng)在全球速賣通(AliExpress)購(gòu)物時(shí),偶然發(fā)現(xiàn)了一個(gè)很棒的Maixduino設(shè)備。它宣稱自帶RISC V架構(gòu)和KPU (KPU是一個(gè)通用神經(jīng)網(wǎng)絡(luò)處理器)。其不同規(guī)格如下;
          • CPU: RISC-V雙核64位,帶FPU
          • 圖像識(shí)別:QVGA@60fps / VGA@30fps
          • 芯片功耗< 300mW
          說(shuō)實(shí)話,這個(gè)單位很舊了,最近才開(kāi)始關(guān)注??紤]到我對(duì)邊緣計(jì)算的興趣,我想為一個(gè)對(duì)象檢測(cè)示例提供一個(gè)完整的端到端指南。這個(gè)例子是基于這篇文章:https://www.instructables.com/Object-Detection-With-Sipeed-MaiX-BoardsKendryte-K/
          但是,我將全面介紹如何收集圖像并對(duì)它們進(jìn)行注釋。如果你想知道什么是邊緣計(jì)算,請(qǐng)閱讀下面的文章。
          • https://medium.com/swlh/what-is-edge-computing-d27d15f843e
          讓我們嘗試建立一個(gè)圖像檢測(cè)程序,將能夠檢測(cè)出蘋(píng)果和香蕉。有了檢測(cè)器,你可以變得更有創(chuàng)造力。在接下來(lái)的討論中,我們將討論所需的工具和庫(kù)。

          遷移學(xué)習(xí)注釋

          遷移學(xué)習(xí)是指我們使用預(yù)先訓(xùn)練的模型來(lái)進(jìn)一步專業(yè)化。簡(jiǎn)單地說(shuō),就是用自己的分類層(或更多層)替換訓(xùn)練過(guò)的模型的最后一個(gè)預(yù)測(cè)層。然后凍結(jié)除你的自定義層(或一些經(jīng)過(guò)預(yù)訓(xùn)練的層)以外的所有層。然后訓(xùn)練網(wǎng)絡(luò),以便使用預(yù)先訓(xùn)練過(guò)的模型的特性來(lái)微調(diào)你的層,以預(yù)測(cè)你想要的類。
          不幸的是,目前我們要訓(xùn)練的網(wǎng)絡(luò)沒(méi)有任何預(yù)先訓(xùn)練過(guò)的模型。因此,我們將從頭開(kāi)始訓(xùn)練。但這將是一個(gè)有趣的實(shí)驗(yàn)!

          準(zhǔn)備數(shù)據(jù)

          我們需要按以下格式準(zhǔn)備數(shù)據(jù)。首先,我們需要有蘋(píng)果和香蕉的圖像。同時(shí),我們需要對(duì)它們進(jìn)行注釋,以確定每個(gè)水果可能在圖像中的位置。這就是目標(biāo)分類和檢測(cè)之間的區(qū)別所在。我們需要說(shuō)出物體在哪里。為此,你需要以下工具。
          • tzutalin / labelImg :https://github.com/tzutalin/labelImg
          LabelImg是一個(gè)圖形圖像標(biāo)注工具。它是用Python編寫(xiě)的,使用Qt作為圖形界面…
          或者你可以使用我的工具使用你的背景和對(duì)象圖像生成注釋圖像(例如:來(lái)自Kaggle的Fruit 360的圖像)。閱讀更多:
          用于對(duì)象檢測(cè)的注釋器:https://anuradhawick.medium.com/annotator-for-object-detection-950fd799b651
          在我的例子中,我使用以下程序,因?yàn)槲覐木W(wǎng)絡(luò)攝像頭捕獲。選擇簡(jiǎn)單的方法。下面的程序是用Nvidia jetson nano get started容器編譯的。
          dusty-nv / camra-capture :https://github.com/dusty-nv/camera-capture

          數(shù)據(jù)集訓(xùn)練

          我們想訓(xùn)練我們的模型,這樣它們就可以在maxduino設(shè)備上運(yùn)行。為此,我們可以使用以下存儲(chǔ)庫(kù)。它對(duì)模型層進(jìn)行了所有必要的修改,以適應(yīng)K210處理器的體系結(jié)構(gòu)。克隆并安裝所需的依賴項(xiàng)。所有說(shuō)明可在以下鏈接獲得;
          AIWintermuteAI / aXeleRate :https://github.com/AIWintermuteAI/aXeleRate
          aXeleRate簡(jiǎn)化了訓(xùn)練,并將計(jì)算機(jī)視覺(jué)模型轉(zhuǎn)換為在各種硬件平臺(tái)上運(yùn)行……
          我們需要將我們的訓(xùn)練數(shù)據(jù)組織如下;
             
          path-to/data
          ---anns      # store the training annotations
          ---imgs      # relevant images for the training
          ---anns_val  # validation annotations
          ---imgs_val  # validation images
          現(xiàn)在我們需要?jiǎng)?chuàng)建一個(gè)配置。json設(shè)置訓(xùn)練選項(xiàng)。對(duì)于我們的例子,它應(yīng)該如下所示:
             
          {
              "model" : {
                  "type":                 "Detector",
                  "architecture":         "MobileNet7_5",
                  "input_size":           [224,224],
                  "anchors":              [0.57273, 0.677385, 1.87446, 2.06253, 3.33843, 5.47434, 7.88282, 3.52778, 9.77052, 9.16828],
                  "labels":               ["Apple""Banana"],
                  "coord_scale" :  1.0,
                  "class_scale" :  1.0,
                  "object_scale" :  5.0,
                  "no_object_scale" :  1.0
              },
              "weights" : {
                  "full":     "",
                  "backend":              "imagenet"
              },
              "train" : {
                  "actual_epoch":         50,
                  "train_image_folder":   "data/imgs",
                  "train_annot_folder":   "data/anns",
                  "train_times":          2,
                  "valid_image_folder":   "data/imgs_val",
                  "valid_annot_folder":   "data/anns_val",
                  "valid_times":          2,
                  "valid_metric":         "mAP",
                  "batch_size":           4,
                  "learning_rate":        1e-4,
                  "saved_folder":     "obj_detector",
                  "first_trainable_layer""",
                  "augumentation":  true,
                  "is_only_detect" :   false
              },
              "converter" : {
                  "type":       ["k210"]
              }
          }
          注意:使用絕對(duì)路徑可以避免不必要的錯(cuò)誤。
          接下來(lái),我們可以使用以下命令進(jìn)行訓(xùn)練;
             
          python3 aXelerate/axelerate/traing.py -c config.json
          現(xiàn)在訓(xùn)練結(jié)束了。我們感興趣的是在項(xiàng)目文件夾中生成的kmodel文件。我們可以把它移到microSD卡上,然后連接到MaixDuino設(shè)備上。

          預(yù)測(cè)

          下面是我將在maixPy IDE中使用的草圖。
             
          import sensor,image,lcd
          import KPU as kpulcd.init()
          sensor.reset()
          sensor.set_pixformat(sensor.RGB565)
          sensor.set_framesize(sensor.QVGA)
          sensor.set_windowing((224224))
          sensor.set_vflip(1)
          sensor.run(1)classes = ["Apple""Banana"]
          task = kpu.load("/sd/name_of_the_model_file.kmodel")
          a = kpu.set_outputs(task, 07735)anchor = (0.572730.6773851.874462.062533.338435.474347.882823.527789.770529.16828)
          a = kpu.init_yolo2(task, 0.30.35, anchor) while(True):
              img = sensor.snapshot().rotation_corr(z_rotation=90.0)
              a = img.pix_to_ai()
              code = kpu.run_yolo2(task, img)
              
              if code:
                  for i in code:
                      a = img.draw_rectangle(i.rect(),color = (02550))
                      a = img.draw_string(i.x(),i.y(), classes[i.classid()],
                          color=(255,0,0), scale=3)
                      a = lcd.display(img)
              else:
                  a = lcd.display(img)a = kpu.deinit(task)
          一定要更改輸出參數(shù),以適應(yīng)kpu中訓(xùn)練過(guò)的神經(jīng)網(wǎng)絡(luò)中的輸出參數(shù)。set_outputs(task, 0, 7, 7, 35)。現(xiàn)在可以運(yùn)行程序了。這很容易。查看以下截圖。
          請(qǐng)注意,質(zhì)量很低。這是因?yàn)閙aixPy IDE允許我們將LCD顯示流傳輸?shù)接?jì)算機(jī)。所以質(zhì)量更差。
          該圖像檢測(cè)程序可以在300mA電流下運(yùn)行。此外,它有類似Arduino nano板的GPIO引腳。所以可能性是很多的。

                 
          個(gè)人微信(如果沒(méi)有備注不拉群!
          請(qǐng)注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱



          下載1:何愷明頂會(huì)分享


          AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析


          下載2:終身受益的編程指南:Google編程風(fēng)格指南


          AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):c++,即可下載。歷經(jīng)十年考驗(yàn),最權(quán)威的編程規(guī)范!



               
          下載3 CVPR2021

          AI算法與圖像處公眾號(hào)后臺(tái)回復(fù):CVPR即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

          點(diǎn)亮 ,告訴大家你也在看


          瀏覽 39
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲色婷婷国产无码av | 一级中国免费操逼 | AV黄色片 | 欧美mv日韩mv国产 | 3p两根一起进女学生 |