Skip to content

Latest commit

Β 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

fltrVd: БистСма обнаруТСния стСганографии Π² Π²ΠΈΠ΄Π΅ΠΎ

License: MIT Python 3.11+ Tests Code style: black PRs welcome

English version below

πŸ“ 2026: code rework ΠΈ докумСнтация Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ с использованиСм MiniMax-M3 agent. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π» β€” Π’ΠšΠ  2025. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ содСрТит Π²Ρ‹ΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ 2025 Π³ΠΎΠ΄Π°, Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ Π² 2026-ΠΌ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ языковой ΠΌΠΎΠ΄Π΅Π»ΠΈ MiniMax (M3) Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (agentic coding). Π’ Ρ…ΠΎΠ΄Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с AI-Π°Π³Π΅Π½Ρ‚ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹: Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ исходного ΠΊΠΎΠ΄Π°, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ тСстового покрытия, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ², структурированиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

πŸ“‹ ОглавлСниС

🎯 ΠžΠ±Π·ΠΎΡ€

fltrVd β€” ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ систСма для обнаруТСния стСганографичСских вставок Π² Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»Π°Ρ…. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ сочСтаСт Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° (статистичСскиС, гистограммныС) с соврСмСнными ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ обучСния для классификации Π²ΠΈΠ΄Π΅ΠΎΡ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

  • clean β€” исходныС, Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ ΠΊΠ°Π΄Ρ€Ρ‹
  • noize β€” ΠΊΠ°Π΄Ρ€Ρ‹ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ ΡˆΡƒΠΌΠΎΠΌ
  • stego β€” ΠΊΠ°Π΄Ρ€Ρ‹ со стСганографичСскими вставками (LSB-ΠΌΠ΅Ρ‚ΠΎΠ΄)

БистСма Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… выпускной ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ (Π’ΠšΠ ) ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для исслСдований Π² области ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

✨ ВозмоТности

  • ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ: Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡƒΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ΄ΠΎΡ€ΠΎΠΆΠ΅ΠΊ
  • ГСнСрация тСстовых Π΄Π°Π½Π½Ρ‹Ρ…: созданиС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… вСрсий Π²ΠΈΠ΄Π΅ΠΎ (Π·Π°ΡˆΡƒΠΌΠ»Ρ‘Π½Π½Ρ‹Π΅, стСго-вСрсии)
  • БтатистичСский Π°Π½Π°Π»ΠΈΠ·: сравнСниС гистограмм (CORREL, CHISQR, INTERSECT, BHATTACHARYYA)
  • НСйросСтСвой Π°Π½Π°Π»ΠΈΠ·: классификация с использованиСм CNN (Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ TinyVGG, StegAnalysisNet + SRM-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹)
  • ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ: автоэнкодСр для выявлСния нСстандартных ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π΅Ρ€: ускорСнноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с Π°ΡƒΠ³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ (train_model_optimized.py)
  • CLI-интСрфСйс: запуск основных сцСнариСв ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (app/cli.py)
  • Визуализация Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²: ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Plotly, HTML-ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹
  • Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ: Π·Π°ΠΌΠ΅Ρ€Ρ‹ скорости LSB, точности ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, устойчивости ΠΊ искаТСниям
  • ВСсты: unit, integration, e2e β€” ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° ΠΎΡ‚ энкодСра Π΄ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°

πŸš€ Установка

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

  • Python 3.8+
  • GNU Make (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, для ΠΊΠΎΠΌΠ°Π½Π΄ make)
  • uv (рСкомСндуСтся) ΠΈΠ»ΠΈ pip

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: Ρ‡Π΅Ρ€Π΅Π· uv (рСкомСндуСтся)

git clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
uv venv
uv pip install -r requirements.txt

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: Ρ‡Π΅Ρ€Π΅Π· Makefile

git clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
make setup         # создаст .venv ΠΈ установит зависимости

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 3: Ρ‡Π΅Ρ€Π΅Π· pip Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ

git clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° установки

python -c "import cv2, torch, plotly; print('ВсС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ')"

πŸ“– ИспользованиС

CLI (основной способ)

python -m app.cli --help
python -m app.cli analyze app/video/test.mp4
python -m app.cli encode fixtures/test_clean.png --k 0.5
python -m app.cli decode images/testImage_encoded.png
python -m app.cli train --epochs 30 --augmentation

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π°Π½Π°Π»ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ (Python API)

