
個人用防護具(PPE)検出器モデルは、職場や地域の環境で危険への曝露を制限する機器の存在を確認するのに役立ちます。
このモデルは、特定の人物とその人物が着用している PPE アイテム(手袋、マスク、ヘルメット)を検出します。このモデルは、PPE アイテムを検出し、アイテムが対応する人体の部位を覆っているかどうかを判断します。モデルは、このカバレッジ情報を [0, 1] の範囲のカバレッジ スコアとして報告します。このモデルは、動画ストリームを入力として受け取ります。モデルは、BigQuery で表示できるプロトコル バッファとして検出結果を出力します。モデルは 1 FPS で実行されます。
PPE 検出演算子には、設定できる 3 つの制御パラメータがあります。
PersonalProtectiveEquipmentDetectionConfig
でenableHeadCoverageDetection
を true に設定します。
頭部カバー: オペレーターは、頭部カバーに関連する PPE アイテム情報を出力します。この値は Google Cloud コンソールで設定するか、PersonalProtectiveEquipmentDetectionConfig
でenableFaceCoverageDetection
を true に設定します。
顔面カバー: オペレーターは、顔の覆いに関する PPE アイテム情報を出力します。この値は Google Cloud コンソールで設定するか、PersonalProtectiveEquipmentDetectionConfig
でenableHandsCoverageDetection
を true に設定します。
手袋: オペレーターは、手覆い関連の PPE アイテム情報を出力します。この値は Google Cloud コンソールで設定するか、
PPE 検出モデルアプリの仕様
次の手順で、Google Cloud コンソールで PPE 検出モデルを作成します。
コンソール
コンソールでアプリを作成する Google Cloud
PPE 検出アプリを作成するには、アプリを作成するの手順に沿って操作します。
PPE 検出モデルを追加する
モデルノードを追加するときに、事前トレーニング済みモデルのリストから PPE 検出機能を選択します。
オプション メニューで、検出する PPE の種類を設定します。
BigQuery コネクタを追加する
出力を使用するには、アプリを BigQuery コネクタに接続します。
BigQuery コネクタの使用方法については、BigQuery にデータを接続して保存するをご覧ください。BigQuery の料金については、BigQuery の料金ページをご覧ください。
BigQuery で出力結果を表示する
モデルが BigQuery にデータを出力したら、BigQuery ダッシュボードで出力アノテーションを表示します。
BigQuery パスを指定しなかった場合、Vertex AI Vision の
Studio ページでシステムによって作成されたパスを確認できます。Google Cloud コンソールで、[BigQuery] ページを開きます。
ターゲット プロジェクト、データセット名、アプリケーション名の横にある
[展開] を選択します。テーブルの詳細ビューで [プレビュー] をクリックします。結果は [アノテーション] 列に表示されます。出力形式の詳細については、モデル出力をご覧ください。
アプリは結果を時系列で保存します。最も古い結果がテーブルの先頭に、最新の結果がテーブルの末尾に追加されます。最新の結果を確認するには、ページ番号をクリックして最後のテーブル ページに移動します。
モデル出力
モデルの出力には、タイムスタンプ、検出ボックス、ボックスに対応するオブジェクトラベル、そのオブジェクトの信頼度スコアが含まれます。出力ストリームのレートのレートは 1 秒あたり 1 フレームです。
モデルの出力は、動画フレームと PPE 検出予測結果に関する情報が含まれるプロトコル バッファ形式です。このモデルの目的は、作業者が保護具を適切に着用しているかどうかを確認することです。その結果、モデルは人物とその人物が着用している PPE の検出に重点を置きます。モデルの出力は人物検出に重点を置いています。検出された人物ごとに、その人物の周囲の PPE と、各機器のカバレッジ スコアが一覧表示されます。
次のプロトコル バッファの例では、次の点に注意してください。
- 現在の時刻 - 推論結果が生成された時刻をタイムスタンプで示します。
- 検出された人物 - 人物が特定された 1 つのボックス、PPE が特定された複数のボックス、各身体部位のカバレッジ スコアを含むメインの検出結果。
- 人物の識別ボックス - 境界ボックス、信頼度スコア、人物エンティティ。
- PPE の識別ボックス - 境界ボックス、信頼度スコア、PPE エンティティ。
アノテーション出力の JSON オブジェクトの例
{ "currentTime": "2022-11-10T21:02:13.499255040Z", "detectedPersons": [ { "personId": "0", "detectedPersonIdentifiedBox": { "boxId": "0", "normalizedBoundingBox": { "xmin": 0.486749, "ymin": 0.35927793, "width": 0.048630536, "height": 0.21746585 }, "confidenceScore": 0.31775203, "personEntity":{ "personEntityId":"0" } }, "detected_ppe_identified_boxes": { "normalized_bounding_box": { "xmin": 0.07268746, "ymin": 0.80575824, "width": 0.22973709, "height": 0.18754286 }, "confidence_score": 0.45171335, "ppe_entity": { "ppe_label_string": "Glove", "ppe_supercategory_label_string": "Hand Coverage" } }, "detected_ppe_identified_boxes":{ "normalized_bounding_box":{ "xmin": 0.35457548, "ymin": 0.016402662, "width": 0.31828704, "height": 0.18849815 }, "confidence_score": 0.44129524, "ppe_entity":{ "ppe_label_string": "Helmet", "ppe_supercategory_label_string": "Head Coverage" } } } ] }
プロトコル バッファの定義
// Output format for Personal Protective Equipment Detection Operator
message PersonalProtectiveEquipmentDetectionOutput {
// Current timestamp
protobuf.Timestamp current_time = 1;
// The entity info for annotations from person detection prediction result
message PersonEntity {
// Entity id
int64 person_entity_id = 1;
}
// The entity info for annotations from PPE detection prediction result
message PPEEntity {
// Label id
int64 ppe_label_id = 1;
// Human readable string of the label (Examples: helmet, glove, mask)
string ppe_label_string = 2;
// Human readable string of the super category label (Examples: head_cover,
// hands_cover, face_cover)
string ppe_supercategory_label_string = 3;
// Entity id
int64 ppe_entity_id = 4;
}
// Bounding Box in the normalized coordinates
message NormalizedBoundingBox {
// Min in x coordinate
float xmin = 1;
// Min in y coordinate
float ymin = 2;
// Width of the bounding box
float width = 3;
// Height of the bounding box
float height = 4;
}
// PersonIdentified box contains the location and the entity info of the
// person
message PersonIdentifiedBox {
// An unique id for this box
int64 box_id = 1;
// Bounding Box in the normalized coordinates
NormalizedBoundingBox normalized_bounding_box = 2;
// Confidence score associated with this box
float confidence_score = 3;
// Person entity info
PersonEntity person_entity = 4;
}
// PPEIdentified box contains the location and the entity info of the PPE
message PPEIdentifiedBox {
// An unique id for this box
int64 box_id = 1;
// Bounding Box in the normalized coordinates
NormalizedBoundingBox normalized_bounding_box = 2;
// Confidence score associated with this box
float confidence_score = 3;
// PPE entity info
PPEEntity ppe_entity = 4;
}
// Detected Person contains the detected person and their associated
// PPE and their protecting information
message DetectedPerson {
// The id of detected person
int64 person_id = 1;
// The info of detected person identified box
PersonIdentifiedBox detected_person_identified_box = 2;
// The info of detected person associated ppe identified boxes
repeated PPEIdentifiedBox detected_ppe_identified_boxes = 3;
// Coverage score for each body part
// Coverage score for face
optional float face_coverage_score = 4;
// Coverage score for eyes
optional float eyes_coverage_score = 5;
// Coverage score for head
optional float head_coverage_score = 6;
// Coverage score for hands
optional float hands_coverage_score = 7;
// Coverage score for body
optional float body_coverage_score = 8;
// Coverage score for feet
optional float feet_coverage_score = 9;
}
// A list of DetectedPersons
repeated DetectedPerson detected_persons = 2;
}
ベスト プラクティスと制限事項
PPE 検出機能を使用する際に最良の結果を得るには、データの取得とモデルの使用時に次の点を考慮してください。
ソースデータに関する推奨事項
推奨: 可能であれば、検出対象を静止させてカメラに向けます。
PPE 検出機能で正しく処理できる画像データのサンプル:
![]() |
![]() |
![]() |
推奨されない: フレーム内の重要な PPE アイテムが小さすぎる画像データは避けてください。
PPE 検出機能で正しく処理できない画像データの例:
![]() |
推奨されない: 主な PPE アイテムを珍しい視点や不規則な角度から撮影した画像データは避けてください。
PPE 検出機能で正しく処理できない画像データの例:
![]() |
制限事項
- 解像度: 推奨される入力動画の最大解像度は 1,920 x 1,080、最小解像度は 160 x 120 です。
- 検出可能な最小オブジェクト サイズ: フレームサイズの 5% 未満を占有するシーン内のオブジェクトはすべて無視されます。
- 照明: 動画の照明は通常の状態である必要があります。動画データの明るさや暗さが極端な場合、検出機能のパフォーマンスが低下することがあります。
- PPE アイテムの配置: PPE モデルは、ユーザーが PPE アイテムを適切に使用しているかどうかを分析することに重点を置いています。その結果、PPE を着用していない場合は、モデルはそのアイテムを無視します。
- PPE アイテムの種類: このモデルは、医療用 PPE アイテムではなく、建設用保護具に重点を置いています。そのため、医療センターや病院では検出機能がうまく機能しないことがあります。
- カスタム PPE タイプ: PPE モデルは、お客様が定義した PPE アイテムをサポートしていません。このモデルは、ヘルメット、マスク、手袋の検出をサポートしています。
このリストはすべてを網羅しているわけではなく、これらの制限と機能は今後のプロダクトの変更によって変わる可能性があります。