SlideShare a Scribd company logo
1 of 27
Download to read offline
Switch VisionⓇ
Lite / Module
操作マニュアル
Ver 1.5.3
2022 年 7 月
あらゆる”モノ”に考える力を。人工脳 SOINNⓇ
SOINN 株式会社
2
操作マニュアルの著作権について
操作マニュアルについては、SOINN 株式会社(以下「弊社」という)が著作権その他の知的
財産権を保有します。
弊社の許可無く、操作マニュアルの一部または全部を複製、複写、改変およびインターネ
ット配信等することはできません。但し、ご自身でご使用する目的に限り、複製・印刷するこ
とができます。
改訂履歴
版数 発行日 改訂履歴
第 1.0 版 2021 年 12 月 01 日 初版作成
第 1.1 版 2022 年 2 月 16 日 第 1.1 版作成
第 1.2 版 2022 年 2 月 22 日 第 1.2 版作成
第 1.3 版 2022 年 3 月 15 日 第 1.3 版作成
第 1.5 版 2022 年 7 月 7 日 第 1.5 版作成
3
目次
操作マニュアルの著作権について 1
改訂履歴 2
目次 3
1. 本アプリについて 5
1.1. 本アプリの概要 5
1.2. 動作環境 5
2. アプリのインストール/アクティベーション方法 6
2.1.アプリのインストール 6
2.2.アプリのアクティベーション(有効化) 7
2.3.起動画面 9
3. 学習 10
3.1. 学習処理概要 10
3.2. 学習の設定項目 11
3.2.1 画像フォルダ 11
3.2.2 画像トリミング 12
3.2.3 画像リサイズ 12
3.2.4 背景除去 12
3.2.5 画像確認 12
3.3. 学習の実行 12
3.3.1 学習モードの選択 12
3.4. 保存したモデルの読み込み 12
4. モデル検証 13
4.1. 学習結果確認 13
4.2. ラベル変更 14
4.3. モデル保存 14
5. 予測 15
5.1. 予測処理概要 15
5.2. 予測の設定項目 16
入力データ 16
カメラ設定 16
予測モード 17
4
入力画像フォルダ 17
ファイル条件 17
モデル選択 17
閾値 17
出力先 17
5.3. 予測の実行 17
6. API 通信 20
6.1 動作仕様 20
URI scheme 20
エンドポイントリスト 20
6.2 画像データの予測リクエスト 20
入力 json 20
出力 json 21
サンプルプログラム 21
6.3 カメラ撮影による予測リクエスト 22
カメラ接続 22
カメラ推論 23
カメラ停止 23
サンプルプログラム 23
7. EtherNet/IP の接続方法 24
7.1 setting.json 24
7.2 動作シーケンス 25
カメラ接続 25
トリガ信号の送信 26
SwitchVision からの返信 26
カメラのクローズ 26
7.3 サンプルプログラム 26
5
1. 本アプリについて
1.1. 本アプリの概要
本画像検査 AI アプリは SOINN 株式会社(以下、SOINN)が開発した、画像検査 AI をグラフ
ィカルユーザインタフェース(以下、GUI)上で操作し、ノーコードで AI モデルの構築から予測
可能なアプリです。
1.2. 動作環境
本アプリの動作には以下のシステム環境を推奨します。
OS Windows 10 64bit
CPU 2 コア以上、2.4GHz 以上
メモリ 8 GB 以上
学習用/予測用の入力ファイルの形式は以下のとおりです。
ファイル形式 PNG, JPG, BMP ファイル
6
2. アプリのインストール/アクティベーション方法
2.1.アプリのインストール
1. SOINN AI サイト(https://soinn.ai/)にアクセスし、ログインします。ユーザー登録が未完
了の場合はユーザー登録をしてください。
2.Switch Vision Light または、Module を選択してインストーラーをダウンロードします。
本取扱説明書やチュートリアル動画もあります。
3. インストーラーを起動し、画面の指示に従ってインストールを進めます。
7
2.2.アプリのアクティベーション(有効化)
1. 初回認証用ファイル発行をクリックし、認証用ファイルを発行します。ダウンロードフォル
ダに 01_request.txt ファイルが発行されます。
※最新のバージョンは、Ver.1.5.*です。
2. SOINN AI サイトから、「ライセンス登録」もしくは「トライアルライセンス登録」を選択し、ラ
イセンス購入手続きを完了してください。
トライアルライセンス登録は 1 回のみしかできませんのでご注意ください。使用許諾契約を
確認し、問題ないようでしたら「登録」ボタンを押してください。なお、ライセンス ID は管理・
識別がしやすい任意の ID をご入力ください。
8
3. SOINN AI サイトから、「ライセンス使用状況/アクティベート」を選択し、先ほどアプリで作
成した認証用ファイル登録してアクティベーションファイルをダウンロードします。
こちらで登録された情報を元に 適切なライセンス管理を行っております。
4. アクティベーションファイルを登録してアプリを起動します。
9
2.3.起動画面
以下のような画面が表示されていれば、起動成功です。起動時は内部のモジュールをセッ
トアップするのに 30~60 秒ほどお時間がかかりますので、ご了承ください。
図 1 起動画面
もし、エラーが発生した場合は、画面を閉じていただき再度起動をお願いいたします。解決
が見られない場合は、大変お手数ですが、SOINN 社担当者までご連絡をお願いいたしま
す。
10
3. 学習
3.1. 学習処理概要
学習用の画像データを用意頂き、GUI 上で操作するのみで前処理から学習済みモデルを
作成できます。
図 2 学習画面(前処理前)
11
3.2. 学習の設定項目
アプリの学習タブで、学習対象の画像データが格納されたフォルダを選択します。また設定
項目を GUI 上で入力し、「学習実行」をクリックして学習します。
図 3 学習設定画面
3.2.1 画像フォルダ
学習に用いるフォルダを選択します。なお、指定された学習用画像フォルダ内は、任意の
英数字名のフォルダが 2 つ以上存在し、その下に画像が保存されている必要があります。
```
- [指定された学習用画像フォルダ]
- OK
- image1.png
- image2.png
- image3.png
…
- NG
- image1.png
- image2.jpg
…
```
本アプリケーションでは、この任意のフォルダ名をラベルとして扱います。各フォルダには、
最低 5 枚以上の画像を用意して下さい。
12
3.2.2 画像トリミング
画像を切り抜く範囲を指定し、トリミング処理が可能です。学習や予測処理の高速化が見
込めます。
3.2.3 画像リサイズ
1~100 で、対象とする画像を何パーセントのリサイズ処理をかけるか設定できます。リサイ
ズ値を小さくすると学習や予測処理の高速化が見込めます。
3.2.4 背景除去
画像内で背景とみなす RGB 値、もしくは輝度値の範囲を、0~255 で指定します。RGB 値の
場合は、各成分の範囲を全て満たす色領域が背景とみなされます。
3.2.5 画像確認
アプリ中央上部の Images で確認用画像フォルダを選択し、表示された画像をクリックする
と、入力画像と前処理画像が確認できます。前処理パラメータが正しく設定されているか確
認して下さい。
3.3. 学習の実行
「学習を実行」をクリックすると学習が開始されます。
3.3.1 学習モードの選択
学習モードを選択できます。
1. 「簡易」モード: 探索を制限して、高速にモデル学習を行います。
2. 「詳細」モード: 詳細に探索を行い、時間をかけてモデル学習を行います。
3.4. 保存したモデルの読み込み
学習モードで「再学習」を選択し、保存したモデルを選択して「モデル読み込み」ボタンを押
すことで、保存したモデルの再確認、ラベル編集、再学習等を行うことができます。
13
4. モデル検証
4.1. 学習結果確認
学習が完了、または、既存モデルの読み込みを行うと、検証タブに移り、アプリ画面の中央
に特徴量を元にした 3D グラフが、右には学習画像に対して交差検証法(※1)で算出した混
同行列(※2)が、それぞれ表示されます。また、グラフの上部に、学習データに対する正解
率(※3)が表示されます。
(※1) 交差検証法(cross-validation: CV): 学習データを n 個のグループに分割し、
(n-1)個のグループでモデルを学習し残りの 1 個のグループで評価することを n 回
繰り返すことで、学習データ全体を有効に用いてモデルの評価を行う方法。
(※2) 混同行列: 行に正解ラベル、列に予測ラベルを取り、各セルに当てはまるデ
ータ数をカウントした行列。対角成分が、正解したモデル予測を表す。
(※3) 正解率: 交差検証によって算出した、学習データ全体に対して、モデル予測が
正解したデータの割合。
図 4 学習結果
14
4.2. ラベル変更
3D プロット内のノードをクリックし、表示される画像のラベルの確認、変更をすることができ
ます。データ作成時には NG としたが解析結果を確認すると OK にした方がよい、と判断さ
れるものについては、ラベルを変更し、3D プロット下の「再学習実行」をクリックして、再学
習を行ってください。
4.3. モデル保存
モデルを保存する場合は、モデル名を入力し、「モデルを保存」をクリックします。保存する
モデルは、交差検証法によって作成されたモデルとは異なり、学習データ全体を用いて学
習します。
15
5. 予測
5.1. 予測処理概要
画像が格納されるフォルダと対象となるモデルファイルを指定し、予測処理を実行します。
図 5 予測画面
16
5.2. 予測の設定項目
アプリの予測タブで設定項目を GUI 上で入力し、「予測実行」をクリックして予測します。
図 6 予測設定画面
入力データ
「ファイル」と「カメラ」を選ぶことができます。
「ファイル」では、指定された画像フォルダ内のファイルを読み込んで予測処理を行います。
「カメラ」では、PC に接続されたカメラから、直接画像を読み込んで予測処理を行います。
カメラ設定
アプリの起動前に、使用するカメラの情報を、設定ファイルに書き込みます。
ユーザーフォルダの”AppDataLocalProgramsimage-classification-multi-
classresourcesserverdistconfig.json”、または、”AppDataLocalProgramsimage-
classification-2classresourcesserverdistconfig.json”の"camera"の項目を編集し、カメ
ラの解像度、fps を設定して下さい。
カメラ解像度の確認方法は、同封の”Switch Vision®Module のご案内” P.13 Switch Vision
へのカメラ接続 を参照下さい。
17
尚、カメラは PC に一台のみ接続して下さい。(※内蔵カメラが有る場合は、デバイスマネージャで
無効に設定できます。)
予測モード
「連続実行」と「1 枚ずつ実行」を選ぶことができます。
「連続実行」では、画面描画は行わずに指定フォルダの最新画像を予測処理し、結果を
CSV ファイルに書き込み続けます。「予測実行」で予測処理を開始し、「予測停止」が押さ
れるまで処理を続けます。
「1 枚ずつ実行」では、学習時と同様にグラフに可視化しながら、結果を確認することができ
ます。
入力画像フォルダ
予測に用いる対象となる画像が格納されるフォルダを指定します。
ファイル条件
正規表現にて、どのファイルをどのモデルが用いるのか指定することができます。
(例:ファイル名に「D1」が入るファイルを指定したい場合は、「.*D1」のように指定する. フォ
ルダ内のすべてのファイルを指定したい場合は、「.*」と指定する.)
モデル選択
ファイル条件で指定したファイルに対して、どのモデルを用いて予測処理をかけるのか設
定します。
なお、ファイル条件とモデル選択は複数設定することができます。どのファイル条件にも当
てはまらないファイルの場合、予測処理は行われません。また、複数のファイル条件に合
致するファイルの場合、より後半に指定したファイル条件が優先して適用されます。
閾値
モデルの予測確率に対して、グレー判定を行う閾値を 0~100 の間で設定することができま
す。閾値が 0 の場合はグレー判定を出さず、閾値が大きいほど、グレー判定を出しやすく
なります。
出力先
「CSV」と「Database」を選ぶことができます。「1 枚ずつ実行」モードの場合は表示されない
のでご注意ください。
「連続実行」モードでは、結果を CSV もしくは指定の DB テーブルに保存することができま
す。
Database は、Microsoft SQL Server, Oracle, MySQL に対応しています。詳細は、SOINN
社までお問い合わせ下さい。
5.3. 予測の実行
18
「1 枚ずつ実行」モードを選択すると、下部にフォルダ内の画像一覧が表示されます。それ
ぞれの画像をクリックすると予測処理が実行され、中央の 3D グラフ中に新規ノードがプロ
ットされます。さらに、画像一覧上部に判定結果が表示され、右部に予測確率グラフが表
示されます。
図 7 予測結果
「連続実行」モードでは、特にグラフ描画は行われませんが、指定の CSV ファイル内に結
果が書き込まれます。エクセルのような書き込み権限を掴むアプリで CSV ファイルを開い
てしまうと、予測処理がエラーとなってしまうため、ご注意ください。VS Code などのエディタ
であれば、CSV ファイルを開きながら予測処理を実行してもエラーとならず、また自動更新
されるため結果を随時確認することができます。
CSV の各ヘッダーは以下の通りです。
No. ヘッダ 形式 項目説明
1 date 日時(yyyy-mm-dd
hh:mm:ss.sss)
予測処理が終了した時刻
2 processing_time 数値 画像を読み込むところから、結果を csv
file に書き込む直前までの処理時間、単
位は ms
19
3 Image_path 文字列 予測処理を実施した画像ファイル名、拡
張子まで含む
4 condition_no 文字列 上から何番目に指定されたモデル名か
5 regrex 文字列 モデルに指定されたファイル抽出条件
6 model_path 文字列 予測処理に使用したモデル名
7 threshold 数値 閾値(0 ~ 100)
8 label 数値 判定結果(予測ラベル or グレー)
9 score 数値 予測したラベルの確率(0 ~ 1.00)
7 label_0 文字列 ユーザーが指定したラベル名
8 prob_0 数値 [label_0]の確率
9 label_1 文字列 ユーザーが指定したラベル名
10 prob_1 数値 [label_1]の確率
※ label_0, prob_0, label_1, prob_1,,,は、モデル条件毎に、必要な分だけ作成されます。
20
6. API 通信
本製品は、Web API を通じた予測機能を備えています。
本製品を起動した状態で、下記の動作仕様で、予測処理を実行できます。
6.1 動作仕様
URI SCHEME
Host: http://[Server_IP_Address]:5000
エンドポイントリスト
エンドポイント メソッド 説明
/v1/predict/single/image POST 画像データの予測リクエスト.
/v1/predict/single/camera POST カメラ撮影による予測リクエスト.
/v1/http/camera/start POST カメラ接続.
/v1/http/camera/stop POST カメラ停止.
/v1/ethernetip/camera/start POST カメラ接続.(EtherNet/IP 用 7章)
/v1/ethernetip/camera/stop POST カメラ停止.(EtherNet/IP 用 7章)
6.2 画像データの予測リクエスト
画像データ(8bit のビットマップ形式)とモデル情報を POST して、推論結果を得ることが出
来ます。
エンドポイント /v1/predict/single/image に対して、下記フォーマットを満たす JSON データ
を POST リクエストで送って下さい。
ただし、並列処理には対応していないため、必ず 1 リクエストずつ送信し、レスポンスが返
ってきてから次のリクエストを送信して下さい。
入力 JSON
キー名 型 説明
id string リクエストの ID を任意の文字列で指定する (省略可).
img string 画像データ(8bit のビットマップ形式)を base64 でエンコー
ドした文字列. サーバ側は base64 でデコードし、予測処理
を実行する.
model_path string 予測に用いる学習済みモデルファイルを、フルパスで指定
する.
threshold int [0〜100] 判定閾値を指定する.
例)
21
```
{
“id”: “test”,
“img”: …,
“model_path”: “C:Usersuser1AppDataRoamingimage-classification-
2classmodelstest”,
“threshold”: 50
}
```
出力 JSON
出力データは、5.3 と同様ですが、下記の追加項目が含まれています。
キー名 型 説明
id string 入力 JSON のリクエスト ID.
status int 予測処理のステータスコード. 0: OK, 500: 予測モデル読み
込みエラー, 510: 画像デコードエラー, 999: その他のエラ
ー
例)
```
{
“id”: “test”,
“status”: 0,
“processing_time”: 0.123,
“model_path”: “C:UsersusernameAppDataRoamingimage-classification-
multi-classmodelstest”,
“threshold”: 50,
“label”: “OK”,
“score”: 0.991,
“label_0”: “NG”,
“prob_0”: 0.009,
“label_1”: “OK”,
“prob_1”: 0.991
}
```
サンプルプログラム
```python:sample_API.py
import json
import base64
import cv2
import requests
# API URI
ROUTE = "http://127.0.0.1:5000"
# path to the saved model at Server
model_path = "C:/Users/username/AppData/Roaming/image-classification-multi-
class/models/test"
# threshold
threshold = 50
22
# path to the image to predict at Client
image_path = "C:/Users/username/image/Test/test.jpg"
def post_predict_image(image, model_path, threshold, route=ROUTE):
_, encimg = cv2.imencode(".bmp", image)
img_str = encimg.tobytes()
img_byte = base64.b64encode(img_str).decode("utf-8")
data = {
"img": img_byte,
"model_path": model_path,
"threshold": threshold
}
data_json = json.dumps(data).encode("utf-8")
entrypoint = route + "/v1/predict/single/image"
headers = {"Content-Type": "application/json"}
r_post = requests.post(entrypoint, data=data_json, headers=headers)
ret_json = json.loads(r_post.text)
return ret_json
if __name__ == "__main__":
image = cv2.imread(image_path)
# image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # if required
res = post_predict_image(image, model_path, threshold)
print("Post predict/image:", res)
```
6.3 カメラ撮影による予測リクエスト
カメラと接続し、カメラから画像を取得して、推論結果を得ることが出来ます。
カメラの設定は、5.2 カメラの設定を参照して下さい。
カメラ接続
キーを”settings”とするオブジェクトに、下記フォーマットを満たすカメラ設定オブジェクトの
配列を格納した JSON データを、エンドポイント /v1/http/camera/start に POST リクエス
トで送って下さい。
キー名 型 説明
camera_id int PC にカメラが 1 つだけ接続されている場合は、0 番を使
用して下さい.
model_path string 予測に用いる学習済みモデルファイルを、フルパスで指定
する.
threshold int [0〜100] 判定閾値を指定する.
save_dir string (任意) 撮影した画像を保存する場合は、保存フォルダを
指定する. 保存フォルダと同名のファイルが存在する場合
はエラーになり、推論も実行されません.
23
接続結果を、下記のステータスコードで確認できます.
キー名 型 説明
status int ステータスコード. 0: OK, 500: 予測モデル読み込みエラー,
520:カメラ接続エラー, 521:保存フォルダエラー, 999: その
他のエラー
カメラ推論
空の JSON データを、エンドポイント /v1/predict/single/camera に POST リクエストで送る
ことで、接続設定したカメラから画像を取得し、予測結果を 6.2 と同様の形式で得ることが
出来ます。
JSON データには”id”を含めることが出来ます。
カメラ停止
空の JSON データを、エンドポイント /v1/http/camera/stop に POST リクエストで送って
下さい。
サンプルプログラム
```python:sample_API_camera.py
import json
import requests
# API URI
ROUTE = "http://127.0.0.1:5000"
# path to the saved model at Server
model_path = "C:/Users/username/AppData/Roaming/image-classification-multi-
class/models/test"
# Camera ID
camera_id = 0
# threshold
threshold = 50
# Save dir at Server
save_dir = "C:/Users/username/Documents/camera"
def post_camera_start(route=ROUTE):
data = {
"settings": [
{
"camera_id": camera_id,
"model_path": model_path,
"threshold": threshold,
"save_dir": save_dir
24
}
]
}
data_json = json.dumps(data).encode("utf-8")
entrypoint = route + "/v1/http/camera/start"
headers = {"Content-Type": "application/json"}
r_post = requests.post(entrypoint, data=data_json, headers=headers)
ret_json = json.loads(r_post.text)
return ret_json
def post_camera_stop(route=ROUTE):
data = {}
data_json = json.dumps(data).encode("utf-8")
entrypoint = route + "/v1/http/camera/stop"
headers = {"Content-Type": "application/json"}
r_post = requests.post(entrypoint, data=data_json, headers=headers)
ret_json = json.loads(r_post.text)
return ret_json
def post_predict_camera(route=ROUTE):
data = {"id": str(time.time())}
data_json = json.dumps(data).encode("utf-8")
entrypoint = route + "/v1/predict/single/camera"
headers = {"Content-Type": "application/json"}
r_post = requests.post(entrypoint, data=data_json, headers=headers)
ret_json = json.loads(r_post.text)
return ret_json
if __name__ == "__main__":
# Camera start
res = post_camera_start()
# Predict camera
res = post_predict_camera()
print("Post predict/camera:", res)
# Camera stop
res = post_camera_stop()
```
7. ETHERNET/IP の接続方法
SwitchVision は、EtherNet/IP プロトコルで送信された信号をトリガとして受信し、カメラ撮
影と画像判定を行うことができます。EtherNet/IP 接続される場合は、implicit 通信で使用
されるメモリの内、送受信で使用されるバイト位置とビット位置を setting.json に設定してく
ださい。
7.1 SETTING.JSON
25
添付の setting.json の中で以下の設定は接続機器に従って変更してください。その他の設
定項目は必要が生じたときに設定してください。
"IPAddress": "192.168.0.5", SwitchVision にトリガを送る機器の IP アドレス
"O_T_Length": 40, output(Object -> Target)用バイト数
"T_O_Length": 56, input (Target -> Object)用バイト数
"O_T_InstanceID": 101, output 用 Assembly Instance ID
"T_O_InstanceID": 100, input 用 Assembly Instance ID
"signalPos":{
"PosSendByte": 1, 接続機器が受信するバイト位置
"PosSendBit": 0, 接続機器が受信するビット位置
"PosRecieveByte": 1, SwitchVision が Trriger を受信するバイト位置
"PosRecieveBit": 7 SwitchVision が Trriger を受信するビット位置
},
7.2 動作シーケンス
EtherNet/IP 接続では、接続機器から SwitchVision に対して、SwitchVision に接続された
カメラを使用して判定依頼を行うことができます。接続機器からは撮影・判定開始のトリガ
となる信号を送るだけです。
カメラの設定は、5.2 カメラの設定を参照して下さい。
カメラ接続
まず、SwitchVision に、カメラ接続指示を出します。
キーを”settings”とするオブジェクトに、下記フォーマットを満たすカメラ設定オブジェクトの
配列を格納した JSON データを、エンドポイント /v1/ethernetip/camera/start に POST リ
クエストで送って下さい。
送信を行うプログラムの例は 7.3 サンプルプログラムを参照してください。
キー名 型 説明
camera_id int PC にカメラが 1 つだけ接続されている場合は、0 番を使
用して下さい.
model_path string 予測に用いる学習済みモデルファイルを、フルパスで指定
する.
threshold int [0〜100] 判定閾値を指定する.
save_dir string (任意) 撮影した画像を保存する場合は、保存フォルダを
指定する. 保存フォルダと同名のファイルが存在する場合
はエラーになり、推論も実行されません.
26
トリガ信号の送信
setting.json で指定した implicit メッセージの Target -> Object に割り当てられているメモリ
のバイト位置(PosRecieveByte)とビット位置(PosRecieveBit)に HIGH 信号を送信して下さ
い。
SWITCHVISION からの返信
PosSendByte に、画像分類結果のラベル番号に相当するビット位置に HIGH 信号を返しま
す。
カメラのクローズ
SwitchVision のカメラと接続を終了させる場合、終了の HTTP メッセージを送信します。
送信を行うプログラムの例は 7.3 サンプルプログラムを参照してください。
7.3 サンプルプログラム
```python:sample_ethernetip.py
import json
import requests
ROUTE = "http://127.0.0.1:5000" # API URI
# path to the saved model
model_path = "C:/Users/username/AppData/Roaming/image-classification-multi-
class/models/test"
# threshold
threshold = 50
# Camera_id
camera_id = 0
# save camera image data
save_dir = “C:/temp/camera”
def ethernetip_camera_start(route=ROUTE):
data = {'settings': [{“camera_id”: 0, “model_path”: model_path,
“threshold”: threshold}]}
data_json = json.dumps(data).encode("utf-8")
entrypoint = route + "/v1/ethernetip/camera/start"
headers = {"Content-Type": "application/json"}
r_post = requests.post(entrypoint, data = data_json, headers=headers)
ret_json = json.loads(r_post.text)
return ret_json
def ethernetip_camera_stop(route=ROUTE):
entrypoint = route + "/v1/ethernetip/camera/stop"
headers = {"Content-Type": "application/json"}
r_post = requests.post(entrypoint, headers=headers)
ret_json = json.loads(r_post.text)
return ret_json
27
if __name__ == "__main__":
print("Ethernet/IP Connection Start")
ethernetip_camera_start()
var = input("Hit Any Key...")
print("Ethernet/IP Connection Stop")
ethernetip_camera_stop()
```

