Media > AI活用ユースケース > 総務 > 自治体の道路管理の担当に届く道路占用・道路使用の許可申請書を読み取り、場所・期間・占用物件・面積を受付台帳にそろえて、記入漏れと添付図面の不足を拾う

自治体の道路管理の担当に届く道路占用・道路使用の許可申請書を読み取り、場所・期間・占用物件・面積を受付台帳にそろえて、記入漏れと添付図面の不足を拾う

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

道路占用の許可申請書と添付図面を読み取り、場所・期間・占用物件・面積を受付台帳の行にそろえます。法令の記載事項の漏れ、添付図面の不足、申請書と図面の数値の食い違いを、受け付けた日のうちに担当へ出します。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
Azure AI/Google Document AI
連携・自動化
Google Apps Script/Python
対象業界
建設/自治体
対象部門
総務
対象業務
データ入力・転記/内容確認・チェック
主な課題
人手が足りない/入力作業が多い/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/対応スピード向上/工数削減
導入難易度
★★☆☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
40h/月
AI導入後
15h/月
想定削減
63%
年間削減
300h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 窓口・郵送・電子申請で申請書と添付図面を受け取る。紙はスキャンして保存する
  2. 担当が申請書を開き、申請者、目的、場所、期間、占用物件を受付台帳に打ち込む
  3. 物件の構造の欄と求積図を見て、占用の面積や長さを打ち込む
  4. 道路法の7つの記載事項が書かれているかを、申請書を見ながら確かめる
  5. 市の手引きの一覧と見比べ、物件の種類に要る添付図面がそろっているかを確かめる
  6. 路線の一覧を開き、申請の場所が市道のどの路線かを確かめる
  7. 不備があれば申請者に電話して補正を頼む。そろったら審査に回す
導入後(After)
  1. 人窓口と郵送で届いた紙をスキャンし、電子申請のPDFと同じ受付フォルダに保存する
  2. 自動Python のプログラムが受付フォルダを確かめ、新しい申請を1件ずつ取り出す
  3. 自動Google Document AI の Form Parser が、申請書の欄のキーと値、チェックボックス、表、全文を返す
  4. 自動Gemini API が、申請書の欄を受付台帳の項目にそろえ、添付のページを図面の種類に分ける
  5. 自動Python が、7つの記載事項の有無、物件の種類に要る図面の有無、申請書と求積図の面積の食い違い、路線の一覧との照合を規則で拾う
  6. 自動受付台帳の「受付待ち」のシートに行を書き込み、印と申請書の写しのリンクを付ける
  7. 人受付の担当が印の付いた申請を開き、申請者に補正を頼む
  8. 人そろった申請を審査に回す。道路使用の申請書があれば警察署へ送る段取りをとる
各工程の詳しい説明を読む
  1. 窓口・郵送・電子申請で申請書と添付図面を受け取る。紙はスキャンして保存する
  2. 担当が申請書を開き、申請者、目的、場所、期間、占用物件を受付台帳に打ち込む
  3. 物件の構造の欄と求積図を見て、占用の面積や長さを打ち込む
  4. 道路法の7つの記載事項が書かれているかを、申請書を見ながら確かめる
  5. 市の手引きの一覧と見比べ、物件の種類に要る添付図面がそろっているかを確かめる
  6. 路線の一覧を開き、申請の場所が市道のどの路線かを確かめる
  7. 不備があれば申請者に電話して補正を頼む。そろったら審査に回す

(a)打ち込みに時間を取られる。 1件の申請書に、場所・期間・物件・構造・面積と、写す欄が多くあります。物件が複数ある申請では、物件ごとに数量と面積を写します。 打ち込みの途中で行を飛ばしても、気づくのは審査のときです。

(b)面積が申請書と図面で合わない。 物件の構造の欄に書かれた面積と、求積図の計算の結果が違う申請があります。占用料は面積をもとに計算するので、どちらで台帳に載せるかで額が変わります。 受付の時点で気づかないと、許可の後に直すことになります。

(c)添付図面の不足に気づくのが遅い。 物件の種類ごとに要る図面が違うので、受付の担当がすべてを覚えているわけではありません。断面図が無い、写真が古い、と審査の担当が気づいたときには、受付から数日たっています。 申請者は工事の日程を組んでいるので、補正の連絡が遅れるほど困ります。

(d)道路使用の申請書がそろっているかを見落とす。 工事の仮囲いや足場の申請では、警察署の道路使用の許可が要ることがあります。 道路管理者を経由して出された道路使用の申請書を、占用の書類と一緒に綴じたまま警察署へ送り忘れると、申請者の工事が始められません。

  1. 【人】 窓口と郵送で届いた紙をスキャンし、電子申請のPDFと同じ受付フォルダに保存する
  2. 【自動】 Python のプログラムが受付フォルダを確かめ、新しい申請を1件ずつ取り出す
  3. 【自動】 Google Document AI の Form Parser が、申請書の欄のキーと値、チェックボックス、表、全文を返す
  4. 【自動】 Gemini API が、申請書の欄を受付台帳の項目にそろえ、添付のページを図面の種類に分ける
  5. 【自動】 Python が、7つの記載事項の有無、物件の種類に要る図面の有無、申請書と求積図の面積の食い違い、路線の一覧との照合を規則で拾う
  6. 【自動】 受付台帳の「受付待ち」のシートに行を書き込み、印と申請書の写しのリンクを付ける
  7. 【人】 受付の担当が印の付いた申請を開き、申請者に補正を頼む
  8. 【人】 そろった申請を審査に回す。道路使用の申請書があれば警察署へ送る段取りをとる

7番目が、この設計の分かれ目です。 受付の担当が開くのは、印の付いた申請だけです。印の無い申請は、台帳の行を流し見て審査に回します。 そろっていることの確かめは、規則に移します。

審査そのものは変わりません。 審査の担当は、これまでどおり申請書の原本と図面を見て、場所や構造が基準に合うかを判断します。この構成が出すのは、審査に入れる状態かどうかまでです。

02今回想定するシステム構成

構成図
道路占用の許可申請書+添付図面(紙・PDF)
   │  紙は受付でスキャン
   ▼【トリガー】受付フォルダへの保存
Python ── 申請ごとに取り出し、形式とページを確認
   ▼
Google Document AI(Form Parser)
   │   欄のキーと値、チェックボックス、表、全文、信頼度
   ▼
Gemini API ── 受付台帳の項目にそろえる/添付のページを図面の種類に分ける
   ▼
Python ── 記載事項の有無/図面の有無/面積の食い違い/路線の照合
   ▼
受付台帳の「受付待ち」シート(印と申請書の写しのリンク)
   ▼
【受付の担当が印の付いた申請を確かめ、申請者に補正を頼む】
   ▼
審査へ(道路使用の申請書は警察署へ)
役割想定する製品代替候補
OCRGoogle Document AI(Form Parser)Azure AI Document Intelligence
生成AIGemini API(申請書の欄の整理と添付ページの分類)Claude API、OpenAI API
連携Python(フォルダの確認、台帳への書き込み)Google Apps Script
差異計算Python(記載事項・図面・面積・路線の照合)Google Apps Script
保管庁内のファイルサーバー(申請書と読み取り結果)文書管理システム

新しく足すのは、物件の種類ごとの添付図面の一覧を表にすることと、受付台帳の「受付待ち」のシートの2つです。 添付図面の一覧は、市の手引きに書かれているものを、物件の種類を行、図面の種類を列にした表に起こします。

土台は Document AI の Form Parser です。 公式のプロセッサ一覧では、OCRのテキストに加えてキーと値のペア、チェックボックス、表を抽出するとされ、言語の一覧で日本語(ja)は手書きに対応する言語として示されています。申請書の「占用の目的」「占用の期間」は欄として、新規・更新・変更の□はチェックボックスとして読めます。

