Проект демонстрирует PoC (Proof of Concept) системы поиска фотографий по текстовому описанию.
Цель — показать практическую реализуемость технологии мультимодального поиска изображений для фотохостинга профессиональных фотографов «Со Смыслом».
- Разработать модель, находящую изображения по текстовому описанию
- Проверить концепцию мультимодального поиска
- Убедиться в соответствии требованиям по модерации контента
- Python 3.x
- pandas, numpy, matplotlib, seaborn
- scikit-learn, keras, tensorflow, keras-nlp
- nltk, Pillow, tqdm
- sentence-transformers, torch
photohosting_project/
├── photohosting_project.py # Основной код проекта
├── requirements.txt # Зависимости проекта
└── README.md # Документация
git clone https://github.com/kagor4/photohosting_project.git
cd photohosting_project
pip install -r requirements.txt
Для корректной работы требуется GPU (рекомендуется Colab с поддержкой CUDA).
train_dataset.csv
— описания изображенийCrowdAnnotations.tsv
,ExpertAnnotations.tsv
— оценки схожести парtest_queries.csv
,test_images/
— тестовые запросы и изображения
- Изображения: векторизация через
ResNet50
- Тексты: эмбеддинги с помощью
BERT base
иSentenceTransformer
- Модель оценки: нейросеть, обученная на экспертных + краудсорсинговых аннотациях
- Удаление контента, содержащего упоминания детей
- Фильтрация осуществляется на этапе предобработки описаний
Модель | RMSE |
---|---|
Dummy | 0.224 |
LinearRegression | 0.224 |
RandomForestRegressor | 0.236 |
NN (BERT base EN) | 0.225 |
NN (MiniLM SentenceTransf.) | 0.274 |
- Поиск 5 наиболее релевантных изображений по тексту
- Отображение результатов + оригинального изображения (если есть)
- Добавить CLIP-модель как основной механизм поиска
- Оптимизировать скорость поиска
- Расширить датасет
- Реализовать онлайн-доступ через API
Автор: kagor4