# 画像解析ツール 

## 機能

* 画像・動画プレビュー機能
  * ドラッグ＆リリース対応
* 物体検知機能


## Library

* 可視化ツール
  * Tkinter         標準ライブラリ,シンプルなウィンドウならすぐ作れる
  * PySide6         LGPLライセンス / 大規模アプリやプロダクト向けにおすすめ
  * PySimpleGUI×    GUIウィンドウを作って画像を表示するため(無料では難しい)
* 画像分析ツール
  * opencv-python   ・・・ 画像/動画の読み込み(cv2.VideoCapture)とフレーム処理用

---

### 可視化ツールの選定

#### Tkinterの特徴

![Tkinter](images/tkinter.png)

**長所**

* 標準ライブラリなので追加インストール不要(どの環境でも動く)
* 非常に軽量で起動も速い
* 基本的な GUI パーツ(ラベル、ボタン、テキスト入力、チェックボックスなど)は一通り揃っている
* 初心者でも学習コストが低い(ドキュメントやサンプルが豊富)

**短所**

* デザインが古い・野暮ったい(各OSのネイティブっぽさは出ない)
* カスタマイズ性が低い(スタイルやテーマの自由度が限られる)
* 近年のモダンなUI(フラットデザイン、レスポンシブ、アイコン付きボタンなど)は作りにくい
+ 大規模アプリや複雑な画面構成になると管理が難しい

#### PySide6の特徴

![PySide6](images/pyside6.png)

**長所**

* Qtベースで本格的なGUIが作れる(業務用アプリにも対応可能)
* 見た目がモダンでOSのネイティブに近いデザイン
* Qt Designerで画面をドラッグ&ドロップ設計できる
* 豊富なウィジェットや機能(OpenGL, Web埋め込みなど)が利用可能

**短所**

* 学習コストが高め(シグナル/スロットなど独自の概念に慣れが必要)
* 実行ファイルサイズが大きくなりがち(PyInstallerで数十MB以上)
* インストールや依存関係が重い(環境によってバージョン注意)
* モバイル対応は限定的(基本はデスクトップ専用)

## モデルの選定

### 物体認識&検出

* 商用や配布を考えるなら YOLOv8 / SSD / Faster R-CNN / Mask R-CNN / DETR

| モデル           | 特徴                             | 速度 | 精度 | 向いてる場面             |
| ---------------- | -------------------------------- | ---- | ---- | ------------------------ |
| **YOLO**         | 一回で検出、軽量＆高速           | ◎    | ◎    | リアルタイム監視         |
| **SSD**          | シンプルで軽量                   | ○    | ○    | モバイル端末             |
| **Faster R-CNN** | 二段階、高精度                   | △    | ◎    | 精度最優先(医療、研究) |
| **Mask R-CNN**   | 輪郭まで検出(セグメンテーション) | △    | ◎    | 領域抽出、背景切り抜き   |
| **DETR**         | Transformerベース                | △    | ◎    | 最新研究、拡張性         |


