向AI转型的程序员都关注公众号 机器学习AI算法工程
在计算机视觉领域,获取大量带标签的数据通常代价高昂且耗时。lightly-train 是一个开源项目,旨在通过使用未标记的图像和视频数据进行自监督预训练(self-supervised pretraining),来降低标注成本并加快模型部署。该项目利用最新的研究成果,使用特定领域的未标记数据对模型进行预训练,从而大幅减少达到高性能所需标记的数据量。
lightly-train 设计用于轻松集成到现有的训练管道中,并支持广泛的模型架构和应用场景。
项目技术分析
lightly-train 项目基于深度学习的自监督学习(SSL)技术,允许用户在没有标签的情况下训练模型。自监督学习技术通过设计预测任务,使得模型能够从未标记的数据中学习到特征。lightly-train 支持多种先进的自监督学习方法,如 DINOv2 Distillation、DINO 和 SimCLR,这些方法使得模型在特定领域的数据上能够达到更好的性能。
项目的核心是一个易于使用的 API,它允许用户指定数据目录、模型架构以及训练参数。lightly-train 还支持多种流行的深度学习框架和模型库,如 Torchvision、TIMM、Ultralytics 等,使得用户能够方便地使用预训练模型或自定义模型。
项目及技术应用场景
lightly-train 的应用场景广泛,包括但不限于:
视频分析:在安全监控、交通分析等领域,未标记的视频数据非常丰富。
农业:在作物监测、病虫害检测等应用中,标记数据可能难以获取。
医疗:医疗图像的标注需要专业知识,而未标记的图像数据通常更为丰富。
机器人:机器人导航和环境理解需要大量的图像数据进行训练。
在以上场景中,lightly-train 能够帮助研发团队快速启动模型训练,减少对大量标记数据的依赖。
项目特点
以下是 lightly-train 的主要特点:
无需标签:利用未标记的数据进行预训练,节省标注时间和成本。
领域适应:通过在特定领域的未标记数据上预训练,提高模型的泛化能力。
模型与任务无关:与任何架构和任务兼容,包括检测、分类和分割。
支持大规模训练:从数千到数百万张图像,支持单机、云环境、单GPU和多云GPU设置。
以下是 lightly-train 的其他优势:
用户友好:无需自监督学习专业知识,用户可以专注于模型训练而非实现细节。
易于集成:与多种深度学习库直接集成,简化工作流程。
自动优化:自动管理从单GPU到多GPU训练的扩展,并优化超参数。
无缝工作流:自动预训练正确的层,并以适当的格式导出模型,方便后续微调。
通过lightly-train,研究人员和工程师可以充分利用未标记的数据集,快速构建和部署高性能的计算机视觉模型。项目提供的灵活性和易用性,使其成为加速AI研发的强大工具。
如何将Ultralytics模型与LightlyTrain结合使用
安装 LightlyTrain
pip install "lightly-train[ultralytics]"
预训练和微调Ultralytics模型
预训练
使用LightlyTrain对Ultralytics模型进行预训练非常简单。以下以ultralytics/yolov8s为例,提供了进行预训练所需的最基本脚本
import lightly_train
if __name__ == "__main__":
lightly_train.train(
out="out/my_experiment", # Output directory.
data="my_data_dir", # Directory with images.
model="ultralytics/yolov8s.yaml", # Pass the YOLO model.
)
或者,也可以直接传递一个YOLO模型实例
from ultralytics import YOLO
import lightly_train
if __name__ == "__main__":
model = YOLO("yolov8s.yaml") # Load the YOLO model.
lightly_train.train(
out="out/my_experiment", # Output directory.
data="my_data_dir", # Directory with images.
model=model, # Pass the YOLO model.
)
微调训练
预训练完成后,你可以使用Ultralytics加载导出的模型进行微调
from pathlib import Path
from ultralytics import YOLO
if __name__ == "__main__":
model = YOLO("out/my_experiment/exported_models/exported_last.pt")
model.train(data="coco8.yaml")
LightlyTrain支持的模型
- YOLOv5
ultralytics/yolov5l.yaml
ultralytics/yolov5l6u.pt
ultralytics/yolov5lu.pt
ultralytics/yolov5lu.yaml
ultralytics/yolov5m.yaml
ultralytics/yolov5m6u.pt
ultralytics/yolov5mu.pt
ultralytics/yolov5mu.yaml
ultralytics/yolov5n.yaml
ultralytics/yolov5n6u.pt
ultralytics/yolov5nu.pt
ultralytics/yolov5nu.yaml
ultralytics/yolov5s.yaml
ultralytics/yolov5s6u.pt
ultralytics/yolov5su.pt
ultralytics/yolov5su.yaml
ultralytics/yolov5x.yaml
ultralytics/yolov5x6u.pt
ultralytics/yolov5xu.pt
ultralytics/yolov5xu.yaml
- YOLOv6
ultralytics/yolov6l.yaml
ultralytics/yolov6m.yaml
ultralytics/yolov6n.yaml
ultralytics/yolov6s.yaml
ultralytics/yolov6x.yaml
- YOLOv8
ultralytics/yolov8l-cls.pt
ultralytics/yolov8l-cls.yaml
ultralytics/yolov8l-obb.pt
ultralytics/yolov8l-obb.yaml
ultralytics/yolov8l-oiv7.pt
ultralytics/yolov8l-pose.pt
ultralytics/yolov8l-pose.yaml
ultralytics/yolov8l-seg.pt
ultralytics/yolov8l-seg.yaml
ultralytics/yolov8l-world.pt
ultralytics/yolov8l-world.yaml
ultralytics/yolov8l-worldv2.pt
ultralytics/yolov8l-worldv2.yaml
ultralytics/yolov8l.pt
ultralytics/yolov8l.yaml
ultralytics/yolov8m-cls.pt
ultralytics/yolov8m-cls.yaml
ultralytics/yolov8m-obb.pt
ultralytics/yolov8m-obb.yaml
ultralytics/yolov8m-oiv7.pt
ultralytics/yolov8m-pose.pt
ultralytics/yolov8m-pose.yaml
ultralytics/yolov8m-seg.pt
ultralytics/yolov8m-seg.yaml
ultralytics/yolov8m-world.pt
ultralytics/yolov8m-world.yaml
ultralytics/yolov8m-worldv2.pt
ultralytics/yolov8m-worldv2.yaml
ultralytics/yolov8m.pt
ultralytics/yolov8m.yaml
ultralytics/yolov8n-cls.pt
ultralytics/yolov8n-cls.yaml
ultralytics/yolov8n-obb.pt
ultralytics/yolov8n-obb.yaml
ultralytics/yolov8n-oiv7.pt
ultralytics/yolov8n-pose.pt
ultralytics/yolov8n-pose.yaml
ultralytics/yolov8n-seg.pt
ultralytics/yolov8n-seg.yaml
ultralytics/yolov8n.pt
ultralytics/yolov8n.yaml
ultralytics/yolov8s-cls.pt
ultralytics/yolov8s-cls.yaml
ultralytics/yolov8s-obb.pt
ultralytics/yolov8s-obb.yaml
ultralytics/yolov8s-oiv7.pt
ultralytics/yolov8s-pose.pt
ultralytics/yolov8s-pose.yaml
ultralytics/yolov8s-seg.pt
ultralytics/yolov8s-seg.yaml
ultralytics/yolov8s-world.pt
ultralytics/yolov8s-world.yaml
ultralytics/yolov8s-worldv2.pt
ultralytics/yolov8s-worldv2.yaml
ultralytics/yolov8s.pt
ultralytics/yolov8s.yaml
ultralytics/yolov8x-cls.pt
ultralytics/yolov8x-cls.yaml
ultralytics/yolov8x-obb.pt
ultralytics/yolov8x-obb.yaml
ultralytics/yolov8x-oiv7.pt
ultralytics/yolov8x-pose.pt
ultralytics/yolov8x-pose.yaml
ultralytics/yolov8x-seg.pt
ultralytics/yolov8x-seg.yaml
ultralytics/yolov8x-world.pt
ultralytics/yolov8x-world.yaml
ultralytics/yolov8x-worldv2.pt
ultralytics/yolov8x-worldv2.yaml
ultralytics/yolov8x.pt
ultralytics/yolov8x.yaml
- YOLO11
ultralytics/yolo11n-cls.yaml
ultralytics/yolo11n-cls.pt
ultralytics/yolo11n-obb.yaml
ultralytics/yolo11n-obb.pt
ultralytics/yolo11n-pose.yaml
ultralytics/yolo11n-pose.pt
ultralytics/yolo11n-seg.yaml
ultralytics/yolo11n-seg.pt
ultralytics/yolo11n.yaml
ultralytics/yolo11n.pt
ultralytics/yolo11s-cls.yaml
ultralytics/yolo11s-cls.pt
ultralytics/yolo11s-obb.yaml
ultralytics/yolo11s-obb.pt
ultralytics/yolo11s-pose.yaml
ultralytics/yolo11s-pose.pt
ultralytics/yolo11s-seg.yaml
ultralytics/yolo11s-seg.pt
ultralytics/yolo11s.yaml
ultralytics/yolo11s.pt
ultralytics/yolo11m-cls.yaml
ultralytics/yolo11m-cls.pt
ultralytics/yolo11m-obb.yaml
ultralytics/yolo11m-obb.pt
ultralytics/yolo11m-pose.yaml
ultralytics/yolo11m-pose.pt
ultralytics/yolo11m-seg.yaml
ultralytics/yolo11m-seg.pt
ultralytics/yolo11m.yaml
ultralytics/yolo11m.pt
ultralytics/yolo11l-cls.yaml
ultralytics/yolo11l-cls.pt
ultralytics/yolo11l-obb.yaml
ultralytics/yolo11l-obb.pt
ultralytics/yolo11l-pose.yaml
ultralytics/yolo11l-pose.pt
ultralytics/yolo11l-seg.yaml
ultralytics/yolo11l-seg.pt
ultralytics/yolo11l.yaml
ultralytics/yolo11l.pt
ultralytics/yolo11x-cls.yaml
ultralytics/yolo11x-cls.pt
ultralytics/yolo11x-obb.yaml
ultralytics/yolo11x-obb.pt
ultralytics/yolo11x-pose.yaml
ultralytics/yolo11x-pose.pt
ultralytics/yolo11x-seg.yaml
ultralytics/yolo11x-seg.pt
ultralytics/yolo11x.yaml
ultralytics/yolo11x.pt
- YOLO12
-
ultralytics/yolo12n-cls.yaml
-
ultralytics/yolo12n-cls.pt
-
ultralytics/yolo12n-obb.yaml
-
ultralytics/yolo12n-obb.pt
-
ultralytics/yolo12n-pose.yaml
-
ultralytics/yolo12n-pose.pt
-
ultralytics/yolo12n-seg.yaml
-
ultralytics/yolo12n-seg.pt
-
ultralytics/yolo12n.yaml
-
ultralytics/yolo12n.pt
-
ultralytics/yolo12s-cls.yaml
-
ultralytics/yolo12s-cls.pt
-
ultralytics/yolo12s-obb.yaml
-
ultralytics/yolo12s-obb.pt
-
ultralytics/yolo12s-pose.yaml
-
ultralytics/yolo12s-pose.pt
-
ultralytics/yolo12s-seg.yaml
-
ultralytics/yolo12s-seg.pt
-
ultralytics/yolo12s.yaml
-
ultralytics/yolo12s.pt
-
ultralytics/yolo12m-cls.yaml
-
ultralytics/yolo12m-cls.pt
-
ultralytics/yolo12m-obb.yaml
-
ultralytics/yolo12m-obb.pt
-
ultralytics/yolo12m-pose.yaml
-
ultralytics/yolo12m-pose.pt
-
ultralytics/yolo12m-seg.yaml
-
ultralytics/yolo12m-seg.pt
-
ultralytics/yolo12m.yaml
-
ultralytics/yolo12m.pt
-
ultralytics/yolo12l-cls.yaml
-
ultralytics/yolo12l-cls.pt
-
ultralytics/yolo12l-obb.yaml
-
ultralytics/yolo12l-obb.pt
-
ultralytics/yolo12l-pose.yaml
-
ultralytics/yolo12l-pose.pt
-
ultralytics/yolo12l-seg.yaml
-
ultralytics/yolo12l-seg.pt
-
ultralytics/yolo12l.yaml
-
ultralytics/yolo12l.pt
-
ultralytics/yolo12x-cls.yaml
-
ultralytics/yolo12x-cls.pt
-
ultralytics/yolo12x-obb.yaml
-
ultralytics/yolo12x-obb.pt
-
ultralytics/yolo12x-pose.yaml
-
ultralytics/yolo12x-pose.pt
-
ultralytics/yolo12x-seg.yaml
-
ultralytics/yolo12x-seg.pt
-
ultralytics/yolo12x.yaml
-
ultralytics/yolo12x.pt
机器学习算法AI大数据技术
搜索公众号添加: datanlp
长按图片,识别二维码
阅读过本文的人还看了以下文章:
整理开源的中文大语言模型,以规模较小、可私有化部署、训练成本较低的模型为主
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx