Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
ガイド

PPEの未着用検出:Construction-PPEでUltralytics YOLOをトレーニング

Construction-PPEがヘルメット、ベスト、手袋の未着用をどのようにラベル付けしているかを確認し、Ultralytics YOLOをトレーニングして、現場のカメラ映像からPPEの未着用を検出する方法を紹介します。

Paula DerrengerPaula Derrenger13 分で読めます
Construction-PPEがヘルメット、ベスト、手袋の未着用をどのようにラベル付けしているかを確認し、Ultralytics YOLOをトレーニングして、現場のカメラ映像からPPEの未着用を検出する方法を紹介します。

PPEの未着用を確実に検出するには、カメラに映っているものだけをラベル付けします。新しいUltralytics Construction-PPEデータセットでは、鉄骨の梁の陰に隠れた頭部は、ヘルメット未着用として扱いません。ヘルメットを着用していない、実際に見えている頭部にのみno_helmetのボックスを付けます。遮蔽されている頭部やフレーム外の頭部には、未着用を示すラベルを一切付けません。

2026年11月3日、Ultralytics 8.4.200でデータセットを公開しました。画像1,000枚、12クラス、人物、フォークリフト、保護具、目視できる保護具の未着用に関するレビュー済みバウンディングボックス14,863個を収録し、画像とアノテーションはCC BY 4.0のライセンスで提供しています。クラスには専用のno_vestとforkliftが含まれ、アノテーションはUltralyticsチームがレビューしました。このガイドでは、データセットの内容、PPE未着用のラベル付けルール、そしてデータセットを使ってUltralytics YOLO26モデルをトレーニング、検証、デプロイする方法を説明します。

Construction-PPEは、12クラスを収録したレビュー済みのPPE検出データセットです#

Construction-PPEは、建設現場や工業施設向けにUltralyticsチームが作成し、2026年11月にオープンソースとして公開した、独自の物体検出データセットです。建設現場、作業場、倉庫、荷積みエリア、メンテナンス作業の画像を収録し、視点、照明、作業員の配置、フォークリフトの稼働状況もさまざまです。保護具の外観と、保護具が目視できる範囲で欠けている状態の両方を検出器に学習させることを目的としています。

トレーニングを始める前に確認しておきたい情報を、Construction-PPEデータセットのドキュメントから紹介します。

  • 規模:12クラスにわたる画像1,000枚、バウンディングボックス14,863個
  • 分割:トレーニング用800枚、検証用200枚の固定分割。独立したテストセットはありません
  • フォーマット:Ultralytics YOLOフォーマットのバウンディングボックス。変換せずにトレーニングに使用できます
  • 画像:人が収集・生成した画像。横長、縦長、正方形の構図で、解像度もさまざまです
  • アノテーション:専門家による人手のアノテーションとAIによる自動アノテーションを組み合わせ、2026年11月にUltralyticsチームが完了しました
  • ライセンス:画像とアノテーションはクリエイティブ・コモンズ 表示 4.0 国際の下で提供され、クレジット表記を条件に商用利用が可能です

生成画像は実際の出来事を撮影した写真ではありません。そのため、このデータセットでトレーニングしたモデルの最終テストは、実際に使用するカメラの映像で行う必要があります。

Ultralytics Platformで画像とアノテーションをすべて閲覧したり、データセットをワークスペースに複製したり、データセットを直接使ってトレーニングしたりできます。

Ultralytics Platform上のConstruction-PPEデータセットページ。画像、クラス、アノテーション数を表示

すべてのPPEクラスに未着用を示す対応クラスがあります#

12クラスは、保護具クラス5つ、保護具未着用クラス5つ、現場を移動する人物と車両のクラス2つの3グループに分かれています。以下のIDはアノテーションとconstruction-ppe.yamlに対応しています。

IDクラスボックスの対象
0helmet保護ヘルメットまたは安全帽
1gloves作業用手袋
2vest高視認性安全ベスト、ジャケット、またはシャツ
3boots保護用作業ブーツまたは作業靴
4goggles保護眼鏡
5Person人物
6no_helmetヘルメットを着用していない、目視できる頭部
7no_goggle保護眼鏡を着用していない、目視できる目の周辺
8no_gloves手袋を着用していない、目視できる手
9no_boots保護用作業靴を履いていない、目視できる足または履物
10forkliftフォークリフト
11no_vest高視認性安全服を着用していない、目視できる胴体

各保護具クラスには、対応する「未着用」クラスがあります。この組み合わせによって、保護具がない状態をモデルに直接学習させられるため、ヘルメットのない頭部やベストを着用していない胴体を独立した検出対象としてマークできます。ボックスがないことから未着用を推測する処理を、コードに任せる必要はありません。