More Related Content

Similar to Switch VisionⓇ Lite / Module 操作マニュアル

Web os最新動向20130209
Web os最新動向20130209Web os最新動向20130209
Web os最新動向20130209Akira Sasaki
 
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06Akira Hatsune
 
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミングUnity Technologies Japan K.K.
 
Nano Server First Step
Nano Server First StepNano Server First Step
Nano Server First StepKazuki Takai
 
AppPot製品概要
AppPot製品概要AppPot製品概要
AppPot製品概要Ryohei Sogo
 
Unity5.3をさわってみた
Unity5.3をさわってみたUnity5.3をさわってみた
Unity5.3をさわってみたKeizo Nagamine
 
無料の「IBM Cloud ライトアカウント」を用いた画像判定アプリハンズオン資料
無料の「IBM Cloud ライトアカウント」を用いた画像判定アプリハンズオン資料無料の「IBM Cloud ライトアカウント」を用いた画像判定アプリハンズオン資料
無料の「IBM Cloud ライトアカウント」を用いた画像判定アプリハンズオン資料Kohei Nishikawa
 
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告Nobuhiko Sasaki
 
Ec cube user group tokyo mtg 2.13に向けて
Ec cube user group tokyo mtg 2.13に向けてEc cube user group tokyo mtg 2.13に向けて
Ec cube user group tokyo mtg 2.13に向けてAyumu Kawaguchi
 
