Skip to content

BreCaspian/OpenIdeas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
OpenIdeas Logo

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

License: Apache-2.0 Python: 3.8+ PyTorch: 1.10+ Modules: 400+
πŸ–πŸ˜­πŸ€š 🌟If this work is useful to you, please give this repository a Star !🌟 πŸ–πŸ˜­πŸ€š

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.

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

Ideas Post
400+ Ideas

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

πŸ“¦ Module Zoo

Quickly find the module you need.

We plan to continue expanding YOLO26 and DETR series module collections.


🧩 General Modules

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

πŸ“– Resources

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.


Survival Guides (Research First Aid)

Useful when deadlines are close, experiments break, or motivation drops.


Journal & Conference Navigation

Picking the right venue can save months of revision.


Writing Templates

Templates reduce repetitive work.


Visualization Templates

The goal of figures is clarity first.


Methods & Practical Tips

Small improvements add up.


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

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

πŸ”₯ Quick Start

This repo is module-first. We recommend using it in an existing PyTorch environment.

  1. Clone the repository
git clone https://github.com/BreCaspian/OpenIdeas
cd OpenIdeas
  1. 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.


πŸ‘‰ General Module Example

From the category index, you can quickly find a module and see its details.

TripletAttention

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:

TripletAttention

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.


πŸ‘‰ YOLO-Specific Module Example

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:

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.

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

🀝 Contributing

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.txt

For full contribution guidelines, see: CONTRIBUTING.md

©️ Citation

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.


πŸ“œ License

OpenIdeas is released under the Apache License 2.0: LICENSE.txt

Third-Party Licenses

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.

πŸ”’ Code of Conduct & Security

To keep the community friendly, open, and sustainable, please follow:

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.