1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: 角蜂鳥python sdk [打印本頁]

作者: aacbwangke    時間: 2018-11-20 10:06
標題: 角蜂鳥python sdk
開發指南[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底層接口[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()"""# [可選,根據業務需要]# 讀取角蜂鳥設備自帶的攝像頭的圖像 image = device.GetImage(zoomMode=True) # zoomMode: True(640x360) False(1920x1080)"""# 操作神經網絡資源、處理數據、業務邏輯等...# 關閉設備,角蜂鳥設備將會自動重置device.CloseDevice()管理神經網絡資源 Graph實例[color=var(--MAIN-ANCHOR-color)][size=0.5em]
# 加載Graph文件, 獲取Graph實例with open('Graph文件路徑', mode='rb') as f:    data = f.read()graph = device.AllocateGraph(data, scale, mean) # scale、mean 圖像預處理參數# 神經網絡的圖像輸入,這里有兩種方式 [2選1]# 1. 加載外部圖像,這里以讀取USB攝像頭為例"""import cv2capture = cv2.VideoCapture(0)_, image = capture.read()image = image_preprocess(image) # 把圖像預處理,處理成神經網絡需要的格式和大小graph.LoadTensor(image.astype(numpy.float16), None) # 加載圖像作為神經網絡的輸入"""# 2. 使用角蜂鳥自帶的攝像頭作為輸入# 使用自帶的攝像頭作為輸入, 返回圖像image = graph.GetImage(True)  # zoomMode: True(640x360) False(1920x1080)# 讀取神經網絡輸出output, _ = graph.GetResult()# 解析神經網絡輸出,實現業務邏輯...# 釋放神經網絡資源graph.DeallocateGraph()簡單的接口調用流程[color=var(--MAIN-ANCHOR-color)][size=0.5em]# 單角蜂鳥單模型import cv2, numpyimport hsapi as hs # 導入 hsapi 模塊, 注意導入路徑scale = 0.007843 # 圖像預處理參數mean = -1.0 # 圖像預處理參數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) # 用角蜂鳥設備圖像作為神經網絡輸入        output, _ = graph.GetResult() # 獲取神經網絡輸出結果        print(output)        cv2.imshow("horned-sungem", image)        cv2.waitKey(1)finally:    graph.DeallocateGraph() # 釋放神經網絡資源    device.CloseDevice() # 關閉角蜂鳥設備高層接口[color=var(--MAIN-ANCHOR-color)][size=0.5em]
[color=var(--MAIN-LINK-color)]Net 是個抽象類,封裝了部分簡單的設備操作。
基于該類可實現一個自己的神經網絡類,可參考 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) # 創建人臉檢測網絡try:    while True:        # 使用自帶攝像頭作為輸入        result = net.run(image=None) # 使用角蜂鳥自帶設備作為輸入,獲取網絡輸出        image = net.plot(result) # 根據輸出結果繪制圖像        cv2.imshow("FaceDetector", image)        cv2.waitKey(1)finally:    net.quit() # 退出神經網絡,釋放資源,重置設備預置模型 - 人臉檢測 + 物體檢測[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) # 創建人臉檢測網絡obj_net = hs.ObjectDetector(device=device, zoom = True, thresh=0.55) # 創建物體檢測網絡"""多角蜂鳥多模型: 初始化 Net 時使用不同的 Device 實例即可"""capture = cv2.VideoCapture(0) # 獲取USB攝像頭try:    while True:        # 使用USB攝像頭作為輸入        _, image = capture.read() # 讀取USB攝像頭圖像數據        face_result = face_net.run(image) # 將圖像輸入到人臉檢測網絡中        obj_result = obj_net.run(image) # 將圖像輸入到物體檢測網絡中        image = face_net.overlay(image, face_result[1]) # 根據人臉檢測網絡的識別結果在圖像上進行繪制        image = obj_net.overlay(image, obj_result[1]) # 根據物體檢測網絡的識別結果在圖像上進行繪制        cv2.imshow("Face/Obj Detector", image)        cv2.waitKey(1)finally:    face_net.quit() # 重置設備,同一個設備退出一個網絡即可關于預處理參數 (scale & mean)[color=var(--MAIN-ANCHOR-color)][size=0.5em]
神經網絡的輸入,根據網絡的需要,需要對圖像進行預處理操作。
當使用角蜂鳥自帶攝像頭作為神經網路輸入時,目前僅支持對圖像的RGB通道進行統一的預處理操作。
這里 角蜂鳥設備內部Python API 都使用 乘加 運算對圖像進行預處理操作。
image *= scaleimage += mean
若需要圖像3通道統一處理,或者對預處理要求不嚴格,可對mean取均值作為參數輸入。
mean = -1.0 # [-1.0, -1.0, -1.0]scale = 0.007843graph = device.AllocateGraph(data, scale, mean) # scale & meanimage = graph.GetImage(True) # 自帶的設備圖像已經過預處理后加載到神經網絡中,返回的圖像是未處理的原始圖像output, _ = graph.GetResult() # 讀取神經網絡輸出結果
若需要灰度圖輸入,或者需要對不同的通道進行不同的預處理操作,可對圖像自行處理后加載到角蜂鳥中。
image = preprocess(image) # 自行預處理graph.LoadTensor(image.astype(numpy.float16), None)API文檔[color=var(--MAIN-ANCHOR-color)][size=0.5em]





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1