溶接の後に撮ったビードの画像から、ピット・アンダーカット・溶け込みの不足の兆候などの外観の不良の候補を見分け、検査の担当に確かめる箇所を示す
ロボット溶接の後にセルの出口で撮ったビードの画像から、ピット・アンダーカット・オーバーラップ・割れ・溶け込みの不足の兆候などの外観の不良の候補を見つけ、画像の上に枠で示します。検査員は、枠の付いた箇所と、撮り直しが要る画像から確かめます。
- 連携・自動化
- Python
- 対象業界
- 建設/製造
- 対象部門
- 品質管理/生産
- 対象業務
- 内容確認・チェック/分類・仕分け
- 主な課題
- 人手が足りない/属人化している/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 品質標準化/属人化解消/工数削減
- 導入難易度
- ★★★★★
- 実装レベル
- 本格構成
- 費用感
- 個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 溶接を終えた部品が、セルの出口で撮影される
- 検査員が、部品ごとに6枚前後の画像をモニターで1枚ずつ開く
- ピット、アンダーカット、オーバーラップ、割れ、ビードの途切れや幅の不足がないかを目で見る
- 気になる箇所があれば、現物を見に行き、限度見本と比べて判定する
- 不合格なら補修に回し、検査の記録に不良の種類と位置を書く
- 不良が続くセルがあれば、製造課に溶接の条件の確認を頼む
- 自動セルの出口で撮影された画像が、製造番号と溶接の番号付きでファイルサーバーに保存される
- 自動画像の質(明るさ、ぼけ、ビードが画面に収まっているか)を確かめ、撮り直しが要るものに印を付ける
- 自動学習済みのモデルが、画像ごとに不良の候補を種類・位置の枠・確からしさで返す
- 自動割れの候補が出たら、すぐに品質管理課と製造課に通知する
- 自動部品ごとに「候補あり」「候補なし」「撮り直し」に分け、検査の画面に並べる
- 人検査員が「候補あり」の部品から、枠の付いた画像を見て、必要なら現物を確かめて判定する
- 人検査員が「候補なし」の部品を一覧で流し見し、決めた割合で抜き取って画像を開く
- 人判定と、候補が当たっていたか・見逃しがあったかを記録する
各工程の詳しい説明を読む
- 溶接を終えた部品が、セルの出口で撮影される
- 検査員が、部品ごとに6枚前後の画像をモニターで1枚ずつ開く
- ピット、アンダーカット、オーバーラップ、割れ、ビードの途切れや幅の不足がないかを目で見る
- 気になる箇所があれば、現物を見に行き、限度見本と比べて判定する
- 不合格なら補修に回し、検査の記録に不良の種類と位置を書く
- 不良が続くセルがあれば、製造課に溶接の条件の確認を頼む
(a)画像を1枚ずつ見る時間が足りない。 1日90個前後の部品で、画像は500枚を超えます。検査員は1枚に数秒しかかけられず、小さなピットは見落としやすくなります。
(b)見落としの傾向が人によって違う。 アンダーカットに敏感な検査員もいれば、ピットに目が行く検査員もいます。誰がどの種類を見落としやすいかは、後工程で不良が見つかってから分かります。
(c)夜勤と繁忙の月に見落としが増える。 夜勤は検査員が1名で、画像の確認が朝にまとめて回ることがあります。まとめて見るほど1枚にかける時間が短くなり、見落としが増えます。
(d)不良の記録が条件の見直しに使われていない。 検査の記録には不良の種類と位置が書かれていますが、どのセルのどの溶接の番号で、どの時間帯に多いかを集計する人がいません。 溶接の条件の見直しが、不良が目立ってからになります。
- 【自動】 セルの出口で撮影された画像が、製造番号と溶接の番号付きでファイルサーバーに保存される
- 【自動】 画像の質(明るさ、ぼけ、ビードが画面に収まっているか)を確かめ、撮り直しが要るものに印を付ける
- 【自動】 学習済みのモデルが、画像ごとに不良の候補を種類・位置の枠・確からしさで返す
- 【自動】 割れの候補が出たら、すぐに品質管理課と製造課に通知する
- 【自動】 部品ごとに「候補あり」「候補なし」「撮り直し」に分け、検査の画面に並べる
- 【人】 検査員が「候補あり」の部品から、枠の付いた画像を見て、必要なら現物を確かめて判定する
- 【人】 検査員が「候補なし」の部品を一覧で流し見し、決めた割合で抜き取って画像を開く
- 【人】 判定と、候補が当たっていたか・見逃しがあったかを記録する
7番目の抜き取りを省かないでください。 「候補なし」の部品にも、モデルが見逃した不良が混ざります。抜き取りで見逃しを数え続けることが、しきい値を見直す唯一の材料です。
4番目だけは、検査員の確認を待たずに知らせます。 割れは補修で済まないことがあり、同じ条件で溶接が続けば、同じ割れが続きます。 候補の段階で製造課に知らせ、セルを止めるかは製造課が決めます。
02今回想定するシステム構成
ロボット溶接のセル → 出口の固定のカメラと照明(部品ごとに決まった向きで撮影) │ 製造番号・溶接の番号を付けて保存 ▼【トリガー】ファイルサーバーへの画像の保存 Python(PyTorch・torchvision) ├──▶ 画像の質の確認(明るさ・ぼけ・ビードの収まり) ├──▶ Faster R-CNN(COCO で事前学習し、自社のビードの画像で追加学習) │ 不良の候補:ピット/アンダーカット/オーバーラップ/割れ │ /ビードの途切れ/溶け込みの不足の兆候 ├──▶ 部品ごとに「候補あり」「候補なし」「撮り直し」に分ける └──▶ 割れの候補はすぐに通知 ▼ 検査の画面(枠を重ねた画像の一覧) ▼ 【検査員が候補を確かめて判定し、候補なしを抜き取りで確かめる】 ▼ 判定の記録 → 学習用データと、セル・溶接の番号ごとの集計
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Python(PyTorch・torchvision の Faster R-CNN の追加学習と推論) | TensorFlow |
| 撮影 | セルの出口の産業用カメラと照明 | 既存のトレーサビリティのカメラ |
| 推論の機械 | GPU を積んだ工場の中のサーバー | クラウドの GPU のインスタンス |
| 検査の画面 | 社内の Web の画面(枠を重ねた画像の一覧と判定の入力) | 既存の検査記録の仕組みに画面を足す |
新しく入れるものは、Python の処理と推論の機械と検査の画面です。 カメラと照明は、トレーサビリティのために入っているものをそのまま使います。ただし、照明とカメラの位置を固定し、今後は勝手に動かさない決まりを先に作ります。 学習した画像と違う撮り方の画像には、モデルは答えられません。
モデルは torchvision の物体検出のモデルを追加学習して使います。 torchvision には、Faster R-CNN、FCOS、RetinaNet、SSD などの物体検出のモデルと、インスタンスの領域まで出す Mask R-CNN があり、COCO で事前学習した重みが用意されています。 この構成では、不良の位置を枠で示せば足りるので Faster R-CNN を使います。
事前学習の重みの使い方は、公式のページに注意書きがあります。 事前学習のモデルは、学習に使ったデータセットに由来する独自のライセンスや条件を持つことがあり、自社の用途で使ってよいかを確かめるのは利用者の責任とされています。量産の検査に使う前に、使う重みの条件を確かめてください。
画像を「良・不良」に分ける分類ではなく、位置を示す検出にするのは、検査員が見る場所を示すためです。 分類のモデルは「この画像に不良がありそう」と言えても、どこにあるかは言いません。6枚の画像のどこを見ればよいかが分からなければ、検査員は結局1枚ずつ全体を見ます。 位置の枠があれば、その箇所から限度見本と比べ始められます。
追加学習の手順は、PyTorch の公式のチュートリアルが土台になります。 COCO で事前学習した Mask R-CNN を、170枚の画像で歩行者の検出に追加学習する例で、箱の予測の部分を自分のクラスの数に合わせて差し替える手順が示されています。
03どうやって実装するのか
処理の起点を決める
ファイルサーバーに画像が保存されたことを起点に、部品ごとに動かします。 1個の部品の画像がそろうのを待つため、製造番号ごとに、決めた枚数がそろったか、最後の画像から30秒たったかのどちらかで処理を始めます。部品単位で動かすのは、検査員が部品単位で判定するからです。
夜勤の時間帯も同じように動かします。 第3章の(c)は、画像の確認が朝にまとめて回ることから起きていました。候補の絞り込みが夜のうちに終わっていれば、朝の検査員は「候補あり」の部品から始められます。
毎朝6時に、前の日の画像の取りこぼしを確かめます。 生産管理システムの完成の記録と、処理済みの製造番号を突き合わせ、処理されていない部品を流し直します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| ビードの画像 | 部品ごとに6枚前後。製造番号、溶接の番号、撮影の時刻 | ファイルサーバー |
| 部品の情報 | 品番、図面で指定された品質の水準、溶接の番号ごとの継手の種類 | 生産管理システム |
| 溶接の記録 | セルの番号、ロボットのプログラムの版、電流・電圧・速度の設定 | ロボットの制御盤の記録 |
| 学習用の正解 | 検査員が付けた不良の種類と位置の枠 | 検査の画面の判定の記録 |
| 限度見本の画像 | 種類ごとの合格の限度と不合格の例 | 品質管理課 |
質を決めるのは、学習用の正解です。 枠をどこまで広く付けるか、ピットが3つ並んだら3つの枠か1つの枠か、検査員のあいだで付け方がそろっていないと、モデルは迷った付け方を覚えます。 付け方の決まりを、最初に文書にします。
限度見本の画像は、学習には使わず、検査の画面に並べて表示します。 検査員が候補の箇所と限度見本を同じ画面で見比べられるようにするためです。
溶接の記録は、モデルの入力には使いません。 画像だけで候補を見つけ、溶接の記録は判定の後の集計に使います。 条件の値を入力に入れると、「この条件なら不良は無い」とモデルが画像を見ずに決める余地ができます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 画像と製造番号 | ファイルサーバーのフォルダ | 推論の対象 |
| 品番と品質の水準 | 生産管理システムの出力 | 検査の画面に表示し、しきい値の組を選ぶ |
| 溶接の記録 | 制御盤の記録の出力 | セル・溶接の番号ごとの集計 |
| 判定の記録 | 検査の画面のデータベース | 次の追加学習の正解 |
品質の水準で、しきい値の組を切り替えます。 水準 B の部品は、小さなピットでも限度を超えることがあるので、確からしさのしきい値を低くして候補を多めに出します。 水準 D の部品と同じしきい値にすると、B の部品で見逃しが増えます。
学習用のデータは、検査の画面の判定の記録から作ります。 検査員が枠を直したもの、候補を消したもの、見逃しに枠を足したものが、そのまま次の追加学習の正解になります。 正解を作るための別の作業を増やさないための設計です。
学習と評価のデータは、撮影の月で分けます。 同じ部品の6枚の画像は似ているので、ばらばらに分けると、同じ部品の画像が学習と評価の両方に入り、評価が良く見えすぎます。 評価には、学習に使った期間より後の月の画像を使い、製造番号が学習と重ならないようにします。
不良の画像は少ないので、集める期間を見込みます。 不良の無い部品が大半を占めるので、1か月に集まる不良の画像は種類によっては数枚です。割れのように稀な種類は、過去の画像を検査の記録から探し出して集めます。 集まらない種類は、しばらくのあいだ候補の種類から外し、検査員が全数で見る種類として扱います。
AIへ渡す前に整形する
- 画像のそろいの確認 … 製造番号ごとに、決めた枚数の画像があるかを確かめます
- 明るさの確認 … 画素の明るさの分布を見て、暗すぎるもの・白飛びしたものに「撮り直し」の印を付けます
- ぼけの確認 … 輪郭の鋭さの指標が、照明とカメラを据えたときの基準より低いものに印を付けます
- ビードの収まりの確認 … 溶接の番号ごとに決めた画面の範囲に、ビードが写っているかを見ます
- 範囲の切り出し … 溶接の番号ごとに、ビードの周りの範囲を切り出します
- 大きさの統一 … 学習のときと同じ大きさと色の扱いにそろえます
2番目から4番目で「撮り直し」とした画像は、モデルに渡しません。 暗い画像を渡すと、モデルは「何も見つからない」と返します。それは「不良が無い」ではなく「見えない」です。 第1章で書いた見逃しの多くは、ここで混ざります。
3番目のぼけは、カメラの保護のカバーにスパッタが付くことで起きます。 溶接のセルの近くでは避けられないので、ぼけの印が続いたセルは、カバーの清掃を製造課に頼む通知を出します。
AIに処理させる
させるのは、切り出した画像の中に、決めた種類の不良の候補があるかを見つけ、位置の枠と確からしさを返すことだけです。
| 候補の種類 | ISO 6520-1 に沿った呼び方の例 | 画像で見えるもの |
|---|---|---|
| ピット | 表面に開いた気孔 | ビードの表面の小さな穴 |
| アンダーカット | アンダーカット | 止端に沿った母材の溝 |
| オーバーラップ | オーバーラップ | 母材の上に溶着金属が乗って、なじんでいない状態 |
| 割れ | 割れ | ビードやクレーターの線状の割れ |
| ビードの途切れ | 不連続 | ビードが途中で切れている |
| 溶け込みの不足の兆候 | (表面からは確かめられない) | ビードの幅の不足、止端のなじみの悪さ、裏波の欠け |
種類の呼び方は、ISO 6520-1 の分類に合わせます。 ISO 6520-1 は溶融溶接の幾何学的な不完全部を分類し、種類ごとに定義と説明を与えて取り違えを避けるための規格とされています。社内の呼び方と規格の呼び方の対応表を作り、学習の正解もこの呼び方で付けます。
最後の行だけは、性質が違います。 溶け込みの不足は内部の状態で、表面の画像からは確かめられません。モデルが出すのは「兆候」で、検査員は社内の基準に沿って断面の確認や非破壊の検査に回すかを決めます。 検査の画面にも「兆候」と表示し、不良と書きません。
| させないこと | 理由 |
|---|---|
| 合格・不合格の判定 | 図面の品質の水準と限度見本で検査員が判定する |
| 不良の寸法の測定値を合否に使うこと | 画像の枠の大きさは寸法の測定ではない |
| 内部の欠陥の有無の判断 | 表面の画像では確かめられない |
| 補修や出荷の可否 | 品質管理課と製造課が決める |
| 溶接の条件の変更 | 製造課が溶接の記録と合わせて決める |
2行目がいちばん起きやすい誤りです。 アンダーカットの深さやピットの大きさは、品質の水準の限度と比べて合否を決めるものですが、画像の枠の大きさは、撮る角度と距離で変わります。 枠の大きさを寸法として扱うと、限度の判定を誤ります。
しきい値は、見逃しの数から決めます。 確からしさのしきい値を下げるほど見逃しは減り、余計な候補は増えます。評価のデータで、種類ごとに「しきい値を変えたときに見逃した不良の数」と「候補あり になる部品の割合」を並べ、見逃しを品質管理課が決めた数に収めたうえで、候補ありの割合がいちばん低くなる点を選びます。割れは見逃しを0にする前提で、ほかの種類より低く置きます。
候補ありの割合が高すぎると、この構成は回りません。 部品の半分が候補ありになれば、検査員の手間は今と変わりません。候補ありが3割を超えるしきい値しか選べないなら、学習のデータか撮影の条件が足りていません。 しきい値を上げて見逃しを増やすのではなく、データを集める側で解きます。
指示内容を固定する
この構成は生成AIに指示を出しません。 指示にあたるのは、学習と推論の設定と、検査員が正解を付けるときの決まりです。
【学習の設定】
- モデル:fasterrcnn_resnet50_fpn_v2(COCO の事前学習の重み)
- 箱の予測の部分を差し替える:num_classes = 不良の種類の数 6 + 背景 1 = 7
(モデルはクラス 0 を背景として扱う。不良の種類のラベルは 1 から付ける)
- 学習のデータ:直近12か月の画像。不良ありの画像と、不良なしの画像の両方
- 評価のデータ:学習に使っていない、後の2か月の画像
- 評価の見方:種類ごとに、決めたしきい値で見逃した不良の数
【推論の設定】
- 品質の水準ごとのしきい値の組(例:水準 B は低め、水準 D は高め)
- 割れの候補は、しきい値を他の種類より低くする
- 1枚の画像で候補が10を超えたら、部品ごと「要確認(候補が多すぎる)」にする
【正解の付け方の決まり(検査員向け)】
- 枠は、不良の見えている範囲をちょうど囲む大きさにする
- ピットが離れて並んでいるときは1つずつ枠を付ける。重なっているときは1つにまとめる
- 迷ったものは「判断保留」として付け、学習に使わない
- 限度の内側(合格)でも、種類として見えるものには枠を付け、「限度内」の印を付ける
- 溶け込みの不足の兆候は、断面や非破壊の検査の結果が分かったものだけ正解にする
「限度の内側でも枠を付ける」が、この決まりの要です。 合格の画像に枠を付けないと、モデルは「小さいピットは不良ではない」ではなく「小さいピットは見えないもの」として覚えます。品質の水準が厳しい部品が来たときに、見つけられなくなります。見つけるのはモデル、限度と比べるのは検査員、と役割を分けるための決まりです。
「溶け込みの不足の兆候は、検査の結果が分かったものだけ」も同じ考えです。 表面の見た目だけで「兆候あり」と付けると、検査員の勘をそのまま覚え、勘の外れも一緒に覚えます。
出力形式を固定する
部品ごとに、次の形のJSONで検査の画面に渡します。
{
"serial_no": "",
"part_no": "",
"quality_level": "B | C | D",
"model_version": "",
"status": "candidates | no_candidates | retake",
"images": [
{
"weld_no": "",
"image_path": "",
"quality_check": { "brightness": "ok", "sharpness": "ok", "framing": "ok" },
"detections": [
{ "type": "pore | undercut | overlap | crack | discontinuity | lack_of_fusion_sign",
"box": [0, 0, 0, 0], "score": 0.0 }
]
}
],
"urgent": false
}
1つ目の理由は、quality_check と detections を分けられることです。 画像の質が足りないものは detections を空にせず、status を retake にします。 「何も見つからない」と「見えない」を、出力の形で取り違えないようにします。
2つ目は、score を残せることです。 検査員は確からしさの低い候補から見ても高い候補から見ても構いませんが、後で見逃しを数えるときに、どのしきい値なら見つけられたかを検算できます。
3つ目は、model_version で、どのモデルの出力かが分かることです。 追加学習でモデルを入れ替えた前後で、候補の出方が変わります。変わった理由をたどるために、部品ごとにモデルの版を残します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| ファイルサーバー | フォルダの監視と読み取り | 画像の取得 |
| 生産管理システム | 出力の読み取り | 品番、品質の水準、完成の記録 |
| ロボットの制御盤の記録 | 出力の読み取り | セル・プログラムの版・溶接の条件 |
| 検査の画面 | 社内の Web の画面のデータベース | 候補の表示、判定と正解の入力 |
| 社内の通知 | 品質管理課と製造課への通知 | 割れの候補、ぼけの続くセル |
生産管理システムと制御盤には書き込みません。 判定の結果を生産管理システムに入れるのは、検査員が判定を終えた後の、従来の手順です。モデルの出力が合否として流れる経路を作りません。
集計は、判定の後の記録から作ります。 セル・溶接の番号・時間帯ごとに、検査員が不合格とした不良の種類を数え、製造課が溶接の条件を見直す材料にします。 第3章の(d)への答えです。
人が確認する
検査員が判定するのは全部の部品です。 違うのは、見る順番と、1個にかける時間です。
urgentの部品を最初に見る … 割れの候補。現物を確かめ、製造課と一緒にセルを止めるかを決めます- 「候補あり」の部品を見る … 枠の付いた画像を開き、限度見本と比べます。限度に近いものは現物を確かめます
- 「撮り直し」の部品を処理する … 現物を目で見るか、撮り直してから判定します
- 「候補なし」を抜き取りで見る … 部品の一覧を流し見し、決めた割合で画像を開きます
- 当否を記録する … 候補が当たっていたか、外れていたか、見逃しがあったかを、画面で付けます
4番目の割合は、最初は高めにします。 導入の最初の3か月は「候補なし」の2割、見逃しの数が落ち着いたら1割に下げます。 割合を下げる判断は、品質管理課の責任者が見逃しの記録を見て行います。
5番目の当否の記録は、次の3つを分けて付けます。 「候補が当たっていた」「候補が外れていた(スパッタや汚れ、照明の反射を不良と見た)」「候補の無い所に不良があった」。3つ目が見逃しで、種類と位置の枠を検査員が足します。 2つ目は、余計な候補の原因の材料で、反射やスパッタが多いセルの撮影の条件を見直す手がかりになります。
目標は、1,800件をならして1件1分です。 「候補なし」の部品は一覧で数秒、「候補あり」の部品は画像と現物で数分かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 画像が決めた枚数に足りない | 部品を「撮り直し」にし、製造課に撮影の確認を頼む |
| 暗い・白飛び・ぼけ | 「撮り直し」。同じセルで続けばカバーの清掃や照明の確認を通知 |
| 学習に無い品番の部品 | モデルに渡さず、全部の画像を検査員が見る |
| 1枚の候補が多すぎる | 部品ごと「要確認」にし、スパッタや汚れの写り込みを疑う |
| 割れの候補 | すぐに通知。判定を待たずに製造課に知らせる |
| 製造番号と画像が結び付かない | 処理せず、ファイルサーバーの保存の設定を確かめる |
| 推論の機械が止まる | 画像は保存されるので、復旧後に流し直す。そのあいだは従来どおり全数を見る |
| 抜き取りで見逃しが増えた | しきい値を下げる前に、照明やカメラの位置が動いていないかを確かめる |
割れの候補の通知は、外れても構わない前提で出します。 割れの候補の多くは、スパッタの筋や研削の跡であることが分かるはずです。それでも通知を止めないのは、本物の割れを1つ見逃したときの損失が、外れの通知を何十回確かめる手間より大きいからです。 外れが続くセルは、撮影の条件と照明の反射を先に疑います。
上から3行目を軽く見ないでください。 新しい品番の部品は、ビードの形も撮る向きも学習した画像と違います。モデルに渡すと、それらしい候補を出したり、何も出さなかったりします。 学習のデータがそろうまでは、モデルを通さない決まりにします。
記録を残す
- 元の画像と、製造番号・溶接の番号・撮影の時刻
- 画像の質の確認の結果と、モデルの出力(種類・枠・確からしさ)と、モデルの版
- 検査員の判定と、候補の当否、見逃しの記録
- 抜き取りで開いた「候補なし」の部品の一覧
- 追加学習に使ったデータの範囲と、評価の結果
- 照明とカメラの位置を変えた日と、その理由
画像の保存の期間は、トレーサビリティの決まりに合わせます。 顧客との取り決めで部品の記録を何年残すかが決まっていれば、画像とモデルの出力も同じ期間残します。不具合の問い合わせのときに、当時のモデルが何を示し、検査員がどう判定したかを並べて示せるようにするためです。
最後の行は、見逃しが増えたときにいちばん先に見る記録です。 照明を交換した、カメラを掃除のついでに少し動かした、といった変化は、モデルの精度の低下よりも先に起きていることが多いからです。
04実装レベルの3段階
最小構成は、ラインには入れません。 確かめるための段階です。 半自動化では、工数はほとんど減りません。 検査員は全部の画像を開いたまま、候補の枠を参考にするだけだからです。ただしこの段階で、モデルの見逃しを全数で数えられます。 本格構成で1件1分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化を3か月回して、種類ごとの見逃しの数が分かるまでは、「候補なし」を抜き取りに切り替えないでください。 見逃しの数が分からないまま抜き取りにすると、見逃した不良はどこにも記録されません。
05工数削減シミュレーション
導入後 1,800件 × 1分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 建設機械・産業機械・車両の部品や鉄骨の部材を、ロボットのアーク溶接で毎月千個以上つくる工場。溶接のセルの出口でビードを固定のカメラで撮り、検査員がその画像と現物で外観を見ている場合。外観の検査員が足りず、夜勤や繁忙の月に見落としが出ている場合。過去の画像と、検査員が付けた不良の記録が残っていて、学習用のデータを作れる場合。
- 手溶接が中心で、ビードの位置や向きが部品ごとに違い、同じ条件で撮れない場合。製品が月に数十個で、検査員が全数を現物で見て足りる場合。不良の画像がほとんど残っておらず、学習用のデータを作れない場合(まず撮影と記録から始める)。なお、溶接部の合否の判定、内部の欠陥の有無の判断、補修や出荷の可否の判断は、この構成では代替できません。
07最小構成で試す方法
- 過去の画像から、検査員が不良と判定した部品の画像を100枚、不良の無い部品の画像を100枚選ぶ
- 検査員2名に、決まりに沿って不良の種類と位置の枠を付けてもらう
- 2名の付け方がどれだけそろうかを見る(同じ画像に同じ種類の枠が付くか)
- 200枚のうち150枚で Faster R-CNN を追加学習し、残りの50枚で候補を出させる
- 50枚について、検査員の枠とモデルの候補を並べ、見逃しと余計な候補を数える
モデルの成績より先に、3番目を見てください。 検査員2名の枠がそろわないなら、モデルが学ぶべき正解がまだ決まっていません。
| 出てきた内容 | 判断 |
|---|---|
| 検査員の枠がそろい、モデルが大半の不良を見つける | 撮影の条件を固定し、学習のデータを増やす段階に進む |
| 検査員の枠がそろわない | 正解の付け方の決まりを直す。構成の前に基準をそろえる |
| 暗い画像やぼけた画像で見逃す | 撮影の条件を先に直す。モデルの問題ではない |
| 特定の種類だけ見つけられない | その種類の画像が足りない。不良の画像を集める期間を取る |
2行目が出ることは珍しくありません。 失敗ではなく、検査員によって見落としの傾向が違った理由が1つ分かったということです。 限度見本の前で付け方を話し合い、決まりを直してから同じ200枚で付け直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 見えない画像を「候補なし」にする | 画像の質の確認で「撮り直し」に分け、モデルに渡さない |
| 小さな不良を学ばない | 限度の内側でも枠を付け、「限度内」の印で区別する |
| 枠の大きさを寸法として扱う | 枠は位置を示すだけ。寸法は検査員が測る |
| 検査員の正解の付け方がそろわない | 決まりを文書にし、限度見本の前で付け方を合わせる |
| 照明やカメラの位置が動いて見逃しが増える | 位置を固定し、変えた日を記録する |
| 新しい品番で的外れな候補が出る | 学習に無い品番はモデルに通さない |
| 背景のクラスを数え忘れる | num_classes は不良の種類の数に背景の1を足す |
| 「候補なし」を見なくなる | 抜き取りの割合を決め、見逃しを数え続ける |
| 溶け込みの不足を画像で判定してしまう | 「兆候」と表示し、断面や非破壊の検査に回す判断は検査員が行う |
| 事前学習の重みの条件を確かめずに使う | 使う重みの条件を、量産の前に確かめる |
上の2行が、この構成の失敗のほとんどです。 どちらも「モデルが何も言わなかった」という同じ見た目をしています。何も言わなかった理由が、見えなかったのか、学んでいなかったのかを、出力と正解の決まりで分けます。
下から3行目も、早く効いてきます。 「候補なし」の部品を見なくなると、見逃しを数える方法がなくなります。見逃しが数えられなくなったとき、この構成は検査ではなくなります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 部品の画像、製造番号、溶接の条件、検査の記録です。個人の情報はほとんど含みませんが、顧客の図面に由来する部品の形と、自社の溶接の条件が分かる情報です。
- 画像を工場の外に出さない … 推論は工場の中のサーバーで行います。クラウドで学習するなら、顧客との取り決めで部品の画像を外に出してよいかを先に確かめます
- 合否を自動で決めない … モデルの出力は候補で、判定は検査員が行います。出力が合否として生産管理システムに流れる経路を作りません
- モデルの入れ替えを記録する … 追加学習でモデルを入れ替えるときは、前後の評価の結果を並べ、品質管理課の責任者が承認してから入れ替えます
- 抜き取りの割合を下げる判断を記録する … 誰が、どの見逃しの記録を見て下げたかを残します
- 顧客への説明を用意する … 顧客の監査で検査の方法を問われたときに、AIは候補を示すだけで、判定は検査員が行っていることを、記録とともに示せるようにします
- 検査の判断を代替しない … 合否、補修、出荷の可否、溶接の条件の変更は、品質管理課と製造課が決めます
誤りが起きた場合のリスクは、不良を見逃して出荷することと、候補を出しすぎて検査員が候補を見なくなることの2つです。 前者は画像の質の確認と抜き取りを省くと起き、後者はしきい値を低くしすぎると起きます。どちらも見逃しの記録から調整するので、記録を取り続けることだけは設計で守ります。
10まず何から始めるか
1週目:撮影の条件を固定する
セルごとに、照明とカメラの位置、部品の向き、撮る枚数を書き出し、今後は変えたら記録する決まりを作ります。 カバーの清掃の頻度もここで決めます。
2週目:正解の付け方の決まりを作る
限度見本の前で、検査員と一緒に、枠の付け方、限度内の扱い、判断保留の扱いを決めます。呼び方は ISO 6520-1 の分類と社内の呼び方の対応表にそろえます。
3週目:200枚で試す
第8章のとおり、検査員2名に正解を付けてもらい、付け方のそろい方を見ます。そろっていれば、150枚で追加学習して50枚で候補を出させます。
4週目:半自動化の準備をする
推論の機械と検査の画面を用意し、毎日の画像に候補を付けて並べるところまで作ります。この時点では、検査員は全部の画像を開きます。
2か月目から4か月目: 半自動化で、種類ごとの見逃しの数と余計な候補の数を全数で数え、検査員の判定を正解として追加学習を繰り返します。5か月目以降: 「候補なし」を抜き取りに切り替え、品質の水準ごとのしきい値を決めます。抜き取りで数えた見逃しの数が、品質管理課の決めた範囲に収まり続けた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| ISO 5817:2023 が、鋼・ニッケル・チタンとその合金の溶融溶接の継手(ビーム溶接を除く)の不完全部の品質の水準を定め、厚さ0.5mm以上に適用し、完全溶け込みの突合せ溶接とすべての隅肉溶接を対象とすること。水準が B・C・D の3つで、B が最も高い要求に当たること。結晶粒の大きさや硬さのような冶金的な側面を扱わないこと | ISO: ISO 5817:2023 | 2026-10-08 |
| ISO 6520-1:2007 が溶融溶接の幾何学的な不完全部の分類と記述の基礎となり、取り違えを避けるために種類ごとに定義と説明を与えていること。冶金的な不完全部を含まないこと。2026年に見直しのうえ確認されていること | ISO: ISO 6520-1:2007 | 2026-10-08 |
COCO で事前学習した Mask R-CNN を Penn-Fudan の170枚の画像で追加学習する手順。箱の予測の部分をクラスの数に合わせて差し替えること。モデルがクラス0を背景として扱うこと。枠を [x0, y0, x1, y1] で与えること | PyTorch: TorchVision Object Detection Finetuning Tutorial | 2026-10-08 |
| torchvision に Faster R-CNN(v2 を含む)、FCOS、RetinaNet、SSD などの物体検出のモデルと Mask R-CNN があり、COCO で事前学習した重みがあること。事前学習のモデルは学習に使ったデータセットに由来する独自のライセンスや条件を持つことがあり、用途に使ってよいかを確かめるのは利用者の責任であること | PyTorch: torchvision Models and pre-trained weights | 2026-10-08 |
溶接部の合否の基準と、内部の欠陥の確かめ方は、顧客の仕様と自社の品質管理の規程で決めてください。 本記事は公開されている資料で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1024)についてのご相談はこちらから。