Form Parser の注意書きのうち、この題材で効くのは空欄の扱いです。 公式のページでは、値が空のキーと値のペアは確実には読み取れないとされています。記載事項の漏れを拾うことが目的の中心なので、「書かれていない」と「読めなかった」を分ける材料を別に持ちます(第7章)。

Gemini API は、構造化出力で受付台帳の形にそろえます。 公式のページでは、Interactions の要求(/v1beta/interactions)で response_format に JSON スキーマを渡す書き方が示されています。処理する場所は、Document AI のリージョンの一覧に日本がありません。 申請者には個人の商店主も含まれるので、市の情報セキュリティポリシーに照らして、国外で処理してよいかを導入前に決めます(第13章)。

03どうやって実装するのか

Step1

処理の起点を決める

受付フォルダに申請が保存されたことを起点にします。 Python のプログラムを数分おきに動かし、新しいフォルダを探します。申請1件を1つのフォルダにまとめる決まりにし、申請書と添付図面を同じフォルダに入れます。電子申請のPDFは、受付番号の付いたフォルダごと保存します。

紙の申請は、受付の担当が申請書と図面を一度にスキャンします。 図面を別にスキャンすると、どの申請の図面かが分からなくなります。フォルダの名前に受付日と受付番号を入れます。

処理が終わったフォルダは処理済みに移します。移すのは、受付台帳への書き込みまで終わったときだけにします。受付フォルダに残っている数が、そのまま未処理の数になります。

Step2

入力データを集める

データ中身取得元
申請書と添付図面PDF。受付日、経路(窓口・郵送・電子申請)受付フォルダ
読み取り結果欄のキーと値、チェックボックス、表、全文、信頼度Google Document AI
添付図面の一覧物件の種類ごとに要る図面(位置図、平面図、断面図、求積図、写真など)市の手引きを表にしたもの(新しく作る)
路線の一覧市道の路線名、路線番号、区間道路管理課の一覧
受付台帳申請者ごとの過去の占用(更新の申請の前回の内容)受付台帳

質を決めるのは、添付図面の一覧です。 これが無いと、図面の不足は「何も添付が無い」ときしか拾えません。物件の種類と図面の対応が表になっていれば、足りない図面の名前まで申請者に伝えられます。

受付台帳の過去の占用は、更新の申請を見るために使います。 前回と場所や面積が変わっていれば、更新ではなく変更の手続きが要るのではないかを担当が確かめる材料になります。

Step3

データの取得方法を決める

読み取りは、Python から Form Parser のプロセッサを呼ぶだけです。オンラインの処理は1回の要求で最大15ページなので、申請書と図面を合わせて15ページを超える申請は、公式の上限が100ページのバッチ処理に回します。

取るものどこから何に使うか
申請書の欄各ページの formFields(fieldName/fieldValue)申請者、目的、期間、場所、物件、構造、工事の方法・時期、復旧方法
区分の印fieldValue の valueType(filled_checkbox/unfilled_checkbox)新規・更新・変更の別
物件の表各ページの表物件ごとの数量、寸法、面積
全文応答の text欄として取れなかった値、図面の表題や求積の数字
信頼度各要素の layout の confidence手書きの読めない欄の見分け

空欄の見分けは、キーと値のペアだけに頼りません。 「道路の復旧方法」という項目名があって値が取れないとき、全文の中で項目名の近くに文字が検出されているかを見ます。何も検出されていなければ空欄、検出されていて信頼度が低ければ読めない欄です。

