欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1714|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

角蜂鳥python sdk

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:404307 發(fā)表于 2018-11-20 10:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
開發(fā)指南[color=var(--MAIN-ANCHOR-color)][size=0.5em]
hsapi 的包結(jié)構(gòu)如下:
hsapi├── __init__.py├── core│   ├── __init__.py│   ├── base.py│   ├── device.py│   └── graph.py├── high│   ├── __init__.py│   ├── net.py│   └── task.py└── easy    ├── __init__.py    └── prefab.py
  • core 模塊為底層接口
  • high 模塊為高層接口,抽象了一個(gè)神經(jīng)網(wǎng)絡(luò)基類,簡化操作流程
  • easy 模塊提供了一些使用內(nèi)置神經(jīng)網(wǎng)絡(luò)比較簡便的類和方法
底層接口[color=var(--MAIN-ANCHOR-color)][size=0.5em]管理設(shè)備 Device實(shí)例[color=var(--MAIN-ANCHOR-color)][size=0.5em]import numpyimport hsapi as hs # 導(dǎo)入 hsapi 模塊, 注意導(dǎo)入路徑# 獲取角蜂鳥設(shè)備device_list = hs.EnumerateDevices() # 獲取所有已連接的角蜂鳥device = hs.Device(device_list[0])# 打開角蜂鳥設(shè)備device.OpenDevice()"""# [可選,根據(jù)業(yè)務(wù)需要]# 讀取角蜂鳥設(shè)備自帶的攝像頭的圖像 image = device.GetImage(zoomMode=True) # zoomMode: True(640x360) False(1920x1080)"""# 操作神經(jīng)網(wǎng)絡(luò)資源、處理數(shù)據(jù)、業(yè)務(wù)邏輯等...# 關(guān)閉設(shè)備,角蜂鳥設(shè)備將會(huì)自動(dòng)重置device.CloseDevice()管理神經(jīng)網(wǎng)絡(luò)資源 Graph實(shí)例[color=var(--MAIN-ANCHOR-color)][size=0.5em]
  • 單角蜂鳥多模型:同一個(gè) Device實(shí)例 加載多個(gè)Graph文件,獲取多個(gè) Graph實(shí)例
  • 多角蜂鳥多模型:不同的 Device實(shí)例 加載不同的Graph文件,獲取對(duì)應(yīng)的 Graph實(shí)例
