Усунення несправностей
Кожен запис має формат: Симптом → Причина → Вирішення. Заголовки розділів із симптомами містять точні рядки помилок — перегляньте цю сторінку (Ctrl-F), щоб знайти повідомлення, яке ви бачите. Кожен запис перевірено на відповідність поточній версії коду або відтворено на DevKit.
Якщо ви не знаєте, з чого почати, перейдіть до розділу Коли ви не знаєте, що робити: діагностика..
Встановлення та налаштування середовища
1. pyneat is not importable. Either Neat is not installed, or the venv is not activated.
Віртуальне середовище pyneat не активовано, або пакет wheel не встановлено в середовищі, в якому в и працюєте.
Активуйте середовище DevKit, перш ніж запускати будь-який код Python:
source ~/pyneat/bin/activate
2. Не вдалося завантажити плагін GST: undefined symbol: _ZN16simaaidispatcher14DispatcherBase14submitPrepared...
Спільні бібліотеки Neat для середовища виконання не знаходяться в шляху динамічного завантажувача, тому плагіни GStreamer не можуть розв’язати символи середовища виконання під час завантаження.
Перед запуском додайте каталог середовища виконання до LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/neat/runtime:$LD_LIBRARY_PATH
3. Відсутній архів моделі — sima-cli modelzoo ще не було запущено.
Архів моделі .tar.gz, на який посилається ваш код (або SIMA_YOLO_TAR / SIMA_RESNET50_TAR / SIMA_MODEL_TAR), не існує на диску.
Завантажте його з Model Zoo:
sima-cli modelzoo get yolo_v8s # or resnet_50, etc.
Створити / Збірка
4. Не вдалося знайти пакет find_package(SimaNeat CONFIG).
CMake не може знайти SimaNeatConfig.cmake (встановлено в lib/cmake/SimaNeat/). У стандартних інсталяціях DevKit він знаходиться в системному префіксі за замовчуванням; у випадках крос-компіляції для SDK, sysroot не входить до CMAKE_PREFIX_PATH.
Експортуйте SYSROOT і дозвольте вашому файлу CMakeLists додати його до шляху префіксів (шаблон Привіт, це чудовий шаблон Neat. робить це):
if(DEFINED ENV{SYSROOT} AND NOT "$ENV{SYSROOT}" STREQUAL "")
list(APPEND CMAKE_PREFIX_PATH "$ENV{SYSROOT}/usr/lib/aarch64-linux-gnu")
endif()
find_package(SimaNeat REQUIRED CONFIG)
Завантаження моделі та її налаштування.
5. failed to read image: <path>
OpenCV (cv2.imread / cv::imread) повернув значення null — файл не існує, недоступний для читання або не є зображенням, яке можна декодувати.
Перевірте шлях до файлу та переконайтеся, що файл є дійсним зображенням у форматі JPEG/PNG, перш ніж створювати вхідний тензор.
6. reason=topk must be > 0 (з boxdecode)
Параметр ModelOptions.top_k моделі виявлення було встановлено на 0; на етапі декодування обмежувальних рамок потрібне позитивне значення.
Встановіть позитивне значення top_k (у навчальних матеріалах використовується значення 100):
opt.top_k = 100
(Повідомлення надходить від плагіна EV74, який відповідає за декодування даних.)
7. preproc_upsample_not_supported
Вихідне зображення має менший розмір, ніж роздільна здатність, необхідна для вхідних даних моделі, тому попередній етап обробки повинен збільшити роздільну здатність — чого не робить старіша версія програмного забезпечення для попередньої обробки EV74 (вона лише зменшує роздільну здатність).
Надайте вхідне зображення, розмір якого не менший, ніж розмір вхідних даних моделі (наприклад, ≥ 640×640 для YOLOv8), або оновіть neat-ev74-firmware до версії, що містить ядро збільшення роздільної здатності.
(Повідомлення надходить з плагіна/прошивки попередньої обробки EV74.)
8. Низький поріг score_threshold → усунення пікових затримок під час постобробки.
Чим нижчий поріг виявлення, тим більше потенційних об’єктів залишається після застосування цього порогу, і обчислювальні витрати на не-максимальне придушення (NMS) зростають приблизно пропорційно квадрату кількості об’єктів, що пройшли фільтрацію.
Зменшуйте поріг лише до того рівня, який необхідний для виявлення слабких об’єктів, і встановіть максимальне значення за допомогою top_k. Див. Перегляньте виявлені області..