図面のページは、欄ではなく全文を使います。 図面には「位置図」「平面図」といった表題と、求積の数字が書かれています。表題と数字の位置から、ページの種類と面積を取り出すのが Gemini API の仕事です。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … 申請書と図面がPDFか画像であることを確かめます。複合機の保存はPDFにします
  2. 解像度の確認 … 図面の細かい数字を読むため、スキャンは300dpiで保存します
  3. ページの向きの確認 … 横長の図面は向きを直してから送ります
  4. 大きな図面の確認 … A3を超える図面を縮小してスキャンすると、数字がつぶれます。縮小した図面は読めない欄として扱う前提にします
  5. 申請書のページの特定 … 1ページ目が申請書でない申請(送り状や委任状が先頭)を見つけます
  6. 道路使用の申請書の分離 … 道路使用の許可申請書が同じフォルダに入っていれば、別の書類として印を付けます

4番目は、図面の数字を読むときにいちばん効きます。 求積図の数字が読めないと、面積の食い違いを見ることができません。読めないものを無理に読ませず、担当が原本で見る側に回します。

6番目を前処理に入れるのは、警察署へ送る書類を占用の書類と混ぜないためです。 道路法第32条第4項と道路交通法第78条第2項は、それぞれ反対向きの経由の手続きを定めています。どちらの書類がどちらへ行くかを、受付の時点で分けておきます。

Step5

AIに処理させる

させるのは、申請書の欄を受付台帳の項目に書かれたとおりに写すことと、添付のページを図面の種類に分けることです。 記載事項の有無、図面の不足、面積の食い違いは、Python の規則で見ます。

させること中身判断できないときの扱い
記載事項の写し占用の目的、期間、場所、物件の構造、工事実施の方法、工事の時期、道路の復旧方法空欄なら blank、読めなければ unreadable
申請者と区分の写し申請者の名称・住所・連絡先、新規・更新・変更区分の印が2つ以上なら multiple
物件の写し物件の種類(書かれたとおり)、数量、寸法、面積単位が書かれていなければ no_unit
添付ページの分類位置図・平面図・断面図・求積図・写真・道路使用の申請書・その他分けられなければ unknown
求積図の面積の写し求積図に書かれた合計の面積読めなければ unreadable

4行目が、AIを使う理由です。 図面の表題は「位置図」とは限らず、「案内図」「付近見取図」と書かれていることもあります。呼び方の揺れを図面の種類にそろえるのは、決まった規則では書きにくい作業です。

させないこと理由
面積の計算寸法から掛け算で埋めると、申請書と図面の食い違いが消える
物件の種類の言い換え「足場」を「仮設物」とまとめると、要る図面の判定がずれる
許可の可否・基準への適合の判断審査の担当と決裁者が決める
道路使用の許可の要否の判断担当が確かめ、必要なら警察署と協議する
占用料の計算条例に沿って担当が行う

1行目がいちばん大事です。 物件の構造の欄に寸法だけが書かれ、面積が書かれていない申請で、AIが寸法から面積を計算して埋めると、「面積が書かれていない」という不備が消えます。 面積は、書かれたとおりに写させます。

Step6

指示内容を固定する

あなたは市の道路管理課で、道路占用の許可申請書の読み取り結果を、
受付台帳の項目に写す立場です。OCRが返した結果だけを見て、
書かれていることを写してください。推測で埋めないでください。

【写す項目】
purpose(占用の目的)、period_from/period_to(占用の期間)、
location(占用の場所。路線名・地番を書かれたとおり)、
structure(物件の構造)、work_method(工事実施の方法)、
work_period(工事の時期)、restoration(道路の復旧方法)、
applicant(申請者の名称・住所・連絡先)、application_type(新規・更新・変更)
物件ごと:object_text(物件。書かれたとおり)、quantity、size、area、unit

【添付ページの分類】
各ページを site_map(位置図・案内図・付近見取図)、plan(平面図)、
section(断面図)、area_calc(求積図)、photo(写真)、
road_use_application(道路使用の許可申請書)、other のいずれかにしてください。

【厳守事項】
- 欄が空欄なら status を blank、文字はあるが読めなければ unreadable に
  してください。空欄と読めない欄を混ぜないでください。
- 面積を寸法から計算しないでください。面積が書かれていなければ blank です。
- 数字と単位は書かれたとおりに写してください。単位が無ければ no_unit です。
- 物件の名前を言い換えたり、まとめたりしないでください。
- 求積図の合計の面積は、図に書かれた数字をそのまま写してください。
- 許可できるか、基準に合うか、道路使用の許可が要るかは書かないでください。
- 道路占用の許可申請書でない書類が先頭にある場合は、
  document_type に種類を書いてください。

【読み取り結果】{ocr_result}

「面積を計算しない」を独立した1行にしているのは、AIがいちばん自然に埋めてしまう値だからです。 寸法が「幅1.5m 長さ20m」と書かれていれば、30㎡と書きたくなります。計算してよいのは、申請者に確かめた担当だけです。

分類の指示に、呼び方の揺れを括弧で並べています。 「案内図」を位置図に入れることを書いておかないと、other に落ちて「位置図が無い」という誤った印が付きます。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 Gemini API の Interactions の要求で、response_format に JSON スキーマを渡して形を固定します。

{
  "document_type": "road_occupancy_application",
  "application_type": "new | renewal | change | multiple",
  "fields": [
    { "item": "purpose | period_from | period_to | location | structure | work_method | work_period | restoration | applicant",
      "value": "", "status": "read | blank | unreadable" }
  ],
  "objects": [
    { "object_text": "", "quantity": "", "size": "", "area": "", "unit": "",
      "status": "read | blank | unreadable | no_unit" }
  ],
  "attachments": [
    { "page": 0, "kind": "site_map | plan | section | area_calc | photo | road_use_application | other | unknown",
      "area_total": "" }
  ]
}

1つ目の理由は、7つの記載事項を同じ形で並べられることです。 道路法第32条第2項の7つを fields の item にそのまま当て、blank と unreadable の数を申請ごとに数えられます。

2つ目は、図面と記載の照合を Python の規則で持てることです。

条件扱い
7つの記載事項のいずれかが blankmissing_item
物件の種類に要る図面が attachments に無いmissing_drawing
申請書の面積の合計と、求積図の合計が違うarea_mismatch
申請の場所の路線名が路線の一覧に無いroute_unknown
期間の終わりが始まりより前、または読めないperiod_error
更新の申請で、前回の場所・面積と違うchanged_on_renewal
road_use_application のページがあるroad_use_attached
該当の欄が unreadablecheck_original

road_use_attached は、不備の印ではありません。 警察署へ送る書類があることを受付の担当に知らせる印で、送る段取りを忘れないためのものです。 道路使用の申請書が無いのに工事の足場の申請がある、といった組み合わせは、要否の判断に関わるので印を付けず、担当の確かめに任せます。

3つ目は、area_total で図面の数字を記載と並べられることです。 求積図の数字と申請書の数字を同じ行に並べるので、担当は図面を開く前に食い違いの大きさが分かります。

公式のページでは、構造化出力は JSON スキーマの一部に対応し、出力が構文として正しい JSON でも値はアプリケーションの側で確かめるよう書かれています。Python で item と kind が決めた値のどれかであることを確かめ、外れたものは台帳に書かずに呼び直します。

Step8

システムへ連携する

つなぎ先方式内容
受付フォルダPython で数分おきに確認新しい申請のフォルダを取り出す
Google Document AIAPI呼び出し欄、チェックボックス、表、全文、信頼度
Gemini APIAPI呼び出し(Interactions)台帳の項目への写しと、添付ページの分類
添付図面の一覧・路線の一覧表の読み取り要る図面と路線名を引く
受付台帳「受付待ち」シートへの書き込み項目、印、申請書の写しのリンク

受付台帳の「審査中」以降のシートと、許可書の作成には書き込みません。 受付待ちから審査へ回すのは、受付の担当の操作だけです。読み取りの誤りが、そのまま許可の手続きに流れることはありません。

申請者への補正の連絡も、この構成からは送りません。 足りない図面や記載事項の一覧は受付待ちのシートに出るので、担当はそれを見ながら電話で伝えます。

