PlateMasker - ナンバープレートマスカー - AIでアプリ開発

  • 投稿日:
  • カテゴリ:

【CursorエディタとXcodeでアプリ開発】

車のナンバープレートにぼかしをかけたり、違うナンバーに置き換えるアプリを作ってみました。
screenshot_m206.png
ただ、処理が難しいらしく、まず文字認識をさせて文字描画エリアを検出し、ナンバープレートっぽいものを選び出して、エリアを確定してぼかしをかけます。そのエリアにあらかじめダミーのナンバープレートを生成し、元のナンバープレートの形に変形させて合成するという処理をしています。

ところが微調整をしていくと、AIが余計なおせっかいを始めて、正常な部分を自らどんどん壊していきます。

スクリーンショットの状態は、エリアを特定し、ダミーのナンバープレートを貼り付けていますが、このあと変形させていい感じになるようにしていました。

微調整をしようとしたら、どんどん改悪してしまって、いつの間にかその機能はどこかに消えてしまいました。なんとか修復して、スクリーンショットの状態に戻しました。ダミーのナンバープレートは長方形ですが、画像のナンバープレートの形に変形するところまで進んでいたのに...。

AIを使ったアプリ開発は、余計なじゃまな処理との戦いです。「なぜ正常なものを、勝手に上下に画像を反転するの?」などという場面だらけでした。「元に戻して」と指示を出すとなにか別の処理を始めて、どんどんかけ離れていきます。

gitを使ってバージョン管理をしていますが、タイミングよくコミットされているわけではありません。AI自体が「元に戻して」という指示をうまく処理できるようになるといいと思います。

以下は、AIが作成した説明文です。

概要

PlateMaskerは、画像内のナンバープレートを自動検出し、プライバシー保護のためにぼかし処理や置き換え処理を行うmacOSアプリケーションです。Vision FrameworkとCoreImageを活用して、高精度なナンバープレート検出と画像処理を実現しています。

主な機能

自動ナンバープレート検出

Vision Frameworkを使用した高精度なテキスト認識
日本のナンバープレート形式(地名+数字、ひらがな+数字-数字)に対応
複数の検出パターンをサポート
検出された領域の可視化機能

2つの処理モード

ぼかし処理: 検出されたナンバープレート領域にガウシアンブラーを適用
置き換え処理: カスタムナンバーで元のナンバープレートを置き換え

カスタマイズ機能

上段ナンバー: 地名部分(例:品川500)
下段ナンバー: ひらがな+数字部分(例:あ 1234)
処理設定の自動保存・復元
検出領域表示のON/OFF切り替え

画像処理・保存

複数の画像形式対応(JPEG、PNG、TIFF、GIF)
処理済み画像の高品質保存
リアルタイム処理状況の表示

技術的特徴

検出エンジン

Vision Framework: 高精度なテキスト認識と矩形検出
パターン認識: 日本のナンバープレート形式に特化した正規表現パターン
座標変換: Vision座標系とCoreImage座標系の正確な変換

画像処理

CoreImage: 高性能な画像フィルタリングと合成
角度補正: 傾いたナンバープレートの正確な処理
透明度対応: 背景透明なナンバープレート生成

UI/UX

SwiftUI: モダンなネイティブmacOSインターフェース
リアルタイム処理: 非同期処理によるUI応答性の確保
直感的操作: ドラッグ&ドロップ対応の画像選択

使用例

画像選択: 「画像選択」ボタンまたはドラッグ&ドロップで画像を読み込み
処理タイプ選択: 「ぼかし」または「置き換え」を選択
カスタムナンバー入力: 置き換えモードで上段・下段ナンバーを入力
処理実行: 「ナンバー処理」ボタンで自動検出・処理を実行
結果確認: 検出された領域が赤枠で表示され、処理結果を確認
保存: 処理済み画像をPNG形式で保存

対応形式

入力画像: JPEG、PNG、TIFF、GIF
出力画像: PNG(透明背景対応)
ナンバープレート形式: 日本の標準形式(地名+数字、ひらがな+数字-数字)
このアプリケーションは、プライバシー保護が必要な画像処理において、高精度かつ使いやすいソリューションを提供します。

リンクソース

  • 記事用リンクソース:
  • Wiki用リンクソース(PukiWiki):
  • Wiki用リンクソース(MediaWiki):
  • SNS投稿用: