TenVision — OpenCVで解くTencent(腾讯)図形点選CAPTCHA

AI/ML

概要

TenVisionは、OpenCVベースの実験的ツールで、腾讯(Tencent)クラウドで見られる「図形点選」形式の画像認証を対象にしています。深層学習モデルを用いず、従来の画像処理(特徴点抽出、形状解析、輪郭検出、マッチングなど)だけで、検出された候補点の座標を算出し、クリック順序を決定して元画像にマーキングします。さらにGitHub Actionsを利用した自動処理フローが用意されており、ユーザーはIssueに画像をアップロードするだけで解析結果の画像が自動で返信される体験を提供します。軽量で試作しやすく、特定のジオメトリ特徴に最適化されたツールです。

GitHub

リポジトリの統計情報

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

主な特徴

  • OpenCV中心の軽量なコンピュータビジョン実装(深層学習不要)
  • 図形・輪郭ベースの特徴点抽出と一致アルゴリズム
  • GitHub Actionsを使った自動化(Issueへの画像投稿で自動返信)
  • 画像上に座標とクリック順をマーキングして視覚的に確認可能

技術的なポイント

TenVisionは「学習済みモデルでの推論」ではなく、伝統的な画像処理の組み合わせで問題に取り組んでいるのが最大の特徴です。まず入力画像に対してグレースケール化、平滑化、閾値処理を行い、二値化された領域の輪郭検出(findContours)で各候補領域を抽出します。抽出した輪郭に対して面積やアスペクト比、凸包などでフィルタリングを行い、ノイズや広告要素を排除。形状に応じて円形・長方形・多角形などの近似を取り、重心や外接矩形から座標点を定めます。複数候補がある場合はヒューリスティック(例えば位置関係、テンプレートマッチングのスコア、相対的な距離)でソートして「想定されるクリック順」を推定します。

また、テンプレートマッチングや特徴量マッチ(ORB/SIFTなどを併用できる設計)により、規則的なパターンの識別精度を高めることが可能です。出力は元画像に赤い番号や線を描画して視認性を確保し、GitHub Actions経由で自動生成された画像をIssueへ投稿します。Actions側は受け取ったIssueの添付画像をワークフローに渡し、処理後に作成物をコメントとして返す役割を担います。全体として、学習コストやGPU依存を排した迅速なプロトタイプ実行が狙いで、特定サービス向けの点選式CAPTCHA解析に最適化されています。

プロジェクトの構成

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

  • .github: dir

  • .gitignore: file

  • .python-version: file

  • LICENSE: file

  • README.md: file

  • scripts/: 解析・ユーティリティスクリプトが含まれる(想定)

  • src/ または main.py: OpenCV処理のエントリーポイント(想定)

  • workflows/: GitHub Actionsの定義(Issueトリガー→処理→コメント投稿) …他 5 ファイル

(注:ファイル構成はリポジトリ内の主要要素に基づく概略です。実際のスクリプト名やディレクトリはリポジトリをご参照ください。)

まとめ

OpenCVのみでCAPTCHAの図形点選を自動化する軽量実験ツール。手軽に試せる点が魅力。

リポジトリ情報:

READMEの抜粋:

🐧 TenVision

这是一个基于 OpenCV 的实验性项目,专门用于识别并计算腾讯云风格的“图形点选”验证码位置。

✨ 核心特性

  • OpenCV 驱动:纯计算机视觉逻辑,不依赖大型深度学习模型,主打一个轻量。
  • 形状识别:针对特定几何特征进行特征点提取与匹配。
  • GitHub Action 闭环:利用 GitHub 免费算力,实现“提交-识别-回推”的自动化体验。

🎮 怎么玩?(互动体验)

不需要在本地配置 Python 环境,你直接在 GitHub 就能体验这个算法:

  1. 提交 Issue:点击 New Issue
  2. 上传图片:Issue标题随意,内容可以是一张或多张腾讯云点选验证码
  3. 自动回帖:算法处理完成后,机器人会自动在你的 Issue 下回复一张标记了坐标点的图片。