Ultralytics Platform上のConstruction-PPEのClassesタブ。出現頻度が最も高いブーツとPersonから、最も低いフォークリフトとno_goggleまで、全12クラスのアノテーション数を表示

PPE未着用ラベルは、推測ではなく目視できる身体部位に付けます#

保護具未着用クラスには、明確な定義が必要です。梁の陰に隠れていたり、フレームの端で切れていたりする頭部も含め、ヘルメットを確認できない頭部すべてにアノテーション担当者がボックスを付けると、モデルは遮蔽そのものを違反の意味だと学習してしまいます。

Construction-PPEでは、5つの未着用クラスすべてに一貫したルールを適用しています。未着用を示すボックスは、保護具を着用するはずの目視できる身体領域に付けます。身体部位が遮蔽されている、またはフレーム外にあるだけでは、保護具の未着用とは判断しません。具体的には、次のとおりです。

  • ヘルメットを着用していない、目視できる頭部にno_helmetのボックスを付けます。
  • 目視できる素手にno_glovesのボックスを付けます。工具箱の陰に隠れた手には付けません。
  • 高視認性衣類を着用していない、目視できる胴体にno_vestのボックスを付けます。
  • 保護用作業靴ではない、目視できる足または靴にno_bootsのボックスを付けます。
  • 保護眼鏡を着用していない、目視できる目の周辺にno_goggleのボックスを付けます。
  • 保護具クラスでは目視できる保護具そのものにボックスを付けるため、ベストと着用者にはそれぞれ別のボックスが付きます。

同じ現場にいる2人の作業員。一方は運んでいる合板の陰に頭部が隠れており、Personとベストのボックスのみが付いている。もう一方は頭部が見えており、no_helmetとno_vestのラベルが付いている

左側の作業員は、運んでいる合板の陰に頭部が隠れているため、ヘルメットの有無についてラベルは付いていません。右側の作業員は、目視できる頭部にヘルメットがなく、胴体にも高視認性衣類がないため、どちらにも未着用を示すボックスが付いています。

このルールは、このデータセット以外でのデータラベリングにも重要です。Construction-PPEを自分のカメラ画像で拡張する場合も、同じルールでラベル付けしてください。そうしないと、モデルは同じ質問に対して矛盾する答えを学習します。Academyのアノテーションのベストプラクティスのレッスンでは、このようなルールをラベリングガイドに記述する方法と、人間参加型レビューによって自動化で見落とすケースを検出できる理由を説明しています。

フォークリフトとno_vestで、車両の周辺状況も同じモデルで把握できます#

現場のルールには、保護具の未着用だけでなく、人と車両が同じ空間を共有する状況に関するものも多くあります。forkliftクラスにより、車両と作業員を同じ検出器で扱えます。そのため、1つのYOLO26モデルでフォークリフトとその近くにいる人物、高視認性衣類を着用していない目視可能な胴体を一度の推論で返せます。

専用のno_vestクラスを使用すると、Construction-PPEでトレーニングしたモデルは、荷積み場のforklift、Person、no_vestのボックスを一度の推論で返せます。

倉庫の荷積み場。フォークリフト、ベストを着た作業員、no_vestとno_helmetのラベルが付いた別の作業員がいる

これらのボックスをイベントに結び付ける処理は、アプリケーション側のロジックです。各no_vestボックスと適切な人物を対応付け、フォークリフトの「近く」をどう定義するかを決め、状態がどれくらい続いたらイベントとするかを設定します。近接距離を測定する場合、距離計算ガイドでは選択したボックスの中心間のピクセル距離を計算します。実世界の距離を求めるには、カメラのキャリブレーションが必要です。

数行のコードでYOLO26をConstruction-PPE上でトレーニング#

まず、Ultralytics Pythonパッケージを使います。初回使用時に、YOLOがデータセットのアーカイブをダウンロードして展開します。

from ultralytics import YOLO

# COCOで事前トレーニングしたYOLO26 nanoモデルから開始します
model = YOLO("yolo26n.pt")

# Construction-PPEアーカイブでトレーニングします
model.train(
    data="https://github.com/ultralytics/assets/releases/download/v0.0.0/construction-ppe.zip",
    epochs=100,
    imgsz=640,
)

CLIでは、次の1行で同じ処理を実行できます。

yolo detect train model=yolo26n.pt data=https://github.com/ultralytics/assets/releases/download/v0.0.0/construction-ppe.zip epochs=100 imgsz=640