from app.analyze_video import analyze, show_results

# Анализ Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»Π°
result = analyze("app/video/test.mp4")

# Визуализация Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
fig = show_results(result)
fig.show()  # ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ с нуля

from app.train_model_optimized import train_model_optimized

# ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с Π°ΡƒΠ³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ
model, results = train_model_optimized(epochs=30, use_augmentation=True)

# Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
torch.save(model.state_dict(), "app/models/my_model.pth")

БтСганографичСскоС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

from app.steganography import handle_hide, handle_show

# Π‘ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ сообщСния Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
handle_hide("input.png", "output_stego.png", k=0.5)

# Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ сообщСния
handle_show("output_stego.png")

Jupyter Notebook

jupyter lab

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ любой ΠΈΠ· .ipynb Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅ app/ для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ исслСдования.

πŸ“ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

fltrVd/
β”œβ”€β”€ README.md                 # Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ»
β”œβ”€β”€ IMPROVEMENTS.md           # План ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ (ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π² 2026)
β”œβ”€β”€ NEXT_STEPS.md             # Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги ΠΈ ΠΈΠ΄Π΅ΠΈ развития
β”œβ”€β”€ TRAINING_ROADMAP.md       # ДороТная ΠΊΠ°Ρ€Ρ‚Π° обучСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
β”œβ”€β”€ Makefile                  # ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ setup / test / lint / clean
β”œβ”€β”€ pyproject.toml            # ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
β”œβ”€β”€ pytest.ini                # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ pytest
β”œβ”€β”€ requirements.txt          # Зависимости Python
β”œβ”€β”€ uv.lock                   # Lock-Ρ„Π°ΠΉΠ» uv
β”œβ”€β”€ start.sh                  # Π‘ΠΊΡ€ΠΈΠΏΡ‚ запуска
β”œβ”€β”€ .clinerules/              # ДокумСнтация для AI-Π°Π³Π΅Π½Ρ‚ΠΎΠ² (7 сСкций)
β”‚   β”œβ”€β”€ 01-fltrVd-philosophy.md
β”‚   β”œβ”€β”€ 02-fltrVd-architecture.md
β”‚   β”œβ”€β”€ 03-fltrVd-coding.md
β”‚   β”œβ”€β”€ 04-fltrVd-docker.md
β”‚   β”œβ”€β”€ 05-fltrVd-tasks.md
β”‚   β”œβ”€β”€ 06-fltrVd-workflow.md
β”‚   └── 07-fltrVd-contacts.md
β”œβ”€β”€ app/                      # Основной ΠΊΠΎΠ΄ прилоТСния
β”‚   β”œβ”€β”€ cli.py                # CLI-интСрфСйс (Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° python -m app.cli)
β”‚   β”œβ”€β”€ analyze_video.py      # Анализ Π²ΠΈΠ΄Π΅ΠΎ (гистограммы, CNN, автоэнкодСр)
β”‚   β”œβ”€β”€ steganography.py      # LSB-стСганография для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
β”‚   β”œβ”€β”€ train_model.py        # ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ TinyVGG
β”‚   β”œβ”€β”€ train_model_optimized.py  # ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π΅Ρ€
β”‚   β”œβ”€β”€ convert.py            # ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²
β”‚   β”œβ”€β”€ generateCheckData.py  # ГСнСрация тСстовых Π΄Π°Π½Π½Ρ‹Ρ…
β”‚   β”œβ”€β”€ videoEncoder.py       # ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ
β”‚   β”œβ”€β”€ videoGenerator.py     # ГСнСрация Π²ΠΈΠ΄Π΅ΠΎ
β”‚   β”œβ”€β”€ *.ipynb               # Jupyter notebooks
β”‚   β”œβ”€β”€ core/                 # Π―Π΄Ρ€ΠΎ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°
β”‚   β”‚   └── analyzer.py       # Анализатор ΠΊΠ°Π΄Ρ€ΠΎΠ²
β”‚   β”œβ”€β”€ analysis/             # ΠŸΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚ статистичСского Π°Π½Π°Π»ΠΈΠ·Π°
β”‚   β”‚   └── histogram.py      # ГистограммныС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ
β”‚   β”œβ”€β”€ utils/                # Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹
β”‚   β”‚   β”œβ”€β”€ image_utils.py
β”‚   β”‚   β”œβ”€β”€ lsb.py            # LSB-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹
β”‚   β”‚   └── metrics.py        # ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ качСства
β”‚   β”œβ”€β”€ models/               # ΠžΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹
β”‚   β”‚   β”œβ”€β”€ model_with_augm.pth
β”‚   β”‚   β”œβ”€β”€ srm_filters.py    # SRM-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ для стСгоанализа
β”‚   β”‚   β”œβ”€β”€ steganalysis_net.py # StegAnalysisNet (CNN для стСго)
β”‚   β”‚   └── tinyvgg.py        # TinyVGG (лёгкая CNN)
β”‚   └── video/                # ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΈΠ΄Π΅ΠΎ для Π°Π½Π°Π»ΠΈΠ·Π°
β”‚       └── test.mp4
β”œβ”€β”€ benchmarks/               # Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ качСства
β”‚   β”œβ”€β”€ bench_lsb_speed.py            # Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ LSB-кодирования
β”‚   β”œβ”€β”€ bench_models_accuracy.py      # Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
β”‚   β”œβ”€β”€ bench_stego_resistance.py     # Π£ΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ искаТСниям
β”‚   β”œβ”€β”€ plot_results.py               # Визуализация Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
β”‚   β”œβ”€β”€ figures/                      # Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ
β”‚   └── results/                      # JSON-ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹
β”œβ”€β”€ tests/                    # ВСсты (pytest)
β”‚   β”œβ”€β”€ conftest.py
β”‚   β”œβ”€β”€ utils.py
β”‚   β”œβ”€β”€ test_*.py             # 10 Ρ„Π°ΠΉΠ»ΠΎΠ²: unit + integration + e2e
β”‚   └── fixtures/             # ВСстовыС Π΄Π°Π½Π½Ρ‹Π΅
β”œβ”€β”€ fixtures/                 # Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ тСстовыС изобраТСния
β”‚   β”œβ”€β”€ generate_test_data.py
β”‚   └── test_*.png
β”œβ”€β”€ data/                     # ДатасСты (Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠΌ)
β”‚   β”œβ”€β”€ train/                # train/stego, train/clean, ...
β”‚   └── test/
β”œβ”€β”€ images/                   # Π”Π΅ΠΌΠΎ-изобраТСния (Π²Ρ…ΠΎΠ΄, Π²Ρ‹Ρ…ΠΎΠ΄)
β”œβ”€β”€ metrics/                  # ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ качСства ΠΊΠΎΠ΄Π° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°
β”‚   β”œβ”€β”€ before_analysis_summary.json
β”‚   β”œβ”€β”€ before_cc.json
β”‚   └── before_duplicates.json/
└── vkr_report/               # ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π’ΠšΠ  (LaTeX, прСзСнтация, PDF)
    β”œβ”€β”€ report.tex / report.pdf
    β”œβ”€β”€ preDefenseThesis.tex
    β”œβ”€β”€ ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ ΠΊ Π’ΠšΠ .pdf / .pptx
    β”œβ”€β”€ РСцСнзия*.docx / .pdf
    β”œβ”€β”€ stuff/                # Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΈ слуТСбныС Ρ„Π°ΠΉΠ»Ρ‹
    └── images/               # Рисунки ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°

πŸ”¬ ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ обнаруТСния

1. БтатистичСский Π°Π½Π°Π»ΠΈΠ· гистограмм

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ распрСдСлСний интСнсивности пиксСлСй ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Π΄Ρ€Π°ΠΌΠΈ:

  • CORREL β€” коррСляция
  • CHISQR β€” Ρ…ΠΈ-ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚
  • INTERSECT β€” пСрСсСчСниС
  • BHATTACHARYYA β€” расстояниС Бхаттачария

РСализация: app/analysis/histogram.py, app/utils/metrics.py.

2. НСйросСтСвой Π°Π½Π°Π»ΠΈΠ· (CNN)

НСсколько Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€:

  • TinyVGG (app/models/tinyvgg.py) β€” компактная VGG-подобная ΡΠ΅Ρ‚ΡŒ для 3-классовой классификации. Π’Ρ…ΠΎΠ΄: 64Γ—64Γ—3. Π”Π²Π° свёрточных Π±Π»ΠΎΠΊΠ° + MaxPooling + полносвязный классификатор. ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с TrivialAugment.
  • StegAnalysisNet (app/models/steganalysis_net.py) β€” спСциализированная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° для стСгоанализа.
  • SRM-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ (app/models/srm_filters.py) β€” ΠΏΡ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°Π΄Ρ€ΠΎΠ² для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ сигнала стСганографии.

3. АвтоэнкодСр для обнаруТСния Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ нСстандартных ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²:

  • ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ
  • ΠŸΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ
  • Визуализация Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ…

РСализация: app/core/analyzer.py.

4. LSB-стСганография (для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…)

ΠœΠ΅Ρ‚ΠΎΠ΄ наимСньшСго Π·Π½Π°Ρ‡Π°Ρ‰Π΅Π³ΠΎ Π±ΠΈΡ‚Π° для встраивания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ:

  • Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹Π΅ сообщСния Π² RGB-ΠΊΠ°Π½Π°Π»Π°Ρ…
  • НастраиваСмая ΠΏΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒ заполнСния (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ k)
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° извлСчСния скрытых Π΄Π°Π½Π½Ρ‹Ρ…
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π² app/utils/lsb.py

πŸ“Š Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈ визуализация

БистСма Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ комплСксныС ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹:

  1. Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Plotly:

    • Π”ΠΈΠ½Π°ΠΌΠΈΠΊΠ° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΏΠΎ ΠΊΠ°Π΄Ρ€Π°ΠΌ
    • Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π°
    • Визуализация Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ
  2. HTML-ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹ (ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² reports/):

    reports/video_analysis.html
  3. БтатистичСскиС сводки:

    • Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ классификации
    • РаспрСдСлСниС Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ
    • Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ гистограммных ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ
  4. Π“Ρ€Π°Ρ„ΠΈΠΊΠΈ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ² Π² benchmarks/figures/.

πŸ›  Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Makefile

make help            # список доступных ΠΊΠΎΠΌΠ°Π½Π΄
make setup           # ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ .venv ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости
make install         # ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости
make test            # всС тСсты (unit + integration)
make test-fast       # Ρ‚ΠΎΠ»ΡŒΠΊΠΎ unit-тСсты
make test-integration # Ρ‚ΠΎΠ»ΡŒΠΊΠΎ integration-тСсты
make test-cov        # тСсты с ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ (htmlcov/)
make lint            # black + isort
make clean           # ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кСши (__pycache__, .pytest_cache, htmlcov/)

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² обнаруТСния

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² app/ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ (app/analysis/, app/core/, app/utils/).
  2. Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π² основной ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ (app/core/analyzer.py).
  3. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² app/analyze_video.py::show_results.
  4. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ тСсты Π² tests/.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

make lint
# ΠΈΠ»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ:
.venv/bin/black app/ tests/ --exclude='/(\.venv|\.git)/'
.venv/bin/isort app/ tests/ --skip=.venv --skip=.git

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠΎΠ΄Π° (ΠΊΡ€Π°Ρ‚ΠΊΠΎ)

  • app/core/ β€” ядро: Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, оркСстрация ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°.
  • app/analysis/ β€” ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° (гистограммы, …).
  • app/utils/ β€” ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ (LSB, изобраТСния, ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ).
  • app/models/ β€” Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ нСйросСтСй ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ вСса.
  • app/cli.py β€” Сдиная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° CLI.
  • .clinerules/ β€” докумСнтация для AI-Π°Π³Π΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈ code review ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

πŸ§ͺ ВСстированиС

ВСсты ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² tests/:

  • Unit (test_current_*.py, test_*.py β€” быстрыС, Π±Π΅Π· Π²Π½Π΅ΡˆΠ½ΠΈΡ… сСрвисов).
  • Integration (test_integration_e2e.py, test_analyzer_batched.py).
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (test_lsb_optimized.py, test_training_optimized.py).

Запуск:

make test
.venv/bin/pytest -v

πŸ“ˆ Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ

Π’ benchmarks/ находятся скрипты для Π·Π°ΠΌΠ΅Ρ€Π°:

  • Бкорости LSB-кодирования β€” bench_lsb_speed.py
  • Вочности ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ β€” bench_models_accuracy.py
  • Устойчивости ΠΊ искаТСниям β€” bench_stego_resistance.py
  • Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” plot_results.py (сохраняСт Π² benchmarks/figures/)

JSON-ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² benchmarks/results/.

πŸ“„ ЛицСнзия

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² акадСмичСских цСлях Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π’ΠšΠ  2025 Π³ΠΎΠ΄Π°. Π”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° 2026 Π³ΠΎΠ΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° с использованиСм AI-Π°Π³Π΅Π½Ρ‚Π° MiniMax (M3) Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ agentic coding. Для коммСрчСского использования ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ.

πŸ”— Бсылки ΠΈ рСсурсы

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

ВСхничСскиС рСсурсы

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹


fltrVd: Video Steganography Detection System

License: MIT Python 3.11+ Tests Code style: black PRs welcome

πŸ“ 2026: code rework and documentation performed using MiniMax-M3 agent. Original β€” graduation thesis 2025. This repository contains a graduation thesis (Π’ΠšΠ ) completed in 2025 and reworked in 2026 using the MiniMax (M3) language model in agentic development mode. The AI-assisted iteration covered: source code refactoring, expanded test coverage, added benchmarks, and structured documentation.

πŸ“‹ Table of Contents

🎯 Overview

fltrVd is a research system for detecting steganographic inserts in video files. The project combines traditional analysis methods (statistical, histogram-based) with modern deep learning approaches to classify video frames into three categories:

  • clean β€” original, unmodified frames
  • noize β€” frames with added noise
  • stego β€” frames with steganographic inserts (LSB method)

The system was developed as a graduation thesis and is intended for research in information security and multimedia content analysis.

✨ Features

  • Video preparation: splitting into fragments, decoding audio and video tracks
  • Test data generation: creating modified video versions (noised, stego versions)
  • Statistical analysis: histogram comparison (CORREL, CHISQR, INTERSECT, BHATTACHARYYA)
  • Neural network analysis: CNN classification (TinyVGG, StegAnalysisNet + SRM filters)
  • Anomaly detection: autoencoder for identifying unusual patterns
  • Optimized trainer: accelerated training with augmentation (train_model_optimized.py)
  • CLI interface: run main scenarios from the command line (app/cli.py)
  • Results visualization: interactive Plotly graphs, HTML reports
  • Benchmarks: LSB speed, model accuracy, stego resistance measurements
  • Tests: unit, integration, e2e β€” full pipeline coverage from encoder to analyzer

πŸš€ Installation

Prerequisites

  • Python 3.8+
  • GNU Make (optional, for make commands)
  • uv (recommended) or pip

Option 1: via uv (recommended)

git clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
uv venv
uv pip install -r requirements.txt

Option 2: via Makefile

git clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
make setup         # creates .venv and installs dependencies

Option 3: via pip directly

git clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Verify installation

python -c "import cv2, torch, plotly; print('All libraries loaded successfully')"

πŸ“– Usage

CLI (primary)

python -m app.cli --help
python -m app.cli analyze app/video/test.mp4
python -m app.cli encode fixtures/test_clean.png --k 0.5
python -m app.cli decode images/testImage_encoded.png
python -m app.cli train --epochs 30 --augmentation

Basic example: Video analysis (Python API)

from app.analyze_video import analyze, show_results

# Analyze video file
result = analyze("app/video/test.mp4")

# Visualize results
fig = show_results(result)
fig.show()  # Opens interactive graph in browser

Training model from scratch

from app.train_model_optimized import train_model_optimized

# Optimized training with augmentation
model, results = train_model_optimized(epochs=30, use_augmentation=True)

# Save model
torch.save(model.state_dict(), "app/models/my_model.pth")

Steganographic encoding

from app.steganography import handle_hide, handle_show

# Hide message in image
handle_hide("input.png", "output_stego.png", k=0.5)

# Extract message
handle_show("output_stego.png")

Jupyter Notebook

jupyter lab

Open any of the .ipynb files in the app/ folder for interactive exploration.

πŸ“ Project Structure

fltrVd/
β”œβ”€β”€ README.md                 # This file
β”œβ”€β”€ IMPROVEMENTS.md           # Improvement plan (updated in 2026)
β”œβ”€β”€ NEXT_STEPS.md             # Next steps and development ideas
β”œβ”€β”€ TRAINING_ROADMAP.md       # Model training roadmap
β”œβ”€β”€ Makefile                  # setup / test / lint / clean commands
β”œβ”€β”€ pyproject.toml            # Project metadata
β”œβ”€β”€ pytest.ini                # pytest configuration
β”œβ”€β”€ requirements.txt          # Python dependencies
β”œβ”€β”€ uv.lock                   # uv lock file
β”œβ”€β”€ start.sh                  # Startup script
β”œβ”€β”€ .clinerules/              # Documentation for AI agents (7 sections)
β”‚   β”œβ”€β”€ 01-fltrVd-philosophy.md
β”‚   β”œβ”€β”€ 02-fltrVd-architecture.md
β”‚   β”œβ”€β”€ 03-fltrVd-coding.md
β”‚   β”œβ”€β”€ 04-fltrVd-docker.md
β”‚   β”œβ”€β”€ 05-fltrVd-tasks.md
β”‚   β”œβ”€β”€ 06-fltrVd-workflow.md
β”‚   └── 07-fltrVd-contacts.md
β”œβ”€β”€ app/                      # Main application code
β”‚   β”œβ”€β”€ cli.py                # CLI entry point (python -m app.cli)
β”‚   β”œβ”€β”€ analyze_video.py      # Video analysis (histograms, CNN, autoencoder)
β”‚   β”œβ”€β”€ steganography.py      # LSB steganography for images
β”‚   β”œβ”€β”€ train_model.py        # TinyVGG training
β”‚   β”œβ”€β”€ train_model_optimized.py  # Optimized trainer
β”‚   β”œβ”€β”€ convert.py            # Format conversion
β”‚   β”œβ”€β”€ generateCheckData.py  # Test data generation
β”‚   β”œβ”€β”€ videoEncoder.py       # Video encoding
β”‚   β”œβ”€β”€ videoGenerator.py     # Video generation
β”‚   β”œβ”€β”€ *.ipynb               # Jupyter notebooks
β”‚   β”œβ”€β”€ core/                 # Pipeline core
β”‚   β”‚   └── analyzer.py       # Frame analyzer
β”‚   β”œβ”€β”€ analysis/             # Statistical analysis subpackage
β”‚   β”‚   └── histogram.py      # Histogram metrics
β”‚   β”œβ”€β”€ utils/                # Utilities
β”‚   β”‚   β”œβ”€β”€ image_utils.py
β”‚   β”‚   β”œβ”€β”€ lsb.py            # LSB utilities
β”‚   β”‚   └── metrics.py        # Quality metrics
β”‚   β”œβ”€β”€ models/               # Trained models and architectures
β”‚   β”‚   β”œβ”€β”€ model_with_augm.pth
β”‚   β”‚   β”œβ”€β”€ srm_filters.py    # SRM filters for steganalysis
β”‚   β”‚   β”œβ”€β”€ steganalysis_net.py # StegAnalysisNet (CNN for stego)
β”‚   β”‚   └── tinyvgg.py        # TinyVGG (lightweight CNN)
β”‚   └── video/                # Example videos for analysis
β”‚       └── test.mp4
β”œβ”€β”€ benchmarks/               # Performance and quality benchmarks
β”‚   β”œβ”€β”€ bench_lsb_speed.py            # LSB encoding speed
β”‚   β”œβ”€β”€ bench_models_accuracy.py      # Model accuracy
β”‚   β”œβ”€β”€ bench_stego_resistance.py     # Resistance to distortions
β”‚   β”œβ”€β”€ plot_results.py               # Results visualization
β”‚   β”œβ”€β”€ figures/                      # Generated plots
β”‚   └── results/                      # JSON reports
β”œβ”€β”€ tests/                    # Tests (pytest)
β”‚   β”œβ”€β”€ conftest.py
β”‚   β”œβ”€β”€ utils.py
β”‚   β”œβ”€β”€ test_*.py             # 10 files: unit + integration + e2e
β”‚   └── fixtures/             # Test data
β”œβ”€β”€ fixtures/                 # Generated test images
β”‚   β”œβ”€β”€ generate_test_data.py
β”‚   └── test_*.png
β”œβ”€β”€ data/                     # Datasets (generated by pipeline)
β”‚   β”œβ”€β”€ train/                # train/stego, train/clean, ...
β”‚   └── test/
β”œβ”€β”€ images/                   # Demo images (input, output)
β”œβ”€β”€ metrics/                  # Code and analysis quality metrics
β”‚   β”œβ”€β”€ before_analysis_summary.json
β”‚   β”œβ”€β”€ before_cc.json
β”‚   └── before_duplicates.json/
└── vkr_report/               # Thesis materials (LaTeX, presentation, PDF)
    β”œβ”€β”€ report.tex / report.pdf
    β”œβ”€β”€ preDefenseThesis.tex
    β”œβ”€β”€ ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ ΠΊ Π’ΠšΠ .pdf / .pptx
    β”œβ”€β”€ РСцСнзия*.docx / .pdf
    β”œβ”€β”€ stuff/                # Templates and auxiliary files
    └── images/               # Report figures

