- Community Home
- >
- HPE Community, Japan
- >
- HPE Blog, Japan
- >
- AI/IoT Data Pipline Lab - Google Cloud Visual Insp...
HPE Blog, Japan
1820699
メンバー
2482
オンライン
109627
解決策
フォーラム
カテゴリ
Company
Local Language
戻る
フォーラム
ディスカッションボード
フォーラム
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
ディスカッションボード
ディスカッションボード
ディスカッションボード
ディスカッションボード
フォーラム
ディスカッションボード
戻る
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
ブログ
コミュニティ言語
言語
フォーラム
ブログ
AI/IoT Data Pipline Lab - Google Cloud Visual Inspection AIを使用した外観検査ソリューションの検証 ~ モデル展開編
ayonekura
07-12-2023
09:30 AM
「AI/IoT Data Pipline Lab - Google Cloud Visual Inspection AIを使用した外観検査ソリューションの検証 ~ モデル評価編 」では、Visual Inspection AI作成した外観検査用モデルを評価する方法ついてお伝えしました。本稿では、Visual Inspection AIで作成したモデルを自身の環境に展開します。Visual Inspection AIのモデルはコンテナ形式でエクスポートされます。コンテナ動作環境があればどこで動作させることが可能です。そこで、Dockerがインストールされている環境でモデルコンテナを起動し、画像データから良品と不良品を推論してみます。
モデルの展開
展開用モデルコンテナの作成
自身の準備する環境にモデルを展開するため、モデルをエクスポートします。モデルの評価の際にテスト用にモデルをエクスポートしましたが、同様の手順で展開用にモデルをエクスポートします。モデルの評価時と同様にVisual Inspection AIの[Models]メニューから[Test&Use]の画面を開き、[CREATE SOLUTION ARTIFAC]をクリックします。
画面の指示に従って操作します。数分で実行環境で動作可能なモデルコンテナが作成されます。Purpose]列がDeploymentであるコンテナが作成されます。鉛筆マークをクリックするとモデルコンテナの情報が表示されます。
[Container Registry Location]をメモしておきます。
続いて、Dockerがインストールされた環境にモデルコンテナを展開します。同環境にはgcloudコマンドツールもインストールされており、Google Cloudを操作するために必要な認証等の設定は実施済みの環境となります。
gcloudを使用して Container Registry へのリクエストを認証するように Docker を構成します。
$ gcloud auth configure-docker
Adding credentials for all GCR repositories.
WARNING: A long list of credential helpers may cause delays running 'docker build'. We recommend passing the registry name to configure only the registry you are using.
After update, the following will be written to your Docker config file located at [/root/.docker/config.json]:
{
"credHelpers": {
"gcr.io": "gcloud",
"us.gcr.io": "gcloud",
"eu.gcr.io": "gcloud",
"asia.gcr.io": "gcloud",
"staging-k8s.gcr.io": "gcloud",
"marketplace.gcr.io": "gcloud"
}
}
Do you want to continue (Y/n)? Y
Docker configuration file updated.
検証ではモデルコンテナの保存先として、検証当時のデフォルトの選択肢となっていたContainer Registryを指定していますが、Contaire Registryは今後Artifact Registryに移行していく予定となっています。
モデルコンテナを起動します。起動するコンテナイメージとして、メモしたContainer Registry Locationを指定します。
# docker run --rm -d --name cosmetic-prediction --publish=8602:8602 --publish=8603:8603 <Container Registry Location>
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
04d09993b783 <Container Registry Location> "/google/visual_insp…" 3 seconds ago Up 2 seconds 8601/tcp, 0.0.0.0:8602-8603->8602-8603/tcp, :::8602-8603->8602-8603/tcp cosmetic-prediction
起動したモデルコンテナにhttpでアクセス(POST)すると推論結果を取得できるようになっています。画像データをBase64でエンコードし、リクエスト用のjsonファイルを作成します。
$ base64_image=`cat <画像データ> | base64 -w 0`
$ # 例) base64_image=`cat kekkan.jpg | base64 -w 0`
$ cat <<EOF > request.json
{
"image_bytes": "$base64_image"
}
EOF
curlコマンドでアクセスして推論結果を取得してみます。推論結果には、欠陥箇所を予測した画像データなどや、予測における信頼度の情報が取得できます。
$ curl -X POST -H "Content-Type: application/json" -d '@request.json' http://localhost:8602/v1/visualInspection:predict | jq .
{
"predictionResult": {
"annotationsGroups": [
{
"annotationSet": {
"name": "projects/456322257564/locations/us-central1/datasets/2696163040004407296/annotationSets/3281272550771916800",
"displayName": "Predicted Masks Regions",
"mask": {},
"createTime": "2022-11-02T15:37:39.721414Z",
"updateTime": "2022-11-02T15:37:39.721414Z"
},
"annotations": [
{
"name": "localAnnotations/1",
"annotationSetId": "3281272550771916800",
"mask": {
"confidenceMask": {
"imageBytes": "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"
},
"categoryMask": {
"imageBytes": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAIUCAIAAACCRSFiAAAEuElEQVR4Xu3czVHDMBCA0UA5lEUjDI1QFvWQUwbkYMvy32r13tGTiR0d9oucjG83AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEjtpTwAw3j/eCsP/fX1+V0eAk4hTiP6PZRHmL+LEWowwrrBhcRpFKsGdKeTd9Vn3FGnywWRiVN+u4/sxVn8OOPiK6d2v9qTNXxkYEqckut91ndKomAjccpMmS6kT7CFOKWlTBFIFLQRp5yUKQ59ggbilI0sBaRPsNZreQAAriZOcDjbWVjLbb1UDMHI3NyDenZOAIQjTnAS+1qoJ04AhCNOcBK/OUE9cQIgHHECIBxxAiAccQIgHHGCM/g3BKwiTqmYgEAO4pSNPgEJeLZeTh5GEIpvDLCWnRMcS5mggZ1TWjZP/5nWolirxws2ruH0REAlccps42ztRdGSI5LQtpJHXAkMQpySa5uqwV0+9GtW9fKLhK6JU341kzSysFN+ZmHDXjP0QpyGMDNGIzDKgYI4jSJUn9QImCdOYzk0UffkTN9fh4AG4jSiaUKe0hUArnePVmW3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAON4PMShoJZW+TYcAAAAASUVORK5CYII="
},
"annotationSpecColors": [
{
"annotationSpecId": "1617265605981765632",
"color": {
"red": 0.384313732,
"green": 0.498039216,
"blue": 0.164705887
},
"annotationSpecDisplayName": "paint"
},
{
"annotationSpecId": "5449828888874057728",
"color": {},
"annotationSpecDisplayName": "none"
}
]
},
"source": {
"type": "MACHINE_PRODUCED",
"sourceModel": "projects/456322257564/locations/us-central1/solutions/2564201853461987328/modules/5751290238198611968/models/4876166943419138048"
}
}
]
},
{
"annotationSet": {
"name": "projects/456322257564/locations/us-central1/datasets/2696163040004407296/annotationSets/3339819345927733248",
"displayName": "Predicted Classification Labels",
"classificationLabel": {},
"createTime": "2022-11-02T15:37:39.819629Z",
"updateTime": "2022-11-02T15:37:39.819629Z"
},
"annotations": [
{
"name": "localAnnotations/0",
"annotationSpecId": "1555904061058842624",
"annotationSetId": "3339819345927733248",
"classificationLabel": {
"confidenceScore": 0.709148288
},
"source": {
"type": "MACHINE_PRODUCED",
"sourceModel": "projects/456322257564/locations/us-central1/solutions/2564201853461987328/modules/5751290238198611968/models/4876166943419138048"
},
"annotationSpecDisplayName": "defect"
}
]
}
]
},
"predictionLatency": "1.829452973s"
}
categoryMaskのimageBytesを復元してみると以下のような画像となっており、元画像と比較してみると白いマジック部分が緑色になっていて、欠陥と認識されたことがわかるかと思います。
画像データのデコード
$ echo iVBORw0KGgoAAAANSUhE...<省略>...AAAAAAAAAAON4PMShoJZW+TYcAAAAASUVORK5CYII= | base64 -d > categoryMask.jpg
kekkan.jpg
categoryMask.jpg
まとめ
今回は、展開用にモデルをエクスポートし、Dockerがインストールされた環境でモデルを起動しました。また、起動後、httpでアクセスし画像データの推論を実施してみました。推論結果として欠陥箇所が示された画像を取得できることが確認できました。
ラベル:
- ブログへ戻る
- より新しい記事
- より古い記事
最新のコメント
- kkuma 場所: HPE Linux技術情報サイトの歩き方~CentOS代替ディストビューション情報について~
- 土井康裕 場所: 篠田の虎の巻「PostgreSQL 15 GA 新機能検証結果」公開!
- MiwaTateoka 場所: Windows Server 2019のCertificate of Authenticity (C...
- 今更感 場所: 【連載】導入前のアドバイス – アレイコントローラー
- OEMer 場所: タイトル: HPE OEM Windows Serverのライセンスに関する質問にすべて回答しましょ...
- いわぶちのりこ 場所: 【連載】次世代ハイパーコンバージド「HPE SimpliVity」を取り巻くエコシステム ー 第3回...
- Yoshimi 場所: ジェフェリー・ムーア氏からのメッセージ - 未訳の新著 "Zone To Win" を解説! (2)...
- Yoshimi 場所: ジェフェリー・ムーア氏からのメッセージ - 未訳の新著 "Zone To Win" を解説! (...
- 三宅祐典 場所: 「HPE Synergy」 発表! ~ (3) この形・・・ ブレードサーバー??
上記の意見は、Hewlett Packard Enterpriseではなく、著者の個人的な意見です。 このサイトを使用することで、利用規約と参加規約に同意したことになります 。
企業情報
© Copyright 2025 Hewlett Packard Enterprise Development LP