#01-03 solaris11で深化するクラウド
#01-03 solaris11で深化するクラウド#01-03 solaris11で深化するクラウド
#01-03 solaris11で深化するクラウドSolarisJPNight
 
Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK YutoNishine
 
ITフォーラム2020 AITC(3)
ITフォーラム2020 AITC(3)ITフォーラム2020 AITC(3)
ITフォーラム2020 AITC(3)aitc_jp
 
Bee Style:vol.009
Bee Style:vol.009Bee Style:vol.009
Bee Style:vol.009spicepark
 
20101112 tf web_hirookun_p
20101112 tf web_hirookun_p20101112 tf web_hirookun_p
20101112 tf web_hirookun_phirookun
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platformToru Yamaguchi
 
App controllerとSPFで実現するハイブリッドクラウド
App controllerとSPFで実現するハイブリッドクラウドApp controllerとSPFで実現するハイブリッドクラウド
App controllerとSPFで実現するハイブリッドクラウドTakashi Kanai
 
20191216 AWS re:Invent 2019 Game Sessions Lightning
20191216 AWS re:Invent 2019 Game Sessions Lightning20191216 AWS re:Invent 2019 Game Sessions Lightning
20191216 AWS re:Invent 2019 Game Sessions LightningAmazon Web Services Japan
 

