[API] Open Channel

http://localhost:8800/channel/open

描述

透過Post方式開啟一個Channel,可指定該Channel的串流來源及偵測設定,該API適用於不善於接影像串流的開發者或較簡單流程的開發者。因為在完成設定之後,Local API Server會透過WebSocket方式單項傳送偵測結果給Client端。

參數

"url" - 欲開啟本地視訊WebCam,請輸入localcamera/#(0~10);可先調用(channel/query/device_list),Local API Server會回傳可開啟的WebCam裝置。IPCam請輸入該url便可。

"settings" - 串流功能設定(JSON格式,相關參數如下)

[Camera]

  • camera.width - Camera的影像寬度,預設為640
  • camera.height - Camera的影像高度,預設為480
  • camera.quality - 串流回傳的影像品質,預設為30 (0~100)
  • camera.fps - 視訊串流FPS,預設為10 (0~20)(暫無支援)
  • camera.send_image - 回傳值是否帶有影像資訊,預設為true
  • camera.compress - 回傳資料是否壓縮,預設為true
  • camera.vlc_params - VLC參數設定(可參考Document->Parameters)

[Face]

  • face.detection.enable - 是否使用人臉偵測功能,預設為true
  • face.detection.tracking - 是否開啟追蹤人臉功能,預設為true
  • face.detection.max_size - 人臉偵測允許最大人臉大小(pixel),預設為8192 (min_size~8192)
  • face.detection.min_size - 人臉偵測允許最小人臉大小(pixel),預設為40 (20~max_size)
  • face.detection.age - 是否偵測年齡,預設為true
  • face.detection.gender - 是否偵測性別,預設為true
  • face.detection.express - 是否偵測表情,預設為true
  • face.detection.threshold - 人臉偵測的門檻值,預設為500 (0~1000)
  • face.detection.filter.enable - 是否開啟過濾功能,預設為false
  • face.detection.filter.type - 過濾類型,0為時間(毫秒)、1為frame數,預設為0
  • face.detection.filter.times - 過濾人臉出現的時間(毫秒),預設為3000(0~20000)
  • face.detection.filter.frames - 過濾人臉出現的frame數,預設為0 (0~500)
  • face.identification.enable - 是否開啟辨識功能,預設為false
  • face.identification.group_id - 使用辨識功能時需要指定group_id才會去辨識是否為此group的人,預設為空值
  • face.identification.mode - 辨識模式,1 = Manual Mode(每張圖都會辨識);2 = Auto Mode(自動篩選適合辨識的時機)
  • face.identification.max_result - 回傳的最大結果數,預設為3 (1~10)

[Human]

  • human.detection.enable - 是否使用人形偵測功能,預設為false
  • human.detection.tracking - 是否開啟追蹤人形功能,預設為true
  • human.detection.max_size - 人形偵測允許最大人臉大小(pixel),預設為8192 (min_size~8192)
  • human.detection.min_size - 人形偵測允許最小人臉大小(pixel),預設為40 (20~max_size)
{
    "camera":
    {
        "width":640,
        "height":480,
        "quality":30,
        "fps":10,
        "send_image":true,
        "compress":true,
        "vlc_params": ['-I', 'dummy', '--ignore-config']
    },
    "face":
    {
        "detection":
        {
            "enable":true,
            "tracking":true,
            "max_size":8192,
            "min_size":40,
            "age":true,
            "gender":true,
            "express":true,
            "threshold": 500,
            "filter":
            {
                "enable": true,
                "type": 0,
                "times": 3000,
                "frames": 45
            }
        },
        "identification":
        {
            "enable":false,
            "group_id":"GROUPID",
            "mode":2,
            "max_result":3
        }
    },
    "human":
    {
        "detection":
        {
            "enable":false,
            "tracking":true,
            "max_size":8192,
            "min_size":40
        }
    }
}

回傳值

"channel_id" - 串流頻道的唯一ID。

"state" - 回傳狀態

  • STATE_SUCCESSFUL 執行成功
  • STATE_FAIL 尚未分類的錯誤
  • STATE_REQUEST_METHOD_ERROR Request方式不是使用POST
  • STATE_PARAMETER_ERROR Request少給參數或給錯參數
  • STATE_PROCESS_ERROR 建立Channel發生錯誤

JSON格式

{
    "channel_id":"E4B94195-ACF4-4BC8-9594-EAD5834F3793",
    "state":1000
}

[API] Close Channel

http://localhost:8800/channel/close

描述

關閉指定Channel。

參數

"channel_id" - 欲關閉的串流ID

回傳值

"state" - 回傳狀態

  • STATE_SUCCESSFUL 執行成功
  • STATE_FAIL 尚未分類的錯誤
  • STATE_REQUEST_METHOD_ERROR Request方式不是使用POST
  • STATE_PARAMETER_ERROR Request少給參數或給錯參數
  • STATE_PROCESS_ERROR 關閉Channel發生錯誤

JSON格式

{
    "state":1000
}

[API] Get Channel Infomation

http://localhost:8800/channel/info/get

描述

取得指定Channel的資訊。

參數

"channel_id" 欲查詢的channel_id,用逗點隔開,可一次查詢多個。

回傳值

"channel_id" - 查詢完成的串流ID。

"url" - 串流的來源URL。

"connect number" - 已連接的Web Socket數量。

"fps" - 串流的fps。

"height" - 串流的影像解析度的高。

"width" - 串流的影像解析度的寬。

"quality" - 串流回傳的影像品質。

"state" - 回傳狀態

  • STATE_SUCCESSFUL 執行成功
  • STATE_FAIL 尚未分類的錯誤
  • STATE_REQUEST_METHOD_ERROR Request方式不是使用POST
  • STATE_PARAMETER_ERROR Request少給參數或給錯參數
  • STATE_PROCESS_ERROR 取得Channel資訊發生錯

JSON格式

{
    "channels":[{
        "channel_id":"5B1F6DA0-9C43-42E0-AC56-449E0B4F7807",
        "info":{
            "connect number":0,
            "fps":15,
            "height":480,
            "quality":70,
            "url":"localcamera/0",
            "width":640
        }
    }],
    "state":1000
}

[API] Query Channel List

http://localhost:8800/channel/query/channel_list

描述

查詢Local API Server中所有的Channel列表資訊。

參數

回傳值

"channel_id" - 查詢完成的串流ID。

"url" - 串流的來源URL。

"connect number" - 已連接的Web Socket數量。

"fps" - 串流的fps。

"height" - 串流的影像解析度的高。

"width" - 串流的影像解析度的寬。

"quality" - 串流回傳的影像品質。

"state" - 回傳狀態

  • STATE_SUCCESSFUL 執行成功
  • STATE_FAIL 尚未分類的錯誤
  • STATE_REQUEST_METHOD_ERROR Request方式不是使用POST
  • STATE_PARAMETER_ERROR Request少給參數或給錯參數

JSON格式

{
    "channels":[{
        "channel_id":"5B1F6DA0-9C43-42E0-AC56-449E0B4F7807",
        "info":{
            "connect number":0,
            "fps":15,
            "height":480,
            "quality":70,
            "url":"localcamera/0",
            "width":640
        }
    },
    {
        "channel_id":"8BE8D791-DA6F-4E87-848C-0337D55C8925",
        "info":{
            "connect number":1,
            "fps":15,
            "height":1024,
            "quality":50,
            "url":"localcamera/1",
            "width":768
        }
    }],
    "state":1000
}

[API] Get Device Infomation

http://localhost:8800/channel/device/info/get

描述

查詢WebCam的所有解析度資訊。

參數

"url" - 欲查詢的裝置url。

回傳值

"resolutions" - 該裝置URL的所有解析度。

"url" - 串流的來源URL。

"state" - 回傳狀態

  • STATE_SUCCESSFUL 執行成功
  • STATE_FAIL 尚未分類的錯誤
  • STATE_REQUEST_METHOD_ERROR Request方式不是使用POST
  • STATE_PARAMETER_ERROR Request少給參數或給錯參數
  • STATE_PROCESS_ERROR 取得視訊裝置相關資訊發生錯誤

JSON格式

{
    "resolutions":
    [
        [160,120],
        [320,240],
        [640,480],
        [1024,768]
    ],
    "state":1000,
    "url":"localcamera/1"
}

[API] Query Device List

http://localhost:8800/channel/query/device_list

描述

查詢Local API Server中所有可用的本地視訊裝置。

參數

回傳值

"url" - 串流裝置的URL。

"name" - 裝置名稱。

"state" - 回傳狀態

  • STATE_SUCCESSFUL 執行成功
  • STATE_FAIL 尚未分類的錯誤

JSON格式

{
    "devices":
    [{
        "name":"",
        "url":"localcamera/0"
    },
    {
        "name":"",
        "url":"localcamera/1"
    }],
    "state":1000
}

[WebSocket] Connect WebSocket

ws://localhost:4662

描述

透過websocket與Local API Server溝通。如有修改WebSocket的port,請自行更換連線的port。

[WebSocket] Open Channel with WebSocket

描述

使用WebSocket方式傳送channel_id給Local API Server,透過Web Socket接收到的資料形態是Binary Data,如果有選擇壓縮的選項必須使用Zlib解壓縮。

Send Message的格式如下:

JSON格式

{
    "channel_id":"6BB47C7D-C098-4EB4-9678-B7A4045C0A1A"
}

[WebSocket] Listen with WebSocket

描述

當傳送給Local API Server欲連線的channel_id後,Server會持續回傳結果。

回傳值

"state" - 1表示串流正常,0表示串流來源已經斷線(目前支援IP Cam)。 斷線的情況如下:

                          1. 一開始就連不上Camera
                          2. 連線中Camera斷線
            連接Web Socket時,請先判斷State的值是否為1以確定Camera狀態。

伺服器回傳的JSON格式

{
    "bodys": [{
        "angleLeftRight": 1,
        "angleRoll": 7,
        "detectPos": [
            [139, 383],
            [907, 383],
            [907, 1151],
            [139, 1151]
        ],
        "human_id": "42780824c8ff4906913c095cbc4941f2",
        "human_track_id": 0
    }],
    "faces": [{
        "age": 28,
        "angleLeftRight": 1,
        "angleRoll": 7,
        "angleUpDown": 3,
        "detectPos": [
            [139, 383],
            [907, 383],
            [907, 1151],
            [139, 1151]
        ],
        "expression": "neutral",
        "face_track_id": 0,
        "featureScore": 680,
        "featureData": "BASE64_STRING"
        "gender": 1,
        "points": {
            "leftEye": {
                "x": -1,
                "y": -1
            },
            "mouth": {
                "x": -1,
                "y": -1
            },
            "nose": {
                "x": -1,
                "y": -1
            },
            "rightEye": {
                "x": -1,
                "y": -1
            }
        }
    }],
    "state": 1,
    "image_base64": "",
    "image_size": 0
}

results matching ""

    No results matching ""