px-asset-extract — 画像から個別資産を抽出するツール

Tool

概要

px-asset-extractは、複雑な機械学習を使わずに、入力画像中のポスターやスライド中の個別要素(図、表、ブロック、図形等)を自動で検出して個別の透明PNGとして保存し、各資産の位置情報などをまとめたJSONマニフェストを出力するツールです。古典的な画像処理手法で領域検出・マスク生成・切り出し・透視補正を行うため、実行が軽くオンプレや低リソース環境でも利用しやすい点が魅力です。デモはHugging Faceで確認できます。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 7
  • ファイル数: 9
  • メインの言語: Python

主な特徴

  • 完全に古典的コンピュータビジョン手法で実装(No ML models)
  • 画像中の複数資産を個別の透明PNGとして出力、同時にJSONマニフェストを生成
  • ポスター・スライド・インフォグラフィック向けにチューニング済みの前処理とフィルタリング
  • Hugging Faceでのデモ公開、Python 3.9+サポート、MITライセンス

技術的なポイント

px-asset-extractは学習モデルを使わない方針のため、処理は従来型CVパイプラインで完結します。まず入力画像に対してカラースペース変換(RGB→グレースケールやHSV)やガウシアンブラーでノイズ低減を行い、適応的閾値処理やエッジ検出(Canny等)で候補領域を浮かび上がらせます。次にモルフォロジー演算(膨張・収縮)で領域を整形し、輪郭検出で連結成分を抽出。面積・アスペクト比・形状の凸性・周囲の余白など複数のヒューリスティックでフィルタリングして「有効な資産」を識別します。検出領域には透視補正(四点射影変換)や回転補正を施して矩形に正規化し、アルファマスクを生成して背景を透過させたPNGを出力します。生成されるJSONマニフェストには、元画像に対するバウンディングボックス、切り出しファイル名、座標(および必要に応じて透視変換行列やスコア)などが含まれ、後続のワークフローで使いやすく設計されています。

実装面ではPython中心で、OpenCV等の一般的ライブラリを想定した構成になっており、軽量でローカル実行が容易です。利点はモデルの学習不要による即時利用性と低ランニングコスト、欠点は複雑な重なりや微妙な境界(半透明やグラデーション)に対するロバスト性が限定される点です。将来的な拡張としては、選択的にセマンティックセグメンテーションモデルを組み合わせるハイブリッド方式、パラメータ自動調整やユーザインタラクションによる微調整UI、OCR連携によるテキストメタデータ抽出などが考えられます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • SKILL.md: file
  • examples: dir

…他 4 ファイル

(examplesフォルダにはサンプル画像と処理コマンドの例が入っており、READMEにはHugging Faceデモへのリンクや簡単な実行方法が記載されています)

まとめ

古典的CVで軽快に画像資産を抽出する実用的なツールです。

リポジトリ情報:

READMEの抜粋:

px-asset-extract

License: MIT Python 3.9+ Demo

Extract individual assets from images — posters, infographics, slides, diagrams — as transparent PNGs with a JSON manifest. Zer…