研究与科学

探索而生

一个为研究人员而非仅仅是用户设计的代码库。自由修改、深入剖析,并且无需为此付费即可发表成果。

无需“研究许可证”

一些框架会为“研究”或“科学”许可证单独收费,只为让你在不公开自己工作的前提下查看代码。LibreYOLO 不会这样。

典型的“科学许可证”

  • 付费才能让研究保持私有
  • 商业研发使用需付费
  • 复杂的许可分级
  • 发表前需法律审查

LibreYOLO(MIT)

  • 自由研究,并保持私有
  • 任何使用场景都零费用
  • 一个简单的许可证:MIT
  • 发表无需担心法律问题
原生可解释性

看清黑箱内部

内置的可解释性工具。无需外部依赖,无需复杂配置,只需设置参数并调用函数。

特征图提取

只需一个标志位,即可保存每一层的中间激活值。非常适合理解模型在每个阶段“看到”了什么。

feature_maps.py
from libreyolo import LibreYOLO

# Enable feature map saving in constructor
model = LibreYOLO(
    model_path="LibreYOLO11m.pt",
    size="m",
    save_feature_maps=True
)

# Run inference - feature maps auto-saved
results = model(image="parkour.jpg")

# Saved to: runs/feature_maps/
backbone_p1.png
1/11
Backbone P1 feature map

CAM 可视化

实验性

内置 7 种类激活图(CAM)方法。调用 model.explain() 即可生成热力图,展示模型关注的区域。该功能为实验性功能,结果可能有所不同。

explainability.py
from libreyolo import LibreYOLO

model = LibreYOLO(model_path="LibreYOLO11m.pt", size="m")

# One-line CAM visualization
result = model.explain(
    image="parkour.jpg",
    method="gradcam",
    target_layer="neck_c2f22",
    save=True
)

# Returns heatmap and overlay
print(result["heatmap"].shape)

为修改而设计

代码库的编写易于阅读和修改。想测试新的主干网络?尝试自定义注意力机制?添加新颖的损失函数?尽管动手。

yolov11_custom.py
# Your modified architecture

from libreyolo.models.yolov11 import YOLOv11

class YOLOv11Custom(YOLOv11):
    def __init__(self):
        super().__init__()
        # Swap out the backbone
        self.backbone = MyCustomBackbone()

    def forward(self, x):
        features = self.backbone(x)
        return self.head(self.neck(features))

# Train it:
model = YOLOv11Custom()
model.train(data="my_dataset.yaml")

今天就开始你的研究

没有许可费用,没有付费墙,也不限制你将工作保持私有。只需安装,即可开始探索。

$ pip install libreyolo
查看文档