Argus — コンピュータ利用モデルに基づく CAPTCHA ソルバー
概要
Argus(アルゴス)は、CAPTCHA(画像ベースの認証)を自動で認識・解釈するための Python プロジェクトです。設計思想として「コンピュータ利用モデル」に基づいた処理フローを取り入れ、日常的な利用環境や人間の視覚的判断プロセスを模した前処理や識別手順を実装しています。利用方法は主に2つで、ローカルの画像を読み込んで認識結果を可視化するコマンドライン(CLI)モードと、HTTP API モードで画像を受け取り JSON 形式で結果を返すサーバーモードを提供。uv による依存管理や Dockerfile を備えており、研究用プロトタイプやサービス試作としても扱いやすい構成です。
リポジトリの統計情報
- スター数: 21
- フォーク数: 11
- ウォッチャー数: 21
- コミット数: 4
- ファイル数: 12
- メインの言語: Python
主な特徴
- CLI と HTTP API の二形態で利用可能:ローカル実行とサービス化の両方に対応。
- 認識フローを再利用可能にしたモジュール(recognition.py)で拡張が容易。
- uv を利用した環境・依存管理、Dockerfile によるコンテナ化準備済み。
- 設定ファイル(config.yaml)で動作パラメータを外部化しカスタマイズ可能。
技術的なポイント
Argus の技術的な核は「認識フローの再利用性」と「運用モードの切り替え」にあります。recognition.py は前処理→特徴抽出→推論→後処理といった典型的な画像認識パイプラインを抽象化しており、異なる CAPTCHA タイプ(文字列、ノイズ付き画像など)に対して処理ステップを差し替えやすい設計です。前処理ではノイズ除去や二値化、輪郭抽出などの古典的な画像処理技術を組み合わせ、人間の視覚で判別しやすい領域を優先的に取り出すことで誤検出を抑えます。推論部分はリポジトリ自体に明示的な学習済みモデルが含まれていない場合でも、外部の学習済みネットワークや軽量な識別器を挿入できるようにインターフェースを用意しています。
運用面では、CLI(app/main.py を中核)でローカルバッチ処理やデバッグ用の可視化(検出領域の重畳画像出力)ができ、API(app/api_server.py)では画像アップロード→認識→JSONレスポンスという REST 的な流れを提供します。uv による環境同期(uv sync)は依存関係管理をシンプルにし、.python-version による実行環境固定や Dockerfile によるコンテナ化で再現性の高いデプロイが可能です。設定は config.yaml にまとめられており、閾値やROI設定、API のエンドポイント設定などをコードを触らずに調整できます。将来的な拡張としては、学習データの追加による識別モデルの強化、クラウド上でのスケールアウト、CAPTCHA 種類ごとのプラグイン化が想定されます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .dockerignore: file
- .gitignore: file
- .python-version: file
- Dockerfile: file
- LICENSE: file
…他 7 ファイル
(リポジトリの README によると構成例) Argus/ ├─ app/ # 核心の業務コード │ ├─ main.py # CLI 実装 │ ├─ api_server.py # API 実装 │ ├─ recognition.py # 認識フロー共通モジュール │ └─ config.yaml # サービス設定ファイル ├─ other/ # 雑多なファイルや歴史的スクリプト ├─ main.py # 互換 CLI エントリ(app/main.py へ転送) ├─ api_server.py # 互換 API エントリ(同上)
まとめ
素早く試作できる CAPTCHA 認識のプロトタイプで、拡張と運用性に配慮された作りです(50字程度)。
リポジトリ情報:
- 名前: Argus
- 説明: Argus, A CAPTCHA Solver System Based on Computer Use Models.
- スター数: 21
- 言語: Python
- URL: https://github.com/AmethystDev-Labs/Argus
- オーナー: AmethystDev-Labs
- アバター: https://avatars.githubusercontent.com/u/179103025?v=4
READMEの抜粋:
Argus
Argus,取名自希腊神话里的百眼巨人。
一个用于验证码识别的 Python 项目,支持两种调用方式:
- 命令行模式:读取本地图片,输出标注结果图
- HTTP API 模式:上传图片并返回统一 JSON 结构
环境准备
本项目使用 uv 管理依赖与运行环境。
uv sync
目录说明
Argus/
├─ app/ # 核心业务代码
│ ├─ main.py # CLI 实际实现
│ ├─ api_server.py # API 实际实现
│ ├─ recognition.py # 识别流程复用模块
│ └─ config.yaml # 服务端配置文件
├─ other/ # 杂项文件与历史脚本归档
├─ main.py # CLI 兼容入口(转发到 app/main.py)
├─ api_server.py # API 兼容入口...