Step9

人が確認する

受付の担当が開くのは、印の付いた申請だけです。 印の無い申請は、台帳の行を流し見て審査に回します。

  1. road_use_attached を先に見る … 道路使用の申請書を占用の書類から分け、警察署へ送る段取りをとります
  2. missing_item と missing_drawing を見る … 申請書の写しで本当に書かれていないかを確かめ、申請者に補正を頼みます
  3. area_mismatch を見る … 申請書と求積図のどちらが正しいかを申請者に確かめます。どちらかに合わせて台帳を直すのは、確かめた後です
  4. changed_on_renewal を見る … 更新ではなく変更の手続きが要るかを確かめます
  5. route_unknown・period_error・check_original を見る … 原本で確かめます

1番目を先にするのは、申請者の工事の日程に直結するためです。 道路使用の許可は警察署が出すので、送るのが1日遅れると、申請者の工事の開始が1日遅れることがあります。

目標は、200件をならして1件4.5分です。 印の無い申請は流し見で1分ほど、印の付いた申請は原本と図面を見て申請者に電話するので、十数分かかります。

Step10

例外に対処する

起きること対応
申請書と図面が別のフォルダに入る受付番号で突き合わせ、合わなければ担当へ
図面が縮小されて数字が読めないcheck_original。原本で確かめ、AIに読ませ直さない
図面の表題が無いunknown。担当がページの種類を決める
物件が多く、表が崩れて返る物件の行を全文から写させ、合わなければ担当へ
申請書が市の様式でない記載事項がそろっていれば受付可。項目名の違いは分類で吸収する
電子申請のPDFにパスワードがかかっている処理せず担当へ。申請者に解除を頼む
OCR・AIが応答しないフォルダを受付フォルダに残す。次の実行で拾い直す

5行目で市の様式でない申請書も受け付けるのは、道路法が求めているのが記載事項だからです。 項目名が違っても、7つが書かれていれば審査はできます。様式の違いで差し戻さないよう、規則は記載事項の有無で組みます。

Step11

記録を残す

  • 元の申請書と図面、受付日と経路(窓口・郵送・電子申請)
  • OCRが返したJSONの全文と、Gemini API の応答の全文
  • 照合に使った添付図面の一覧と路線の一覧の版
  • 付いた印と、担当が確かめた結果・申請者とのやり取り・審査へ回した日時
  • 道路使用の申請書を警察署へ送った日
  • 印の種類ごとの件数と、申請者ごとの補正の回数

3つ目で一覧の版を残すのは、手引きが改められるためです。 添付図面の一覧を変えると、過去の申請の「図面の不足」の意味が変わります。

最後の行は、手引きを見直す材料になります。 同じ図面の不足が多くの申請者で続くなら、手引きの書き方が分かりにくいのかもしれません。

04実装レベルの3段階

最小構成:申請書を手でAIの画面に貼り、記載事項を写させる / 1件ごとの読み取り
半自動化:上記+OCRのAPIを呼び、写した値を受付待ちのシートに書き出す / 読み取りと台帳への書き出し
本格構成:上記+記載事項・添付図面・面積・路線の規則で印を付け、印の付いた申請だけを写し付きで出す / 受付の確かめの全体と、記録