パイプラインの確認には、YOLO26nモデルが最初の実行に適しています。現場カメラの距離では手袋、ゴーグル、ブーツは小さく映るため、モデルのサイズを決める前にYOLO26sやYOLO26mなど大きいモデルと比較してください。トレーニングのドキュメントでは、画像サイズ、バッチサイズ、その他すべての引数について説明しています。ブラウザー上で無料のGPUを使いたい場合は、Ultralyticsが公開しているConstruction-PPE用Colabノートブックも利用できます。

コードを書かずに使いたい場合は、Ultralytics Platformでトレーニングできます#

Ultralytics PlatformでConstruction-PPEデータセットを開き、YOLO26モデルを使ったクラウドトレーニングを開始します。エポック数、画像サイズ、GPUはブラウザーで選択できます。Platformでは損失曲線、エポックごとの適合率、再現率、mAPを追跡し、実行結果を並べて比較できます。独自のカメラ画像を追加するには、Exploreからデータセットを複製し(Ultralytics Platform Exploreガイドを参照)、画像をアップロードしてアノテーションエディターでラベル付けします。Smart Annotationで作成したボックス案を確認することもできます。

単一の平均値ではなく、クラスごとにモデルを評価します#

単一のmAPの値では、安全管理チームが知る必要のある情報が隠れてしまいます。人物、ヘルメット、ベストを確実に検出できるため全体のスコアは高くても、no_glovesやno_goggleのケースの大半を見逃すモデルもあります。クラスごとの指標で検証してください。

from ultralytics import YOLO

model = YOLO("runs/detect/train/weights/best.pt")
metrics = model.val()  # uses the dataset's 200-image validation split

print(f"mAP50: {metrics.box.map50:.3f}  mAP50-95: {metrics.box.map:.3f}")
for c in metrics.box.ap_class_index:
    print(f"{model.names[c]:>10}  mAP50-95: {metrics.box.maps[c]:.3f}")

まず未着用クラスの行を確認し、検証時に保存される混同行列を開きます。helmetとno_helmetが混同されている場合や、未着用クラスがほとんど検出されない場合は、見逃した画像を調べ、ほかの変更を加える前にトレーニング用データにそのクラスのインスタンスがいくつ含まれているか確認してください。YOLOの性能指標ガイドでは、各グラフの読み方を説明しています。

検証用画像200枚は、トレーニングセットと同じデータ収集元の画像です。デプロイ前に、実際に運用するカメラから独立したデータセットを収集して検証し、そのデータを使って現場での性能を測定してください。

PPE未着用の検出結果をレビュー可能なイベントに変換します#

保護具の未着用が独立したクラスになっているため、最初のレビュー用ルールは簡潔にできます。信頼度しきい値を超えるPPE未着用ボックスを含むフレームにフラグを付けます。

from ultralytics import YOLO

MISSING = {"no_helmet", "no_goggle", "no_gloves", "no_boots", "no_vest"}

model = YOLO("runs/detect/train/weights/best.pt")
for r in model.predict("site_camera_frame.jpg", conf=0.4):
    for cls, conf in zip(r.boxes.cls.int().tolist(), r.boxes.conf.tolist()):
        if r.names[cls] in MISSING:
            print(f"Review: {r.names[cls]} ({conf:.2f})")

動画の場合は、predictをtrackに置き換えます。物体追跡では、フレーム間の検出対象にIDが割り当てられます。アプリケーション側で、各PPE未着用ボックスを人物のトラックに関連付けます。たとえば、ボックスを含んでいるPersonボックスを確認します。さらに、継続時間とイベントのルールを適用すれば、レビュー担当者には大量のフレームではなく1つのイベントが表示されます。

Ultralytics 8.4.202以降、RTSPストリームとWebカメラから保存した推論結果は、各ストリーム固有のフレームレートを使用するため、録画クリップは適切な速度で再生されます。モデルの準備ができたら、モデルをエクスポートしてONNX、TensorRT、OpenVINOなどのフォーマットでエッジデバイスに配置するか、Platformからデプロイして専用エンドポイントで利用できます。

検出器が報告できるのは、カメラで見える内容です。ヘルメットが認証済みか、ベストが破損しているかは判断できないため、イベントは判断できる人に確認してもらってください。

Construction-PPEの利用対象#

建設現場、作業場、倉庫、荷積みエリアで、5種類のPPEとその未着用を検出するための出発点としてConstruction-PPEを使用してください。次のようなニーズに適しています。

  • 保護具の検出だけでなく、未着用も検出できます。目視できる身体部位に関する一貫したルールでラベル付けされた5つの専用未着用クラスにより、保護具がない状態をモデルに直接学習させられます。
  • 1つのモデルで車両と歩行者を認識できます。forklift、Person、no_vestを組み合わせることで、荷積み場のケースに対応します。
  • データセットのライセンスが明確で、ラベルはすぐにトレーニングに使用できます。画像とアノテーションはCC BY 4.0で提供され、クレジット表記を条件に商用利用が可能です。YOLOフォーマットのラベルは、変換せずにYOLO26のトレーニングに使用できます。このデータセットでトレーニングするYOLOモデルには別のライセンスが適用されます。下記のライセンスに関する質問をご覧ください。

プロジェクトで必要なのがヘルメットとベストの大規模な検出だけであれば、Ultralytics Platformで公開されているSafety Helmet and Reflective Jacketも利用できます。画像10,138枚と2クラスを収録しています。ヘルメットのみを扱う場合は、Safety Helmet Detectionに画像5,000枚があり、head、helmet、personのラベルが付いています。最初のルールの定義からデプロイ後の監視まで、現場でのエンドツーエンドのワークフローについては、Ultralyticsを使ったPPE検出と職場の安全のガイドをご覧ください。

よくある質問

  • no_helmetやno_vestなどの専用未着用クラスでトレーニングし、身体部位が見えている場合にのみラベルを付けます。アラートを信頼する前に、実際に使用するカメラの画像を使ってクラスごとの指標を確認してください。Construction-PPEには、一貫した可視性ルールでラベル付けされた未着用クラスが5つ含まれています。

  • 必要なクラスによって異なります。Ultralytics Construction-PPEは、CC BY 4.0の下で提供されるレビュー済み画像1,000枚に、5つの未着用クラス、forklift、Personを含む12クラスを収録しています。ヘルメットとベストだけが必要な場合は、Ultralytics PlatformのSafety Helmet and Reflective Jacketでより多くの画像を利用でき、Safety Helmet Detectionはヘルメットのみを対象としています。いずれの場合も、現場にデプロイする際は実際に使用するカメラの画像を追加してください。

  • 2026年11月のリリースには、画像1,000枚、バウンディングボックス14,863個、12クラスが含まれ、トレーニング用800枚、検証用200枚に分割されています。クラスはhelmet、gloves、vest、boots、goggles、Person、no_helmet、no_goggle、no_gloves、no_boots、forklift、no_vestです。

  • ultralyticsパッケージをインストールまたは更新し、yolo26n.ptを読み込み、Construction-PPEのアーカイブURLをdataとしてmodel.train()を呼び出します。たとえば、epochs=100とimgsz=640を使います。Ultralytics Platformのクラウドトレーニングを使えば、コードを書かずにトレーニングすることもできます。

  • 専用の未着用クラスを使うと、保護具がない状態をモデルに直接学習させられるため、目視できる頭部にヘルメットがない状態を独立した物体として検出できます。「人物ボックス内にヘルメットのボックスがない」という単純なルールでは、可視性も確認しない限り、隠れた頭部をヘルメット未着用と誤認する可能性があります。Construction-PPEでは、身体部位が見えている場合にのみ保護具の未着用をラベル付けしているため、最初の方法に適しています。

  • はい。画像とアノテーションはクリエイティブ・コモンズ 表示 4.0 国際の下で公開されており、クレジット表記を条件に、商用利用を含む共有や改変が認められています。Ultralyticsチームのクレジットを記載し、データセットとライセンスへのリンクを掲載して、変更点を明示してください。この条件が適用されるのはデータセットのみです。このデータセットでトレーニングしたUltralytics YOLOモデルには別のライセンスが適用されます(次の質問をご覧ください)。

  • Construction-PPEでトレーニングしたモデルを含め、Ultralytics YOLOでトレーニングしたすべてのモデルには、デフォルトでAGPL-3.0が適用されます。Ultralytics YOLOのコードまたはモデルを使用するには、プロジェクト全体をAGPL-3.0の下でオープンソースにするか、Ultralytics Enterprise Licenseを取得してください。この条件は社内利用とR&Dにも適用されます。プロジェクトを非公開にする場合は、Enterprise Licenseが必要です。

執筆者

Paula Derrenger
Paula Derrenger

成長担当バイスプレジデント · Ultralytics

Paula Derrengerは、世界で最も広く採用されているコンピュータービジョンモデルであるUltralytics YOLOを開発するUltralyticsのグロース担当バイスプレジデントです。マーケティングとパートナーシップを統括し、ビジョンAIを世界中の企業に届けるための関係構築と市場投入戦略を推進しています。

コメント

質問したり、結果を共有したり、ほかの人をサポートしたりできます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう