外国人の登録者から届く在留カードの画像を読み取り、就労できる範囲と在留期間の期限切れ間近を担当者の確認に回す
外国人の登録者から届く在留カードの表裏の画像を読み取り、在留資格・在留期間の満了日・就労制限の有無・資格外活動許可の欄を登録データにそろえます。就労できる範囲の区分と満了日までの日数を規則で出し、確認が要るものを担当者に回します。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- AIサービス
- Azure AI/Google Document AI
- 対象業界
- 人材/介護/製造/飲食
- 対象部門
- 人事/採用
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 登録者がフォームから在留カードの表と裏の画像を送る
- コーディネーターが画像を開き、氏名・国籍・在留資格・在留期間の満了日・在留カード番号・就労制限の有無を管理システムへ写す
- 裏面の資格外活動許可欄と、在留期間の更新などの申請欄を見る
- 表と裏の組み合わせから、どの仕事に就けるかを判断し、紹介しようとしている案件の条件と見比べる
- 出入国在留管理庁の失効情報照会のページに、在留カード番号と有効期間を入力して確かめる
- 満了日を管理表に入れ、3か月前に更新の案内を送る予定を立てる
- 人登録者がフォームから表と裏の画像を送る(裏面の個人番号の部分は隠して撮るよう案内する)
- 自動画像の受け付けをきっかけに処理が動き、画像の大きさと向きを確かめる
- 自動カスタム分類モデルが、旧様式か新様式か、表か裏かを見分ける
- 自動様式と面ごとのカスタム抽出モデルが、欄ごとの値と信頼度を返す
- 自動規則で、就労制限の有無と資格外活動許可の記載から「就労できる範囲の区分」を出し、満了日までの日数を数える
- 自動`ok` / `needs_document`(指定書・許可書の確認が要る)/ `needs_human`(読み取りが不確か)/ `expiring`(満了日が近い)を付けて確認の一覧に載せる
- 自動再撮影や更新の案内が要る人には、やさしい日本語の案内文の下書きを作る
- 人コーディネーターが一覧の値を画像と見比べ、失効情報照会で番号を確かめて確定する
- 人`needs_document` の人には、指定書や資格外活動許可書の写しを依頼する
- 自動確定した値を管理システムへ書き込み、満了日の90日前・30日前に担当者へ知らせる
各工程の詳しい説明を読む
- 登録者がフォームから在留カードの表と裏の画像を送る
- コーディネーターが画像を開き、氏名・国籍・在留資格・在留期間の満了日・在留カード番号・就労制限の有無を管理システムへ写す
- 裏面の資格外活動許可欄と、在留期間の更新などの申請欄を見る
- 表と裏の組み合わせから、どの仕事に就けるかを判断し、紹介しようとしている案件の条件と見比べる
- 出入国在留管理庁の失効情報照会のページに、在留カード番号と有効期間を入力して確かめる
- 満了日を管理表に入れ、3か月前に更新の案内を送る予定を立てる
(a)転記が多い。 在留カードの文字は小さく、スマートフォンの画像は斜めになったり光ったりしています。ローマ字の氏名と、英字と数字が並ぶ在留カード番号を写し間違えると、照会でも届出でも食い違いが出ます。
(b)就労制限の欄の読み分けが人によって違う。 「在留資格に基づく就労活動のみ可」の人が、在留資格の範囲を外れた仕事の案件に紹介されそうになることがあります。「就労不可」の留学生でも、裏面に「許可(原則週28時間以内・風俗営業等の従事を除く)」とあれば働けます。表と裏を組み合わせて読む手順が、担当者の経験に頼っています。
(c)指定書の確認が抜ける。 特定活動や特定技能では、法務大臣が個々に指定した活動が書かれた指定書を確かめることとされています。カードだけを見て判断し、指定書を見ないまま案件に紹介してしまうことがあります。
(d)満了日の管理が漏れる。 管理表への入力が遅れたり、更新後の新しいカードの画像が届かないまま古い満了日が残ったりします。気づいたときには満了日が過ぎている、という登録者が毎月何人か出ます。
- 【人】 登録者がフォームから表と裏の画像を送る(裏面の個人番号の部分は隠して撮るよう案内する)
- 【自動】 画像の受け付けをきっかけに処理が動き、画像の大きさと向きを確かめる
- 【自動】 カスタム分類モデルが、旧様式か新様式か、表か裏かを見分ける
- 【自動】 様式と面ごとのカスタム抽出モデルが、欄ごとの値と信頼度を返す
- 【自動】 規則で、就労制限の有無と資格外活動許可の記載から「就労できる範囲の区分」を出し、満了日までの日数を数える
- 【自動】
ok/needs_document(指定書・許可書の確認が要る)/needs_human(読み取りが不確か)/expiring(満了日が近い)を付けて確認の一覧に載せる - 【自動】 再撮影や更新の案内が要る人には、やさしい日本語の案内文の下書きを作る
- 【人】 コーディネーターが一覧の値を画像と見比べ、失効情報照会で番号を確かめて確定する
- 【人】
needs_documentの人には、指定書や資格外活動許可書の写しを依頼する - 【自動】 確定した値を管理システムへ書き込み、満了日の90日前・30日前に担当者へ知らせる
8番目で人が見るのは、「読めた値が画像と合っているか」と「照会の結果」です。 就労できる範囲の区分は規則が出しますが、その区分で案件に紹介してよいかを決めるのは人です。
10番目の書き込みを確定の後にしているのは、満了日の読み違いが、そのまま期限管理の誤りになるからです。 一桁の読み違いで、満了日が1年ずれることがあります。
02今回想定するシステム構成
在留カードの表と裏の画像(登録フォームから) ▼【トリガー】受付コンテナー(Azure Blob Storage)への保存 Azure Functions ── 画像の大きさ・向きの確認 ▼ Azure AI Document Intelligence │ ① カスタム分類モデル:旧様式/新様式、表/裏 │ ② カスタム抽出モデル(様式と面ごと):欄ごとの値と信頼度 ▼ Azure Functions ── 規則で照らす │ 就労制限の有無 × 資格外活動許可 → 就労できる範囲の区分 │ 在留期間の満了日 → 残りの日数 ▼ 確認の一覧(ok / needs_document / needs_human / expiring) ├──▶ Azure OpenAI ── 再撮影・更新の案内文の下書き ▼ 【コーディネーターが確認・失効情報照会】──▶ 登録者の管理システム
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Azure AI Document Intelligence(カスタム分類モデルとカスタム抽出モデル) | Google Document AI(Form Parser) |
| 生成AI | Azure OpenAI(Microsoft Foundry)(再撮影・更新の案内文の下書き) | Claude API、Gemini API |
| 連携 | Azure Functions(受け付けを起点に処理を動かし、規則で照らす) | Azure Logic Apps |
| 保管 | Azure Blob Storage(受け付けた画像と読み取り結果) | 社内のファイルサーバー |
登録者の管理システムは、新しく足すものではありません。 確定した値を書き込む先で、その入出力の形は製品によって違うため、利用環境に応じた個別の作りになります。
読み取りの土台は、Azure AI Document Intelligence のカスタムモデルです。 カスタム抽出モデルは、取り出したい値にラベルを付けた文書で学習させるもので、同じ種類の文書の例が5つあれば始められるとされています。カスタム分類モデルは、抽出の前に文書の種類を見分けるためのもので、分類モデルと抽出モデルを組み合わせて使えます。
在留カードは、様式の決まった書類です。 カスタムモデルには、見た目の決まった書類に向くテンプレートモデルと、見た目が違っても同じ情報を取り出せるニューラルモデルがあります。旧様式と新様式、表と裏は見た目が違うので、4つに分けて抽出モデルを作るのが素直です。 公式の案内も、様式ごとにフォルダを分けて1つずつ学習させ、まとめて1つの入り口にする形を勧めています。
日本語に対応しています。 カスタムのニューラルモデル・テンプレートモデル・分類モデルの対応言語には、いずれも日本語が入っています。手書きの文字も、ニューラルモデルとテンプレートモデルの手書きの対応言語に日本語があります。旧様式の裏面には、住居地の変更などが手書きで追記されることがあります。
03どうやって実装するのか
処理の起点を決める
登録フォームから画像が受付コンテナーに保存されたことを起点にします。 表と裏は別のファイルで届くので、登録の受付番号で2枚がそろったところで処理を始めます。 片方だけで判断すると、裏面の資格外活動許可を見落とします。
満了日の知らせは、毎朝の定時の処理で出します。 確定した満了日を管理システムから読み、90日前と30日前に当たる人を担当者に知らせます。画像の読み取りとは別の処理です。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 在留カードの画像 | 表と裏の2枚。受付番号、受け付けた日時 | 登録フォーム |
| 読み取り結果 | 様式と面の分類、欄ごとの値、欄ごとの信頼度 | Azure AI Document Intelligence |
| 登録者の情報 | 登録者番号、前回確定した在留資格・満了日・カード番号 | 登録者の管理システム |
| 文言と区分の対応表 | 就労制限の有無・資格外活動許可の記載と、就労できる範囲の区分 | 自社で用意する一覧 |
| 案件の条件 | 職種、勤務時間、勤務先の業種 | 案件の管理システム |
質を決めるのは、文言と区分の対応表です。 出入国在留管理庁のリーフレットに挙がっている記載を、そのまま区分に置き換えます。
| カードの記載 | 区分 | 次にすること |
|---|---|---|
| 就労制限なし | unrestricted | なし |
| 在留資格に基づく就労活動のみ可 | status_based | 案件が在留資格の範囲かを人が確かめる。特定技能は指定書を確かめる |
| 指定書により指定された就労活動のみ可 | designated | 指定書の写しを依頼する |
| 就労不可(裏面に許可の記載なし) | not_allowed | 紹介の対象にしない |
| 裏面「許可(原則週28時間以内・風俗営業等の従事を除く)」 | part_time_28h | 勤務時間を週28時間以内で管理する(掛け持ちは合計) |
| 裏面「許可(資格外活動許可書に記載された範囲内の活動)」 | permit_document | 資格外活動許可書の写しを依頼する |
どの行にも当たらない文言は、区分を付けずに needs_human にします。 文言の一部が読めないときに「近い行」を選ばせると、not_allowed の人に part_time_28h が付くことがあります。
前回の確定値は「変わったところ」を見るために持ちます。 再提出のときに在留資格が変わっていれば、就労できる範囲も変わっています。変わった項目だけを一覧の先頭に出します。
データの取得方法を決める
読み取りは、Azure Functions からカスタム分類モデルを呼び、その結果に応じてカスタム抽出モデルを呼びます。分類と抽出を1つの入り口にまとめた形にしておけば、呼ぶ側は1回で済みます。
| 様式と面 | 取り出す欄 |
|---|---|
| 旧様式・表 | 氏名、生年月日、性別、国籍・地域、住居地、在留資格、就労制限の有無、在留期間(満了日)、許可の種類、許可年月日、交付年月日、在留カード番号、有効期限 |
| 旧様式・裏 | 住居地の記載欄、資格外活動許可欄、在留期間更新等許可申請欄 |
| 新様式・表 | 氏名、生年月日、性別、国籍・地域、住居地、在留資格、在留期間の満了の日、在留カード番号、有効期間の満了の日、就労制限の有無 |
| 新様式・裏 | 資格外活動許可の記載、申請の記載(個人番号の欄は取り出さない) |
新様式では、「在留期間」「許可の種類」「許可年月日」「交付年月日」が券面に無く、ICチップにのみ記録されます。 この4つは新様式の画像からは取れません。取れない欄は not_in_form として返し、空欄と区別します。 管理システムの「在留期間」の欄を必須にしていると、新様式の人だけ登録が止まります。
抽出モデルは、欄ごとに信頼度を返します。 在留カード番号、満了日、就労制限の有無の3つは、信頼度が自社で決めた値を下回ったら needs_human にします。 値の決め方は第8章で試した結果から決めます。
AIへ渡す前に整形する
- 2枚がそろっているか … 受付番号で表と裏の2枚を組にします。そろわなければ、24時間待ってから再提出の案内に回します
- 画像の大きさ … 50×50ピクセルから10,000×10,000ピクセルの間である必要があります
- 文字の大きさ … 抽出できる文字の最小の高さは、1024×768の画像で12ピクセルです。カードを画面いっぱいに撮ってもらうよう、フォームに見本を出します
- 向きと傾き … 横向きや逆さの画像は回転してから渡します
- 光の反射 … カードの表面は光ります。反射で欄が白く飛んだ画像は、読めても信頼度が下がるので、再撮影の候補にします
- 個人番号の確認 … 新様式の特定在留カードは、裏面に個人番号が記載されます。裏面の画像に12桁の数字の並びが検出されたら、その領域を塗りつぶした画像だけを残し、元の画像は消します
- 同じ画像の再送の検知 … 前回と同じ画像が送られてきたら、更新後のカードではないものとして扱います
6番目を省かないでください。 マイナンバーカードを身分証明書として使う場合、裏面の番号を書き写したりコピーを取ったりすることはできないとされています。在留カードの確認の目的で個人番号を集める理由はありません。 給与や社会保険の手続に個人番号が要るなら、別の経路と別の保管場所で受け取ります。
AIに処理させる
読み取りを担うのはOCRのカスタムモデルで、判定は規則が行います。 生成AIにさせるのは、案内文の下書きだけです。
| 担い手 | させること |
|---|---|
| カスタム分類モデル | 様式(旧・新)と面(表・裏)を見分ける |
| カスタム抽出モデル | 欄ごとの値と信頼度を返す |
| 規則 | 文言と区分の対応表で区分を付ける。満了日までの日数を数える。前回の確定値との違いを出す |
| 生成AI | 再撮影の依頼、更新後のカードの提出の依頼、指定書・許可書の写しの依頼の文面を、やさしい日本語で下書きする |
| させないこと | 理由 |
|---|---|
| 在留カードの真偽の判断 | 画像では分からない。ICチップの読み取りと失効情報照会で確かめる |
| 就労できるかの最終判断 | 指定書や許可書の内容、案件の仕事の中身まで見ないと決まらない |
| 読めない文言の推測 | 近い文言に寄せると、就労不可の人に就労可の区分が付く |
| 満了日の補完 | 前回の満了日や在留期間から推測して埋めない |
| 個人番号の読み取り | 確認の目的に要らない |
3行目がいちばん危ない失敗です。 「就労」「不可」の一部が反射で欠けた画像で、近い文言を選ばせると、働けない人を案件に紹介する経路ができます。 文言の照合は規則の側で、完全一致か、決めた表記ゆれの範囲に限ります。
指示内容を固定する
案内文の下書きには、次の指示を使います。在留資格や就労の可否についての説明は書かせません。
あなたは人材会社の登録センターで、外国人の登録者に送る連絡文を下書きする係です。
次の【依頼の種類】に合わせて、やさしい日本語で短い連絡文を作ってください。
【依頼の種類】{request_type}
- reshoot ........ 在留カードの画像が読みにくいので、撮り直してほしい
- renewal ........ 在留期間の満了日が近いので、更新したら新しいカードを送ってほしい
- document ....... 指定書(または資格外活動許可書)の写しを送ってほしい
【読みにくかった面】{side}
【満了日】{expiry_date}
【登録者の名前(ローマ字)】{name}
【守ること】
- 1文を短くし、むずかしい漢字にはふりがなを付けてください。
- 「働けます」「働けません」「違法です」など、就労の可否や法律の判断を書かないでください。
- 在留資格の更新の手続の方法を説明しないでください。
手続のことを聞かれたら担当者が答える、と書いてください。
- 撮り直しの依頼では、次の3つを必ず書いてください。
カードを画面いっぱいに写す/光が反射しないようにする/
裏面の個人番号(マイナンバー)が書いてある部分は手やシールで隠す
- 満了日は【満了日】の値だけを使ってください。日付を計算しないでください。
- 最後に、わからないことは担当者に聞いてほしい、と書いてください。
「就労の可否を書かない」を明記しないと、親切のつもりで書きます。 「週28時間まで働けます」のような一文は正しくても、指定書や掛け持ちの状況を見ていない段階で書けば、登録者はそれを会社の判断として受け取ります。
撮り直しの依頼に「個人番号を隠す」を必ず入れるのは、6番目の前処理の負担を減らすためです。 塗りつぶしは保険で、最初から写っていない画像がいちばん安全です。
出力形式を固定する
読み取りと規則の結果は、次の形のJSONで確認の一覧に渡します。
{
"intake_id": "",
"registrant_id": "",
"card_format": "old | new",
"fields": [
{ "name": "residence_status", "value": "", "status": "ok | missing | not_in_form | low_confidence", "confidence": 0 },
{ "name": "expiry_date", "value": "", "status": "ok", "confidence": 0 },
{ "name": "card_number", "value": "", "status": "ok", "confidence": 0 },
{ "name": "work_restriction", "value": "", "status": "ok", "confidence": 0 },
{ "name": "extra_permission", "value": "", "status": "ok", "confidence": 0 },
{ "name": "application_note", "value": "", "status": "ok", "confidence": 0 }
],
"work_category": "unrestricted | status_based | designated | not_allowed | part_time_28h | permit_document | unknown",
"days_to_expiry": 0,
"changed_from_last": ["residence_status"],
"verdict": "ok | needs_document | needs_human | expiring",
"message_draft": ""
}
1つ目の理由は、value と confidence を欄ごとに並べられることです。 コーディネーターは画像を開く前に、どの欄が怪しいかを一覧で読めます。
2つ目は、not_in_form で様式の違いを吸収できることです。 新様式で券面に無い欄を空欄として扱うと、毎回「読めなかった」に見えて確認が増えます。
3つ目は、work_category に unknown を持てることです。 区分が付かなかったことを値として残せば、規則の対応表に何が足りないかを後から数えられます。
| 条件 | verdict |
|---|---|
在留カード番号・満了日・就労制限の有無のどれかが low_confidence / missing、または work_category が unknown | needs_human |
work_category が designated / permit_document、または在留資格が特定技能 | needs_document |
| 満了日まで90日以内、または裏面に申請の記載がある | expiring |
| 上のどれにも当たらない | ok |
裏面に更新などの申請の記載がある人は、満了日を過ぎていても機械で「期限切れ」にしません。 申請中の扱いは人が確かめます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 登録フォーム | 受付コンテナーへの保存 | 表と裏の画像を受け付ける |
| Azure AI Document Intelligence | API呼び出し | 分類と欄ごとの値・信頼度 |
| 登録者の管理システム | 前回の確定値を読む/確定値を書き込む | 変わった項目の検出と、確定後の反映 |
| Azure OpenAI | API呼び出し | 案内文の下書き |
| 失効情報照会 | 人が画面で操作する | 番号と有効期間を入力して確かめる |
失効情報照会は自動で呼びません。 照会のページは人が使う画面として案内されているもので、確認の一覧には、照会に入れる番号と有効期間をそのまま写せる形で並べるだけにします。 照会の結果は、在留カードの有効性を証明するものではないとされているので、結果の記録とあわせて、画像の目視の結果も残します。
人が確認する
人が見るのは全件です。ただし、見る場所は絞ります。 ok のものは、番号・満了日・就労制限の3つの欄を画像と見比べ、失効情報照会を行って確定します。
needs_humanを先に見る … 多くは撮り直しで解決します。下書きを直して送りますneeds_documentの指定書・許可書を確かめる … 写しが届くまで、その人を案件に紹介しない印を付けますchanged_from_lastがある人の区分を見直す … 在留資格が変わると、紹介している案件の条件と合わなくなることがあります- 失効情報照会の結果を記録する
- 対面の機会があれば、在留カード等読取アプリケーションでICチップを読む … 画像の読み取り結果と、ICチップの情報を見比べます
5番目を「できれば」で終わらせないでください。 画像の確認だけでは、実在する番号を使った偽造カードを見分けられません。派遣の開始前の面談など、対面の機会を工程に組み込みます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 表と裏の片方しか届かない | 24時間待って再提出の案内。片面だけで区分を付けない |
| 分類モデルが様式を決められない | needs_human。在留カード以外の書類(旅券など)が送られていないかを見る |
| 反射や傾きで信頼度が低い | 再撮影の案内の下書きを作る |
| 文言が対応表のどれにも当たらない | unknown で needs_human。労務の担当が対応表に足すか決める |
| 裏面の追記が手書きで読めない | needs_human。住居地の変更などは本人に確かめる |
| 満了日が過ぎている | 申請の記載が無ければ紹介を止める印を付け、担当者へ即時に知らせる |
| 前回と同じ画像が再送された | 更新後のカードではないものとして扱い、本人に確かめる |
| 個人番号が写っている | 塗りつぶした画像だけを残し、元の画像は消す |
| 在留カードを持たない人 | 旅券に後日交付の記載がある人などは、旅券等で確かめるとされている。 この構成の対象外として人が扱う |
最後の行を、構成の側で扱おうとしないでください。 在留カードを持っていなくても就労できる場合がある人は、確かめる書類が違います。対象外を対象外として人に渡すことが、例外処理の役目です。
記録を残す
- 受け付けた画像(個人番号を塗りつぶしたもの)と、受付番号・日時
- 分類の結果と、欄ごとの値・信頼度
- 規則で付けた区分と
verdict、そのとき使った対応表の版 - コーディネーターが確定した値と、確定した人・日時
- 失効情報照会を行った日時と結果
- 指定書・許可書の写しを受け取った日時
- 案内文を送った日時と内容
3つ目で対応表の版を残すのは、区分の付け方を後から説明できるようにするためです。 ある登録者をなぜ案件に紹介したのか、と問われたときに、当時のカードの記載と、当時の規則と、確定した人が並んでいる必要があります。
画像の保存期間は、登録の続く間と、労務の担当が決めた期間に限ります。 登録を抹消したら、画像も読み取り結果も消します。
04実装レベルの3段階
最小構成では件数がさばけません。 月300件には使えず、読めるかどうかを確かめる段階です。 半自動化で、1件12分が6分程度になります。 転記はほぼ無くなりますが、旧様式と新様式の見分け、前回との比較、満了日の管理表への登録は人に残ります。本格構成で3分になり、この段階が本記事の想定です。 残る3分は、3つの欄の目視と失効情報照会です。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、unknown になる文言と、信頼度の低い撮り方が先に分かります。対応表と撮り方の案内を直してから本格構成に進みます。
05工数削減シミュレーション
導入後 300件 × 3分 ÷ 60 = 15 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 外国人の登録者・求職者を毎月数百人受け付け、在留カードの画像をスマートフォンで送ってもらって登録している人材派遣・人材紹介会社。留学生のアルバイトや家族滞在の配偶者など、資格外活動許可の範囲で働く人が多く、案件の条件と就労できる範囲を担当者が1件ずつ見比べている場合。在留期間の満了日を表計算で管理していて、更新の案内が漏れることがある場合。
- 外国人の登録者が月に数人で、面談のときに在留カードを手に取って確かめれば足りる場合。登録の受付が対面だけで、在留カード等読取アプリケーションでICチップを読む運用がすでに回っている場合。なお、在留カードの真偽の判断、就労できるかどうかの最終判断、指定書や資格外活動許可書の内容の確認は、この構成では代替できません。
07最小構成で試す方法
- 本人の同意を得た在留カードの画像を20組(表と裏)用意する(旧様式と新様式、留学・家族滞在・技術・人文知識・国際業務・特定技能・永住者を混ぜる)
- 当時コーディネーターが管理システムに入れた値と、付けた判断を書き出しておく
- Document Intelligence Studio で、20組のうち10組に欄のラベルを付け、カスタム抽出モデルを学習させる
- 残りの10組を読ませ、欄ごとの値と信頼度を当時の値と突き合わせる
- 文言と区分の対応表を表計算で作り、読み取った文言に区分を付けてみる
20組は必ずやってください。 カスタムモデルは5つの例から始められますが、自社の登録者がスマートフォンで撮った画像で読めるかは、試さないと分かりません。
| 出てきた内容 | 判断 |
|---|---|
| 番号・満了日・就労制限の欄が当時の値と合った | 分類モデルを足して、4つの抽出モデルを作る構成に進む |
| 欄の位置はつかめるが、反射で文字が欠ける | フォームの撮り方の案内で直る。構成は有効 |
| 斜めや遠い画像が多く、欄の位置もつかめない | 撮り方の案内を先に直す。 モデルの問題ではない |
3行目が出たら、フォームに枠の見本を出すところから始めてください。 撮り方がそろうと、信頼度の下限を高めに置けます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 片面だけで区分を付ける | 表と裏の2枚がそろってから処理する |
| 新様式で「在留期間」が空になり、登録が止まる | not_in_form で返し、管理システムの必須の欄を見直す |
| 読めない文言を近い区分に寄せる | 対応表の完全一致に限り、当たらなければ unknown |
| 画像の確認で真偽まで分かった気になる | ICチップの読み取りと失効情報照会を別の工程として残す |
| 個人番号の写った画像が残る | 撮り方の案内で隠してもらい、検出したら塗りつぶして元の画像を消す |
| 案内文に就労の可否を書く | 指示で禁じ、送信は人が行う |
| 申請中の人を期限切れにする | 裏面の申請の記載があれば expiring にとどめ、人が確かめる |
| 指定書を見ずに紹介する | designated と特定技能は needs_document にし、写しが届くまで紹介を止める |
| 撮り方がばらばらで信頼度が低い | フォームに枠の見本を出す |
上の3行が、この構成の失敗のほとんどです。 どれも「足りない情報を、それらしい値で埋める」形をしています。就労の可否に関わる欄では、埋めた値が正しくても、確かめた記録が残らないことが問題です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 氏名、生年月日、国籍・地域、住居地、在留資格、在留期間、在留カード番号、顔写真。新様式の特定在留カードでは、裏面に個人番号が記載されます。
- 個人番号を集めない … 撮り方の案内で隠してもらい、写っていたら塗りつぶします。在留カードの確認の目的で個人番号を受け取る理由はありません
- 顔写真を読み取りの対象にしない … 抽出モデルのラベルに顔写真の領域を含めず、照合や本人確認の機能に流用しません
- 国籍で扱いを変えない … 区分を付けるのは就労制限と資格外活動許可の記載だけです。国籍を規則の条件にしないでください
- 区分を登録者の評価に使わない …
part_time_28hの人を「使いにくい」と扱うような流用は、採用の公正さを損ないます - 画像の保存期間を決める … 登録の抹消とともに消します。読み取り結果も同じ期間で消します
- 最終判断を人に残す … 在留カードを確認していない等の過失がある場合、事業主も処罰を免れないとされています。この構成は確認の手間を減らすもので、確認の責任を移すものではありません
誤りが起きた場合のリスクは、働けない仕事に紹介することと、満了日を過ぎた人を派遣し続けることの2つです。 前者は区分を規則で付けて unknown を人に回すことで、後者は確定した満了日から必ず知らせを出すことで防ぎます。
10まず何から始めるか
1週目:文言と区分の対応表をつくる
出入国在留管理庁のリーフレットにある就労制限の有無と資格外活動許可の記載を並べ、区分と「次にすること」を労務の担当と決めます。特定技能と特定活動で指定書を確かめる手順も、ここで決めます。
2週目:20組で試す
同意を得た画像20組で、Document Intelligence Studio のカスタム抽出モデルを試します。番号・満了日・就労制限の3つの欄の信頼度を見ます。
3週目:フォームの撮り方の案内を直す
枠の見本、反射を避ける撮り方、裏面の個人番号を隠す案内をフォームに入れます。
4週目:受付コンテナーから一覧までをつなぐ
半自動化の形で、抽出モデルと対応表による区分付けを一覧に書き出します。この時点では管理システムへ書き込まず、一覧だけを見ます。
2か月目: 分類モデルを足して旧様式と新様式を分け、前回の確定値との比較と満了日の知らせを足します。3か月目以降: 案内文の下書きと管理システムへの反映を足し、1件12分が何分になったかを実測します。unknown の件数が週に数件まで減り、満了日の知らせから更新後のカードが届くまでの流れが回った時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 外国人を雇用する際は在留カードを確認すること。表面の「就労制限の有無」欄に「就労制限なし」「在留資格に基づく就労活動のみ可」「指定書により指定された就労活動のみ可」「就労不可」などが記載されること。特定技能は指定書を確認すること。「就労不可」でも裏面の資格外活動許可欄に「許可(原則週28時間以内・風俗営業等の従事を除く。)」等の記載があれば就労できること。在留カード等番号失効情報照会の結果は有効性を証明しないこと。在留カード等読取アプリケーションでICチップの情報と券面を見比べられること。在留カードを確認していない等の過失がある場合は処罰を免れないこと。旅券に後日交付の記載がある人などは旅券等で確認すること | 出入国在留管理庁: 外国人を雇用する事業主の皆様へ(リーフレット) | 2026-10-07 |
| 在留カードに氏名、生年月日、性別、国籍・地域、住居地、在留資格、就労の可否などが記載されること。2026年6月14日から特定在留カードと新様式の在留カードが導入されたこと。新様式では在留カード等読取アプリケーションの表示項目が改修されたこと | 出入国在留管理庁: 在留カードとは? | 2026-10-07 |
| 特定在留カードの券面に在留期間の満了の日、在留カードの番号、有効期間の満了の日、就労制限の有無、資格外活動許可の旨が記載され、「在留期間」「許可の種類」「許可年月日」「交付年月日」はICチップにのみ記録されること。個人番号が裏面に記載されること。以前の様式の在留カードも引き続き有効であること | 出入国在留管理庁: 特定在留カード交付申請について(Q&A) | 2026-10-07 |
| マイナンバーカードを身分証明書として本人確認に使う場合、裏面のマイナンバーを書き写したりコピーを取ったりすることはできないこと | デジタル庁: マイナンバーカードに関するよくある質問 | 2026-10-07 |
| カスタム抽出モデルは同じ種類の文書の例が5つあれば始められること。テンプレートモデルとニューラルモデルの違い。様式ごとにフォルダを分けて学習させ、まとめて1つの入り口にする形を勧めていること。カスタム分類モデルで文書の種類を見分けてから抽出モデルを使えること。画像が50×50〜10,000×10,000ピクセル、文字の最小高さが1024×768で12ピクセルであること | Microsoft Learn: Custom document models | 2026-10-07 |
| カスタム分類モデル、カスタムのニューラルモデル(印刷・手書き)、テンプレートモデル(印刷・手書き)の対応言語に日本語が含まれること | Microsoft Learn: Language support for custom models | 2026-10-07 |
就労できるかどうかの判断は、出入国在留管理庁の案内と、自社の労務の担当・顧問の社会保険労務士や行政書士の助言に従ってください。 本記事は出入国在留管理庁のページとリーフレットで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0667)についてのご相談はこちらから。
