ARC eye VL API
    • PDF

    ARC eye VL API

    • PDF

    記事の要約

    概要

    ARC eye Visual Localization (VL) APIは、カメラを含むビジョンデバイスから収集された情報を通じて、屋外と GPSが届かない屋内でも現在位置を正確に教えてくれる測位サービスを提供します。画像だけで屋内位置データを確認できます。

    参考

    WiFi Localization: デバイスから収集された WiFi電波強度(RSSI)を利用して、GPSが届かない屋内で現在の大まかな位置を教えてくれる測位サービスを追加で提供します。デバイスの大まかな位置と一緒にロケーション情報も提供されます。これを利用して、より正確な ARC eye VL APIリクエスト(半径サーチ: lastPose + odometryの組み合わせ)を送ることができます。
    参考: RSSIとは

    注意

    2024年7月以前にスキャンされた空間については、ARC eye WiFi Localization機能はサポートされません。

    空間データの構築

    コンソールで空間データを構築して、VL APIを使用することができます。SLAMデータ変換から SLAMデータマージ、ローカライズ、VLデータ変換まで、すべての作業を順に行う必要があります。詳細は、ARC eyeご利用ガイドをご参照ください。

    APIの準備

    VLデータマージに成功すると、ARC eye > APIメニューに「待機」状態の APIが作成されます。その APIを選択してデプロイすると、VL APIを使用できます。
    他の APIを作成してデプロイするバージョンを変更する場合、既存の APIは停止されます。*停止中には他の APIをデプロイできません。

    リクエスト

    メソッドリクエスト URI
    POSTARC eye > API > API連携キーの確認の InvokeURLで呼び出す

    リクエストヘッダ

    名前説明
    X-ARCEYE-SECRETARC eye > API > API連携キーの確認の Secret Keyを使用
    Content-Typemultipart/form-data

    リクエストボディ

    フィールド名必須の有無データタイプ説明制限事項
    imageYfilewifiリクエストの場合、省略可能
    cameraParametersNstringカメラパラメータ情報を入力。入力しない場合、デフォルト値で動作
    fx、fy、cx、cy、k1、k2、p1、p2、k3
    - (fx,fy): focal length
    - (cx,cy): principal point
    - (k1,k2): radial distortion
    - (p1,p2): tangential distortion
    - (k3): radial distortion
    lastPoseNstring- クエリ画像を作成する時点に推定された画像の、commaで区切られた6-dof pose情報
    - 最近レスポンスで渡された pose値に odometry値を足す。
    odometryと一緒に使用することが必要
    odometryNstring- commaで区切られた6-dof pose情報
    - 最後のクエリ画像を送信した時点と現在のクエリ画像を送信した時点との間の pose変化量
    lastPoseと一緒に使用することが必要
    withGlobalNboolean- trueの場合、lastPose値を「緯度、経度、tz、qw、qx、qy、qzと解析。
    - 値が設定されていない場合や falseの場合、lastPose値を「tx、ty、tz、qw、qx、qy、qz」と解析
    withInlierNbooleantrueの場合、測位時に使用した有効な3D-2D correspondencesがレスポンスに追加される
    wifiNfileJson形式の WiFiの電波強度スキャンファイル
    datasetInfoNstringロケーションレイヤー名に対応する加工データのみ利用して VLクエリを実行(ロケーション名はコンマで区切る)

    CURL example:

    curl -X POST '{invokeUrl}' \
    -H 'X-ARCEYE-SECRET: {secretKey}' \
    -H 'Content-Type: multipart/form-data' \
    -F 'image=@location.jpg;type=image/jpeg'
    
    curl -X POST '{invokeUrl}' \
    -H 'X-ARCEYE-SECRET: {secretKey}' \
    -H 'Content-Type: multipart/form-data' \
    -F 'image=@location.jpg;type=image/jpeg' \
    -F 'odometry=0,0,0,1,0,0,0' \
    -F 'lastPose=0,0,0,1,0,0,0' \
    -F 'cameraParameters=1186.7,1406.5,540,960,0.0,0.0,0.0,0.0,0.0' \
    -F 'withInlier=true' \
    -F dataset_info="1F,T2B00652308180853"
    

    レスポンス

    レスポンスボディ

    フィールド名データタイプ説明
    resultstringレスポンス結果: "SUCCESS"、"FAILURE"
    messagestring結果メッセージ
    tipsstring追加情報
    posestring画像名、tx、ty、tz、qw、qx、qy、qzの値を意味
    totalintクエリ画像から抽出された特徴の総数
    inlierintクエリ画像から抽出された有効な特徴の総数
    inliersarray測位時に使用した有効な3D-2D correspondences、
    - [U,V]: 画像上のピクセル座標
    - [X,Y,Z]: 対応する3次元ポイント
    residualfloat有効な特徴の projection error (pixel単位)
    statusstringサーバの状態
    floorstringクエリ画像の層情報
    lonLatstringLongitude(経度)、Latitude(緯度)
    globalPosestring画像名、緯度、経度、altitude、qw、qx、qy、qzの値を意味
    nnPosesstring[]隣接するリファレンス画像の画像名、tx、ty、tz、qw、qx、qy、qz値を意味
    datasetInfostringスキャン時に区分した各階層の名前を1つに繋げた値

    レスポンス例

    {
      "result": "SUCCESS",
      "status": "success",
      "pose": "VL0_0000050014880892_000000006.jpg,2.746507,9.889554,-20.729435,0.657244,-0.096816,-0.068169,0.744318",
      "total": 7738,
      "inlier": 1762,
      "inliers": [
        {
          "U" : 356.8439,
          "V" : 146.9978,
          "X" : 114.01553,
          "Y" : 233.33755,
          "Z" : 12.9115095
        }
      ],
      "residual": 5.998124,
      "floor": "ground",
      "lonLat": "126.61787915108854,37.47318807235039",
      "globalPose": "VL0_0000050014880892_000000006.jpg,37.47318807235039,126.61787915108854,21.688565,0.657244,-0.096816,-0.068169,0.744318",
      "nnPoses": [
        "VL0_1663124545528216.jpg,3.219894,17.559616,-19.898514,0.720037,-0.121523,-0.006865,0.683177",
        "VL1_1663124536528144.jpg,3.498234,18.586061,-20.282135,0.721541,-0.07256,-0.117165,0.678518",
        "VL2_1663124537528455.jpg,2.849693,18.648811,-20.386539,0.631969,-0.018601,-0.109304,0.767022",
        "VL0_1663124544528213.jpg,3.159655,16.287134,-19.874195,0.701073,-0.139553,0.015575,0.699127",
        "VL1_1663124521528042.jpg,4.446866,15.010426,-19.975168,0.755891,-0.150474,-0.035666,0.636171",
        "VL1_1663124543528186.jpg,3.704958,15.066489,-20.11025,0.761836,-0.152187,-0.059388,0.626832",
        "VL4_1663124540528089.jpg,4.224849,16.700996,-20.057743,0.601045,-0.055503,-0.034118,0.796555",
        "VL0_1663124547528227.jpg,2.683109,20.13681,-20.074528,0.543752,-0.150696,-0.013089,0.825502",
        "VL4_1663124516527975.jpg,3.005801,17.602791,-20.282951,0.761109,-0.017261,-0.000655,0.648394",
        "VL2_1663124520528189.jpg,5.639919,15.146515,-19.748491,0.675394,-0.108291,-0.088871,0.724029",
        "VL1_1663124513527983.jpg,4.592686,18.804764,-20.067684,0.770351,-0.120287,-0.11107,0.616242"
      ],
      "datasetInfo": "NationalMuseumKorea_1F_T2B00652308180853"
    }
    
    {
      "result": "FAILURE",
      "status": "success",
      "message": "internal server error",
      "pose": "failed",
      "floor": "",
      "lonLat": "",
      "globalPose": "",
      "datasetInfo": ""
    }
    

    エラーコード

    エラーレスポンス:

    {
      "code": "9999",
      "message": "Unknown server error.",
      "path": "/api/v1",
      "product": "ARC eye",
      "traceId": "9c1f55ac7d8341d792a922b2590c045f",
      "timestamp": 1570776853475,
      "status": "500"
    }
    
    エラーコードHTTPの状態説明
    0001404Not Found
    0020401Unauthorized
    0030403Forbidden
    010040xInvalid Parameter
    0101409Duplicate
    100050xInternal API Error
    1001500Processing Error
    9999500Unknown Error

    WiFiレスポンス

    WiFiレスポンスボディ

    フィールド名データタイプ説明
    resultstringレスポンス結果: "SUCCESS"、"FAILURE"
    messagestring結果メッセージ
    positionstringマッピング空間における2自由度の位置値(XY平面)を意味
    lonLatstringLongitude(経度)、Latitude(緯度)
    datasetInfostringスキャン時に区分した各階層の名前を1つに繋げた値
    datasetInfoScorefloatロケーション区分の精度(0に近いほど信頼度が低く、1に近いほど信頼度が高い)

    WiFiレスポンス例

    {
      "result": "SUCCESS",
      "position": "16.6337711608804,5.690108685931897",
      "lonLat": "127.105412759367,37.359465269300976",
      "datasetInfo": "Naver_1784_1F",
      "datasetInfoScore": 0.6852494
    }
    

    WiFiエラーコード

    エラーレスポンス:

    {
      "traceId": "3d77c10b1a0646659b6c897a35a5fa64",
      "path": "/vl/v1/300568/9bb1a2b6f8031e355dfdb8e5205a1f7a860b167a0fcbd35681235f35c3629634/location",
      "timestamp": 1725449250446,
      "product": "ARC eye",
      "status": 422,
      "code": "0100",
      "message": "Invalid parameters.",
      "details": "there are no valid signals"
    }
    
    エラーコードHTTPの状態説明
    0001404Not Found
    0020401Unauthorized
    0030403Forbidden
    010040xInvalid Parameter
    0100400"there is no location" (location parameterが渡されなかった場合)
    0100400"failed to parse wifi scan file" (入力された wifiデータに問題がある場合)
    0100404"failed to get location info from qdrant: xxx" (Qdrant dbからその location情報を得られない場合)
    0100404"failed to get wifi-finder model file from S3" (加工された WiFi Finderモデルがない場合)
    0100404"wifi-loc model does not exists" (加工された WiFi Locモデルがない場合)
    0100422"failed, it has low dataset info score" (対象ロケーションに有効な(電波が強い) WiFi電波がない場合)
    0100422"failed to get location info from qdrant: xxx" (低い DatasetInfoScoreによりロケーション識別が困難場合)
    0101409Duplicate
    1000500"No matching AP list exists" (mac-addressが一致する WiFiの電波がない場合)
    1000500"failed to load qdrant" (内部サーバ通信中にエラーが発生した場合(Qdrant vector dbとの通信ができない場合))
    1000500"failed to get global position filefrom qdrant" (内部サーバ通信中にエラーが発生した場合(global poistion情報を qdrantから得られない場合))
    1000500"out of service, due to there is no valid xxx" (内部サーバ通信中にエラーが発生した場合(xxxがない場合))
    1001500Processing Error
    9999500Unknown Error

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.