# 加載Graph文件, 獲取Graph實(shí)例with open('Graph文件路徑', mode='rb') as f:    data = f.read()graph = device.AllocateGraph(data, scale, mean) # scale、mean 圖像預(yù)處理參數(shù)# 神經(jīng)網(wǎng)絡(luò)的圖像輸入,這里有兩種方式 [2選1]# 1. 加載外部圖像,這里以讀取USB攝像頭為例"""import cv2capture = cv2.VideoCapture(0)_, image = capture.read()image = image_preprocess(image) # 把圖像預(yù)處理,處理成神經(jīng)網(wǎng)絡(luò)需要的格式和大小graph.LoadTensor(image.astype(numpy.float16), None) # 加載圖像作為神經(jīng)網(wǎng)絡(luò)的輸入"""# 2. 使用角蜂鳥自帶的攝像頭作為輸入# 使用自帶的攝像頭作為輸入, 返回圖像image = graph.GetImage(True)  # zoomMode: True(640x360) False(1920x1080)# 讀取神經(jīng)網(wǎng)絡(luò)輸出output, _ = graph.GetResult()# 解析神經(jīng)網(wǎng)絡(luò)輸出,實(shí)現(xiàn)業(yè)務(wù)邏輯...# 釋放神經(jīng)網(wǎng)絡(luò)資源graph.DeallocateGraph()簡單的接口調(diào)用流程[color=var(--MAIN-ANCHOR-color)][size=0.5em]# 單角蜂鳥單模型import cv2, numpyimport hsapi as hs # 導(dǎo)入 hsapi 模塊, 注意導(dǎo)入路徑scale = 0.007843 # 圖像預(yù)處理參數(shù)mean = -1.0 # 圖像預(yù)處理參數(shù)device_list = hs.EnumerateDevices() # 獲取所有已連接的角蜂鳥device = hs.Device(device_list[0]) # 獲取Device實(shí)例device.OpenDevice() # 打開角蜂鳥設(shè)備with open('Graph文件路徑', mode='rb') as f:    data = f.read()graph = device.AllocateGraph(data, scale, mean) # 獲取Graph實(shí)例try:    while True:        # 使用自帶攝像頭作為輸入        image = graph.GetImage(True) # 用角蜂鳥設(shè)備圖像作為神經(jīng)網(wǎng)絡(luò)輸入        output, _ = graph.GetResult() # 獲取神經(jīng)網(wǎng)絡(luò)輸出結(jié)果        print(output)        cv2.imshow("horned-sungem", image)        cv2.waitKey(1)finally:    graph.DeallocateGraph() # 釋放神經(jīng)網(wǎng)絡(luò)資源    device.CloseDevice() # 關(guān)閉角蜂鳥設(shè)備高層接口[color=var(--MAIN-ANCHOR-color)][size=0.5em]
[color=var(--MAIN-LINK-color)]Net 是個(gè)抽象類,封裝了部分簡單的設(shè)備操作。
基于該類可實(shí)現(xiàn)一個(gè)自己的神經(jīng)網(wǎng)絡(luò)類,可參考 easy.prefab 模塊中預(yù)置的模型類。
預(yù)置模型 - 人臉檢測[color=var(--MAIN-ANCHOR-color)][size=0.5em]# 單角蜂鳥單模型import cv2, numpy from hsapi import FaceDetector # 導(dǎo)入模塊# 可通過graphPath屬性來指定模型路徑,默認(rèn)路徑在examples/graphs下net = FaceDetector(graphPath="./graph_face_SSD", zoom = True, thresh=0.55) # 創(chuàng)建人臉檢測網(wǎng)絡(luò)try:    while True:        # 使用自帶攝像頭作為輸入        result = net.run(image=None) # 使用角蜂鳥自帶設(shè)備作為輸入,獲取網(wǎng)絡(luò)輸出        image = net.plot(result) # 根據(jù)輸出結(jié)果繪制圖像        cv2.imshow("FaceDetector", image)        cv2.waitKey(1)finally:    net.quit() # 退出神經(jīng)網(wǎng)絡(luò),釋放資源,重置設(shè)備預(yù)置模型 - 人臉檢測 + 物體檢測[color=var(--MAIN-ANCHOR-color)][size=0.5em]# 單角蜂鳥多模型import cv2import hsapi as hsdevice_list = hs.EnumerateDevices() # 獲取所有已連接的角蜂鳥device = hs.Device(device_list[0]) # 獲取Device實(shí)例face_net = hs.FaceDetector(device=device, zoom = True, thresh=0.55) # 創(chuàng)建人臉檢測網(wǎng)絡(luò)obj_net = hs.ObjectDetector(device=device, zoom = True, thresh=0.55) # 創(chuàng)建物體檢測網(wǎng)絡(luò)"""多角蜂鳥多模型: 初始化 Net 時(shí)使用不同的 Device 實(shí)例即可"""capture = cv2.VideoCapture(0) # 獲取USB攝像頭try:    while True:        # 使用USB攝像頭作為輸入        _, image = capture.read() # 讀取USB攝像頭圖像數(shù)據(jù)        face_result = face_net.run(image) # 將圖像輸入到人臉檢測網(wǎng)絡(luò)中        obj_result = obj_net.run(image) # 將圖像輸入到物體檢測網(wǎng)絡(luò)中        image = face_net.overlay(image, face_result[1]) # 根據(jù)人臉檢測網(wǎng)絡(luò)的識(shí)別結(jié)果在圖像上進(jìn)行繪制        image = obj_net.overlay(image, obj_result[1]) # 根據(jù)物體檢測網(wǎng)絡(luò)的識(shí)別結(jié)果在圖像上進(jìn)行繪制        cv2.imshow("Face/Obj Detector", image)        cv2.waitKey(1)finally:    face_net.quit() # 重置設(shè)備,同一個(gè)設(shè)備退出一個(gè)網(wǎng)絡(luò)即可關(guān)于預(yù)處理參數(shù) (scale & mean)[color=var(--MAIN-ANCHOR-color)][size=0.5em]
神經(jīng)網(wǎng)絡(luò)的輸入,根據(jù)網(wǎng)絡(luò)的需要,需要對(duì)圖像進(jìn)行預(yù)處理操作。
當(dāng)使用角蜂鳥自帶攝像頭作為神經(jīng)網(wǎng)路輸入時(shí),目前僅支持對(duì)圖像的RGB通道進(jìn)行統(tǒng)一的預(yù)處理操作。
這里 角蜂鳥設(shè)備內(nèi)部Python API 都使用 乘加 運(yùn)算對(duì)圖像進(jìn)行預(yù)處理操作。
image *= scaleimage += mean
若需要圖像3通道統(tǒng)一處理,或者對(duì)預(yù)處理要求不嚴(yán)格,可對(duì)mean取均值作為參數(shù)輸入。
mean = -1.0 # [-1.0, -1.0, -1.0]scale = 0.007843graph = device.AllocateGraph(data, scale, mean) # scale & meanimage = graph.GetImage(True) # 自帶的設(shè)備圖像已經(jīng)過預(yù)處理后加載到神經(jīng)網(wǎng)絡(luò)中,返回的圖像是未處理的原始圖像output, _ = graph.GetResult() # 讀取神經(jīng)網(wǎng)絡(luò)輸出結(jié)果
若需要灰度圖輸入,或者需要對(duì)不同的通道進(jìn)行不同的預(yù)處理操作,可對(duì)圖像自行處理后加載到角蜂鳥中。
image = preprocess(image) # 自行預(yù)處理graph.LoadTensor(image.astype(numpy.float16), None)API文檔[color=var(--MAIN-ANCHOR-color)][size=0.5em]
  • hsapi.core
    底層API
    • class Status(enum.Enum)
      返回狀態(tài)
      • OK 正常
      • BUSY 設(shè)備繁忙
      • ERROR 異常
      • OUT_OF_MEMORY 內(nèi)存溢出
      • DEVICE_NOT_FOUND 沒有找到設(shè)備
      • INVALID_PARAMETERS 無效的參數(shù)
      • TIMEOUT 超時(shí)
      • NO_DATA 沒有數(shù)據(jù)
      • GONE 沒有找到Graph或已關(guān)閉
      • UNSUPPORTED_GRAPH_FILE 不支持的Graph文件
      • MYRIAD_ERROR 內(nèi)部錯(cuò)誤
    • class GlobalOption(enum.Enum)
      全局選項(xiàng)
      • LOG_LEVEL 日志等級(jí)
    • GetGlobalOption(opt)
      獲取全局選項(xiàng)的值
      • opt 參考GlobalOption
    • SetGlobalOption(opt, data)
      設(shè)置全局選項(xiàng)
      • opt 參考GlobalOption
      • data
    • BootUpdateApp(fileName)
      通過Boot模式固件升級(jí),主要用于固件更新失敗后的恢復(fù)和升級(jí)
      • fileName 固件文件
    • EnumerateDevices()
      枚舉所有已連接的設(shè)備
    • class Device
      設(shè)備類
      • init(self, name)
        實(shí)例化類對(duì)象
      • OpenDevice(self)
        打開設(shè)備
      • CloseDevice(self)
        關(guān)閉設(shè)備
      • UpdateApp(self)
        升級(jí)固件
      • AllocateGraph(self, graphfile, std_value=1.0, mean_value=0.0)
        分配神經(jīng)網(wǎng)絡(luò)資源,返回Graph實(shí)例
        • graphfile graph文件
        • std_value 圖像預(yù)處理參數(shù)
        • mean_value 圖像預(yù)處理參數(shù)
      • GetImage(self, zoomMode=True)
        獲取設(shè)備圖像
        • zoomMode 圖像縮放模式 (True: 640x360, False: 1920x1080)

    • class Graph
      神經(jīng)網(wǎng)絡(luò)容器類,可由 Device 實(shí)例調(diào)用 AllocateGraph() 分配獲得
      • init(self, handle, std_value, mean_value)
        實(shí)例化類對(duì)象
        • handle graph句柄
        • std_value 圖像預(yù)處理參數(shù)
        • mean_value 圖像預(yù)處理參數(shù)
      • DeallocateGraph(self)
        釋放分配的神經(jīng)網(wǎng)絡(luò)資源
      • LoadTensor(self, tensor, userobj)
        加載神經(jīng)網(wǎng)絡(luò)輸入的圖像數(shù)據(jù)
        • tensor 預(yù)處理后的圖像數(shù)據(jù),格式必須為一個(gè)半精度浮點(diǎn)(float16)數(shù)類型的 numpy ndarray
        • userobj 自定義參數(shù)
      • GetResult(self)
        獲取神經(jīng)網(wǎng)絡(luò)前向推斷的輸出結(jié)果
      • GetImage(self, zoomMode=True)
        使用自帶的攝像頭作為神經(jīng)網(wǎng)絡(luò)輸入,返回輸入的圖像
        • zoomMode 圖像縮放模式 (True: 640x360, False: 1920x1080)


  • hsapi.high
    高層API
    • GetDevice(index=0)
      獲取已連接的設(shè)備
    • class Net(object)
      神經(jīng)網(wǎng)絡(luò)抽象類,該類對(duì)Device類和Graph類進(jìn)行了一些簡單的封裝
      • scale(self)
        圖像預(yù)處理參數(shù) (子類必須實(shí)現(xiàn)的抽象屬性)
      • mean(self)
        圖像預(yù)處理參數(shù) (子類必須實(shí)現(xiàn)的抽象屬性)
      • netSize(self)
        神經(jīng)網(wǎng)絡(luò)輸入的圖像大小 (子類必須實(shí)現(xiàn)的抽象屬性)
      • graphPath(self)
        graph文件路徑 (子類必須實(shí)現(xiàn)的抽象屬性)
      • cleanup(self)
        釋放神經(jīng)網(wǎng)絡(luò)資源
      • quit(self)
        釋放資源并關(guān)閉設(shè)備
      • run(self, image=None, **kwargs)
        執(zhí)行一次神經(jīng)網(wǎng)絡(luò)
        • image 輸入的圖像,None則表示使用設(shè)備攝像頭

    • class SingleTask
      本類管理了兩個(gè)子線程來執(zhí)行單一的神經(jīng)網(wǎng)絡(luò)任務(wù)
      • init(self, net, **kwargs)
        實(shí)例化方法
        • net Net實(shí)例
      • start(self)
        開始任務(wù)
      • stop(self)
        結(jié)束任務(wù)

  • hsapi.easy
    使用內(nèi)置神經(jīng)網(wǎng)絡(luò)的一些比較方便的API
    • GetDefaultGraphRelPath(fileName)
      獲取graphs默認(rèn)路徑
    • GetDefaultMiscRelPath(fileName)
      獲取misc默認(rèn)路徑
    • class SSD(object)
      預(yù)置的MobileNet-SSD抽象類
      • labels(self)
        分類的標(biāo)簽 (子類必須實(shí)現(xiàn)的抽象屬性)
      • thresh(self) 分類的閾值 (子類必須實(shí)現(xiàn)的抽象屬性)
      • getBoundingBoxes(self, output, image_size)
        從神經(jīng)網(wǎng)絡(luò)的輸出的結(jié)果中解析位置信息
        • output 神經(jīng)網(wǎng)絡(luò)輸出
        • image_size 圖像大小
      • overlay(self, image, boxes)
        在圖像上疊加位置信息
        • image 圖像
        • boxes 位置信息
      • plot(self, result)
        根據(jù)輸出結(jié)果在圖像上疊加位置信息
        • result 輸出結(jié)果
      • crop(self, result, square=True)
        根據(jù)輸出結(jié)果裁剪出識(shí)別的圖像
        • result 輸出結(jié)果
        • square 正方形

    • class ObjectDetector(Net, SSD)
      預(yù)置模型 - 基于SSD的物體檢測
    • class FaceDetector(Net, SSD)
      預(yù)置模型 - 基于SSD的人臉檢測
    • class FaceDetectorPlus(Net, SSD)
      預(yù)置模型 - 基于SSD的人臉檢測+
    • class Mnist(Net)
      預(yù)置模型 - Mnist
    • class GoogleNet(Net)
      預(yù)置模型 - GoogleNet
    • class SceneRecorder(GoogleNet)
      預(yù)置模型 - 基于GoogleNet的情景記錄器
      • record(self, result, key, **kwargs)
        根據(jù)GoogleNet輸出結(jié)果進(jìn)行ANN檢索,返回相似度結(jié)果
        • result GoogleNet輸出結(jié)果
        • key 指令

    • class SketchGuess(Net)
      預(yù)置模型 - 簡筆畫識(shí)別


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表