/ Модель

Характеристики

Лицензия
Apache 2.0
Базовая модель
scalelsd
Библиотека
mlx
Опубликована
13 авг 2026

scalelsd-mlx

Эмбеддинги изображенийИзображение → embedding

ScaleLSD-MLX — конвертированные для MLX веса ScaleLSD для обнаружения узлов и отрезков прямых на изображениях Apple Silicon.

0скачиваний за 30 дней0лайковвеса обновлены13 авг 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

ScaleLSD-MLX — это конвертированная версия весов ScaleLSD, подготовленная для запуска через mlx-swift на компьютерах Apple Silicon. Репозиторий содержит варианты ViT-Base v1 и v2; автор исходной модели — cherubicxn, а для использования рекомендуется v2. Веса преобразованы из PyTorch в формат safetensors для MLX без переобучения: классификационная голова ImageNet удалена, а ряд операций упрощён для инференса с заявленной численной близостью к исходной модели.

Модель предназначена для обнаружения узлов и отрезков прямых на изображениях и построения их каркасного представления. В README приведены результаты проверки совпадения с PyTorch на тестовом изображении и замеры скорости на Apple M5 Max при размере входа 512×512; эти показатели относятся к описанным условиям и не гарантируют аналогичную точность или скорость на других данных и устройствах. Модель принимает изображения и выдаёт структурированные признаки линий. Лицензия репозитория — Apache-2.0.

Сценарии применения

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

Ограничения

Проверки численного совпадения выполнены на указанном в README тестовом изображении; выбор ограниченного числа узлов и их назначение могут меняться из-за малых численных отклонений. Приведённая скорость измерена на Apple M5 Max при входе 512×512 и может отличаться на других устройствах.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

ScaleLSD — MLX weights

MLX-format weights for ScaleLSD, converted for use with mlx-swift-ScaleLSD on Apple Silicon.

These are converted redistributions of the original checkpoints published at cherubicxn/scalelsd. No retraining or fine-tuning was performed — the numerical content of the network is unchanged.

Contents

folderLayerScaleparameterssource checkpoint
scalelsd-vitbase-v1/no122,525,833scalelsd-vitbase-v1-train-sa1b.pt
scalelsd-vitbase-v2/yes122,544,265scalelsd-vitbase-v2-train-sa1b.pt

Each folder holds config.json + model.safetensors. Upstream recommends v2 by default.

Usage

import MLXScaleLSD

// Downloads from this repo on first use, then caches locally.
let directory = try await ModelStore.download(.v2)
let session = try ScaleLSDSession.load(directory: directory)

let image = try ScaleLSDSession.loadImage(at: imageURL)
let result = try session.detect(image)
for segment in result.segments(minimumScore: 10) {
    print(segment.x1, segment.y1, segment.x2, segment.y2, segment.score)
}

Or from the command line:

scalelsd detect -m <directory> -i image.jpg -e png --save-to out/

What was changed in conversion

The original checkpoints are PyTorch pickles, which MLX cannot read. Scripts/convert.py in the Swift repo performs a format conversion plus several inference-only graph simplifications, each of which is numerically equivalent (verified to ~2e-6 relative against the PyTorch reference):

  • Weight standardisation baked in. timm's StdConv2dSame re-standardises its weight on every forward pass; inference weights are frozen, so the standardised tensor is stored directly. (Note: the hybrid ViT uses eps=1e-8, not the class default 1e-6.)
  • conv + BatchNorm folded. The 16 conv(bias=False) -> BatchNorm2d pairs in DPT's ResidualConvUnit_custom collapse into single biased convolutions.
  • nn.Sequential indices renamed to named submodules, so keys read structurally.
  • Conv weights transposed from PyTorch (O, I, kH, kW) to MLX (O, kH, kW, I).
  • The 1000-class ImageNet classifier head dropped — ScaleLSD never calls it.

Accuracy

Verified stage by stage against the PyTorch reference. The final 9-channel HAT field matches to 1.1e-05 (v1) / 1.4e-05 (v2) maximum relative error. End-to-end on assets/indoor.jpg:

v1v2
junctions matched within 0.01 px512/512511/512
segments matched within 0.01 px1879/18801581/1590

Detections are not bit-exact by construction: the 512-junction cap and the nearest-junction assignment are discrete choices that a sub-noise perturbation can flip. See docs/PARITY.md.

Performance

Apple M5 Max, 512×512 input, Release build, median of 20 runs:

runtimeper image
mlx-swift (this port)57 ms
PyTorch 2.13, MPS88 ms
PyTorch 2.13, CPU652 ms

License and attribution

Apache-2.0, inherited from the original checkpoints at cherubicxn/scalelsd. The upstream ScaleLSD source is MIT (Copyright © 2023 Nan Xue). Original work and all model credit belong to the ScaleLSD authors; this repository contributes only a format conversion.

@inproceedings{ScaleLSD,
    title = {ScaleLSD: Scalable Deep Line Segment Detection Streamlined},
    author = {Zeran Ke and Bin Tan and Xianwei Zheng and Yujun Shen and Tianfu Wu and Nan Xue},
    booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    year = {2025},
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · mlx

Нельзя запустить

MLX-модели работают только на Apple Silicon.

Ревизия весов
8a5b198

0 моделей