OpenIdeas — это модульный открытый репозиторий алгоритмов для исследований в области компьютерного зрения и глубокого обучения. Его цель — реализовывать и упаковывать высококачественные компоненты из топовых статей — такие как Attention, Convolution, Sequence, Frequency, Fusion, Resampling, Normalization и Activation — чтобы исследователи могли быстрее комбинировать, проверять и развивать идеи.
Репозиторий воспроизводит, систематизирует, оптимизирует и расширяет более 400 ключевых алгоритмов из CVPR, ICCV, ECCV, NeurIPS, ICML, ICLR и других ведущих площадок. Он рассчитан на поддержку широкого круга задач компьютерного зрения и deep learning.
«Зоопарк» алгоритмов разделен на Общие модули и YOLO-специфичные модули. Для каждого модуля, где это возможно, добавлены ссылки на исходную статью и официальный GitHub-репозиторий. Для небольшой части модулей ссылки на код могут отсутствовать, если авторы не публиковали реализацию или если модуль является внутренним нововведением репозитория.
Быстро находите нужный модуль.
- Библиотека общих модулей (General Modules) — вход: modules_links.md
- Библиотека модулей YOLO (YOLO Modules) — вход: yolo11_links.md
Мы планируем продолжать расширять коллекции модулей для YOLO26 и семейства DETR.
Ключевые категории и теги: modules/modules_CATEGORIES.md
| Category | Example Tags |
|---|---|
| Attention | Spatial, Channel, Temporal, Cross, Sparse, Gated |
| Convolution | Dynamic, Deformable, Depthwise, Large-Kernel, Lightweight |
| Sequence | Transformer, Mamba, SSM, Token-Mixer |
| Frequency | FFT, Wavelet, DCT |
| Fusion | Multi-Scale, Feature-Fusion, Dual-Branch |
| Resampling | Pooling, Downsample, Upsample |
| Normalization | BN, LN, GN, Adaptive |
| Activation | ReLU, SiLU, GELU, Tanh |
| Utility | Basic-Block, Training-Trick, Misc |
В source/ также собраны полезные исследовательские материалы и шаблоны для удобного использования.
Исследования не всегда даются легко, но хорошие инструменты помогают.
Полезно, когда горят дедлайны, ломаются эксперименты или падает мотивация.
- Graduate Student Survival Guide
- Academic Slacker Survival Guide
- Talking to Your Advisor, Face to Face
Правильный выбор площадки может сэкономить месяцы правок.
- 2024 Computer Science SCI Journal List
- CCF Recommended International Conferences & Journals
- CCF Recommended Chinese Journals
- CAAI Recommended International Conferences
Шаблоны уменьшают объем повторяющейся работы.
Главная цель рисунков — ясность.
Небольшие улучшения накапливаются.
- How to Extract a Plug-and-Play Module
- How to Find Papers and Track Citations
- Where Models Can Be Improved
- Deep Learning Tuning Guide
- Deep Learning: Foundations and Concepts
Note: These resources are for learning and research reference. Please respect the original authors and licenses where applicable.
Этот репозиторий ориентирован на модули. Рекомендуется использовать его в уже настроенной среде PyTorch.
- Клонируйте репозиторий
git clone https://github.com/BreCaspian/OpenIdeas
cd OpenIdeas- Импортируйте модуль в коде (пример Triplet Attention)
from pathlib import Path
import sys
repo_root = Path(__file__).resolve().parent
sys.path.append(str(repo_root))
from src.modules.Attention.TripletAttention import TripletAttention
m = TripletAttention()Имена классов и интерфейсы определяются фактической реализацией в файлах. Сначала прочитайте заголовочный docstring модуля.
Из категорийного индекса можно быстро найти модуль и посмотреть его детали.
- File: Attention/TripletAttention.py
- Tags: Spatial, Channel
- Paper: "Rotate to Attend: Convolutional Triplet Attention Module" (WACV 2021)
- Code: https://github.com/landskape-ai/triplet-attention
File: Attention/TripletAttention.py содержит полную реализацию.
Названия модулей поддерживаются в соответствии с оригинальными статьями. По ссылке на статью можно посмотреть полную схему архитектуры. Например, для Triplet Attention в статье приведена следующая схема:
По ссылке на код можно посмотреть официальную реализацию. В большинстве случаев этот репозиторий следует официальной структуре, с некоторыми правками для удобства общего использования.
Аналогично, YOLO-специфичные модули организованы в соответствии с модульной архитектурой YOLO. Они разделены на Attention, Backbone, Convolution, Head, LossFunc, Neck, SPPF и Sampling. Используйте категорийный индекс, чтобы быстро находить нужные модули.
Например, если вы хотите добавить модуль Sampling в сеть YOLO11, индекс предоставляет записи вроде следующей.
Предположим, вы выбираете DySample:
- File: Sampling/DySample.py
- Paper: "Learning to Upsample by Learning to Sample" (ICCV 2023)
- Code: https://github.com/tiny-smart/dysample
По ссылкам можно открыть статью и официальный код. Открыв File: Sampling/DySample.py, вы увидите полную реализацию. Каждый YOLO-специфичный модуль должен включать стандартизованный заголовок примерно такого вида:
DySample
Category: Sampling
Paper: "Learning to Upsample by Learning to Sample" (ICCV 2023)
- https://arxiv.org/pdf/2308.15085.pdf
Official code:
- https://github.com/tiny-smart/dysample
Core idea:
- Dynamic sampling predicts offsets for content-aware upsampling.
- Improves detail over fixed interpolation with low overhead.
Typical structure (conceptual):
1) predict sampling offsets from input features
2) sample neighbor points with dynamic offsets
3) reassemble features at higher resolution
Notes:
- Ensure sampling grid matches target output scale.
- Use in neck upsampling where fine detail matters.
Usage:
- Placement: neck
- Replace : nearest/bilinear upsample or CARAFE
- Notes : align stride and feature sizes before fusionТакая структура помогает быстро понять, как использовать модуль в YOLO11.
Мы приветствуем новые модули и улучшения. OpenIdeas делает упор на модульность и прослеживаемость, поэтому вклад сообщества крайне желателен.
Перед отправкой PR, пожалуйста, убедитесь, что:
- Новые модули размещены в правильной директории категории (Category должен совпадать с директорией)
- Заголовочный docstring модуля заполнен полностью (Paper / Official Code / Core idea / Usage)
- Названия понятные, интерфейсы согласованные, документация читаемая, и при возможности добавлен минимальный запускаемый пример (
__main__) - Локальная проверка (sanity check) проходит успешно (рекомендуется)
python test/test.py --skip-file test/skip_globs.txtПолные правила участия: CONTRIBUTING.md
Если вы используете OpenIdeas в исследованиях или публикациях, пожалуйста, цитируйте проект: CITATION.cff
Также обязательно цитируйте оригинальную статью и (при наличии) официальный репозиторий для каждого используемого модуля. Это уважает авторов и улучшает академическую прослеживаемость.
OpenIdeas распространяется по лицензии Apache License 2.0: LICENSE.txt
Этот репозиторий включает воспроизведения и инженерные реализации публичных исследовательских методов. Для упомянутых сторонних реализаций (например, официального кода):
- Мы уважаем и соблюдаем лицензии и условия исходных репозиториев
- При любых несоответствиях лицензий приоритет имеет лицензия исходного репозитория
- При повторном использовании или распространении кода соблюдайте как лицензию этого репозитория, так и применимые сторонние лицензии
Если вы заметили отсутствие или ошибки в указании лицензий, пожалуйста, откройте Issue или PR.
Чтобы сообщество оставалось дружелюбным, открытым и устойчивым, пожалуйста, соблюдайте:
- Code of Conduct:
CODE_OF_CONDUCT.md - Security Policy:
SECURITY.md
Если вы обнаружили потенциальную проблему безопасности, следуйте инструкциям по приватному сообщению в SECURITY.md и избегайте публичного раскрытия, которое может создать риск.
Никогда не забывайте: высшая цель исследований — двигать человечество вперед.
Статьи устаревают, метрики обновляются, тренды меняются.
Но надежная истина, переиспользуемый метод или развеянное заблуждение
могут остаться.



