【CursorエディタとXcodeでアプリ開発】
車のナンバープレートにぼかしをかけたり、違うナンバーに置き換えるアプリを作ってみました。

ただ、処理が難しいらしく、まず文字認識をさせて文字描画エリアを検出し、ナンバープレートっぽいものを選び出して、エリアを確定してぼかしをかけます。そのエリアにあらかじめダミーのナンバープレートを生成し、元のナンバープレートの形に変形させて合成するという処理をしています。
ところが微調整をしていくと、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(透明背景対応)
ナンバープレート形式: 日本の標準形式(地名+数字、ひらがな+数字-数字)
このアプリケーションは、プライバシー保護が必要な画像処理において、高精度かつ使いやすいソリューションを提供します。
コメント