π 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
git clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
uv venv
uv pip install -r requirements.txtgit clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
make setup # ΡΠΎΠ·Π΄Π°ΡΡ .venv ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈgit clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython -c "import cv2, torch, plotly; print('ΠΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ')"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 --augmentationfrom 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 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/ # Π ΠΈΡΡΠ½ΠΊΠΈ ΠΎΡΡΡΡΠ°
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°Π΄ΡΠ°ΠΌΠΈ:
- CORREL β ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΡ
- CHISQR β Ρ ΠΈ-ΠΊΠ²Π°Π΄ΡΠ°Ρ
- INTERSECT β ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅
- BHATTACHARYYA β ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΡ Π°ΡΡΠ°ΡΠ°ΡΠΈΡ
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ: app/analysis/histogram.py, app/utils/metrics.py.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ:
- TinyVGG (
app/models/tinyvgg.py) β ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π°Ρ VGG-ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΠ΅ΡΡ Π΄Π»Ρ 3-ΠΊΠ»Π°ΡΡΠΎΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡ ΠΎΠ΄: 64Γ64Γ3. ΠΠ²Π° ΡΠ²ΡΡΡΠΎΡΠ½ΡΡ Π±Π»ΠΎΠΊΠ° + MaxPooling + ΠΏΠΎΠ»Π½ΠΎΡΠ²ΡΠ·Π½ΡΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΡTrivialAugment. - StegAnalysisNet (
app/models/steganalysis_net.py) β ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄Π»Ρ ΡΡΠ΅Π³ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°. - SRM-ΡΠΈΠ»ΡΡΡΡ (
app/models/srm_filters.py) β ΠΏΡΠ΅Π΄ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ°Π΄ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π° ΡΡΠ΅Π³Π°Π½ΠΎΠ³ΡΠ°ΡΠΈΠΈ.
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ²:
- ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ
- ΠΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ
- ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°Ρ
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ: app/core/analyzer.py.
ΠΠ΅ΡΠΎΠ΄ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ°ΡΠ΅Π³ΠΎ Π±ΠΈΡΠ° Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ:
- Π‘Π»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² RGB-ΠΊΠ°Π½Π°Π»Π°Ρ
- ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠ°Ρ ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
k) - ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΠΊΡΡΡΡΡ Π΄Π°Π½Π½ΡΡ
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π²
app/utils/lsb.py
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ ΠΎΡΡΡΡΡ:
-
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ Plotly:
- ΠΠΈΠ½Π°ΠΌΠΈΠΊΠ° ΠΌΠ΅ΡΡΠΈΠΊ ΠΏΠΎ ΠΊΠ°Π΄ΡΠ°ΠΌ
- Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π°
- ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ
-
HTML-ΠΎΡΡΡΡΡ (ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π²
reports/):reports/video_analysis.html
-
Π‘ΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠ΄ΠΊΠΈ:
- Π’ΠΎΡΠ½ΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
- Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ
- Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΌΠ΅ΡΡΠΈΠΊ
-
ΠΡΠ°ΡΠΈΠΊΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ² Π²
benchmarks/figures/.
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/)- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π²
app/ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅ΡΠ΅ (app/analysis/,app/core/,app/utils/). - ΠΠ½ΡΠ΅Π³ΡΠΈΡΡΠΉΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ (
app/core/analyzer.py). - ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²
app/analyze_video.py::show_results. - ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ΡΡΡ Π²
tests/.
make lint
# ΠΈΠ»ΠΈ Π²ΡΡΡΠ½ΡΡ:
.venv/bin/black app/ tests/ --exclude='/(\.venv|\.git)/'
.venv/bin/isort app/ tests/ --skip=.venv --skip=.gitapp/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. ΠΠ»Ρ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ Ρ Π°Π²ΡΠΎΡΠΎΠΌ.
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΠΠ’Π£ ΠΈΠΌ. ΠΠ°ΡΠΌΠ°Π½Π°
- Image Noise Reduction Filter Based on Robust Regression Model
- IEEE InfoHiding
- OpenCV Documentation
- PyTorch Tutorials
- Plotly Python Documentation
- uv β fast Python package manager
π 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.
- Overview
- Features
- Installation
- Usage
- Project Structure
- Detection Methods
- Results and Visualization
- Development
- Testing
- Benchmarks
- License
- References
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.
- 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
- Python 3.8+
- GNU Make (optional, for
makecommands) uv(recommended) orpip
git clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
uv venv
uv pip install -r requirements.txtgit clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
make setup # creates .venv and installs dependenciesgit clone https://github.com/maxbogus/fltrVd.git
cd fltrVd
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython -c "import cv2, torch, plotly; print('All libraries loaded successfully')"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 --augmentationfrom 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 browserfrom 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")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 labOpen any of the .ipynb files in the app/ folder for interactive exploration.
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
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.
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 withTrivialAugment. - StegAnalysisNet (
app/models/steganalysis_net.py) β specialized architecture for steganalysis. - SRM filters (
app/models/srm_filters.py) β frame preprocessing to amplify steganography signal.
Detecting unusual patterns in file size sequences:
- Encoding temporal sequences
- Threshold-based anomaly detection
- Visualization on graphs
Implementation: app/core/analyzer.py.
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
The system generates comprehensive reports:
-
Interactive Plotly Graphs:
- Metric dynamics across frames
- Method comparison
- Anomaly visualization
-
HTML Reports (saved to
reports/):reports/video_analysis.html
-
Statistical Summaries:
- Classification accuracy
- Anomaly distribution
- Histogram metric comparison
-
Benchmark plots in
benchmarks/figures/.
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/)- Create a new module in
app/or a subpackage (app/analysis/,app/core/,app/utils/). - Integrate it into the main pipeline (
app/core/analyzer.py). - Add visualization in
app/analyze_video.py::show_results. - Write tests in
tests/.
make lint
# or manually:
.venv/bin/black app/ tests/ --exclude='/(\.venv|\.git)/'
.venv/bin/isort app/ tests/ --skip=.venv --skip=.gitapp/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.
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 -vbenchmarks/ 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 tobenchmarks/figures/)
JSON reports are saved to benchmarks/results/.
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.
- Bauman Moscow State Technical University Library
- Image Noise Reduction Filter Based on Robust Regression Model
- IEEE InfoHiding