Similar to Switch VisionⓇ Lite / Module 操作マニュアル (20)

Web os最新動向20130209
Web os最新動向20130209Web os最新動向20130209
Web os最新動向20130209
 
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
 
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
 
Nano Server First Step
Nano Server First StepNano Server First Step
Nano Server First Step
 
AppPot製品概要
AppPot製品概要AppPot製品概要
AppPot製品概要
 
Unity開発ロードマップ最新情報
Unity開発ロードマップ最新情報Unity開発ロードマップ最新情報
Unity開発ロードマップ最新情報
 
[Track2-5] CPUだけでAIをやり切った最近のお客様事例 と インテルの先進的な取り組み
[Track2-5] CPUだけでAIをやり切った最近のお客様事例 と インテルの先進的な取り組み[Track2-5] CPUだけでAIをやり切った最近のお客様事例 と インテルの先進的な取り組み
[Track2-5] CPUだけでAIをやり切った最近のお客様事例 と インテルの先進的な取り組み
 
Unity5.3をさわってみた
Unity5.3をさわってみたUnity5.3をさわってみた
Unity5.3をさわってみた
 
無料の「IBM Cloud ライトアカウント」を用いた画像判定アプリハンズオン資料
無料の「IBM Cloud ライトアカウント」を用いた画像判定アプリハンズオン資料無料の「IBM Cloud ライトアカウント」を用いた画像判定アプリハンズオン資料
無料の「IBM Cloud ライトアカウント」を用いた画像判定アプリハンズオン資料
 
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
 
Ec cube user group tokyo mtg 2.13に向けて
Ec cube user group tokyo mtg 2.13に向けてEc cube user group tokyo mtg 2.13に向けて
Ec cube user group tokyo mtg 2.13に向けて
 
#01-03 solaris11で深化するクラウド
#01-03 solaris11で深化するクラウド#01-03 solaris11で深化するクラウド
#01-03 solaris11で深化するクラウド
 
Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK
 
Spine入門
Spine入門Spine入門
Spine入門
 
ITフォーラム2020 AITC(3)
ITフォーラム2020 AITC(3)ITフォーラム2020 AITC(3)
ITフォーラム2020 AITC(3)
 
Bee Style:vol.009
Bee Style:vol.009Bee Style:vol.009
Bee Style:vol.009
 
20101112 tf web_hirookun_p
20101112 tf web_hirookun_p20101112 tf web_hirookun_p
20101112 tf web_hirookun_p
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
 
App controllerとSPFで実現するハイブリッドクラウド
App controllerとSPFで実現するハイブリッドクラウドApp controllerとSPFで実現するハイブリッドクラウド
App controllerとSPFで実現するハイブリッドクラウド
 
20191216 AWS re:Invent 2019 Game Sessions Lightning
20191216 AWS re:Invent 2019 Game Sessions Lightning20191216 AWS re:Invent 2019 Game Sessions Lightning
20191216 AWS re:Invent 2019 Game Sessions Lightning
 

More from SOINN

energy_saving_SOINN_E-1_version6_slides_20240409.pdf
energy_saving_SOINN_E-1_version6_slides_20240409.pdfenergy_saving_SOINN_E-1_version6_slides_20240409.pdf
energy_saving_SOINN_E-1_version6_slides_20240409.pdfSOINN
 
SOINN社製品のご紹介
SOINN社製品のご紹介SOINN社製品のご紹介
SOINN社製品のご紹介SOINN
 
Switch Vision® Module のご案内(1.3)
Switch Vision® Module のご案内(1.3)Switch Vision® Module のご案内(1.3)
Switch Vision® Module のご案内(1.3)SOINN
 
Switch VisionⓇ ライセンス認証マニュアル(1.4)
Switch VisionⓇ ライセンス認証マニュアル(1.4)Switch VisionⓇ ライセンス認証マニュアル(1.4)
Switch VisionⓇ ライセンス認証マニュアル(1.4)SOINN
 
Switch Vision® Module 活用のコツ (1.2)
Switch Vision® Module 活用のコツ (1.2)Switch Vision® Module 活用のコツ (1.2)
Switch Vision® Module 活用のコツ (1.2)SOINN
 
SOINN社事業のご紹介
SOINN社事業のご紹介SOINN社事業のご紹介
SOINN社事業のご紹介SOINN
 
異常検知・予知保全AI SOINN A-1(3.2)
異常検知・予知保全AI SOINN A-1(3.2)異常検知・予知保全AI SOINN A-1(3.2)
異常検知・予知保全AI SOINN A-1(3.2)SOINN
 
Switch Vision® Light 処理に適した画像サンプル
Switch Vision® Light 処理に適した画像サンプルSwitch Vision® Light 処理に適した画像サンプル
Switch Vision® Light 処理に適した画像サンプルSOINN
 
Switch Vision® Light Interface
Switch Vision® Light InterfaceSwitch Vision® Light Interface
Switch Vision® Light InterfaceSOINN
 
全自動・洪水予測 AI
全自動・洪水予測 AI 全自動・洪水予測 AI
全自動・洪水予測 AI SOINN
 
全自動・水害予測 AI
全自動・水害予測 AI全自動・水害予測 AI
全自動・水害予測 AISOINN
 
SOINN F-1 (Aug. 2021)
SOINN F-1 (Aug. 2021)SOINN F-1 (Aug. 2021)
SOINN F-1 (Aug. 2021)SOINN
 
SOINN_E-1 (Aug. 2021)
SOINN_E-1 (Aug. 2021)SOINN_E-1 (Aug. 2021)
SOINN_E-1 (Aug. 2021)SOINN
 
SOINNの制御用AI (ver1.3)
SOINNの制御用AI (ver1.3) SOINNの制御用AI (ver1.3)
SOINNの制御用AI (ver1.3) SOINN
 
「派遣AI™」のご案内
「派遣AI™」のご案内「派遣AI™」のご案内
「派遣AI™」のご案内SOINN
 
Soinn 2020 summer
Soinn 2020 summerSoinn 2020 summer
Soinn 2020 summerSOINN
 

More from SOINN (16)

energy_saving_SOINN_E-1_version6_slides_20240409.pdf
energy_saving_SOINN_E-1_version6_slides_20240409.pdfenergy_saving_SOINN_E-1_version6_slides_20240409.pdf
energy_saving_SOINN_E-1_version6_slides_20240409.pdf
 
SOINN社製品のご紹介
SOINN社製品のご紹介SOINN社製品のご紹介
SOINN社製品のご紹介
 
Switch Vision® Module のご案内(1.3)
Switch Vision® Module のご案内(1.3)Switch Vision® Module のご案内(1.3)
Switch Vision® Module のご案内(1.3)
 
Switch VisionⓇ ライセンス認証マニュアル(1.4)
Switch VisionⓇ ライセンス認証マニュアル(1.4)Switch VisionⓇ ライセンス認証マニュアル(1.4)
Switch VisionⓇ ライセンス認証マニュアル(1.4)
 
Switch Vision® Module 活用のコツ (1.2)
Switch Vision® Module 活用のコツ (1.2)Switch Vision® Module 活用のコツ (1.2)
Switch Vision® Module 活用のコツ (1.2)
 
SOINN社事業のご紹介
SOINN社事業のご紹介SOINN社事業のご紹介
SOINN社事業のご紹介
 
異常検知・予知保全AI SOINN A-1(3.2)
異常検知・予知保全AI SOINN A-1(3.2)異常検知・予知保全AI SOINN A-1(3.2)
異常検知・予知保全AI SOINN A-1(3.2)
 
Switch Vision® Light 処理に適した画像サンプル
Switch Vision® Light 処理に適した画像サンプルSwitch Vision® Light 処理に適した画像サンプル
Switch Vision® Light 処理に適した画像サンプル
 
Switch Vision® Light Interface
Switch Vision® Light InterfaceSwitch Vision® Light Interface
Switch Vision® Light Interface
 
全自動・洪水予測 AI
全自動・洪水予測 AI 全自動・洪水予測 AI
全自動・洪水予測 AI
 
全自動・水害予測 AI
全自動・水害予測 AI全自動・水害予測 AI
全自動・水害予測 AI
 
SOINN F-1 (Aug. 2021)
SOINN F-1 (Aug. 2021)SOINN F-1 (Aug. 2021)
SOINN F-1 (Aug. 2021)
 
SOINN_E-1 (Aug. 2021)
SOINN_E-1 (Aug. 2021)SOINN_E-1 (Aug. 2021)
SOINN_E-1 (Aug. 2021)
 
SOINNの制御用AI (ver1.3)
SOINNの制御用AI (ver1.3) SOINNの制御用AI (ver1.3)
SOINNの制御用AI (ver1.3)
 
「派遣AI™」のご案内
「派遣AI™」のご案内「派遣AI™」のご案内
「派遣AI™」のご案内
 
Soinn 2020 summer
Soinn 2020 summerSoinn 2020 summer
Soinn 2020 summer
 

Recently uploaded

株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版DIGITAL VORN
 
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf株式会社オプティマインド
 
20240319_case___________________________
20240319_case___________________________20240319_case___________________________
20240319_case___________________________i Smart Technologies
 
ENECHANGE株式会社 データ事業(エネルギークラウド事業)紹介資料_20240408.pdf
ENECHANGE株式会社 データ事業(エネルギークラウド事業)紹介資料_20240408.pdfENECHANGE株式会社 データ事業(エネルギークラウド事業)紹介資料_20240408.pdf
ENECHANGE株式会社 データ事業(エネルギークラウド事業)紹介資料_20240408.pdfryoichinojima
 
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料ssuser5a38bf
 
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf株式会社オプティマインド
 
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdfjun_suto
 
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版DIGITAL VORN
 
20240209_case___________________________
20240209_case___________________________20240209_case___________________________
20240209_case___________________________i Smart Technologies
 
20240318_case___________________________
20240318_case___________________________20240318_case___________________________
20240318_case___________________________i Smart Technologies
 
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料inoue13
 
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料ssuser5a38bf
 
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版DIGITAL VORN
 
総合カタログ_日東工営株式会社
総合カタログ_日東工営株式会社総合カタログ_日東工営株式会社
総合カタログ_日東工営株式会社nittohkoeiweb
 
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版DIGITAL VORN
 

Recently uploaded (15)

株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
 
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
 
20240319_case___________________________
20240319_case___________________________20240319_case___________________________
20240319_case___________________________
 
ENECHANGE株式会社 データ事業(エネルギークラウド事業)紹介資料_20240408.pdf
ENECHANGE株式会社 データ事業(エネルギークラウド事業)紹介資料_20240408.pdfENECHANGE株式会社 データ事業(エネルギークラウド事業)紹介資料_20240408.pdf
ENECHANGE株式会社 データ事業(エネルギークラウド事業)紹介資料_20240408.pdf
 
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
 
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
 
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
 
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
 
20240209_case___________________________
20240209_case___________________________20240209_case___________________________
20240209_case___________________________
 
20240318_case___________________________
20240318_case___________________________20240318_case___________________________
20240318_case___________________________
 
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
 
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
 
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
 
総合カタログ_日東工営株式会社
総合カタログ_日東工営株式会社総合カタログ_日東工営株式会社
総合カタログ_日東工営株式会社
 
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
 

