Skip to content

Latest commit

 

History

History
304 lines (190 loc) · 16.2 KB

File metadata and controls

304 lines (190 loc) · 16.2 KB
OpenIdeas Logo

-----------------------------------------------------

License: Apache-2.0 Python: 3.8+ PyTorch: 1.10+ Modules: 400+
🌟Если эта работа вам полезна, поставьте звезду этому репозиторию!🌟

OpenIdeas — это модульный открытый репозиторий алгоритмов для исследований в области компьютерного зрения и глубокого обучения. Его цель — реализовывать и упаковывать высококачественные компоненты из топовых статей — такие как Attention, Convolution, Sequence, Frequency, Fusion, Resampling, Normalization и Activation — чтобы исследователи могли быстрее комбинировать, проверять и развивать идеи.

Репозиторий воспроизводит, систематизирует, оптимизирует и расширяет более 400 ключевых алгоритмов из CVPR, ICCV, ECCV, NeurIPS, ICML, ICLR и других ведущих площадок. Он рассчитан на поддержку широкого круга задач компьютерного зрения и deep learning.

«Зоопарк» алгоритмов разделен на Общие модули и YOLO-специфичные модули. Для каждого модуля, где это возможно, добавлены ссылки на исходную статью и официальный GitHub-репозиторий. Для небольшой части модулей ссылки на код могут отсутствовать, если авторы не публиковали реализацию или если модуль является внутренним нововведением репозитория.

-----------------------------------------------------

Ideas Post
400+ Ideas

-----------------------------------------------------

📦 Module Zoo

Быстро находите нужный модуль.

  • Библиотека общих модулей (General Modules) — вход: modules_links.md
  • Библиотека модулей YOLO (YOLO Modules) — вход: yolo11_links.md

Мы планируем продолжать расширять коллекции модулей для YOLO26 и семейства DETR.


🧩 General Modules

Ключевые категории и теги: 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

📖 Resources

В source/ также собраны полезные исследовательские материалы и шаблоны для удобного использования.

Исследования не всегда даются легко, но хорошие инструменты помогают.


Survival Guides (Research First Aid)

Полезно, когда горят дедлайны, ломаются эксперименты или падает мотивация.


Journal & Conference Navigation

Правильный выбор площадки может сэкономить месяцы правок.


Writing Templates

Шаблоны уменьшают объем повторяющейся работы.


Visualization Templates

Главная цель рисунков — ясность.


Methods & Practical Tips

Небольшие улучшения накапливаются.


Note: These resources are for learning and research reference. Please respect the original authors and licenses where applicable.

-----------------------------------------------------

🔥 Quick Start

Этот репозиторий ориентирован на модули. Рекомендуется использовать его в уже настроенной среде PyTorch.

  1. Клонируйте репозиторий
git clone https://github.com/BreCaspian/OpenIdeas
cd OpenIdeas
  1. Импортируйте модуль в коде (пример 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 модуля.


👉 General Module Example

Из категорийного индекса можно быстро найти модуль и посмотреть его детали.

TripletAttention

File: Attention/TripletAttention.py содержит полную реализацию. Названия модулей поддерживаются в соответствии с оригинальными статьями. По ссылке на статью можно посмотреть полную схему архитектуры. Например, для Triplet Attention в статье приведена следующая схема:

TripletAttention

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


👉 YOLO-Specific Module Example

Аналогично, YOLO-специфичные модули организованы в соответствии с модульной архитектурой YOLO. Они разделены на Attention, Backbone, Convolution, Head, LossFunc, Neck, SPPF и Sampling. Используйте категорийный индекс, чтобы быстро находить нужные модули.

Например, если вы хотите добавить модуль Sampling в сеть YOLO11, индекс предоставляет записи вроде следующей.

Предположим, вы выбираете DySample:

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.

-----------------------------------------------------

🤝 Contributing

Мы приветствуем новые модули и улучшения. 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

©️ Citation

Если вы используете OpenIdeas в исследованиях или публикациях, пожалуйста, цитируйте проект: CITATION.cff

Также обязательно цитируйте оригинальную статью и (при наличии) официальный репозиторий для каждого используемого модуля. Это уважает авторов и улучшает академическую прослеживаемость.


📜 License

OpenIdeas распространяется по лицензии Apache License 2.0: LICENSE.txt

Third-Party Licenses

Этот репозиторий включает воспроизведения и инженерные реализации публичных исследовательских методов. Для упомянутых сторонних реализаций (например, официального кода):

  • Мы уважаем и соблюдаем лицензии и условия исходных репозиториев
  • При любых несоответствиях лицензий приоритет имеет лицензия исходного репозитория
  • При повторном использовании или распространении кода соблюдайте как лицензию этого репозитория, так и применимые сторонние лицензии

Если вы заметили отсутствие или ошибки в указании лицензий, пожалуйста, откройте Issue или PR.

🔒 Code of Conduct & Security

Чтобы сообщество оставалось дружелюбным, открытым и устойчивым, пожалуйста, соблюдайте:

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

-----------------------------------------------------

Никогда не забывайте: высшая цель исследований — двигать человечество вперед.

Статьи устаревают, метрики обновляются, тренды меняются.

Но надежная истина, переиспользуемый метод или развеянное заблуждение

могут остаться.