この記事は、以下のような方を想定しています。
- ストックフォト審査の通過率を上げたい方
- PythonやAIを使って画像品質を数値化したい方
- Google Colabで画像処理を試してみたい方
- 審査前に画像の良し悪しを自動判定する仕組みを作りたい方
前回の記事(①〜③)では、AI画像生成・品質選別・Upscaylによる高解像度化までの流れを紹介しました。 今回はその続きとなるフロー④「品質スコア自動化&Excel記録」の前半として、設計の考え方と実装の内容を紹介します。
本記事の位置づけ(フロー④前半)
全体フローの中で、本記事が担当するのは以下の部分です。
| フロー | 内容 | 本記事 |
|---|---|---|
| ① | AI画像生成 | — |
| ② | 品質選別・最適化 | — |
| ③ | 高解像度化(Upscayl) | — |
| ④ | 品質スコア自動算出・Excel記録・メタデータ生成 | ★本記事 |
| ⑤ | Adobe Stock申請・審査結果管理 | — |
Upscayl処理後の画像フォルダを対象に、Pythonが自動で品質スコアを算出し、Excelに記録するところまでが今回のゴールです。
品質スコア自動化の設計思想
ストックフォト審査は「なぜNGになったか」が分かりにくいのが悩みの種です。審査側からのフィードバックは限られており、同じような画像でもOKとNGが混在します。
そこで、「審査に出す前に、数値で品質を可視化する」という方針を立てました。数値化することで、以下の2つが実現できます。
- スコアが低い画像を事前に除外 → 無駄なアップロードを削減
- 審査結果と照合 → どのスコア帯でNGが多いか傾向をつかむ
設計のポイント
最初から完璧なスコアを目指すより、「データを蓄積しながら精度を上げていく」サイクルを重視しました。まずは動かすことが重要です。
実装にあたり、どの処理基盤を選ぶか検討しました。当初はGoogle Colabを選択しました。理由は無料でGPUが使えること、 ライブラリのインストールが簡単なこと、ローカルPCへの負荷がないことの3点です。後述しますが、後にローカル実行に移行することになります。
3つのチェック処理の内容
品質チェックは3種類の処理で構成されています。それぞれ異なる観点で画像を評価します。
処理1は、高解像度化処理を想定しているので、チェック処理は処理2開始としています。
処理2:CLIPスコア(構図・テーマ評価)
OpenAIが開発したCLIPモデルと、美的評価に特化したAestheticPredictorを組み合わせて、画像の視覚的な訴求力・美しさを0〜10でスコア化します。ストックフォトとして「目を引くか」という観点に近い指標です。
CLIP(Contrastive Language–Image Pre-training)は、OpenAIが開発した画像と言語を関連付けて理解するAIモデルです。
CLIPを選んだ理由
画像の「良さ」を数値化するモデルはいくつかありますが、CLIPベースのAestheticPredictorはストックフォト・イラスト系の評価に実績があり、無料で利用できるため採用しました。
処理3:総合スコア(構図×画質×背景適性)
処理2のCLIPスコアに加え、OpenCVを使って画質シャープネス(ピントの鮮明さ)と背景適性(広告用途での使いやすさ)を算出し、3つを掛け合わせた総合スコアを出します。
特にシャープネスは審査に直結するため、画質が低い画像は総合スコアを大きく引き下げる設計にしています。意図的なボケ表現(背景をボカす等)が含まれる場合はスコアが低く出ることもありますが、それは目視で判断する運用としています。
処理4:生データ出力
スコアに変換する前の生の数値(CLIPの予測値・ラプラシアン分散・エントロピー)をそのまま記録します。スコアの補正や分析を後から行うためのデータとして活用します。
| 処理 | 指標 | 何を測るか |
|---|---|---|
| 処理2 | CLIPスコア | 視覚的な訴求力・美しさ(0〜10) |
| 処理3 | 総合スコア | 構図・画質・背景を統合した総合評価 |
| 処理3 | 画質シャープネス | ピントの鮮明さ(0〜1) |
| 処理3 | 背景適性 | 広告用途での使いやすさ(0〜1) |
| 処理4 | ラプラシアン生値 | シャープネスの未加工数値 |
| 処理4 | エントロピー生値 | 画像の情報量・複雑さの未加工数値 |
Excelへの自動出力設計
各処理の結果は、処理日・ファイル名とセットでExcelに自動記録されます。ファイルは2シート構成になっています。
- シート1「解析結果」:処理2・3・4のスコアを列ごとに記録。処理日・ファイル名も自動入力。
- シート2「Stock申請CSV」:Adobe Stockアップロード用のメタデータ(後述)を記録。
重要な設計として、「既存Excelがあれば追記、なければ新規作成」という仕組みを採用しました。 毎日新しい画像が増えていく運用に対応するため、過去の記録を消さずに末尾へ追加していきます。 また、すでに処理済みのファイルはスキップするため、同じ画像を二重処理することもありません。
Excel出力のデザイン
ヘッダーは処理2・3・4をグループごとに色分け(青・緑・黄)し、ヘッダー行を固定して大量データでもスクロールしやすい設計にしています。
実際の処理結果Excelは下図のような内容になります。このチェック内容はまだ試行錯誤を繰り返しており、途中でチェック内容を更新する可能性もあります。

