OpenIdeas is a modular, open algorithm repository for computer vision and deep learning research. It focuses on implementing and packaging high-quality components from top papers - such as Attention, Convolution, Sequence, Frequency, Fusion, Resampling, Normalization, and Activation - so researchers can combine, validate, and innovate more efficiently.
The repository reproduces, organizes, optimizes, and extends more than 400 core algorithms from CVPR, ICCV, ECCV, NeurIPS, ICML, ICLR, and other high-level venues. It is intended to support a wide range of deep learning and computer vision tasks.
The algorithm zoo is split into General Modules and YOLO-Specific Modules. Each module includes links to the original paper and the official GitHub repository when available. A small number of modules may not include code links if the original authors did not release them or if the module is an in-repo innovation.
Quickly find the module you need.
- General module library (General Modules) - entry: modules_links.md
- YOLO module library (YOLO Modules) - entry: yolo11_links.md
We plan to continue expanding YOLO26 and DETR series module collections.
Core categories and tags: docs/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 |
This repository also collects useful research materials and templates under docs/source/ for convenient reference.
Research is not always easy, but good tools make it more survivable.
Useful when deadlines are close, experiments break, or motivation drops.
- Graduate Student Survival Guide
- Academic Slacker Survival Guide
- Talking to Your Advisor, Face to Face
Picking the right venue can save months of revision.
- 2024 Computer Science SCI Journal List
- CCF Recommended International Conferences & Journals
- CCF Recommended Chinese Journals
- CAAI Recommended International Conferences
Templates reduce repetitive work.
The goal of figures is clarity first.
Small improvements add up.
- 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.
This repo is module-first. We recommend using it in an existing PyTorch environment.
- Clone the repository
git clone https://github.com/BreCaspian/OpenIdeas
cd OpenIdeas- Import a module in code (Triplet Attention example)
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()Module class names and interfaces follow the actual implementation in each file. Read the module header docstring first.
From the category index, you can quickly find a module and see its details.
- 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 contains the full implementation.
Module names are kept consistent with the original papers. Clicking the paper link lets you review the full architecture diagram. For example, Triplet Attention provides the following diagram in the paper:
Clicking the code link lets you review the official implementation. In most cases, this repository follows the official structure, with some adjustments for general usability.
Similarly, YOLO-specific modules are organized to follow the modular YOLO architecture. They are split into Attention, Backbone, Convolution, Head, LossFunc, Neck, SPPF, and Sampling. Use the category index to find modules quickly.
For example, if you want to add a Sampling module to a YOLO11 network, the index provides entries like the following.
Assume you choose DySample:
- File: Sampling/DySample.py
- Paper: "Learning to Upsample by Learning to Sample" (ICCV 2023)
- Code: https://github.com/tiny-smart/dysample
By following the links, you can view the paper and the official code. Opening File: Sampling/DySample.py shows the full implementation. Each YOLO-specific module should include a standardized header like this:
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
This structure helps you quickly understand how to use the module in YOLO11.
We welcome new modules and improvements. OpenIdeas emphasizes modularity and traceability, and community contributions are highly encouraged.
Before submitting a PR, please ensure:
- New modules are placed in the correct category directory (Category must match the directory)
- The module header docstring is complete (Paper / Official Code / Core idea / Usage)
- Naming is clear, interfaces are consistent, docs are readable, and a minimal runnable example (
__main__) is included when practical - The local sanity check passes (recommended)
python test/test.py --skip-file test/skip_globs.txtFor full contribution guidelines, see: CONTRIBUTING.md
If you use OpenIdeas in research or publications, please cite the project: CITATION.cff
Please also cite the original paper and (when available) the official repository for each module you use. This respects the original authors and improves academic traceability.
OpenIdeas is released under the Apache License 2.0: LICENSE.txt
This repository includes reproductions and engineering implementations of public research methods. For referenced third-party implementations (such as official code):
- We respect and follow the original repositories' licenses and terms
- If there is any license mismatch, the original repository's license takes precedence
- When reusing or redistributing code, comply with both this repository's license and any relevant third-party licenses
If you find missing or incorrect license annotations, please open an Issue or PR.
To keep the community friendly, open, and sustainable, please follow:
- Code of Conduct:
CODE_OF_CONDUCT.md - Security Policy:
SECURITY.md
If you discover a potential security issue, please follow the private reporting instructions in SECURITY.md and avoid public disclosure that could create risk.
Never forget that the highest goal of research is to advance humanity.
Papers will age, metrics will refresh, and trends will shift.
But a reliable truth, a reusable method, or a clarified misconception
can last.



