設備の巡回で撮ったアナログの圧力計・温度計・流量計の写真から指針の値を読み取り、点検記録に転記して、管理範囲を外れた値と読み取りに自信のない写真を保全担当へ返す
巡回で撮ったアナログの計器の写真から、指針の指す値を読み取って点検記録に入れます。管理範囲を外れた値と、読み取りに自信のない写真だけを保全担当へ返し、人はそこだけを見直します。
- 連携・自動化
- Python
- 対象業界
- 医療/宿泊/製造
- 対象部門
- 品質管理/生産
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- 個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 当番が巡回し、45個の計器をタブレットで1枚ずつ撮る
- 事務所に戻り、写真を1枚ずつ開いて、どの計器かを確かめる
- 指針の位置を目盛りで読み、点検記録の表の該当する欄に入れる
- 台帳の管理範囲と見比べ、外れていれば工務課の担当に知らせる
- 写真がぶれていたり反射で読めなかったりすれば、もう一度撮りに行く
- 月末に、品質保証課が写真と表を突き合わせて確かめる
- 人当番が巡回し、計器と横に貼った印が両方入るように撮る
- 自動タブレットの写真が共有フォルダに上がると、Python が1枚ずつ処理を始める
- 自動写真から印を見つけ、印の番号で計器を決め、台帳から目盛りの範囲と管理範囲を引く
- 自動印の4つの角を手がかりに、計器の向きを正面に直して切り出す
- 自動学習させたキーポイントの検出のモデルで、目盛りの始まり・終わり・中心・指針の先の4点を見つける
- 自動4点の角度から値を計算し、少しずらした切り出しでもう一度読んで、2回の差を見る
- 自動値を点検記録の表に入れ、管理範囲・前日の値と照らして、「記録済み」「範囲外」「読み直し」に分ける
- 人当番が「範囲外」と「読み直し」の写真だけを開き、値を確かめるか、撮り直す
- 人範囲外が確かなら、工務課の担当が処置を決めて記録する
- 自動月末に、計器ごとの読み直しの割合と、人が値を直した回数を一覧にする
各工程の詳しい説明を読む
- 当番が巡回し、45個の計器をタブレットで1枚ずつ撮る
- 事務所に戻り、写真を1枚ずつ開いて、どの計器かを確かめる
- 指針の位置を目盛りで読み、点検記録の表の該当する欄に入れる
- 台帳の管理範囲と見比べ、外れていれば工務課の担当に知らせる
- 写真がぶれていたり反射で読めなかったりすれば、もう一度撮りに行く
- 月末に、品質保証課が写真と表を突き合わせて確かめる
(a)読んで写すだけで時間がかかる。 45枚の写真を開き、どの計器かを確かめ、目盛りを読み、表の欄を探して入れます。1枚ずつは短い作業ですが、毎朝45枚です。 巡回より、戻ってからの入力のほうが長くかかります。
(b)どの計器の写真かを取り違える。 同じ形の圧力計が並んでいる場所では、写真だけではどちらの計器か分かりません。 撮った順番に頼って入力すると、1枚抜けたところから後ろが全部ずれます。
(c)読み方が人によって違う。 細かい目盛りの間に指針があるとき、ある人は近いほうの目盛りに丸め、ある人は間を目分量で読みます。 斜めから撮った写真では、指針と目盛りがずれて見えます。
(d)外れた値に気づくのが遅れる。 入力は始業の後になり、管理範囲との見比べは忙しい日に省かれます。冷却水の温度が少しずつ上がっていたことに、月末の確認で気づくことがあります。
- 【人】 当番が巡回し、計器と横に貼った印が両方入るように撮る
- 【自動】 タブレットの写真が共有フォルダに上がると、Python が1枚ずつ処理を始める
- 【自動】 写真から印を見つけ、印の番号で計器を決め、台帳から目盛りの範囲と管理範囲を引く
- 【自動】 印の4つの角を手がかりに、計器の向きを正面に直して切り出す
- 【自動】 学習させたキーポイントの検出のモデルで、目盛りの始まり・終わり・中心・指針の先の4点を見つける
- 【自動】 4点の角度から値を計算し、少しずらした切り出しでもう一度読んで、2回の差を見る
- 【自動】 値を点検記録の表に入れ、管理範囲・前日の値と照らして、「記録済み」「範囲外」「読み直し」に分ける
- 【人】 当番が「範囲外」と「読み直し」の写真だけを開き、値を確かめるか、撮り直す
- 【人】 範囲外が確かなら、工務課の担当が処置を決めて記録する
- 【自動】 月末に、計器ごとの読み直しの割合と、人が値を直した回数を一覧にする
8番目が、この設計の分かれ目です。人が見るのは全件ではありません。 「記録済み」の写真は開かず、範囲外と読み直しの写真にだけ時間を使います。 全件を人が確かめる設計にすると、45.0時間はほとんど減りません。
6番目で2回読むのは、読み取りの揺れを自信の目安にするためです。 切り出しを少しずらしても同じ値が出るなら、指針ははっきり写っています。大きく違うなら、反射やぶれで指針の先がはっきりしない写真です。
02今回想定するシステム構成
巡回の写真(計器+横に貼った ArUco マーカー) │ ▼【トリガー】共有フォルダへの保存 Python ├──▶ OpenCV ArUco(印の番号と4つの角) │ └─ 計器の台帳(目盛りの範囲・単位・管理範囲・印と文字盤の位置関係) ▼ 向きの補正と切り出し ── 印の4つの角から正面の向きへ ▼ torchvision Keypoint R-CNN(自社の計器の写真で学習) │ 中心/目盛りの始まり/目盛りの終わり/指針の先 ▼ 値の計算 ── 角度を目盛りの範囲に比例で割り当てる(非線形の目盛りは台帳の対応表) ▼ 2回の読み取りの差・管理範囲・前日の値との比べ ▼ 記録済み → 点検記録の表/範囲外・読み直し → 当番と工務課へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Python(OpenCV の ArUco 検出と、PyTorch・torchvision の Keypoint R-CNN) | Detectron2、MMPose |
| 処理エンジン | torchvision の keypointrcnn_resnet50_fpn(自社の計器の写真で学習し直す) | YOLO 系のキーポイント検出(ライセンスの条件を確かめる) |
| 集計 | Python(計器ごとの読み直しの割合と、人が直した回数) | 点検記録の表の集計 |
| データの取得元 | 巡回用のタブレットの写真の共有フォルダ、計器の台帳 | 点検の記録の仕組み |
| 結果の出力先 | 点検記録の表と、読み直しの一覧 | 社内チャットへの通知 |
計器にも、設備の制御にもつなぎません。 この構成は保存された写真を読むだけです。値が範囲外でも、設備を止めるかどうかは工務課の担当が決めます。
計器を見分けるのは、OpenCV の ArUco マーカーです。 太い黒い縁と内側の白黒の格子でできた四角い印で、格子の模様が印の番号を決め、誤りを見つけて直すしくみも持ちます。 検出は ArucoDetector の detectMarkers で行い、見つけた印ごとに4つの角の位置(左上から時計回り)と番号が返ります。1つの印の4つの角から、カメラとの位置関係を求めるのに足りる対応が得られるとされており、この構成ではそれを向きの補正に使います。
印の種類(辞書)は、計器の数に近い小さなものを選びます。 公式の説明では、10個しか使わないなら1,000個の辞書より10個の辞書のほうが、印どうしの違い(ハミング距離)が大きくなり、誤りに強いとされています。45個の計器なら、50個程度の辞書で足ります。
指針と目盛りの4点は、torchvision の Keypoint R-CNN で見つけます。 学習には、写真ごとに計器の枠(boxes)とラベル、K個のキーポイントを [x, y, visibility] の形で与えます。推論では、計器の枠・ラベル・スコアと、キーポイントの位置が返ります。 公開されている学習済みの重みは人の姿勢のためのものなので、自社の計器の写真に印を付けて、4点を学習し直します。
生成AIは使いません。 値は角度の計算で出します。写真を文章で説明させて値を読ませると、目盛りの細かい計器で、もっともらしい値が根拠なく出ます。
03どうやって実装するのか
処理の起点を決める
タブレットの写真が共有フォルダに保存されたことを起点に、1枚ずつ動かします。 巡回の途中で通信できる場所では、撮るたびに上がります。当番が事務所に戻るころには、大半の写真の値がすでに表に入っているようにします。
巡回の終わりを、最後の計器の写真で判断します。 台帳に巡回の順番と最後の計器を持たせ、その写真が処理されたら、その日の「範囲外」と「読み直し」の一覧を当番に送ります。 45個のうち写真の無い計器があれば、撮り漏れとして同じ一覧に載せます。
処理が終わった写真は、日付ごとのフォルダへ移します。 移すのは値を表に入れられたときだけにし、元のフォルダに残っている写真の数が、そのまま未処理の数になるようにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 巡回の写真 | 計器と横の印が写った写真、撮った日時 | タブレットの共有フォルダ |
| 計器の台帳 | 計器番号、印の番号、設置場所、目盛りの最小と最大、単位、管理範囲、巡回の順番 | 工務課の表 |
| 目盛りの対応表 | 目盛りが等間隔でない計器の、角度と値の対応 | 工務課が計器ごとに作る表 |
| 印と文字盤の位置関係 | 印の4つの角から見た文字盤の中心と半径(印を貼ったときに1回測る) | 工務課の表 |
| 前日までの値 | 計器ごとの過去の値 | 点検記録の表 |
質を決めるのは、計器の台帳の「印の番号」と「目盛りの最小と最大」です。 印の番号が台帳と合っていなければ、どれほど正しく読んでも、別の計器の欄に入ります。 印を貼った日に、印の番号・計器番号・設置場所を写真付きで台帳に入れます。
目盛りの対応表も外せません。 多くの圧力計は角度と値が比例しますが、差圧計や流量計には、目盛りの間隔が等しくないものがあります。 比例で計算すると、目盛りの真ん中あたりで値がずれます。
データの取得方法を決める
写真は、タブレットから共有フォルダへ上がったものを読みます。 タブレットのアプリは今のままで構いません。ファイル名や写真の付帯情報から撮った日時を取り、点検の日付にします。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 写真と撮った日時 | 共有フォルダ | 読み取りの対象と、記録の日付 |
| 印の番号と4つの角 | OpenCV の detectMarkers | 計器の決定と、向きの補正 |
| 目盛りの範囲・単位・管理範囲 | 計器の台帳 | 値の計算と、範囲外の判定 |
| 4点の位置とスコア | Keypoint R-CNN の推論 | 角度と値の計算、自信の目安 |
| 前日の値 | 点検記録の表 | 急な変化の判定 |
学習用の写真は、運用の前に計器ごとに集めます。 1つの計器につき、時間帯や撮る角度を変えて30枚ほど撮り、4点の位置を人が画像の上で付けます。 指針が反射で見えない写真は、指針の先の visibility を見えないものとして付けます。見えない写真を捨てずに学習に入れておくと、見えないときにスコアが下がるように学びます。
学習と検証は、撮った日で分けます。 同じ日の同じ計器の写真は、光の当たり方がほとんど同じです。ばらばらに分けると、検証の写真とほぼ同じ写真で学習することになり、検証の数字だけが良くなります。 最後の1週間に撮った写真を検証に取っておき、当番が読んだ値との差が目盛りの最小の刻みの半分に収まる割合を、計器ごとに数えます。収まる割合の低い計器は、本番で読ませる前に写真を足します。
AIへ渡す前に整形する
- 印を見つける … 写真から印を探し、番号と4つの角を得ます。印が見つからない写真は「計器不明」として読み直しに回します
- 台帳を引く … 印の番号から計器を決め、目盛りの範囲・単位・管理範囲・印と文字盤の位置関係を引きます
- 向きを正面に直す … 印の4つの角が正方形になるように写真を変形し、台帳の位置関係から文字盤の部分を切り出します
- 大きさをそろえる … 切り出した文字盤を同じ大きさにそろえます
- 写りを確かめる … ぶれ(輪郭のくっきりさ)と、白く飛んだ部分の広さを測り、基準を下回れば「撮り直し」の印を付けます
- ずらした切り出しを作る … 切り出しの位置と大きさを少し変えたものをもう1枚作り、2回読むのに使います
3番目を軽く見ないでください。 斜めから撮った写真では、文字盤が楕円に写り、指針の角度が実際と変わって見えます。 第3章の(c)で人が読み違えていた理由と同じです。印と文字盤が同じ面にあれば、印を正方形に戻すことで、文字盤も正面の向きに戻ります。印は文字盤と同じ面、できるだけ近くに貼ります。
5番目で「撮り直し」を先に分けるのは、読めない写真を読もうとさせないためです。 ぶれた写真から無理に値を出すと、それらしい値が記録済みに混ざります。
AIに処理させる
この構成の「AI」は、文字盤の4点の位置を見つけることだけです。 値の計算、範囲外の判定、分類は決まった規則で出します。
| 段 | させること | させないこと |
|---|---|---|
| 4点の検出 | 中心・目盛りの始まり・終わり・指針の先の位置とスコア | 計器の種類の判定 |
| 値の計算 | 始まりから指針までの角度を、始まりから終わりまでの角度で割り、目盛りの範囲に割り当てる | 目盛りの数字の読み取り |
| 自信の目安 | 2回の読み取りの差、スコア、形の確かめ | 自信の基準の決定 |
| 分類 | 記録済み/範囲外/読み直し | 範囲外への処置 |
値は、角度の比で出します。 中心から目盛りの始まりへの向きと、中心から指針の先への向きのなす角度を、始まりから終わりまでの角度で割った比に、目盛りの範囲を掛けます。目盛りの対応表がある計器は、比の代わりに対応表で値を引きます。目盛りの始まりと終わりの位置を写真ごとに見つけるので、計器の取り付けが少し回っていても、比は変わりません。
自信の目安は3つです。 1つ目は2回の読み取りの差で、目盛りの最小の刻みの半分を超えたら読み直しにします。2つ目はスコアで、計器の枠のスコアが基準を下回れば読み直しです。3つ目は形の確かめで、中心から指針の先までの長さが、中心から目盛りまでの長さと比べて極端に短い・長いときは、指針以外のものを指針と見ているので読み直しにします。
| 機械にさせないこと | 理由 |
|---|---|
| 読み直しの写真の値を記録する | 揺れの大きい値は、記録に入れると正しい値と見分けられない |
| 範囲外の値への処置を決める | 設備の状態と、止めたときの影響を知らない |
| 管理範囲を動かす | 設備の設計と品質の基準で決まる |
| 目盛りの数字を読んで範囲を決める | 範囲は台帳から引く。写真の数字は小さく、読み違える |
1行目がいちばん起きやすい失敗です。 読み直しの写真にも値は出ているので、とりあえず入れておきたくなります。入れた値は、後で見る人には記録済みの値と区別がつきません。 読み直しの欄は空のまま残し、人が確かめた値だけを入れます。
指示内容を固定する
この構成は生成AIを使わないため、指示は Python の設定ファイルに書きます。 どう読み、どの規則で分けるかを、工務課と品質保証課が読める形で残すためです。
# アナログの計器の読み取りの設定(gauge_reading.yaml)
印:
辞書: 計器の数に近い小さな辞書(45個の計器なら50個程度)
印が見つからない: 「計器不明」として読み直し
2つ以上の印が写っている: 文字盤の切り出しが写真の中に収まる印だけを使う
向きの補正:
印の4つの角を正方形に戻す変形を、写真全体にかける
文字盤の切り出し: 台帳の「印から見た中心と半径」で決める
4点の検出:
モデル: keypointrcnn_resnet50_fpn(自社の写真で学習。キーポイント4点)
点の順番: [中心, 目盛りの始まり, 目盛りの終わり, 指針の先]
2回読む: 切り出しの位置を半径の5%ずらしたものでもう一度
値の計算:
角度の比 × (目盛りの最大 − 最小) + 最小
対応表のある計器: 角度の比から対応表で値を引く
表示の桁: 目盛りの最小の刻みの半分まで
読み直しにする条件:
- 2回の値の差が、目盛りの最小の刻みの半分を超える
- 計器の枠のスコアが 0.8 を下回る
- 指針の長さが、目盛りまでの長さの 0.5 倍未満か 1.2 倍超
- 角度の比が 0 未満か 1 超(目盛りの外を指している)
- ぶれ・白飛びが基準を下回る(「撮り直し」と書く)
範囲外にする条件:
- 値が台帳の管理範囲の外
- 前日の値から、台帳の「1日の変化の上限」を超えて動いた
守ること:
- 読み直しの値は点検記録に入れない。欄を空のまま残す
- 範囲外でも、設備の制御には何も送らない
- 台帳に無い印の番号は、新しい計器として扱わず「台帳未登録」とする
「角度の比が0未満か1超なら読み直し」が、取り違えへの備えです。 指針が目盛りの外を指すことは、ふつうは起きません。起きたときは、目盛りの始まりと終わりを取り違えたか、別の線を指針と見ていることがほとんどです。
「前日の値から大きく動いた」を範囲外に入れるのは、管理範囲の中でも変化そのものが異常のことがあるからです。 冷却水の温度が範囲の中で毎日少しずつ上がる場合は、範囲を超える前に工務課が気づけます。
出力形式を固定する
写真1枚ごとに、次の形のJSONを作り、点検記録の表と読み直しの一覧に書き出します。
{
"photo_id": "2026-10-08_0712_031.jpg",
"taken_at": "2026-10-08T07:12",
"marker_id": 17,
"gauge_id": "BLR-02-PI",
"location": "ボイラー室 2号ボイラー 蒸気圧",
"unit": "MPa",
"quality": { "blur_ok": true, "glare_ok": true },
"keypoints": { "center": [0, 0], "start": [0, 0], "end": [0, 0], "tip": [0, 0] },
"box_score": 0.0,
"angle_ratio": 0.0,
"reading_1": 0.0,
"reading_2": 0.0,
"value": 0.0,
"status": "recorded | out_of_range | reread | retake | unknown_gauge",
"reasons": [],
"previous_value": 0.0,
"checked_by": "",
"corrected_value": null
}
checked_by と corrected_value は、読み直しや範囲外の写真を確かめた人が書きます。
1つ目の理由は、reading_1 と reading_2 を残すことで、自信の根拠が後から見えることです。 読み直しになった写真で、2回の差がどれだけあったかが分かれば、撮り方の問題か、モデルの問題かを切り分けられます。
2つ目は、status を5つに分けて、人の動き方を変えられることです。
status | 意味 | 誰が何をするか |
|---|---|---|
recorded | 値を記録した | 何もしない |
out_of_range | 管理範囲の外か、前日から大きく動いた | 当番が写真で確かめ、工務課の担当へ |
reread | 自信が足りない | 当番が写真を見て値を入れる |
retake | ぶれ・白飛び | 当番がもう一度撮りに行く |
unknown_gauge | 印が見つからない・台帳に無い | 当番が写真を見て計器を決める |
3つ目は、corrected_value で人が直した値を残せることです。 人が直した写真は、次の学び直しで足す学習用の写真の候補になります。
当番に送る一覧は、次の形にします。
| 計器 | 場所 | 状態 | 読んだ値(1回目/2回目) | 前日 | 理由 |
|---|---|---|---|---|---|
| (例)CW-01-TI | 冷却塔 往き温度 | 範囲外 | 33.5/33.5 ℃ | 31.0 ℃ | 前日からの変化の上限を超えた |
| (例)CMP-03-PI | コンプレッサー室 吐出圧 | 読み直し | 0.68/0.74 MPa | 0.70 MPa | 2回の差が刻みの半分を超えた |
並びは、範囲外、撮り直し、計器不明、読み直しの順にします。 範囲外は設備の問題なので最初に、撮り直しは巡回の帰りに寄れるうちに見るためです。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有フォルダ | 保存の検知と読み取り | 巡回の写真 |
| 計器の台帳 | 読み取りのみ | 印の番号、目盛りの範囲、管理範囲、位置関係 |
| 点検記録の表 | 書き込み(記録済みの値だけ) | 計器ごとの日々の値 |
| 読み直しの一覧 | 書き込み | 範囲外・読み直し・撮り直し・計器不明の写真 |
| 社内チャット | 通知 | 当番と工務課の担当に、その日の一覧の件数と置き場所 |
点検記録の表に書くのは、記録済みの値だけです。 範囲外の値も、当番が写真で確かめた後に入ります。確かめる前の範囲外の値が記録に入ると、読み違いの値を根拠に処置が始まるおそれがあります。
計器の台帳は読み取りだけにします。 台帳に無い印が見つかっても、この構成からは書き足しません。新しい計器の登録は、工務課が印と計器を確かめてから行います。
人が確認する
当番が見るのは、recorded 以外の写真だけです。
- 撮り直しと計器不明を先に見る … 巡回の帰りに撮り直せるものは、その場で撮り直します
- 範囲外を見る … 写真で指針の位置を目で確かめ、値が正しければ工務課の担当に知らせます。 読み違いなら値を直して
corrected_valueに入れます - 読み直しを見る … 写真を見て値を読み、入れます
- 撮り漏れを見る … その日に写真の無い計器があれば、撮りに行きます
2番目を省かないでください。 範囲外の判定は、工務課の担当が設備を見に行くかどうかに直結します。 読み違いの範囲外で担当を呼ぶことが続くと、本当の範囲外のときに急がなくなります。
記録済みの写真は、品質保証課が月に一度、計器ごとに数枚を抜き出して見ます。 抜き出した写真の値を目で読み、記録と合っているかを確かめます。合わない写真があれば、その計器の学習用の写真を足します。
目標は、900件をならして1件1分です。 記録済みの写真には人の時間がかからず、範囲外と読み直しの写真に数分ずつかかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 印が見つからない | 「計器不明」として当番に返す。印のはがれ・汚れを確かめて貼り直す |
| 台帳に無い印の番号 | 「台帳未登録」として当番に返し、工務課が台帳を直す |
| 1枚に2つの計器と印が写っている | 文字盤の切り出しが写真の中に収まる印だけを使う。両方収まれば2件として読む |
| ぶれ・白飛び | 「撮り直し」として返す。値は出さない |
| 指針が目盛りの外を指している | 読み直しとして返す。計器の故障の可能性もあるので、当番が現物を見る |
| 計器を交換した | 台帳の目盛りの範囲と位置関係を直すまで、その計器を読み直しに回す |
| 写真の撮った日時が取れない | 共有フォルダに上がった日時を使い、印を付ける |
| 処理が途中で止まった | 元のフォルダに残す。移すのは表に入れられたときだけ |
上の2行と「ぶれ・白飛び」が、運用の最初の数週間の大半を占めます。 どれもモデルの問題ではなく、印の貼り方と撮り方の問題です。 撮るときに印と文字盤を両方入れる、照明の映り込みを避けて少し角度を付ける、の2つを巡回の手順に書きます。
記録を残す
- 元の写真と撮った日時、処理した日時
- 印の番号と4つの角、向きを直して切り出した文字盤の画像
- 4点の位置とスコア、2回の読み取りの値、
statusと理由 - 当番が確かめた値と、直した値(
corrected_value) - そのときの計器の台帳と目盛りの対応表の版、モデルの版
- 計器ごとの読み直しの割合と、人が値を直した回数(月次)
最後の行で、手を入れる計器を決めます。 読み直しの多い計器は、照明の映り込み、印の位置、文字盤の汚れのどれかに理由があります。モデルを学び直すより、照明の向きを変えるほうが早く効くことがあります。
04実装レベルの3段階
半自動化だけでも、①のうち計器を確かめる時間と、②の欄を探す時間が消えます。 どの計器の写真かが決まり、正面の文字盤が表の横に並ぶからです。ただし、値を読んで入れるのは、まだ人です。 本格構成で1件1分になり、この段階が本記事の想定です。 違いは、記録済みの写真を人が開かなくなることです。 段階を飛ばさないでください。 半自動化で1か月回すと、読み直しになりそうな計器(反射・汚れ・細かい目盛り)が当番の目で分かります。そこを直してから読み取りを足すほうが、読み直しの件数が減ります。
05工数削減シミュレーション
導入後 900件 × 1分 ÷ 60 = 15 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- ボイラー・コンプレッサー・冷却水・ポンプなどの付帯設備に、通信の無いアナログの圧力計・温度計・流量計が数十個あり、毎日の巡回で読んで点検記録に写している工場。巡回の担当がタブレットやスマートフォンで計器を撮り、事務所に戻ってから値を読んで表に入れている場合。病院やホテルの機械室で、同じように毎日の巡回の記録をつけている場合。計器の横に小さな印(マーカー)を貼れる場合。
- 計器が数個で、その場で読んで書けば足りる場合。計器をデジタルの伝送器に替える予算と計画がすでにある場合(そちらが根本の対策)。法令や顧客の基準で、点検者が目で読んで記録することが求められている計器。なお、管理範囲の決定、外れた値への処置、設備を止めるかどうかの判断は、この構成では代替できません。
07最小構成で試す方法
- 読む頻度の高い計器を5つ選び、それぞれの横に印を貼る
- 1週間、巡回のたびにその5つを、印と文字盤が両方入るように撮る
- 撮った写真について、当番が読んだ値を表にしておく
- 印から計器を見分け、向きを直して文字盤を切り出すところまでを、Python で作って動かす
- 切り出した文字盤の画像を当番に見せ、「元の写真より読みやすいか」「印で計器を取り違えなく決められたか」を聞く
この段階では4点を見つけるモデルを作りません。 確かめたいのは、印で計器が決まり、正面に直した文字盤が人にとって読みやすくなるかです。
| 出てきた内容 | 判断 |
|---|---|
| 印で計器が決まり、正面に直した文字盤が読みやすい | 4点の学習用の写真を集め、モデルを作る段階に進む |
| 印が写っていない写真が多い | 撮り方の手順と、印の貼る位置を先に直す |
| 正面に直しても指針が反射で見えない | 照明の向きか、撮る角度を先に直す。モデルの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、人が読むときにも見えにくかった計器が分かったということです。照明に覆いを付けるか、撮る位置を決めて床に印を付けてから、同じ確かめをやり直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 写真の計器を取り違える | 撮った順番に頼っている。印の番号で計器を決める |
| 斜めの写真で値がずれる | 向きを直していない。印の4つの角で正面に戻す |
| 印を貼っても向きが直らない | 印が文字盤と別の面にある。文字盤と同じ面に貼る |
| 目盛りの真ん中で値がずれる | 等間隔でない目盛りを比例で計算している。対応表を作る |
| 反射の写真でそれらしい値が出る | 自信の目安が無い。2回読んで差を見る |
| 読み直しの値が記録に混ざる | 読み直しの欄は空のまま残す |
| 学習した計器でしか読めない | 計器ごとに写真が要る。新しい計器は30枚集めてから読ませる |
| 印が汚れて見つからない | 油や湿気の多い場所はラミネートした印を使い、月次で貼り直す |
| 範囲外の通知が多すぎる | 前日からの変化の上限が厳しすぎる。工務課と台帳の値を見直す |
| 検証ではよく読めるのに本番で外れる | 同じ日の写真で学習と検証をしている。撮った日で分ける |
| 夏と冬で読み直しが増える | 日の差し込み方が変わる。季節ごとに写真を足して学び直す |
| 範囲外で設備を自動で止めたくなる | つながない。 処置は工務課の担当が決める |
上の2行が、取り違えと読み違えのほとんどです。 どちらも人が読んでいたときから起きていた問題で、印を貼るだけで消える部分です。
下の2行は、運用が軌道に乗ってから効いてきます。 学習した時期と光の具合が違う写真ほど、読み直しが増えます。月次の読み直しの割合を計器ごとに見ていれば、季節の変わり目に増えたことにすぐ気づけます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 設備の写真、計器の値、設備の配置と運転の状態。写真には、設備の型番や配管の取り回し、場合によっては作業する人が写ります。
- 社外へ出さない … 学習も読み取りも社内のパソコンかサーバーで終わります。外部のAIサービスへ設備の写真を送らない構成にします
- 設備の制御とつながない … 範囲外の値は人への知らせだけにし、設備を止める・動かす経路を作りません
- 読み直しの値を記録に入れない … 点検記録は品質と安全の根拠になる記録です。自信の無い値で埋めず、人が確かめた値だけを入れます
- 人が写った写真の扱いを決める … 計器を撮るときに作業する人が写り込むことがあります。学習用の写真に使う前に、人の写った写真を外すか、顔の部分を塗りつぶします
- 点検者の記録を残す … 誰が巡回し、誰が読み直しの値を入れたかを残し、点検の責任がどこにあるかを曖昧にしません
誤りが起きた場合のリスクは、読み違いの値が記録に入って範囲外を見逃すことと、読み違いの範囲外で担当を呼ぶことの2つです。 前者は2回の読み取りと形の確かめで読み直しに回すことで、後者は当番が写真で確かめてから知らせることで防ぎます。
10まず何から始めるか
1週目:台帳を整え、5つの計器に印を貼る
計器の台帳に、目盛りの最小と最大・単位・管理範囲・巡回の順番を書きます。読む頻度の高い計器を5つ選び、文字盤と同じ面に印を貼って、印の番号を台帳に入れます。
2週目:撮り方を決めて1週間撮る
印と文字盤が両方入る撮り方を巡回の手順に書き、5つの計器を1週間撮ります。当番が読んだ値も表に残します。
3週目:計器の見分けと向きの補正を作る
Python で印から計器を決め、文字盤を正面に直して切り出すところまで作り、当番に「読みやすくなったか」を聞きます。
4週目:全計器に広げる
45個の計器すべてに印を貼り、写真を計器ごとに振り分けて、点検記録の表の横に正面の文字盤を並べます。この時点では値を読ませず、人が読みます。
2か月目: 計器ごとに30枚の写真に4点を付けて学習し、値を出して当番の読んだ値と並べます。3か月目以降: 2回の読み取りと範囲外の判定を足し、記録済みの値を表に入れ始めます。品質保証課の月次の抜き取りで、記録と写真の食い違いが3か月続けて無くなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
ArUco マーカーが太い黒い縁と内側の2値の格子でできた四角い印で、格子が印の番号を決め、誤りの検出と訂正ができること。1つの印の4つの角でカメラの位置関係を求める対応が足りること。ArucoDetector の detectMarkers が、印ごとの4つの角(左上から時計回り)と番号を返すこと。generateImageMarker で印の画像を作れること。使う数が少ないなら小さな辞書のほうが印どうしのハミング距離が大きく誤りに強いこと | OpenCV(GitHub の公式リポジトリ): Detection of ArUco Markers | 2026-10-08 |
keypointrcnn_resnet50_fpn が、学習時に画像ごとの boxes・labels・keypoints([x, y, visibility] の形の K 個の点)を受け取り、推論時に boxes・labels・scores・keypoints を返すこと。num_classes と num_keypoints を指定できること。公開の重み(COCO_V1)が COCO で学習されたものであること | PyTorch(torchvision): keypointrcnn_resnet50_fpn | 2026-10-08 |
管理範囲と、範囲を外れた値への処置は、工務課と品質保証課の判断で決めてください。 本記事は製品の公開ドキュメントで確認できた範囲だけを扱っています。OpenCV の公式の文書サイト(docs.opencv.org)は確認日に取得できなかったため、同じ内容の公式リポジトリの原稿で確かめました。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0940)についてのご相談はこちらから。