Google Colabで動かすメリットと限界
当初はGoogle Colabでの実行を想定していました。Colabの最大のメリットは無料でT4 GPUが使える点です。CLIPモデルの推論はGPUがあると大幅に高速化されます。
ただし、画像ファイルの置き場所に工夫が必要です。毎回ローカルからアップロードするのは手間がかかるため、Googleドライブに画像フォルダを用意し、Colabからマウントして読み込む方式を採用しました。
| Google Colab | ローカル実行 | |
|---|---|---|
| GPU | T4(無料・高速)✅ | GTX 1060 3GB(制限あり)⚠️ |
| 画像の置き場所 | Googleドライブ | ローカルフォルダ直接指定 |
| 起動の手間 | ブラウザを開く必要あり | batファイル1クリック |
| PC負荷 | なし | あり(処理中は重い) |
最終的にはローカル実行に移行しましたが(詳細は次記事)、ColabとローカルでCLIP処理の数値結果はほぼ同一です。同じモデル・同じ計算式を使っているため、環境による誤差は小数点以下4桁目以降の微差のみです。
Colab上でのExcel出力結果画面は下図の通りです。

Colab上での画像アップロード先は下図のように表示されます。

各スコアの読み方・目安
蓄積したデータから見えてきた、各スコアの実用的な目安を紹介します。
| 指標 | 目安値 | 備考 |
|---|---|---|
| CLIPスコア(処理2) | 6.0以上が望ましい | 視覚的な訴求力の目安 |
| 総合スコア(処理3) | 5.0以上が合格圏 | 審査通過の最重要指標 |
| 画質シャープネス | 0.7以上が理想・0.3以下は注意 | 意図的ボケは例外 |
| 背景適性 | 0.6以上が望ましい | 広告用途の使いやすさ |
| ラプラシアン生値 | 200以上が合格圏 | 100以下は画質劣化の可能性 |
| エントロピー生値 | 7.2〜7.5が理想 | 高すぎると背景がごちゃつく |
スコアと審査結果の照合が今後の鍵
現時点ではスコアの目安は仮説段階です。審査OK・NGの結果が蓄積されるにつれて、「このスコア帯はNGになりやすい」という傾向が見えてきます。データが増えるほどスコアの精度が上がる仕組みを想定しています。
次の記事では、このColabベースの仕組みをローカルPCに移行した経緯と、Adobe Stock申請用メタデータ(タイトル・キーワード)をOllamaで自動生成する実装について紹介します。
→ 次の記事:ローカル実行への移行とOllamaによるメタデータ自動生成
FAQ
CLIPスコアとは何ですか?
OpenAIが開発したCLIPモデルを使い、画像の視覚的な美しさや訴求力を0〜10でスコア化したものです。ストックフォト向け審査の事前チェックに活用できます。
Google Colabで画像処理はできますか?
はい。Google ColabはGPUを無料で利用できるため、CLIPやOpenCVを使った画像品質分析を手軽に実行できます。
ストックフォトのスコアチェックはなぜ必要ですか?
審査NGになるファイルを事前に絞り込むことで、無駄なアップロードを減らし、審査通過率の向上とデータ蓄積による傾向分析が可能になります。