太陽光発電所の保守会社が定期点検で撮ったパネル・架台・パワーコンディショナの写真から、割れ・汚れ・影・雑草・腐食の候補を拾い、点検報告書の下書きに回す
太陽光発電所の定期点検で撮った写真を、前回の点検の同じ地点の写真と並べ、パネルの割れ・汚れ、草木の影、雑草の伸び、架台の腐食、表示画面のエラーの候補を拾います。写真番号と枠付きの一覧にし、点検報告書の所見の下書きに回します。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- その他/建設
- 対象部門
- 品質管理
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 点検員が現地で、撮影する地点の一覧の順に写真を撮り、点検表に気づいたことを書く
- 事務所に戻り、写真をタブレットから写真の保管先に移し、地点の番号のフォルダに分ける
- 写真を1枚ずつ開き、割れ・汚れ・影・雑草・腐食・フェンスの破れなどを探す
- パワーコンディショナの表示画面の写真から、エラーの表示や運転の状態を読み取る
- 気になる写真があれば、前回の報告書を開いて同じ地点の写真を探し、見比べる
- 報告書の様式に、写真を貼り、所見を書く
- 電気の技術者が報告書を確かめ、修繕の提案を書き足して、発電事業者に出す
- 人点検員が、点検アプリで撮影する地点の番号を選んで撮る(ファイル名に地点の番号が入る)
- 自動写真の保管先に1か所分の写真がそろったら、プログラムが動き、地点の番号で前回の写真と組にする
- 自動組ごとに Gemini API に渡し、候補・前回からの変化・写っていない範囲・表示画面の文字を受け取る
- 自動プログラムが写真に枠を描き、地点の順に候補の一覧を作る
- 自動報告書の様式に、候補のある写真と所見の下書きを並べる
- 人点検員が、現地の点検表と照らして候補を確かめ、所見を直す
- 人電気の技術者が、報告書を確かめ、異常の程度と修繕の提案を書いて、発電事業者に出す
各工程の詳しい説明を読む
- 点検員が現地で、撮影する地点の一覧の順に写真を撮り、点検表に気づいたことを書く
- 事務所に戻り、写真をタブレットから写真の保管先に移し、地点の番号のフォルダに分ける
- 写真を1枚ずつ開き、割れ・汚れ・影・雑草・腐食・フェンスの破れなどを探す
- パワーコンディショナの表示画面の写真から、エラーの表示や運転の状態を読み取る
- 気になる写真があれば、前回の報告書を開いて同じ地点の写真を探し、見比べる
- 報告書の様式に、写真を貼り、所見を書く
- 電気の技術者が報告書を確かめ、修繕の提案を書き足して、発電事業者に出す
(a)写真を見るのに時間がかかる。 1か所で60〜100枚を、1枚ずつ開いて見ます。ほとんどの写真には何も無いのですが、何も無いことを確かめるのにも時間がかかります。
(b)前回との見比べを省く。 5番目の手順は、時間が無い日から省かれます。汚れや雑草の進み方は、見比べないと書けません。 「汚れあり」と毎回同じ所見が続き、発電事業者には変化が伝わりません。
(c)所見の書き方が点検員ごとに違う。 同じ鳥の糞の汚れでも、「軽微な汚れ」と書く点検員と、「清掃を推奨」と書く点検員がいます。報告書を読む発電事業者には、どちらが重いのかが分かりません。
(d)現地での気づきと写真がつながらない。 点検表の「C列付近で草が伸びている」というメモが、どの写真のことかが後から分かりません。報告書に貼る写真を選ぶのに、また写真を見返します。
- 【人】 点検員が、点検アプリで撮影する地点の番号を選んで撮る(ファイル名に地点の番号が入る)
- 【自動】 写真の保管先に1か所分の写真がそろったら、プログラムが動き、地点の番号で前回の写真と組にする
- 【自動】 組ごとに Gemini API に渡し、候補・前回からの変化・写っていない範囲・表示画面の文字を受け取る
- 【自動】 プログラムが写真に枠を描き、地点の順に候補の一覧を作る
- 【自動】 報告書の様式に、候補のある写真と所見の下書きを並べる
- 【人】 点検員が、現地の点検表と照らして候補を確かめ、所見を直す
- 【人】 電気の技術者が、報告書を確かめ、異常の程度と修繕の提案を書いて、発電事業者に出す
6番目が、この設計の分かれ目です。点検員は全部の写真を見直しません。 候補のある写真と、写っていない範囲が出た地点と、前回から変化があった地点だけを見ます。候補の無い地点は、一覧で地点の番号を流し見て終わりにします。
7番目の電気の技術者の確認は、減らしません。 異常の程度と修繕の要否は、発電事業者の判断と費用に直結します。AIの下書きに書かれるのは「候補」と「変化」だけで、程度と要否の欄は空けたまま技術者に渡します。
02今回想定するシステム構成
定期点検(点検員が撮影する地点の番号を選んで撮る) ▼【トリガー】1か所分の写真がそろったとき Python のプログラム(社内のサーバー) ├── 地点の番号で前回の写真を探し、組にする ├── 写真の向きを直し、縮小する ▼ Gemini API(画像の理解・構造化出力)── 地点ごとに前回と今回の2枚 │ 割れ・汚れ・影・雑草・腐食・フェンスの破れの候補(今回の写真の枠) │ 前回からの変化(new / progressed / unchanged / improved) │ 写っていない範囲、表示画面の文字 ▼ Python ── 枠を描き、地点の順に一覧と報告書の下書きを作る ▼ 【人】点検員が候補を確かめる → 電気の技術者が程度と修繕の提案を書く ▼ 点検報告書(発電事業者へ)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(前回と今回の写真を比べ、候補と変化を返す) | Claude API、OpenAI API |
| 連携 | Python(写真の組づくり、前処理、呼び出し、枠の描画、報告書の下書き) | Google Apps Script |
| 台帳 | 点検の管理表(発電所、撮影する地点の一覧、点検の日) | - |
| 端末 | 点検員のタブレット(点検アプリで地点の番号を選んで撮る) | スマートフォン |
新しく足すのは、Python のプログラムと Gemini API の契約、そして写真のファイル名に地点の番号を入れる撮り方です。 点検の管理表も報告書の様式もすでにあるものです。報告書を発電事業者に送るのは、これまでどおり人です。
写真を見る土台は、Gemini API の画像の理解です。 公式の案内では、画像の説明、画像についての質問への回答、分類、物の検出に使えるとされています。対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、1つのリクエストに複数の画像を入れられます。 前回と今回の2枚を組にして渡します。画像を直接入れる場合は、リクエスト全体が20MBまでです。
候補の位置は、今回の写真の上の枠で返させます。 枠は例では [ymin, xmin, ymax, xmax] の順で 0〜1000 に正規化されます。公式の案内には、物の輪郭を多角形で返させる例もあります。雑草や汚れのように広がりのある候補は、枠より輪郭のほうが範囲を伝えやすいので、種類によって使い分けます。
出力は構造化出力で受けます。 response_format で mime_type を application/json にし、schema を入れて /v1beta/interactions に送ります。enum で値を決まった文字列に絞れます。値はアプリ側で検証するよう書かれています。
点検をする理由は、発電事業者の側の決まりにあります。 太陽光発電協会の資料では、FIT・FIP の事業計画策定ガイドライン(太陽光発電)を引いて、設備の不具合や破損による第三者への被害を未然に防ぐため、定期的な巡視や点検の実施が重要とし、民間団体のガイドライン等を参考に、同等以上の内容で保守点検と維持管理を実施するよう努めることが示されています。JEMA と JPEA の「太陽光発電システム保守点検ガイドライン」には、点検報告書の章と、定期点検要領の例の附属書があります。
03どうやって実装するのか
処理の起点を決める
1か所分の写真が写真の保管先にそろったときに動きます。 点検アプリで「この発電所の撮影を終える」を押すと、地点の番号の入った写真がまとめて上がり、プログラムが動きます。撮影の途中では動かしません。 途中で動かすと、撮っていない地点が「写真なし」として一覧に並び、点検員が混乱します。
台風・大雨・地震の後の臨時の点検も、同じ流れに乗せます。 太陽光発電協会の資料では、地震、台風、洪水、火災、悪天候の後に点検を行い、詳細な点検が必要なら定期点検要領の例の点検を行うことが望ましいとされています。臨時の点検では、前回の定期点検の写真と組にします。
撮り直しの写真が後から上がったときは、その地点だけを呼び直します。 点検員が直した所見を上書きしないよう、直した後の所見は別の欄に残します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 今回の写真 | 撮影する地点の番号ごとの写真。撮影の日時 | 写真の保管先 |
| 前回の写真 | 同じ発電所・同じ地点の番号の、前回の定期点検の写真 | 写真の保管先 |
| 撮影する地点の一覧 | 地点の番号、何を撮る地点か(アレイの全景、パネルの寄り、架台の基礎、パワーコンディショナの表示画面、接続箱、フェンス、標識、周囲の草木) | 点検の管理表 |
| 撮影の条件 | 天気、時刻、逆光か | 点検員が点検アプリで選ぶ |
| 現地の点検表 | 点検員の気づきのメモ | 点検アプリ |
| 候補の種類の一覧 | 割れ、汚れ、鳥の糞、影、雑草、架台の腐食、ボルトの欠け、フェンスの破れ、標識の欠け、配線の垂れ下がり、表示画面のエラー | プログラムに持たせる |
質を決めるのは、地点の番号と、毎回同じ位置から撮ることです。 前回と今回の写真の向きや距離が大きくずれていると、同じ場所を比べられず、変化が「比べられない」になります。 地点ごとに、杭やフェンスの柱など目印を決めておくのがいちばん効きます。
撮影の条件は、汚れと影の見分けに使います。 逆光の写真では、パネルの表面の反射が汚れに見えます。夕方の写真では、草木の影が長く伸びます。条件を指示に入れておくと、反射を汚れと言いにくくなり、影の長さの違いを前回との変化と言いにくくなります。
データの取得方法を決める
前回の写真は、発電所の番号と地点の番号で、写真の保管先から取ります。 前回の定期点検の日を点検の管理表から引き、その日のフォルダの同じ地点の番号の写真を探します。地点の番号の一覧が変わった発電所(パネルを増設した など)は、前回に無い地点を「前回の写真なし」とします。
Gemini API へは、地点ごとに1回、前回と今回の2枚を組にして渡します。 1か所で数十回の呼び出しを並べて行います。地点ごとに分けると、どの組で比べたかがはっきりし、撮り直しのときにその地点だけを比べ直せます。
表示画面の写真は、別の指示で渡します。 パワーコンディショナの表示画面は、パネルの写真と見るものが違い、画面の文字(エラーの番号、運転の状態)を書き写すことが仕事になるからです。
有料の利用枠で使います。 Gemini API の規約では、有料のサービスではプロンプトと応答(画像などのファイルを含む)が製品の改善に使われないとされています。
AIへ渡す前に整形する
- 形式と向き … PNG、JPEG、WEBP、HEIC、HEIF のどれかであることを確かめ、画像の向きの情報で回転しているだけのものは画素を回転させます。向きが合っていないと、返った枠がずれます
- 縮小 … 全景の写真は長い辺を1,600ピクセル程度に縮めます。パネルの寄りと表示画面の写真は、割れや文字がつぶれないよう大きめに残します
- 組の確認 … 今回の地点の番号ごとに前回の写真があるかを見ます。無い地点は「前回の写真なし」とし、今回の写真だけで候補を拾わせます
- 撮影の条件の付け足し … 前回と今回の天気・時刻・逆光かを指示に入れます
- 地点の説明の付け足し … その地点が何を撮る地点かを指示に入れます。「アレイの全景」と「架台の基礎」では、見るものが違います
- 大きさの確認 … 2枚と指示の文を合わせて20MBを超えないかを見ます。超えるときは縮め直します
4番目を軽く見ないでください。 前回が曇りの昼、今回が晴れの夕方なら、草木の影の長さは写真の上で大きく変わります。 その差を前提に比べさせないと、影が「新しく出た」と返ってきます。
AIに処理させる
させるのは、地点ごとに前回と今回の写真を比べ、今回の写真の候補を枠で返し、前回からの変化と、写っていない範囲を返すことだけです。 表示画面の写真では、画面の文字を書き写させます。
| 返すもの | 中身 | 判断できないときの扱い |
|---|---|---|
| 候補 | 今回の写真の枠、種類(割れ、汚れ、鳥の糞、影、雑草、腐食 など)、見え方の説明 | 汚れか反射か分からなければ unclear として候補に入れる |
| 前回からの変化 | 候補ごとに new / progressed / unchanged / improved | 前回の写真で同じ場所が見えなければ not_comparable |
| 写っていない範囲 | 写真のどの範囲が、なぜ見えないか(逆光、遠すぎる、草で隠れている) | 範囲がはっきりしなければ地点ごと「見えない範囲あり」 |
| 表示画面の文字 | 画面に出ている文字と数字をそのまま | 読めない文字は ? にして、読めた部分だけを返す |
右端の列の考え方は、迷ったら点検員に見せる側に倒すことです。 汚れか反射か分からないものは候補に入れ、前回と比べられないものは「比べられない」と返させます。候補が多すぎるのは点検員の数秒で済みますが、候補から落ちた割れは次の点検まで誰も見ません。
| させないこと | 理由 |
|---|---|
| 異常の程度・緊急度の判断 | 電気の技術者が、現地の結果と測定の値で判断する |
| 修繕・清掃・除草の要否 | 発電事業者の費用に関わる。技術者が提案する |
| 発電量が落ちた原因の特定 | 写真だけでは分からない |
| ホットスポットや内部の不具合の推定 | 可視光の写真には写らない |
| 表示画面のエラーの意味の解説 | 機器の取扱説明書で技術者が確かめる |
| 「異常なし」の結論 | 写っていない範囲がある限り言えない |
4行目がいちばん起きやすい失敗です。 パネルの一部がわずかに変色した写真を渡すと、AIは「ホットスポットの可能性」と書きたがります。報告書に一度その言葉が載ると、発電事業者には異常として伝わります。 返すのは「変色の候補」という写っている事実までにします。
機器の内部の写真を撮らせないことも、この構成の前提です。 太陽光発電協会の資料では、太陽光発電用機器の内部は高電圧となっている部分があるため、日常点検は外部からの目視、異音、異臭、振動などの点検に留めるとされています。AIのために、点検員が機器の扉を開けて写真を撮ることはしません。
指示内容を固定する
あなたは太陽光発電所の保守点検の報告書づくりを手伝う係です。
同じ発電所の同じ地点を撮った2枚の写真があります。
1枚目は前回の定期点検、2枚目は今回の点検で撮ったものです。
【この地点】{地点の番号}:{アレイの全景/パネルの寄り/架台の基礎/フェンス/周囲の草木}
【撮影の条件】前回:{天気、時刻、逆光か} 今回:{天気、時刻、逆光か}
【やること】
1. 2枚目の写真で、次の候補を探す。
割れ、汚れ、鳥の糞、草木の影、雑草、架台の腐食・さび、ボルトの欠け、
フェンスの破れ、標識の欠け、配線の垂れ下がり。
2. 候補ごとに、2枚目の写真の上の枠を [ymin, xmin, ymax, xmax] の順で、
0〜1000 に正規化して返す。種類と見え方を書く。
3. 候補ごとに、1枚目と比べて new(前回は無い)/progressed(広がった・伸びた)/
unchanged(同じ)/improved(減った)のどれかを付ける。
1枚目で同じ場所が見えなければ not_comparable とする。
4. 逆光、遠すぎる、草で隠れているなどで見えない範囲を、理由とともに返す。
【厳守事項】
- 異常の程度、緊急度、修繕・清掃・除草の要否を書かないでください。
- 「ホットスポット」「発電量の低下」「故障」と書かないでください。
あなたが返すのは、写真に写っている候補と、前回からの変化だけです。
- 汚れか反射か分からないものは、kind を unclear にして候補に入れてください。
- 天気や時刻の違いによる影の長さの違いを、変化として扱わないでください。
- 見えない範囲がある場合、その範囲について「異常なし」と書かないでください。
- 近隣の建物、人、車については何も書かないでください。
「ホットスポット」「故障」を禁じる一文は、表現の問題ではありません。 報告書の下書きにこの言葉が載ると、技術者が確かめる前に、発電事業者への説明の言葉として残ってしまいます。 責任と費用に関わる言葉を、最初から外しておきます。
表示画面の写真には、別の指示を使います。 「画面に出ている文字と数字を、そのまま書き写してください。読めない文字は ? にしてください。エラーの意味は書かないでください」とし、書き写した文字を技術者が取扱説明書で引きます。
出力形式を固定する
地点ごとに、次の形の JSON で受け取ります。 kind、change、reason は enum で決まった文字列に絞ります。
{
"site_id": "",
"point_id": "A-03",
"candidates": [
{
"box_2d": [520, 140, 610, 330],
"kind": "crack | soiling | bird_droppings | shading | vegetation | corrosion | missing_bolt | fence_damage | sign_missing | cable_sag | unclear",
"description": "パネルの左下の角に放射状の線",
"change": "new | progressed | unchanged | improved | not_comparable"
}
],
"not_visible": [
{ "area": "B列の西半分", "reason": "backlight | too_far | hidden_by_vegetation | no_previous_photo" }
],
"display_text": ""
}
1つ目の理由は、change で報告書の書き方をそろえられることです。 new と progressed の候補は報告書の所見の欄の先頭に、unchanged は「前回から変化なし」として後ろにまとめます。点検員ごとに違っていた所見の並べ方が、変化の区分でそろいます。
2つ目は、kind で地点をまたいだ集計ができることです。 発電所ごとに vegetation の progressed が何地点あるかを数えれば、除草の提案を出す時期の材料になります。 提案するかを決めるのは技術者です。
3つ目は、not_visible で撮り直しの頼み方が具体的になることです。 「B列の西半分が逆光」と出れば、次の点検で撮る時刻を変えればよいと分かります。
response_format の schema には、次のように値を絞った形を入れます(抜粋)。
{
"type": "object",
"properties": {
"point_id": { "type": "string" },
"candidates": { "type": "array", "items": { "type": "object",
"properties": {
"box_2d": { "type": "array", "items": { "type": "integer" }, "minItems": 4, "maxItems": 4 },
"kind": { "type": "string", "enum": ["crack", "soiling", "bird_droppings", "shading", "vegetation", "corrosion", "missing_bolt", "fence_damage", "sign_missing", "cable_sag", "unclear"] },
"change": { "type": "string", "enum": ["new", "progressed", "unchanged", "improved", "not_comparable"] }
},
"required": ["box_2d", "kind", "change"] } },
"not_visible": { "type": "array" }
},
"required": ["point_id", "candidates", "not_visible"]
} システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 写真の保管先 | ファイルの読み取り | 今回と前回の写真を地点の番号で取る |
| 点検の管理表 | ファイルの読み取り | 撮影する地点の一覧、前回の点検の日 |
| Gemini API | API呼び出し(/v1beta/interactions) | 地点ごとの候補、変化、見えない範囲、表示画面の文字 |
| 報告書の様式 | ファイルの作成 | 候補のある写真と所見の下書きを並べた下書きを作る |
| 発電事業者 | これまでの送り方 | 技術者が確かめた報告書を人が送る(この構成からは送らない) |
発電事業者へは、この構成から何も送りません。 下書きをそのまま送る経路を作ると、点検員と技術者が見る前の候補が、発電事業者の手元で「異常」として読まれます。
人が確認する
- 点検員が候補を確かめる … 候補のある写真、
newとprogressedの候補、not_visibleの出た地点を見ます。現地の点検表のメモと照らし、候補を残すか外すかを決めます - 点検員が所見を直す … 下書きの言葉を、自社の所見の書き方にそろえます
- 技術者が程度と修繕の提案を書く … 異常の程度、緊急度、清掃・除草・修繕の提案は、技術者が書きます
- 外した候補を記録する … 反射を汚れと言った、影を新しいと言った、などの理由を残します
1番目で現地のメモと照らすのは、写真に写らない気づきがあるからです。 異音、異臭、振動は写真に写りません。点検表のメモにある気づきは、AIの候補が無くても所見に残します。
目標は、90件をならして1件20分です。 候補の無い地点は一覧で地点の番号を流し見るだけにし、new と progressed の候補と not_visible の地点に時間を使います。点検員が外す候補が1件で半分を超えるなら、撮影の条件の入れ方か、地点の目印が崩れています。 外した理由を毎週集め、多い理由から直します。
例外に対処する
| 起きること | 対応 |
|---|---|
| 前回の写真が無い(初回、増設した地点) | no_previous_photo とし、今回の写真だけで候補を拾う |
| 前回と今回で撮った位置が大きくずれる | 変化は not_comparable が多くなる。目印を決め直して次回から撮る |
| 逆光で見えない | backlight として返る。次回は撮る時刻を変える |
| 表示画面の文字が反射で読めない | 読めない文字は ?。点検員が現地の点検表のメモを書き足す |
| 雪がパネルを覆っている | 候補を拾わず、写っていない範囲として返す。雪が解けた後に撮り直す |
| 2枚と指示の文が20MBを超える | 縮め直して呼び直す |
JSON の値が enum に無い | その地点の結果を一覧に載せず、点検員に回す |
上から3行目までが大半を占めます。 どれもAIの精度の問題ではなく、写真の組と、撮る位置と時刻の問題です。 地点の目印を決め直すほうが、指示の文をいじるより効きます。
記録を残す
- 発電所と地点の番号ごとの、今回と前回の写真と、Gemini API が返した JSON の全文
- 指示に入れた撮影の条件
- 点検員が外した候補と、その理由
- 技術者が書いた程度と修繕の提案、報告書を送った日
- 地点ごとの
not_visibleの出方の記録
3つ目が、指示の文を直す材料です。 外した理由で「反射」が多ければ撮影の条件の書き方を、「影」が多ければ時刻の違いの扱いを見直します。
04実装レベルの3段階
最小構成では件数がさばけません。 1か所で数十組あるので、月90件には使えません。確かめるための段階です。 半自動化で、1件60分が35分程度になります。 見比べと候補の拾い出しは自動になりますが、報告書への写真の貼り付けと所見の記入が残ります。本格構成で20分になり、この段階が本記事の想定です。 差が大きいのは、候補のある写真を選んで所見と並べる作業が、1件ずつの手作業だからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、not_comparable の多い発電所と、反射を汚れと言いやすい地点が分かります。そこの撮り方を直してから本格構成に進むほうが、点検員が外す候補が減ります。
05工数削減シミュレーション
導入後 90件 × 20分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 地上に設置した低圧・高圧の太陽光発電所を数百か所預かり、毎月の巡回の順番で定期点検を回している保守会社。点検員が1か所あたり数十〜百枚の写真を撮り、事務所に戻ってから写真を1枚ずつ見て所見を書き、報告書にまとめる作業が残業になっている場合。前回の点検の写真と見比べる手間を省いてしまい、汚れや雑草の進み方を書き漏らすことがある場合。撮影する地点と順番を発電所ごとに決められる場合。
- 屋根に置いた住宅用の設備が中心で、地上から見える範囲が限られる場合。点検で写真を撮らず、計測の値だけで報告している場合。赤外線の画像や電流・電圧の特性の測定から不具合を探す作業が主で、可視光の写真から拾うものが少ない場合。なお、異常の程度、修繕の要否と緊急度、電気の安全に関わる判断、発電量が落ちた原因の特定は、この構成では代替できません。
07最小構成で試す方法
- 先月点検した発電所から3か所を選ぶ(うち1か所は、前回から汚れや雑草が進んでいたと分かっているところ)
- その3か所の写真を、地点の番号ごとに前回の写真と組にする
- Gemini API の有料の利用枠で、組ごとに2枚を渡す
- 「2枚目の写真の割れ・汚れ・影・雑草・腐食の候補を枠で示し、1枚目と比べて新しいか、広がったか、同じかを付けてください。程度や修繕の要否は書かないでください」と指示する
- 出てきた候補と変化を、当時の報告書の所見と突き合わせる
3か所は必ずやってください。 プログラムを組む前に、「自社の撮り方で、前回と比べられるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の所見と同じ候補が出て、進み方も合っている | 写真の組づくりと一覧の作成に進む |
| 「ホットスポット」「清掃が必要」と書いた | 指示の書き方で直る。構成は有効 |
ほとんどの地点が not_comparable になる | 撮る位置の決め方が先。 AIの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、前回との見比べが事務所でできていなかった理由が1つ分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「ホットスポットの可能性」と書く | 指示で禁じる。 可視光の写真に写らないものを推さない |
| 影の長さの違いを「新しい影」と言う | 撮影の条件を指示に入れ、時刻の違いを変化として扱わせない |
| 反射を汚れと言う | 逆光の写真には unclear を使わせ、次回の撮る時刻を変える |
| 前回と位置がずれて比べられない | 地点ごとに目印を決める |
| 寄りの写真を縮めすぎて割れが見えない | 写真の種類ごとに縮め方を変える |
| 表示画面のエラーの意味まで書く | 文字の書き写しまで。意味は技術者が取扱説明書で引く |
| 機器の扉を開けて写真を撮る | 内部は高電圧の部分がある。 外部からの目視に留める |
| 「異常なし」と書く | 見えない範囲がある限り書かせない |
| 下書きがそのまま発電事業者に届く | 送るのは人。 程度と提案の欄は技術者が書く |
上の2行が、この構成の失敗のほとんどです。 どちらも、写真に写っていない・起きていないことを候補として書く失敗です。写っている事実だけを返させ、程度と原因の欄を空けておくかどうかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 発電所の写真、発電所の所在地と設備の構成、パワーコンディショナの表示画面の運転の状態です。写真には、近隣の建物や道路、車のナンバー、点検員の姿が写り込むことがあります。
- 近隣と人を書かせない … 指示の文で、近隣の建物・人・車について書かせないようにしてあります。報告書に貼る写真も、写り込みの多いものは選ばないようにします
- 有料の利用枠で使う … 規約では、有料のサービスでは、プロンプトと応答(画像などのファイルを含む)が製品の改善に使われないとされています。一方で、禁止された使い方の検知などのために限られた期間記録されることも書かれています
- 発電所の所在地と構成の一覧を外に出さない … 300か所の所在地と設備の一覧は、盗難や侵入の手がかりになりえます。AIには地点の番号と地点の説明だけを渡し、所在地は渡しません
- 電気の安全の判断を AI に寄せない … 程度、緊急度、修繕の要否は技術者が判断します。機器の内部を撮らせる運用にしません
- 報告書の責任の所在を変えない … 報告書は、これまでどおり保守会社が技術者の確認を経て出すものです。AIの下書きであることを理由に、確認を省かないでください
誤りが起きた場合のリスクは、割れや雑草の進み方を見落として次の点検まで放っておくことと、写っていない不具合を推して発電事業者に余計な費用をかけさせることの2つです。 前者は not_visible を「異常なし」と読み替えると起き、後者は「ホットスポット」などの言葉を許すと起きます。どちらも、写っている事実だけを返させる設計で防げます。
10まず何から始めるか
1週目:撮影する地点の目印を決める
点検の多い発電所から10か所を選び、撮影する地点ごとに、杭やフェンスの柱など毎回同じ位置から撮れる目印を決めます。点検アプリで地点の番号を選んで撮るように変えます。
2週目:3か所で試す
先月点検した3か所の写真を前回と組にして Gemini API に渡し、候補と変化を出させます。前回から進んでいた汚れや雑草が progressed として出るかを最優先で見ます。
3週目:所見の書き方をそろえる
new、progressed、unchanged ごとの所見の書き方の例を作り、点検員と技術者で同じ言葉を使うようにします。程度と提案の欄は技術者が書くことを、報告書の様式に明記します。
4週目:写真の保管先から一覧までをつなぐ
1か所分の写真がそろったら前回と組にして呼び出し、地点の順の候補の一覧を書き出すところまで作ります。この時点では報告書の下書きを作らず、一覧だけを点検員が見ます。
2か月目: 枠を描いた写真と所見の下書きを報告書の様式に並べます。点検員が外した候補の理由を毎週数えます。3か月目以降: 対象の発電所を広げ、1件60分が何分になったかを実測します。外した候補の理由が撮る位置と時刻の直しに反映され、前回との見比べが全部の地点で回るようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
画像の説明・質問への回答・分類・物の検出に使えること。対応する形式(PNG、JPEG、WEBP、HEIC、HEIF)。画像を直接入れる場合にリクエスト全体が20MBまでであること。1つのリクエストに複数の画像を入れられること。枠が [ymin, xmin, ymax, xmax] の順で 0〜1000 に正規化されること。輪郭を多角形で返させる例があること。画像のトークンの換算(384ピクセル以下は258トークン、それより大きいものは768×768の区画ごとに258トークン) | Gemini API: Image understanding | 2026-10-15 |
構造化出力が response_format で mime_type を application/json にし、schema にスキーマを入れる形で /v1beta/interactions に送ること。enum、minItems、maxItems が使えること。値はアプリ側で検証するよう書かれていること | Gemini API: Structured output | 2026-10-15 |
| 有料のサービスではプロンプトと応答(画像などのファイルを含む)が製品の改善に使われないこと。禁止された使い方の検知などのために限られた期間記録されること。18歳以上であることが利用の条件であること | Gemini API Additional Terms of Service | 2026-10-15 |
| 事業計画策定ガイドライン(太陽光発電、2022年4月改訂版)を引いて、不具合や破損による第三者への被害を防ぐため定期的な巡視や点検の実施が重要であり、民間団体のガイドライン等を参考に同等以上の内容で保守点検と維持管理を行うよう努めること。機器の内部は高電圧の部分があるため外部からの目視・異音・異臭・振動などの点検に留めること。地震・台風・悪天候などの後に点検を行うことが望ましいこと。JEMA/JPEA の保守点検ガイドラインに点検報告書の章と定期点検要領の例の附属書があること | 太陽光発電協会: 住宅用太陽光発電の保守点検(SOLAR WEEK 2023 資料) | 2026-10-15 |
点検の項目と頻度、報告書の記載事項は、発電所の区分に応じた法令と保安の決まり、契約、最新のガイドラインに沿って決めてください。 本記事は公開の資料で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1608)についてのご相談はこちらから。