最小構成は確かめるための段階です。 1件ずつ貼り付けるので、月200件には使えません。 半自動化で、1件12分が7分程度になります。 打ち込みは無くなりますが、記載事項と図面がそろっているかの確かめは、目で行う作業として残ります。 本格構成で4.5分になり、この段階が本記事の想定です。 差が大きいのは、図面の不足と面積の食い違いの確かめが規則に移るためです。 段階を飛ばさないでください。 半自動化のシートを1か月見ると、どの物件の種類で図面の分類がずれるかが分かります。そこを直してから規則を足すほうが、印の空振りが減ります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
3 名
月間件数
200 件
1件あたり現在時間
12 分
1件あたり導入後時間
4.5 分
現在  200件 × 12分 ÷ 60 = 40 時間/月
導入後 200件 × 4.5分 ÷ 60 = 15 時間/月
月間削減時間
25h
削減率
63%
年間削減時間
300h
年間金額換算(時間単価3,000円)
90万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 市町村や都道府県の土木事務所で、道路占用の許可申請書が窓口・郵送・電子申請で毎月百件以上届き、受付の担当が記載事項と添付図面を目で確かめてから受付台帳に打ち込んでいる場合。工事に伴う仮囲いや足場、看板、電柱、水道・ガス管など、占用物件の種類が多く、申請書の書き方が申請者ごとにばらばらな場合。記入漏れや図面の不足に気づくのが、審査の途中になることがある場合。
向いていない
  1. 申請の大半がすでに電子申請の入力画面で受け付けられ、記載事項が項目として入ってくる場合。申請が月に数十件で、受付の担当が目で見て足りる場合。申請書を国外のリージョンで処理することを、自治体の情報セキュリティポリシーで認められない場合。なお、許可するかどうか、占用料の額、警察署との協議の要否の判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先月の申請から20件を選ぶ(補正を頼んだ申請、物件の多い新規の申請、手書きの申請を必ず入れる)
  2. その20件について、当時の受付台帳の行と、補正の記録を用意する
  3. 申請書と図面のPDFを、市の決まりで認められた環境のAIサービスの画面に1件ずつ貼り付ける
  4. 「この道路占用の許可申請書について、占用の目的・期間・場所・物件の構造・工事実施の方法・工事の時期・道路の復旧方法が書かれているかを、項目ごとに書かれたとおりに写してください。空欄と読めない欄を分けてください。面積を計算しないでください。添付のページを位置図・平面図・断面図・求積図・写真に分けてください」と指示する
  5. 写された値を当時の台帳と補正の記録と比べる
出てきた内容判断
当時の補正と同じ記載漏れ・図面の不足が見つかったOCRとプログラムの連携に進む
寸法から面積を計算して埋めた指示の書き方で直る。構成は有効
図面の種類の分け方がずれる呼び方の揺れを指示に足す
図面の数字が読めないスキャンの設定が先。 300dpiで取り直す

08実装時につまずきやすいポイント

問題対策
寸法から面積をAIが計算して埋める計算しないことを独立した1行で指示する
図面の呼び方の揺れで other に落ちる「案内図」「付近見取図」などを指示に並べる
空欄と読めない欄が混ざる値が空のキーと値は確実に読めない。全文と信頼度で分ける
縮小した図面の数字が読めない原本で確かめる側に回す
物件の名前をまとめて、要る図面がずれる物件は書かれたとおりに写させる
道路使用の申請書を送り忘れるroad_use_attached を先に見る
市の様式でない申請書を差し戻す記載事項の有無で規則を組む
図面の一覧が手引きと食い違う手引きを改めたら一覧も同じ日に改める
国外での処理を確かめていない日本のリージョンが無い。ポリシーの手続きを先に

上の2行が、この構成の失敗のほとんどです。 どちらも、AIが気を利かせて埋めたり言い換えたりすることで、不備が見えなくなる型の失敗です。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 申請者の名称・住所・連絡先、占用の場所と期間、物件の構造と面積、現況の写真です。申請者には事業者のほか、個人の商店主も含まれます。

  1. 国外で処理することをポリシーに照らして決める … Document AI のリージョンの一覧に日本はありません。申請書を国外のリージョンで処理してよいかを、市の情報セキュリティポリシーと個人情報の取扱いの決まりで確かめます。認められない場合は、日本のリージョンで処理できる製品を検討します
  2. 外部へ渡す範囲を絞る … AIに渡すのは申請書と図面の読み取り結果だけです。受付台帳や過去の申請の一覧はAIに渡さず、照合は庁内の Python で行います
  3. 審査と許可を自動で行わない … この構成が出すのは、書類がそろっているかどうかまでです。許可の可否、占用料、警察署との協議は、担当と決裁者が行います
  4. 補正の連絡を自動で送らない … 申請者への連絡は担当が行います
  5. 元の申請書を残す … 審査の拠り所は申請書の原本と図面です。AIの写しは原本の代わりにしません

