Переглянути як Markdown

утиліти libreyolo

Дев'ять команд, які звітують або перевіряють, а не обчислюють. Вони виводять відомості про середовище, перелік моделей і форматів, розв'язані типові значення, дані контрольної точки, а також будують і опитують галерею облич.

Команди
version, checks, models, formats, cfg, info, metadata, enroll, compare
Виведення
stdout, у вигляді тексту або з json=true як один об'єкт зі schema_version

Синопсис

bash
libreyolo <command> [key=value ...]

Аргументи задаються парами key=value, до того ж працює й POSIX-форма, тому model=x і --model x є тим самим аргументом. Кожна команда з цієї сторінки пише результат у stdout і приймає json=true та quiet=true.

Кореневий виклик має один власний прапорець, libreyolo --version, який виводить рядок версії та завершує роботу. Це коротше виведення, ніж у команди version нижче.

version

Виводить версію бібліотеки LibreYOLO, а також версії Python, torch і CUDA, з якими вона працює.

bash
libreyolo version
АргументТипове значенняПризначення
jsonfalseВиведення JSON у stdout
quietfalseПриглушити stderr

checks

Виводить докладніші відомості про середовище: Python, torch, CUDA, cuDNN, кожен виявлений GPU з його назвою та обсягом пам'яті, а також установлену версію кожного необов'язкового пакета, який використовують шляхи експорту.

bash
libreyolo checks
АргументТипове значенняПризначення
jsonfalseВиведення JSON у stdout
quietfalseПриглушити stderr

Перелік пакетів охоплює onnx, onnxruntime, tensorrt, openvino, paddlepaddle, x2paddle, mnn, ncnn, onnx2tf, ai-edge-litert, transformers і scipy. Пакет, який не встановлено, позначається саме так, а не пропускається, тому невдалий експорт можна звести до відсутньої залежності однією цією командою.

models

Перелічує кожне сімейство моделей із його задачами, розмірами, назвами CLI, що розв'язуються в його контрольні точки, і вхідною роздільною здатністю кожного розміру.

bash
libreyolo models
АргументТипове значенняПризначення
jsonfalseВиведення JSON у stdout
quietfalseПриглушити stderr

Сімейство, необов'язкову залежність якого не встановлено, наведено як недоступне разом із рядком pip install, що зробить його доступним. Назви CLI приймаються в model= як скорочення: yolox-s розв'язується в LibreYOLOXs.pt, а задачі, відмінні від виявлення, несуть суфікс своєї задачі.

formats

Перелічує формати експорту, які може створити встановлене середовище, разом із розширенням файлу кожного формату та відомостями про підтримку FP16 та INT8.

bash
libreyolo formats [family=<family>] [task=<task>]
АргументТипове значенняПризначення
familyПоказати рівні підтримки для одного сімейства моделей. model= приймається як той самий параметр
taskКанонічна задача моделі. Якщо не задано, типова задача сімейства
jsonfalseВиведення JSON у stdout
quietfalseПриглушити stderr

Без family виведення містить лише перелік форматів. З ним кожен формат отримує рівень підтримки для цього сімейства та задачі, причину такого рівня і будь-яке пов'язане з ним обмеження. Невідоме сімейство або задача, якої сімейство не підтримує, є помилкою використання.

Псевдоніми форматів показано поруч із канонічною назвою: engine для tensorrt, litert для tflite.

cfg

Виводить розв'язану типову конфігурацію: типові значення для навчання, для валідації, для передбачення та перевизначення для кожного сімейства.

bash
libreyolo cfg
АргументТипове значенняПризначення
jsonfalseВиведення JSON у stdout
quietfalseПриглушити stderr

Значення читаються з класів даних конфігурації, а не з копії, тому саме це джерело є достовірним щодо того, що використає запуск навчання, якщо ви не передасте аргумент. Розділ family_overrides пояснює, чому сімейство навчалося з налаштуваннями, яких ви не просили. Про застосування цих перевизначень див. libreyolo train.

info

Завантажує модель на CPU і повідомляє її сімейство, розмір, кількість параметрів, класи та рівень підтримки експорту для кожного формату.

bash
libreyolo info model=<name|path>
АргументТипове значенняПризначення
modelНазва моделі або шлях до ваг. Обов'язковий
detailedfalseДодати подробиці щодо кожного параметра
jsonfalseВиведення JSON у stdout
quietfalseПриглушити stderr

metadata

Читає метадані контрольної точки без побудови моделі та перевіряє їх на відповідність схемі контрольних точок LibreYOLO.

bash
libreyolo metadata path=<checkpoint.pt>
АргументТипове значенняПризначення
pathШлях до контрольної точки .pt. Обов'язковий
jsonfalseВиведення JSON у stdout
quietfalseПриглушити stderr

Великі записи, що містять тензори, подано у стислому вигляді замість повного друку, тому виведення лишається читним навіть для повної навчальної контрольної точки. Якщо контрольної точки не існує, команда завершується з checkpoint_not_found, а якщо метадані не проходять перевірку, вона друкує помилки і завершується з кодом 1.

enroll

Будує галерею облич із дерева тек, де на кожну особу припадає одна тека, щоб подальші передбачення могли називати знайдені обличчя.

bash
libreyolo enroll model=<embedder> source=<people-dir> gallery=<gallery.npz>
АргументТипове значенняПризначення
modelМодель ембедингів облич, шлях або назва. Обов'язковий
sourceДерево з однією текою на особу, source/<identity>/*.jpg. Обов'язковий
galleryВихідний файл галереї .npz. Якщо він існує, доповнюється на місці. Обов'язковий
face_detectorДетектор облич: файл YuNet .onnx або детектор LibreYOLO. Якщо не задано, типовий детектор сімейства
deviceautoПристрій: 0, cpu, mps, auto
jsonfalseВиведення JSON у stdout
quietfalseПриглушити stderr
bash
# people/ містить одну теку на кожну особу; назва теки стає ідентичністю.
libreyolo enroll model=librefacerec-l.onnx source=people/ gallery=people.npz

Назва підтеки і є ідентичністю. Еталонне зображення, на якому не вдалося виявити обличчя, пропускається з рядком у stderr, а решта обробляється далі; джерело без підтек з ідентичностями або таке, де не знайдено жодного обличчя, є помилкою.

Передайте отриманий файл у libreyolo predict як gallery=people.npz, щоб виявлення несли ідентичність і оцінку збігу.

compare

Повідомляє косинусну подібність між двома зображеннями облич і те, чи перевищує вона поріг однакової ідентичності.

bash
libreyolo compare model=<embedder> source=<a.jpg> source2=<b.jpg>
АргументТипове значенняПризначення
modelМодель ембедингів облич, шлях або назва. Обов'язковий
sourceПерше зображення. Обов'язковий
source2Друге зображення для порівняння. Обов'язковий
face_detectorДетектор облич: файл YuNet .onnx або детектор LibreYOLO
threshold0.4Поріг косинусної подібності для рішення про однакову ідентичність
deviceautoПристрій: 0, cpu, mps, auto
jsonfalseВиведення JSON у stdout
quietfalseПриглушити stderr
bash
libreyolo compare model=librefacerec-l.onnx source=a.jpg source2=b.jpg

libreyolo verify зареєстровано як другу назву цієї команди, і вона приймає ті самі аргументи.

Обидві команди, compare і enroll, потребують моделі, задачею якої є ембединги облич. Будь-що інше завершується з config_unsupported. Як джерела приймаються і локальні шляхи до зображень, і URL з http чи https.

Приклади

Середовище
libreyolo versionlibreyolo checks
Що доступно
libreyolo modelslibreyolo formats family=yolo9 task=detect
Перегляд контрольної точки
libreyolo info model=LibreYOLO9s.ptlibreyolo metadata path=weights/LibreYOLO9s.pt

Примітки

Результат надходить у stdout; поступ і попередження йдуть у stderr. json=true друкує один об'єкт зі schema_version, і саме цю форму варто читати зі скрипта. Текстове виведення є типовим і призначене для читання людиною.

Коди виходу відповідають тій самій схемі, що й у решті CLI: 0 в разі успіху, 2 для помилки використання чи конфігурації, 3 коли не вдається знайти джерело, 4 коли не вдається завантажити модель або контрольну точку, і 1 для інших збоїв під час виконання.

Пов'язане: libreyolo doctor, команда перевірки з боку датасету, і libreyolo profile, команда з боку продуктивності.

Перевірено з LibreYOLO v1.5.0.