Switch VisionⓇ Lite / Module 操作マニュアル

  • 1. Switch VisionⓇ Lite / Module 操作マニュアル Ver 1.5.3 2022 年 7 月 あらゆる”モノ”に考える力を。人工脳 SOINNⓇ SOINN 株式会社
  • 3. 3 目次 操作マニュアルの著作権について 1 改訂履歴 2 目次 3 1. 本アプリについて 5 1.1. 本アプリの概要 5 1.2. 動作環境 5 2. アプリのインストール/アクティベーション方法 6 2.1.アプリのインストール 6 2.2.アプリのアクティベーション(有効化) 7 2.3.起動画面 9 3. 学習 10 3.1. 学習処理概要 10 3.2. 学習の設定項目 11 3.2.1 画像フォルダ 11 3.2.2 画像トリミング 12 3.2.3 画像リサイズ 12 3.2.4 背景除去 12 3.2.5 画像確認 12 3.3. 学習の実行 12 3.3.1 学習モードの選択 12 3.4. 保存したモデルの読み込み 12 4. モデル検証 13 4.1. 学習結果確認 13 4.2. ラベル変更 14 4.3. モデル保存 14 5. 予測 15 5.1. 予測処理概要 15 5.2. 予測の設定項目 16 入力データ 16 カメラ設定 16 予測モード 17
  • 4. 4 入力画像フォルダ 17 ファイル条件 17 モデル選択 17 閾値 17 出力先 17 5.3. 予測の実行 17 6. API 通信 20 6.1 動作仕様 20 URI scheme 20 エンドポイントリスト 20 6.2 画像データの予測リクエスト 20 入力 json 20 出力 json 21 サンプルプログラム 21 6.3 カメラ撮影による予測リクエスト 22 カメラ接続 22 カメラ推論 23 カメラ停止 23 サンプルプログラム 23 7. EtherNet/IP の接続方法 24 7.1 setting.json 24 7.2 動作シーケンス 25 カメラ接続 25 トリガ信号の送信 26 SwitchVision からの返信 26 カメラのクローズ 26 7.3 サンプルプログラム 26
  • 5. 5 1. 本アプリについて 1.1. 本アプリの概要 本画像検査 AI アプリは SOINN 株式会社(以下、SOINN)が開発した、画像検査 AI をグラフ ィカルユーザインタフェース(以下、GUI)上で操作し、ノーコードで AI モデルの構築から予測 可能なアプリです。 1.2. 動作環境 本アプリの動作には以下のシステム環境を推奨します。 OS Windows 10 64bit CPU 2 コア以上、2.4GHz 以上 メモリ 8 GB 以上 学習用/予測用の入力ファイルの形式は以下のとおりです。 ファイル形式 PNG, JPG, BMP ファイル
  • 6. 6 2. アプリのインストール/アクティベーション方法 2.1.アプリのインストール 1. SOINN AI サイト(https://soinn.ai/)にアクセスし、ログインします。ユーザー登録が未完 了の場合はユーザー登録をしてください。 2.Switch Vision Light または、Module を選択してインストーラーをダウンロードします。 本取扱説明書やチュートリアル動画もあります。 3. インストーラーを起動し、画面の指示に従ってインストールを進めます。
  • 7. 7 2.2.アプリのアクティベーション(有効化) 1. 初回認証用ファイル発行をクリックし、認証用ファイルを発行します。ダウンロードフォル ダに 01_request.txt ファイルが発行されます。 ※最新のバージョンは、Ver.1.5.*です。 2. SOINN AI サイトから、「ライセンス登録」もしくは「トライアルライセンス登録」を選択し、ラ イセンス購入手続きを完了してください。 トライアルライセンス登録は 1 回のみしかできませんのでご注意ください。使用許諾契約を 確認し、問題ないようでしたら「登録」ボタンを押してください。なお、ライセンス ID は管理・ 識別がしやすい任意の ID をご入力ください。
  • 8. 8 3. SOINN AI サイトから、「ライセンス使用状況/アクティベート」を選択し、先ほどアプリで作 成した認証用ファイル登録してアクティベーションファイルをダウンロードします。 こちらで登録された情報を元に 適切なライセンス管理を行っております。 4. アクティベーションファイルを登録してアプリを起動します。
  • 9. 9 2.3.起動画面 以下のような画面が表示されていれば、起動成功です。起動時は内部のモジュールをセッ トアップするのに 30~60 秒ほどお時間がかかりますので、ご了承ください。 図 1 起動画面 もし、エラーが発生した場合は、画面を閉じていただき再度起動をお願いいたします。解決 が見られない場合は、大変お手数ですが、SOINN 社担当者までご連絡をお願いいたしま す。
  • 10. 10 3. 学習 3.1. 学習処理概要 学習用の画像データを用意頂き、GUI 上で操作するのみで前処理から学習済みモデルを 作成できます。 図 2 学習画面(前処理前)
  • 11. 11 3.2. 学習の設定項目 アプリの学習タブで、学習対象の画像データが格納されたフォルダを選択します。また設定 項目を GUI 上で入力し、「学習実行」をクリックして学習します。 図 3 学習設定画面 3.2.1 画像フォルダ 学習に用いるフォルダを選択します。なお、指定された学習用画像フォルダ内は、任意の 英数字名のフォルダが 2 つ以上存在し、その下に画像が保存されている必要があります。 ``` - [指定された学習用画像フォルダ] - OK - image1.png - image2.png - image3.png … - NG - image1.png - image2.jpg … ``` 本アプリケーションでは、この任意のフォルダ名をラベルとして扱います。各フォルダには、 最低 5 枚以上の画像を用意して下さい。
  • 12. 12 3.2.2 画像トリミング 画像を切り抜く範囲を指定し、トリミング処理が可能です。学習や予測処理の高速化が見 込めます。 3.2.3 画像リサイズ 1~100 で、対象とする画像を何パーセントのリサイズ処理をかけるか設定できます。リサイ ズ値を小さくすると学習や予測処理の高速化が見込めます。 3.2.4 背景除去 画像内で背景とみなす RGB 値、もしくは輝度値の範囲を、0~255 で指定します。RGB 値の 場合は、各成分の範囲を全て満たす色領域が背景とみなされます。 3.2.5 画像確認 アプリ中央上部の Images で確認用画像フォルダを選択し、表示された画像をクリックする と、入力画像と前処理画像が確認できます。前処理パラメータが正しく設定されているか確 認して下さい。 3.3. 学習の実行 「学習を実行」をクリックすると学習が開始されます。 3.3.1 学習モードの選択 学習モードを選択できます。 1. 「簡易」モード: 探索を制限して、高速にモデル学習を行います。 2. 「詳細」モード: 詳細に探索を行い、時間をかけてモデル学習を行います。 3.4. 保存したモデルの読み込み 学習モードで「再学習」を選択し、保存したモデルを選択して「モデル読み込み」ボタンを押 すことで、保存したモデルの再確認、ラベル編集、再学習等を行うことができます。
  • 13. 13 4. モデル検証 4.1. 学習結果確認 学習が完了、または、既存モデルの読み込みを行うと、検証タブに移り、アプリ画面の中央 に特徴量を元にした 3D グラフが、右には学習画像に対して交差検証法(※1)で算出した混 同行列(※2)が、それぞれ表示されます。また、グラフの上部に、学習データに対する正解 率(※3)が表示されます。 (※1) 交差検証法(cross-validation: CV): 学習データを n 個のグループに分割し、 (n-1)個のグループでモデルを学習し残りの 1 個のグループで評価することを n 回 繰り返すことで、学習データ全体を有効に用いてモデルの評価を行う方法。 (※2) 混同行列: 行に正解ラベル、列に予測ラベルを取り、各セルに当てはまるデ ータ数をカウントした行列。対角成分が、正解したモデル予測を表す。 (※3) 正解率: 交差検証によって算出した、学習データ全体に対して、モデル予測が 正解したデータの割合。 図 4 学習結果
  • 14. 14 4.2. ラベル変更 3D プロット内のノードをクリックし、表示される画像のラベルの確認、変更をすることができ ます。データ作成時には NG としたが解析結果を確認すると OK にした方がよい、と判断さ れるものについては、ラベルを変更し、3D プロット下の「再学習実行」をクリックして、再学 習を行ってください。 4.3. モデル保存 モデルを保存する場合は、モデル名を入力し、「モデルを保存」をクリックします。保存する モデルは、交差検証法によって作成されたモデルとは異なり、学習データ全体を用いて学 習します。
  • 16. 16 5.2. 予測の設定項目 アプリの予測タブで設定項目を GUI 上で入力し、「予測実行」をクリックして予測します。 図 6 予測設定画面 入力データ 「ファイル」と「カメラ」を選ぶことができます。 「ファイル」では、指定された画像フォルダ内のファイルを読み込んで予測処理を行います。 「カメラ」では、PC に接続されたカメラから、直接画像を読み込んで予測処理を行います。 カメラ設定 アプリの起動前に、使用するカメラの情報を、設定ファイルに書き込みます。 ユーザーフォルダの”AppDataLocalProgramsimage-classification-multi- classresourcesserverdistconfig.json”、または、”AppDataLocalProgramsimage- classification-2classresourcesserverdistconfig.json”の"camera"の項目を編集し、カメ ラの解像度、fps を設定して下さい。 カメラ解像度の確認方法は、同封の”Switch Vision®Module のご案内” P.13 Switch Vision へのカメラ接続 を参照下さい。
  • 17. 17 尚、カメラは PC に一台のみ接続して下さい。(※内蔵カメラが有る場合は、デバイスマネージャで 無効に設定できます。) 予測モード 「連続実行」と「1 枚ずつ実行」を選ぶことができます。 「連続実行」では、画面描画は行わずに指定フォルダの最新画像を予測処理し、結果を CSV ファイルに書き込み続けます。「予測実行」で予測処理を開始し、「予測停止」が押さ れるまで処理を続けます。 「1 枚ずつ実行」では、学習時と同様にグラフに可視化しながら、結果を確認することができ ます。 入力画像フォルダ 予測に用いる対象となる画像が格納されるフォルダを指定します。 ファイル条件 正規表現にて、どのファイルをどのモデルが用いるのか指定することができます。 (例:ファイル名に「D1」が入るファイルを指定したい場合は、「.*D1」のように指定する. フォ ルダ内のすべてのファイルを指定したい場合は、「.*」と指定する.) モデル選択 ファイル条件で指定したファイルに対して、どのモデルを用いて予測処理をかけるのか設 定します。 なお、ファイル条件とモデル選択は複数設定することができます。どのファイル条件にも当 てはまらないファイルの場合、予測処理は行われません。また、複数のファイル条件に合 致するファイルの場合、より後半に指定したファイル条件が優先して適用されます。 閾値 モデルの予測確率に対して、グレー判定を行う閾値を 0~100 の間で設定することができま す。閾値が 0 の場合はグレー判定を出さず、閾値が大きいほど、グレー判定を出しやすく なります。 出力先 「CSV」と「Database」を選ぶことができます。「1 枚ずつ実行」モードの場合は表示されない のでご注意ください。 「連続実行」モードでは、結果を CSV もしくは指定の DB テーブルに保存することができま す。 Database は、Microsoft SQL Server, Oracle, MySQL に対応しています。詳細は、SOINN 社までお問い合わせ下さい。 5.3. 予測の実行
  • 18. 18 「1 枚ずつ実行」モードを選択すると、下部にフォルダ内の画像一覧が表示されます。それ ぞれの画像をクリックすると予測処理が実行され、中央の 3D グラフ中に新規ノードがプロ ットされます。さらに、画像一覧上部に判定結果が表示され、右部に予測確率グラフが表 示されます。 図 7 予測結果 「連続実行」モードでは、特にグラフ描画は行われませんが、指定の CSV ファイル内に結 果が書き込まれます。エクセルのような書き込み権限を掴むアプリで CSV ファイルを開い てしまうと、予測処理がエラーとなってしまうため、ご注意ください。VS Code などのエディタ であれば、CSV ファイルを開きながら予測処理を実行してもエラーとならず、また自動更新 されるため結果を随時確認することができます。 CSV の各ヘッダーは以下の通りです。 No. ヘッダ 形式 項目説明 1 date 日時(yyyy-mm-dd hh:mm:ss.sss) 予測処理が終了した時刻 2 processing_time 数値 画像を読み込むところから、結果を csv file に書き込む直前までの処理時間、単 位は ms
  • 19. 19 3 Image_path 文字列 予測処理を実施した画像ファイル名、拡 張子まで含む 4 condition_no 文字列 上から何番目に指定されたモデル名か 5 regrex 文字列 モデルに指定されたファイル抽出条件 6 model_path 文字列 予測処理に使用したモデル名 7 threshold 数値 閾値(0 ~ 100) 8 label 数値 判定結果(予測ラベル or グレー) 9 score 数値 予測したラベルの確率(0 ~ 1.00) 7 label_0 文字列 ユーザーが指定したラベル名 8 prob_0 数値 [label_0]の確率 9 label_1 文字列 ユーザーが指定したラベル名 10 prob_1 数値 [label_1]の確率 ※ label_0, prob_0, label_1, prob_1,,,は、モデル条件毎に、必要な分だけ作成されます。
  • 20. 20 6. API 通信 本製品は、Web API を通じた予測機能を備えています。 本製品を起動した状態で、下記の動作仕様で、予測処理を実行できます。 6.1 動作仕様 URI SCHEME Host: http://[Server_IP_Address]:5000 エンドポイントリスト エンドポイント メソッド 説明 /v1/predict/single/image POST 画像データの予測リクエスト. /v1/predict/single/camera POST カメラ撮影による予測リクエスト. /v1/http/camera/start POST カメラ接続. /v1/http/camera/stop POST カメラ停止. /v1/ethernetip/camera/start POST カメラ接続.(EtherNet/IP 用 7章) /v1/ethernetip/camera/stop POST カメラ停止.(EtherNet/IP 用 7章) 6.2 画像データの予測リクエスト 画像データ(8bit のビットマップ形式)とモデル情報を POST して、推論結果を得ることが出 来ます。 エンドポイント /v1/predict/single/image に対して、下記フォーマットを満たす JSON データ を POST リクエストで送って下さい。 ただし、並列処理には対応していないため、必ず 1 リクエストずつ送信し、レスポンスが返 ってきてから次のリクエストを送信して下さい。 入力 JSON キー名 型 説明 id string リクエストの ID を任意の文字列で指定する (省略可). img string 画像データ(8bit のビットマップ形式)を base64 でエンコー ドした文字列. サーバ側は base64 でデコードし、予測処理 を実行する. model_path string 予測に用いる学習済みモデルファイルを、フルパスで指定 する. threshold int [0〜100] 判定閾値を指定する. 例)
  • 21. 21 ``` { “id”: “test”, “img”: …, “model_path”: “C:Usersuser1AppDataRoamingimage-classification- 2classmodelstest”, “threshold”: 50 } ``` 出力 JSON 出力データは、5.3 と同様ですが、下記の追加項目が含まれています。 キー名 型 説明 id string 入力 JSON のリクエスト ID. status int 予測処理のステータスコード. 0: OK, 500: 予測モデル読み 込みエラー, 510: 画像デコードエラー, 999: その他のエラ ー 例) ``` { “id”: “test”, “status”: 0, “processing_time”: 0.123, “model_path”: “C:UsersusernameAppDataRoamingimage-classification- multi-classmodelstest”, “threshold”: 50, “label”: “OK”, “score”: 0.991, “label_0”: “NG”, “prob_0”: 0.009, “label_1”: “OK”, “prob_1”: 0.991 } ``` サンプルプログラム ```python:sample_API.py import json import base64 import cv2 import requests # API URI ROUTE = "http://127.0.0.1:5000" # path to the saved model at Server model_path = "C:/Users/username/AppData/Roaming/image-classification-multi- class/models/test" # threshold threshold = 50
  • 22. 22 # path to the image to predict at Client image_path = "C:/Users/username/image/Test/test.jpg" def post_predict_image(image, model_path, threshold, route=ROUTE): _, encimg = cv2.imencode(".bmp", image) img_str = encimg.tobytes() img_byte = base64.b64encode(img_str).decode("utf-8") data = { "img": img_byte, "model_path": model_path, "threshold": threshold } data_json = json.dumps(data).encode("utf-8") entrypoint = route + "/v1/predict/single/image" headers = {"Content-Type": "application/json"} r_post = requests.post(entrypoint, data=data_json, headers=headers) ret_json = json.loads(r_post.text) return ret_json if __name__ == "__main__": image = cv2.imread(image_path) # image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # if required res = post_predict_image(image, model_path, threshold) print("Post predict/image:", res) ``` 6.3 カメラ撮影による予測リクエスト カメラと接続し、カメラから画像を取得して、推論結果を得ることが出来ます。 カメラの設定は、5.2 カメラの設定を参照して下さい。 カメラ接続 キーを”settings”とするオブジェクトに、下記フォーマットを満たすカメラ設定オブジェクトの 配列を格納した JSON データを、エンドポイント /v1/http/camera/start に POST リクエス トで送って下さい。 キー名 型 説明 camera_id int PC にカメラが 1 つだけ接続されている場合は、0 番を使 用して下さい. model_path string 予測に用いる学習済みモデルファイルを、フルパスで指定 する. threshold int [0〜100] 判定閾値を指定する. save_dir string (任意) 撮影した画像を保存する場合は、保存フォルダを 指定する. 保存フォルダと同名のファイルが存在する場合 はエラーになり、推論も実行されません.
  • 23. 23 接続結果を、下記のステータスコードで確認できます. キー名 型 説明 status int ステータスコード. 0: OK, 500: 予測モデル読み込みエラー, 520:カメラ接続エラー, 521:保存フォルダエラー, 999: その 他のエラー カメラ推論 空の JSON データを、エンドポイント /v1/predict/single/camera に POST リクエストで送る ことで、接続設定したカメラから画像を取得し、予測結果を 6.2 と同様の形式で得ることが 出来ます。 JSON データには”id”を含めることが出来ます。 カメラ停止 空の JSON データを、エンドポイント /v1/http/camera/stop に POST リクエストで送って 下さい。 サンプルプログラム ```python:sample_API_camera.py import json import requests # API URI ROUTE = "http://127.0.0.1:5000" # path to the saved model at Server model_path = "C:/Users/username/AppData/Roaming/image-classification-multi- class/models/test" # Camera ID camera_id = 0 # threshold threshold = 50 # Save dir at Server save_dir = "C:/Users/username/Documents/camera" def post_camera_start(route=ROUTE): data = { "settings": [ { "camera_id": camera_id, "model_path": model_path, "threshold": threshold, "save_dir": save_dir
  • 24. 24 } ] } data_json = json.dumps(data).encode("utf-8") entrypoint = route + "/v1/http/camera/start" headers = {"Content-Type": "application/json"} r_post = requests.post(entrypoint, data=data_json, headers=headers) ret_json = json.loads(r_post.text) return ret_json def post_camera_stop(route=ROUTE): data = {} data_json = json.dumps(data).encode("utf-8") entrypoint = route + "/v1/http/camera/stop" headers = {"Content-Type": "application/json"} r_post = requests.post(entrypoint, data=data_json, headers=headers) ret_json = json.loads(r_post.text) return ret_json def post_predict_camera(route=ROUTE): data = {"id": str(time.time())} data_json = json.dumps(data).encode("utf-8") entrypoint = route + "/v1/predict/single/camera" headers = {"Content-Type": "application/json"} r_post = requests.post(entrypoint, data=data_json, headers=headers) ret_json = json.loads(r_post.text) return ret_json if __name__ == "__main__": # Camera start res = post_camera_start() # Predict camera res = post_predict_camera() print("Post predict/camera:", res) # Camera stop res = post_camera_stop() ``` 7. ETHERNET/IP の接続方法 SwitchVision は、EtherNet/IP プロトコルで送信された信号をトリガとして受信し、カメラ撮 影と画像判定を行うことができます。EtherNet/IP 接続される場合は、implicit 通信で使用 されるメモリの内、送受信で使用されるバイト位置とビット位置を setting.json に設定してく ださい。 7.1 SETTING.JSON
  • 25. 25 添付の setting.json の中で以下の設定は接続機器に従って変更してください。その他の設 定項目は必要が生じたときに設定してください。 "IPAddress": "192.168.0.5", SwitchVision にトリガを送る機器の IP アドレス "O_T_Length": 40, output(Object -> Target)用バイト数 "T_O_Length": 56, input (Target -> Object)用バイト数 "O_T_InstanceID": 101, output 用 Assembly Instance ID "T_O_InstanceID": 100, input 用 Assembly Instance ID "signalPos":{ "PosSendByte": 1, 接続機器が受信するバイト位置 "PosSendBit": 0, 接続機器が受信するビット位置 "PosRecieveByte": 1, SwitchVision が Trriger を受信するバイト位置 "PosRecieveBit": 7 SwitchVision が Trriger を受信するビット位置 }, 7.2 動作シーケンス EtherNet/IP 接続では、接続機器から SwitchVision に対して、SwitchVision に接続された カメラを使用して判定依頼を行うことができます。接続機器からは撮影・判定開始のトリガ となる信号を送るだけです。 カメラの設定は、5.2 カメラの設定を参照して下さい。 カメラ接続 まず、SwitchVision に、カメラ接続指示を出します。 キーを”settings”とするオブジェクトに、下記フォーマットを満たすカメラ設定オブジェクトの 配列を格納した JSON データを、エンドポイント /v1/ethernetip/camera/start に POST リ クエストで送って下さい。 送信を行うプログラムの例は 7.3 サンプルプログラムを参照してください。 キー名 型 説明 camera_id int PC にカメラが 1 つだけ接続されている場合は、0 番を使 用して下さい. model_path string 予測に用いる学習済みモデルファイルを、フルパスで指定 する. threshold int [0〜100] 判定閾値を指定する. save_dir string (任意) 撮影した画像を保存する場合は、保存フォルダを 指定する. 保存フォルダと同名のファイルが存在する場合 はエラーになり、推論も実行されません.
  • 26. 26 トリガ信号の送信 setting.json で指定した implicit メッセージの Target -> Object に割り当てられているメモリ のバイト位置(PosRecieveByte)とビット位置(PosRecieveBit)に HIGH 信号を送信して下さ い。 SWITCHVISION からの返信 PosSendByte に、画像分類結果のラベル番号に相当するビット位置に HIGH 信号を返しま す。 カメラのクローズ SwitchVision のカメラと接続を終了させる場合、終了の HTTP メッセージを送信します。 送信を行うプログラムの例は 7.3 サンプルプログラムを参照してください。 7.3 サンプルプログラム ```python:sample_ethernetip.py import json import requests ROUTE = "http://127.0.0.1:5000" # API URI # path to the saved model model_path = "C:/Users/username/AppData/Roaming/image-classification-multi- class/models/test" # threshold threshold = 50 # Camera_id camera_id = 0 # save camera image data save_dir = “C:/temp/camera” def ethernetip_camera_start(route=ROUTE): data = {'settings': [{“camera_id”: 0, “model_path”: model_path, “threshold”: threshold}]} data_json = json.dumps(data).encode("utf-8") entrypoint = route + "/v1/ethernetip/camera/start" headers = {"Content-Type": "application/json"} r_post = requests.post(entrypoint, data = data_json, headers=headers) ret_json = json.loads(r_post.text) return ret_json def ethernetip_camera_stop(route=ROUTE): entrypoint = route + "/v1/ethernetip/camera/stop" headers = {"Content-Type": "application/json"} r_post = requests.post(entrypoint, headers=headers) ret_json = json.loads(r_post.text) return ret_json
  • 27. 27 if __name__ == "__main__": print("Ethernet/IP Connection Start") ethernetip_camera_start() var = input("Hit Any Key...") print("Ethernet/IP Connection Stop") ethernetip_camera_stop() ```