Catalog PyPI
Back to packageRELEASE DETAILS

0.2.0

PyPI

ai-image-detector-research

# Создание CNN для распознавания сгенерированных изображений ## Цель Цель исследования с нуля обучить CNN распознавать сгенерированные изображения. ## Результаты ### Первые результаты Для первого обучения были выбраны такие гиперпараметры: |Параметр|Значение| |--------|--------| |Количество conv блоков|4| |Количество слоев классификатора|2| |Размер датасета|1000| |train / val|0.5| |Эпох|30| Результат: |Результат|Значение| |---------|--------| |Train Accuracy|0.64| |Validation Accuracy|0.62| Точность на обучении и валидации остается ниже ```65%```, что близко к случайному угадыванию (```50%```). Присутствует нестабильность, особенно на валидации, возможно, переобучение на шум или нерегулярные

Published14 Jul 2025
Direct dependencies12
Transitive dependenciesNot calculated

README

Version 0.2.0 documentation

Создание CNN для распознавания сгенерированных изображений

Цель

Цель исследования с нуля обучить CNN распознавать сгенерированные изображения.

Результаты

Первые результаты

Для первого обучения были выбраны такие гиперпараметры:

ПараметрЗначение
Количество conv блоков4
Количество слоев классификатора2
Размер датасета1000
train / val0.5
Эпох30

Результат:

РезультатЗначение
Train Accuracy0.64
Validation Accuracy0.62

Точность на обучении и валидации остается ниже 65%, что близко к случайному угадыванию (50%). Присутствует нестабильность, особенно на валидации, возможно, переобучение на шум или нерегулярные признаки. Также модель не переобучается сильно, но и не обучается хорошо.

Анализируя Confusion Matrix, можно сказать, что настоящие изображения распознается лучше, чем сгенерированные. Модель очень часто принимает сгенерированное изображение за реальное (126 раз предсказано реальное, но являлось сгенерированным)

Модель пока не уверенно распознает сгенерированные изображения.

На следующем цикле обучения стоит попробовать увеличить датасет (1000 изображений, которые использовались в этом цикле, довольно мало). Также попробовать добавить больше conv блоков, слоев классификатора и увеличить число базовых каналов до 128 (кажется, что у модели мало параметров и она довольно узкая чтобы распознавать сгенерированные изображения).

Вторая итерация

Гиперпараметры:

ПараметрЗначение
Количество conv блоков6
Количество слоев классификатора2
Размер датасета5000
train / val0.7
Эпох30

Результат:

РезультатЗначение
Train Accuracy0.50
Validation Accuracy0.50

Получился ужасный результат, модель абсолютно случайно делает предсказания и не обучается вообще. Проблема скорее всего в том что модель слишком большая для малого датасета.

Confusion Matrix выглядят очень странно, особенно на валидации 1500 / 1500 раз модель предсказала изображение как сгенерированное. Почему так произошло - не понятно, возможно, это также связано с тем что размер модели и кол-во данных подобраны не верно.

В этом исследование DeepGuardNet: A Novel CNN Architecture for DeepFake Image Detection обучали модель с очень похожей на мою архитектуру, но заточенную под обнаружение DeepFake в нем они использовали 140002 изображений для обучения модели из 5 conv блоков, в каждом из которых не больше 16 каналов + 1 слой классификатора.

Прошлое предположение:

Также попробовать добавить больше conv блоков, слоев классификатора и увеличить число базовых каналов до 128

Было неверным, нужно оставить предыдущую архитектуру и увеличить кол-во данных. В используемом датасете есть 2.5 млн картинок около 900 тыс настоящие, остальные - сгенерированные ИИ. Для следующего обучения стоит попробовать взять хотя бы 200 000 изображений.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 12

Native requirements
12 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
torch
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
torch<3.0.0,>=2.7.1runtime
torchvision
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
torchvision<0.23.0,>=0.22.1runtime
torchaudio
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
torchaudio<3.0.0,>=2.7.1runtime
kagglehub
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
kagglehub<0.4.0,>=0.3.12runtime
python-dotenv
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
python-dotenv<2.0.0,>=1.1.1runtime
pandas
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pandas<3.0.0,>=2.3.1runtime
scikit-learn
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
scikit-learn<2.0.0,>=1.7.0runtime
matplotlib
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
matplotlib<4.0.0,>=3.10.3runtime
tqdm
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
tqdm<5.0.0,>=4.67.1runtime
ipywidgets
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
ipywidgets<9.0.0,>=8.1.7runtime
opencv-python
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
opencv-python<5.0.0.0,>=4.12.0.88runtime
seaborn
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
seaborn<0.14.0,>=0.13.2runtime

Distribution files

2 collected
ai_image_detector_research-0.2.0-py3-none-any.whl

bdist_wheel · 13.41 KB · Python py3

Source file
ai_image_detector_research-0.2.0.tar.gz

sdist · 11.83 KB · Python source

Source file

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 11:02 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:bccbf6d18c8eb5d4235fa896d5bd505b0aee482a38ce199eaeee76c981aa44da

Other collected versions

View all collected versions →