πŸ”¬ Detection Methods

1. Statistical Histogram Analysis

Comparing pixel intensity distributions between frames:

  • CORREL β€” correlation
  • CHISQR β€” chi-square
  • INTERSECT β€” intersection
  • BHATTACHARYYA β€” Bhattacharyya distance

Implementation: app/analysis/histogram.py, app/utils/metrics.py.

2. Neural Network Analysis (CNN)

Multiple architectures:

  • TinyVGG (app/models/tinyvgg.py) β€” compact VGG-like network for 3-class classification. Input: 64Γ—64Γ—3. Two convolutional blocks + MaxPooling + fully connected classifier. Training with TrivialAugment.
  • StegAnalysisNet (app/models/steganalysis_net.py) β€” specialized architecture for steganalysis.
  • SRM filters (app/models/srm_filters.py) β€” frame preprocessing to amplify steganography signal.

3. Autoencoder for Anomaly Detection

Detecting unusual patterns in file size sequences:

  • Encoding temporal sequences
  • Threshold-based anomaly detection
  • Visualization on graphs

Implementation: app/core/analyzer.py.

4. LSB Steganography (for data generation)

Least Significant Bit method for information embedding:

  • Random messages in RGB channels
  • Adjustable fill density (parameter k)
  • Hidden data extraction support
  • Optimized variant in app/utils/lsb.py

πŸ“Š Results and Visualization

The system generates comprehensive reports:

  1. Interactive Plotly Graphs:

    • Metric dynamics across frames
    • Method comparison
    • Anomaly visualization
  2. HTML Reports (saved to reports/):

    reports/video_analysis.html
  3. Statistical Summaries:

    • Classification accuracy
    • Anomaly distribution
    • Histogram metric comparison
  4. Benchmark plots in benchmarks/figures/.

πŸ›  Development

Makefile commands

make help            # list available commands
make setup           # create .venv and install dependencies
make install         # reinstall dependencies
make test            # all tests (unit + integration)
make test-fast       # unit tests only
make test-integration # integration tests only
make test-cov        # tests with coverage (htmlcov/)
make lint            # black + isort
make clean           # clean caches (__pycache__, .pytest_cache, htmlcov/)

Adding new detection methods

  1. Create a new module in app/ or a subpackage (app/analysis/, app/core/, app/utils/).
  2. Integrate it into the main pipeline (app/core/analyzer.py).
  3. Add visualization in app/analyze_video.py::show_results.
  4. Write tests in tests/.

Code formatting

make lint
# or manually:
.venv/bin/black app/ tests/ --exclude='/(\.venv|\.git)/'
.venv/bin/isort app/ tests/ --skip=.venv --skip=.git

Code structure (brief)

  • app/core/ β€” core: analyzer, pipeline orchestration.
  • app/analysis/ β€” specific analysis methods (histograms, …).
  • app/utils/ β€” reusable utilities (LSB, images, metrics).
  • app/models/ β€” neural network architectures and trained weights.
  • app/cli.py β€” single CLI entry point.
  • .clinerules/ β€” documentation for AI agents, useful for code review and iterative development.

πŸ§ͺ Testing

Tests are organized in tests/:

  • Unit (test_current_*.py, test_*.py β€” fast, no external services).
  • Integration (test_integration_e2e.py, test_analyzer_batched.py).
  • Optimized (test_lsb_optimized.py, test_training_optimized.py).

Run:

make test
.venv/bin/pytest -v

πŸ“ˆ Benchmarks

benchmarks/ contains scripts for measuring:

  • LSB encoding speed β€” bench_lsb_speed.py
  • Model accuracy β€” bench_models_accuracy.py
  • Resistance to distortions β€” bench_stego_resistance.py
  • Visualization β€” plot_results.py (saves to benchmarks/figures/)

JSON reports are saved to benchmarks/results/.

πŸ“„ License

The project was developed for academic purposes as a 2025 graduation thesis. The 2026 rework was performed using the MiniMax (M3) AI agent in agentic coding mode. For commercial use, please contact the author.

πŸ”— References

Research Materials

Technical Resources

Supplementary Materials

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages