標題: 角蜂鳥python sdk [打印本頁]
作者: aacbwangke 時間: 2018-11-20 10:06
標題: 角蜂鳥python sdk
開發(fā)指南[color=var(--MAIN-ANCHOR-color)][size=0.5em]hsapi 的包結構如下:
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 模塊為高層接口,抽象了一個神經(jīng)網(wǎng)絡基類,簡化操作流程
- easy 模塊提供了一些使用內(nèi)置神經(jīng)網(wǎng)絡比較簡便的類和方法
底層接口[color=var(--MAIN-ANCHOR-color)][size=0.5em]管理設備 Device實例[color=var(--MAIN-ANCHOR-color)][size=0.5em]import numpyimport hsapi as hs # 導入 hsapi 模塊, 注意導入路徑# 獲取角蜂鳥設備device_list = hs.EnumerateDevices() # 獲取所有已連接的角蜂鳥device = hs.Device(device_list[0])# 打開角蜂鳥設備device.OpenDevice()"""# [可選,根據(jù)業(yè)務需要]# 讀取角蜂鳥設備自帶的攝像頭的圖像 image = device.GetImage(zoomMode=True) # zoomMode: True(640x360) False(1920x1080)"""# 操作神經(jīng)網(wǎng)絡資源、處理數(shù)據(jù)、業(yè)務邏輯等...# 關閉設備,角蜂鳥設備將會自動重置device.CloseDevice()管理神經(jīng)網(wǎng)絡資源 Graph實例[color=var(--MAIN-ANCHOR-color)][size=0.5em]- 單角蜂鳥多模型:同一個 Device實例 加載多個Graph文件,獲取多個 Graph實例
- 多角蜂鳥多模型:不同的 Device實例 加載不同的Graph文件,獲取對應的 Graph實例
# 加載Graph文件, 獲取Graph實例with open('Graph文件路徑', mode='rb') as f: data = f.read()graph = device.AllocateGraph(data, scale, mean) # scale、mean 圖像預處理參數(shù)# 神經(jīng)網(wǎng)絡的圖像輸入,這里有兩種方式 [2選1]# 1. 加載外部圖像,這里以讀取USB攝像頭為例"""import cv2capture = cv2.VideoCapture(0)_, image = capture.read()image = image_preprocess(image) # 把圖像預處理,處理成神經(jīng)網(wǎng)絡需要的格式和大小graph.LoadTensor(image.astype(numpy.float16), None) # 加載圖像作為神經(jīng)網(wǎng)絡的輸入"""# 2. 使用角蜂鳥自帶的攝像頭作為輸入# 使用自帶的攝像頭作為輸入, 返回圖像image = graph.GetImage(True) # zoomMode: True(640x360) False(1920x1080)# 讀取神經(jīng)網(wǎng)絡輸出output, _ = graph.GetResult()# 解析神經(jīng)網(wǎng)絡輸出,實現(xiàn)業(yè)務邏輯...# 釋放神經(jīng)網(wǎng)絡資源graph.DeallocateGraph()簡單的接口調(diào)用流程[color=var(--MAIN-ANCHOR-color)][size=0.5em]# 單角蜂鳥單模型import cv2, numpyimport hsapi as hs # 導入 hsapi 模塊, 注意導入路徑scale = 0.007843 # 圖像預處理參數(shù)mean = -1.0 # 圖像預處理參數(shù)device_list = hs.EnumerateDevices() # 獲取所有已連接的角蜂鳥device = hs.Device(device_list[0]) # 獲取Device實例device.OpenDevice() # 打開角蜂鳥設備with open('Graph文件路徑', mode='rb') as f: data = f.read()graph = device.AllocateGraph(data, scale, mean) # 獲取Graph實例try: while True: # 使用自帶攝像頭作為輸入 image = graph.GetImage(True) # 用角蜂鳥設備圖像作為神經(jīng)網(wǎng)絡輸入 output, _ = graph.GetResult() # 獲取神經(jīng)網(wǎng)絡輸出結果 print(output) cv2.imshow("horned-sungem", image) cv2.waitKey(1)finally: graph.DeallocateGraph() # 釋放神經(jīng)網(wǎng)絡資源 device.CloseDevice() # 關閉角蜂鳥設備高層接口[color=var(--MAIN-ANCHOR-color)][size=0.5em][color=var(--MAIN-LINK-color)]Net 是個抽象類,封裝了部分簡單的設備操作。
基于該類可實現(xiàn)一個自己的神經(jīng)網(wǎng)絡類,可參考 easy.prefab 模塊中預置的模型類。 預置模型 - 人臉檢測[color=var(--MAIN-ANCHOR-color)][size=0.5em]# 單角蜂鳥單模型import cv2, numpy from hsapi import FaceDetector # 導入模塊# 可通過graphPath屬性來指定模型路徑,默認路徑在examples/graphs下net = FaceDetector(graphPath="./graph_face_SSD", zoom = True, thresh=0.55) # 創(chuàng)建人臉檢測網(wǎng)絡try: while True: # 使用自帶攝像頭作為輸入 result = net.run(image=None) # 使用角蜂鳥自帶設備作為輸入,獲取網(wǎng)絡輸出 image = net.plot(result) # 根據(jù)輸出結果繪制圖像 cv2.imshow("FaceDetector", image) cv2.waitKey(1)finally: net.quit() # 退出神經(jīng)網(wǎng)絡,釋放資源,重置設備預置模型 - 人臉檢測 + 物體檢測[color=var(--MAIN-ANCHOR-color)][size=0.5em]# 單角蜂鳥多模型import cv2import hsapi as hsdevice_list = hs.EnumerateDevices() # 獲取所有已連接的角蜂鳥device = hs.Device(device_list[0]) # 獲取Device實例face_net = hs.FaceDetector(device=device, zoom = True, thresh=0.55) # 創(chuàng)建人臉檢測網(wǎng)絡obj_net = hs.ObjectDetector(device=device, zoom = True, thresh=0.55) # 創(chuàng)建物體檢測網(wǎng)絡"""多角蜂鳥多模型: 初始化 Net 時使用不同的 Device 實例即可"""capture = cv2.VideoCapture(0) # 獲取USB攝像頭try: while True: # 使用USB攝像頭作為輸入 _, image = capture.read() # 讀取USB攝像頭圖像數(shù)據(jù) face_result = face_net.run(image) # 將圖像輸入到人臉檢測網(wǎng)絡中 obj_result = obj_net.run(image) # 將圖像輸入到物體檢測網(wǎng)絡中 image = face_net.overlay(image, face_result[1]) # 根據(jù)人臉檢測網(wǎng)絡的識別結果在圖像上進行繪制 image = obj_net.overlay(image, obj_result[1]) # 根據(jù)物體檢測網(wǎng)絡的識別結果在圖像上進行繪制 cv2.imshow("Face/Obj Detector", image) cv2.waitKey(1)finally: face_net.quit() # 重置設備,同一個設備退出一個網(wǎng)絡即可關于預處理參數(shù) (scale & mean)[color=var(--MAIN-ANCHOR-color)][size=0.5em]神經(jīng)網(wǎng)絡的輸入,根據(jù)網(wǎng)絡的需要,需要對圖像進行預處理操作。
當使用角蜂鳥自帶攝像頭作為神經(jīng)網(wǎng)路輸入時,目前僅支持對圖像的RGB通道進行統(tǒng)一的預處理操作。
這里 角蜂鳥設備內(nèi)部 和 Python API 都使用 乘加 運算對圖像進行預處理操作。
image *= scaleimage += mean若需要圖像3通道統(tǒng)一處理,或者對預處理要求不嚴格,可對mean取均值作為參數(shù)輸入。
mean = -1.0 # [-1.0, -1.0, -1.0]scale = 0.007843graph = device.AllocateGraph(data, scale, mean) # scale & meanimage = graph.GetImage(True) # 自帶的設備圖像已經(jīng)過預處理后加載到神經(jīng)網(wǎng)絡中,返回的圖像是未處理的原始圖像output, _ = graph.GetResult() # 讀取神經(jīng)網(wǎng)絡輸出結果若需要灰度圖輸入,或者需要對不同的通道進行不同的預處理操作,可對圖像自行處理后加載到角蜂鳥中。
image = preprocess(image) # 自行預處理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 設備繁忙
- ERROR 異常
- OUT_OF_MEMORY 內(nèi)存溢出
- DEVICE_NOT_FOUND 沒有找到設備
- INVALID_PARAMETERS 無效的參數(shù)
- TIMEOUT 超時
- NO_DATA 沒有數(shù)據(jù)
- GONE 沒有找到Graph或已關閉
- UNSUPPORTED_GRAPH_FILE 不支持的Graph文件
- MYRIAD_ERROR 內(nèi)部錯誤
- class GlobalOption(enum.Enum)
全局選項 - GetGlobalOption(opt)
獲取全局選項的值 - SetGlobalOption(opt, data)
設置全局選項 - BootUpdateApp(fileName)
通過Boot模式固件升級,主要用于固件更新失敗后的恢復和升級 - EnumerateDevices()
枚舉所有已連接的設備 - class Device
設備類- init(self, name)
實例化類對象 - OpenDevice(self)
打開設備 - CloseDevice(self)
關閉設備 - UpdateApp(self)
升級固件 - AllocateGraph(self, graphfile, std_value=1.0, mean_value=0.0)
分配神經(jīng)網(wǎng)絡資源,返回Graph實例- graphfile graph文件
- std_value 圖像預處理參數(shù)
- mean_value 圖像預處理參數(shù)
- GetImage(self, zoomMode=True)
獲取設備圖像- zoomMode 圖像縮放模式 (True: 640x360, False: 1920x1080)
- class Graph
神經(jīng)網(wǎng)絡容器類,可由 Device 實例調(diào)用 AllocateGraph() 分配獲得- init(self, handle, std_value, mean_value)
實例化類對象- handle graph句柄
- std_value 圖像預處理參數(shù)
- mean_value 圖像預處理參數(shù)
- DeallocateGraph(self)
釋放分配的神經(jīng)網(wǎng)絡資源 - LoadTensor(self, tensor, userobj)
加載神經(jīng)網(wǎng)絡輸入的圖像數(shù)據(jù)- tensor 預處理后的圖像數(shù)據(jù),格式必須為一個半精度浮點(float16)數(shù)類型的 numpy ndarray
- userobj 自定義參數(shù)
- GetResult(self)
獲取神經(jīng)網(wǎng)絡前向推斷的輸出結果 - GetImage(self, zoomMode=True)
使用自帶的攝像頭作為神經(jīng)網(wǎng)絡輸入,返回輸入的圖像- zoomMode 圖像縮放模式 (True: 640x360, False: 1920x1080)
- hsapi.high
高層API- GetDevice(index=0)
獲取已連接的設備 - class Net(object)
神經(jīng)網(wǎng)絡抽象類,該類對Device類和Graph類進行了一些簡單的封裝- scale(self)
圖像預處理參數(shù) (子類必須實現(xiàn)的抽象屬性) - mean(self)
圖像預處理參數(shù) (子類必須實現(xiàn)的抽象屬性) - netSize(self)
神經(jīng)網(wǎng)絡輸入的圖像大小 (子類必須實現(xiàn)的抽象屬性) - graphPath(self)
graph文件路徑 (子類必須實現(xiàn)的抽象屬性) - cleanup(self)
釋放神經(jīng)網(wǎng)絡資源 - quit(self)
釋放資源并關閉設備 - run(self, image=None, **kwargs)
執(zhí)行一次神經(jīng)網(wǎng)絡- image 輸入的圖像,None則表示使用設備攝像頭
- class SingleTask
本類管理了兩個子線程來執(zhí)行單一的神經(jīng)網(wǎng)絡任務- init(self, net, **kwargs)
實例化方法 - start(self)
開始任務 - stop(self)
結束任務
- hsapi.easy
使用內(nèi)置神經(jīng)網(wǎng)絡的一些比較方便的API- GetDefaultGraphRelPath(fileName)
獲取graphs默認路徑 - GetDefaultMiscRelPath(fileName)
獲取misc默認路徑 - class SSD(object)
預置的MobileNet-SSD抽象類- labels(self)
分類的標簽 (子類必須實現(xiàn)的抽象屬性) - thresh(self) 分類的閾值 (子類必須實現(xiàn)的抽象屬性)
- getBoundingBoxes(self, output, image_size)
從神經(jīng)網(wǎng)絡的輸出的結果中解析位置信息- output 神經(jīng)網(wǎng)絡輸出
- image_size 圖像大小
- overlay(self, image, boxes)
在圖像上疊加位置信息 - plot(self, result)
根據(jù)輸出結果在圖像上疊加位置信息 - crop(self, result, square=True)
根據(jù)輸出結果裁剪出識別的圖像
- class ObjectDetector(Net, SSD)
預置模型 - 基于SSD的物體檢測 - class FaceDetector(Net, SSD)
預置模型 - 基于SSD的人臉檢測 - class FaceDetectorPlus(Net, SSD)
預置模型 - 基于SSD的人臉檢測+ - class Mnist(Net)
預置模型 - Mnist - class GoogleNet(Net)
預置模型 - GoogleNet - class SceneRecorder(GoogleNet)
預置模型 - 基于GoogleNet的情景記錄器- record(self, result, key, **kwargs)
根據(jù)GoogleNet輸出結果進行ANN檢索,返回相似度結果- result GoogleNet輸出結果
- key 指令
- class SketchGuess(Net)
預置模型 - 簡筆畫識別
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
国产精品免费一区二区三区四区
|
我要看一级片
|
国产大片一区
|
欧美午夜一区
|
91干b|
毛片免费在线
|
欧美性受xxxx白人性爽
|
久久大
|
黄色毛片免费
|
中文字幕在线免费观看
|
国产精品一区一区
|
亚洲综合在
|
亚洲在线|
久久精品日产第一区二区三区
|
午夜a级理论片915影院
|
精品一区二区三区四区视频
|
91精品国产麻豆
|
国产成人精品一区二区三区网站观看
|
狠狠ri
|
亚洲黄色片免费观看
|
在线观看黄色电影
|
婷婷成人在线
|
精品一区二区三区在线观看国产
|
a欧美|
国产大学生情侣呻吟视频
|
精品一区二区三区四区在线
|
欧美黄色精品
|
一区二区三区中文字幕
|
国产精品久久久一区二区三区
|
a成人|
色婷婷一区二区三区四区
|
国产精品久久久久999
|
av一区二区三区在线观看
|
麻豆精品国产免费
|
免费亚洲网站
|
色视频在线观看
|
久久久久久久久久久久亚洲
|
99久久中文字幕三级久久日本
|
涩涩导航
|
亚洲精品自拍视频
|
国产999精品久久久
日本视频一区二区三区
|