誤りが起きた場合のリスクは、不備のある申請を審査に回すことと、不備の無い申請に補正を頼むことの2つです。 前者は空欄をAIが埋めると起き、後者は図面の分類がずれると起きます。どちらも、埋めさせないことと、呼び方の揺れを指示に書くことで設計の側から防ぎます。

10まず何から始めるか

1週目:添付図面の一覧を表にする

市の手引きから、物件の種類ごとに要る図面を表に起こします。あわせて、路線の一覧が最新かを確かめます。

2週目:情報セキュリティポリシーの手続きを始める

申請書を外部のサービスで、国外のリージョンで処理してよいかを、情報政策の担当と確かめます。 試す段階でも、認められた環境だけで扱います。

3週目:20件で試す

先月の申請から20件を選び、認められた環境のAIサービスで記載事項と図面の分類を写させます。面積を計算していないか、図面の分類がずれていないかを最優先で見ます。

4週目:フォルダから受付待ちのシートまでをつなぐ

Python で受付フォルダを確かめ、OCRを呼び、写した値を受付待ちのシートに書き出すところまで作ります。この時点では印を出さず、担当がこれまでどおり確かめながら、シートの値が合っているかを見ます。

2か月目: 記載事項・図面・面積・路線の規則を足し、印の付いた申請だけを見る運用を始めます。3か月目以降: 1件12分が何分になったかを実測します。補正の連絡が受付の日のうちに出せるようになり、道路使用の申請書の送り忘れが無くなった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-08/最終更新:2026-10-08
確認した内容情報源確認日
道路の占用の許可の申請書に、占用の目的、期間、場所、工作物・物件・施設の構造、工事実施の方法、工事の時期、道路の復旧方法を記載すること(第32条第2項)。道路交通法第77条第1項の適用を受ける行為の場合、申請書の提出を警察署長を経由して行えること(同条第4項)e-Gov 法令API: 道路法2026-10-08
道路において工事・作業をしようとする者などが所轄警察署長の許可を受けること(第77条第1項)。その許可に係る行為が道路法第32条第1項または第3項の適用を受けるものであるときは、申請書の提出を道路の管理者を経由して行えること(第78条第2項)e-Gov 法令API: 道路交通法2026-10-08
Form Parser がOCRのテキストに加えてキーと値のペア、チェックボックス、表を抽出すること。言語の一覧で日本語(ja)が手書きに対応する言語として示されていること。オンラインの処理が1回の要求で最大15ページ、バッチ処理が最大100ページであることGoogle Cloud: Processor list2026-10-08
値の入っていないキーと値の組を確実には読み取れないことGoogle Cloud: Form Parser2026-10-08
項目名と値の組が formFields の fieldName/fieldValue で返ること。チェックボックスの valueType が filled_checkbox/unfilled_checkbox であること。信頼度が各要素の layout に入ることGoogle Cloud: Handle the processing response2026-10-08
マルチリージョンが us と eu で、日本のリージョンが一覧に無いことGoogle Cloud: Regional and multi-regional support2026-10-08
Interactions の要求(/v1beta/interactions)で response_format に JSON スキーマを渡して構造化出力を得ること。JSON スキーマの一部に対応すること。構文として正しい JSON でも値はアプリケーションの側で確かめるべきことGemini API: Structured output2026-10-08

許可の可否、占用料の額、警察署との協議の要否、申請書を外部のサービスで処理してよいかは、道路法・道路交通法・市の条例と情報セキュリティポリシーに沿って、道路管理課と関係部署が決めてください。 本記事は法令と各製品の公式ページで確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-1054)についてのご相談はこちらから。

AI活用について相談する
目次