コンテンツにスキップ

起動方法

起動の流れ

ポータブルAIサーバーの起動までの流れ

ポータブルAIサーバーの入手

ポータブルAIサーバーを起動するには、まずコンソールからポータブルAIサーバーをダウンロードする必要があります。 ポータブルAIサーバーのダウンロード手順は、以下の通りです。

  1. TDSE Eye/外観検査のコンソールにログインします
  2. 画面左のメニューから モデル を選択し、作成したモデルの一覧の画面を表示します
  3. 画面右上の ポータブルAIサーバーダウンロード を選択すると、ダウンロードが開始します。 ここでは、tdse_visual_inspection-v3.0.0.zipがダウンロードされたとします
  4. ダウンロードしたzipファイルをポータブルAIサーバーを起動するPCに持ち込み任意のフォルダに格納し、zipファイル解凍します

ポータブルAIサーバーのダウンロード

モデルページも参照してください。

ポータブルAIサーバーのZipファイルの内容は以下の通りです。

項目 説明
tdse_visual_inspection.exe ポータブルAIサーバーの実行ファイルです。
generate_machine_information.bat ポータブルAIサーバーを起動するPCの情報を出力するためのバッチファイルです。出力した情報はライセンスファイル発行に使用します。
Licenses ポータブルAIサーバーで利用しているサードパーティーライブラリのライセンスファイルが格納されたフォルダです。

モデルファイルの入手

続いて、異常度推定に利用するモデルをダウンロードします。

  1. TDSE Eye/外観検査のコンソールにログインします
  2. 画面左のメニューから モデル を選択し、作成したモデルの一覧の画面を表示します
  3. 作成したモデルの一覧からダウンロード列の を選択すると、ダウンロードが開始します。 ここでは、model_sample.zipがダウンロードされたとします
  4. ダウンロードしたzip形式のモデルファイルも同様に、ポータブルAIサーバーを起動するPCに持ち込み任意のフォルダに格納します。zip形式のモデルファイルは解凍せずに使用します

モデルファイルのダウンロード

モデルページも参照してください。

ライセンスファイルの入手

ポータブルAIサーバーとモデルファイルの入手の次は、ライセンスファイルを取得します。 ポータブルAIサーバーを起動するためには、弊社が発行するライセンスファイルが必要です。 ライセンスファイルを取得する手順は以下の通りです。

  1. 解凍したポータブルAIサーバーのzipファイルに含まれているgenerate_machine_information.batをダブルクリックで実行します
  2. 実行が完了するとtdse-pais-client-info.jsonが作成されるため、作成されたファイルを support_eye@tdse.jp 宛てに送付します
  3. 弊社にて、ライセンスファイルを発行し送付いたします

起動

ポータブルAIサーバーとモデルファイル、ライセンスファイルの入手が完了すると、ポータブルAIサーバーを起動することができます。 PowerShellを起動し、以下のコマンドを実行してください。

.\tdse_visual_inspection.exe --model_path .\model_sample.zip --license_dir .\license_dir

この例では、ポータブルAIサーバーが格納されているフォルダが下図の状態であることを前提としています。 また、cdコマンドでポータブルAIサーバーが格納されているフォルダに移動してから実行する必要があります。

ポータブルAIサーバーが格納されているフォルダ/
  ├─ tdse_visual_inspection.exe
  ├─ model_sample.zip
  └─ license_dir/
      └─ sample_license.tdse_license

ポータブルAIサーバーが正常に起動すると、下図のような表示になります。

起動時の表示

ポータブルAIサーバーの起動表示

ポータブルAIサーバーが使用するポート番号は、デフォルトでは8080番です。 使用するポート番号を変更したい場合には --port のオプションが使用できます。 ポータブルAIサーバーの詳細なオプションについては、以下のコマンドで確認することができます。

.\tdse_visual_inspection.exe --help

使用の例

ポータブルAIサーバーの使用例として、Pythonから使用する場合と、PowerShellから使用する場合を説明します。

Pythonから使用する

Pythonスクリプトから使用する場合は、requestsなどのHTTPクライアントモジュールを利用することでポータブルAIサーバーにリクエストを送ることができます。 PowerShellを開いてポータブルAIサーバーを起動した後に、下記のようなPythonスクリプトを作成して実行してください。

import base64
import requests
from pathlib import Path

# ホスト名にはlocalhostではなく127.0.0.1を指定します。Windows環境でlocalhost指定した場合、応答が遅くなる場合があります。
server_url = "http://127.0.0.1:8080/models/default:predict"
image_file = Path("000.png")

# 画像をbase64に変換します
b64 = base64.b64encode(
    image_file.read_bytes()
).decode()

# ヘッダーやリクエストデータを作成します
header = None
request_data = dict(instances=[dict(content=b64)])

# サーバーにリクエストし、レスポンスを受け取ります
response = requests.post(server_url, headers=header, json=request_data)
print(response.json())
#  {'predictions': [{'score': 1.1772207021713257, 'heatmap': [[0.7920980453491211, 0.8577108979225159, 0.9201926589012146, ...], [...], ...]}

PowerShellから使用する

PowerShellスクリプトから使用する場合も流れはPythonと同様です。 Invoke-WebRequestなどのHTTPリクエストを行うことができるコマンドレットを利用することでポータブルAIサーバーにリクエストを送ることができます。 PowerShellを開いてポータブルAIサーバーを起動した後に、下記のようなPowerShellスクリプトを作成して実行してください。

$image_path = "./000.png"

# 画像をbase64変換します
$b64 = [ convert ]::ToBase64String((Get-Content $image_path -Encoding byte))

# リクエストデータを作成します
$request_data = ConvertTo-Json @{instances=[array]@{content=$b64;};}

# サーバーへリクエストします
# ホスト名にはlocalhostではなく127.0.0.1を指定します。Windows環境でlocalhost指定した場合、応答が遅くなる場合があります。
Invoke-WebRequest http://127.0.0.1:8080/models/default:predict -Method Post -Headers @{"content-type"="application/json";} -Body $request_data

# StatusCode        : 200
# StatusDescription : OK
# Content           : {"predictions":[{"score":1.1772207021713257,"heatmap":[[0.7920980453491211,0.8577108979225159,0.920
#                     1926589012146,0.9519303441047668,0.9289260506629944,0.9035999178886414,0.8868321180343628,0.8925534
#                     48...
# RawContent        : HTTP/1.1 200 OK
#                     Content-Length: 43626
#                     Content-Type: application/json
#                     Date: Fri, 30 Sep 2022 08:37:22 GMT
#                     Server: uvicorn

#                     {"predictions":[{"score":1.1772207021713257,"heatmap":[[0.79209804534912...
# Forms             : {}
# Headers           : {[Content-Length, 43626], [Content-Type, application/json], [Date, Fri, 30 Sep 2022 08:37:22 GMT],
#                     [Server, uvicorn]}
# Images            : {}
# InputFields       : {}
# Links             : {}
# ParsedHtml        : mshtml.HTMLDocumentClass
# RawContentLength  : 43626