К сожалению это бесполезно. Отношение скорости модели A к модели B для платы 1 может быть N, а для платы 2 может быть 5N. Примеры у меня в таблице были. На некоторые платы можно найти тесты. Но опять же, параметров исполнения слишком много чтобы это несло хоть какие-то знания.
Я давно занимаюсь этим хламом, та методика к которой я пришёл - описана в статье. Надо взять все критерии которые я описал, и откинуть то что не подходит по ним. И уже из оставшегося взять 3-4 платы и сравнивать характеристики по ним.
По скорости можно отсекать порядок исходя из того что пишут вендоры. 0-1TOPS, 2-10TOPS, 15-50 TOPS, более 50
RPi 5 не умеет аппаратно декодировать h264 А точно не умеет? Кажется энкодить не умеет, а декодить умеет. Или там только h265?
Для меня кейс с Frigate не очень интересен. Мы больше делаем кастомную разработку. И там очень много параметров чтобы учитывать. Так что обзор скорее в эту сторону.
Про Hailo я хочу сделать видео как раз про подключение к разным платам. Но это в планах пока только.
Я делаю минимальные бенчмарки по тем платам которые тестирую (в статье были ссылки на прошлые статьи с ними и на эти бенчмарки). Но, если честно, мне кажется что такие вещи скорее вводят в заблуждение. Слишком много параметров чтобы сравнивать разумно. Ширина PCIe линии, скорость доступа к памяти, размер батчей, логика использования npu. И прочее и прочее. Это создаёт очень много хаоса и непонимания на тему того где какая скорость. Хороший пример RK3588. Там 3 NPU ядра. При этом максимально эффективно инферить = инферить в 12 потоков. В сравнении с 1 потоком использующим 3NPU юнита - скорость в 12 раз. И как это бенчмаркать? На одном потоке или на 12? А как в таблице представлять latency, int8 квантизацию, и.т.д. Бенчмаркать на питоне или не. С NMS или без. И прочее и прочее.
Ещё хуже с Jetson'ами современными. По сути Orin - это три устройства два ускорителя + ГПУ. И у всех совершенно разные параметры и возможности.
Так что я специально из этого обзора убрал все упоминания о TOPS или "реальных" скоростях:)
Так там же целый раздел на тему внешних ускорителей есть. В обзоре нет Coral - так как он уже устарел полностью. Про новую плату Sony всего пару слов. А про те которые представлены на рынке - достаточно много написано.
Мне не очень понятно слово "калибровка". Я не очень глубоко CSI понимаю может. Инженеры с которыми я работал обычно говорили что "CSI это хреновый протокол где каждый поддерживает только кусок документации". И проблема в том что протокол на железке и на камере может быть поддержан по разному. Мы очень часто могли под нужную плату найти работающую камеру. Под те же Radxa было не сложно, там RPi-камеры работали.
Не очень понял утверждение. 1) Почти все платы могут подключиться к камере по USB|LAN (понятно что это не самый выгодный и дешевый вариант, но многие так делают) 2) Почти на всех Edge платах есть CSI. С ним куча проблем с тем кто какой стандарт поддерживает, где какая совместимость, и.т.д. Но в большинстве случаев не проблема подобрать камеру если он работает. Исключение - те платы где разъема нет. Например OrangePi, у них свой протокол. И ещё несколько плат. 3) Если делать разработку самому то для большинства плат не большая проблема повесить свой протокол на PCI-e шину которая уже есть у всех чипов. Но это, конечно, что-то на богатом:)
Сложный вопрос. Я их упоминал немного. Но в целом они просто к ARM разделу относятся большей частью.
Понятно что есть Jetson, где это значимый модуль. У всего остального - не очень. Там есть 2-3 способа их использовать, но всё что я проверял - в итоге были даже медленнее своего же CPU. И ещё с плохой поддержкой слоёв и не самым лучшим энергопотреблением.
У меня сложилось ощущение что "иногда как дополнительный способ чуть-чуть улучшить производительность" - это работает. В остальных случаях - не очень.
Другая ситуация если идти в мобильные телефоны, но тут я старался их обойти стороной.
Но 3 и 4 - это две принципиально разные игры... Есть несколько формальных поводов почему четвёртые хуже в глобальном смысле (но геймплей пвп в целом это не сильно портит):
1) На момент выхода 4ртая была сильно более бажная. 2) Графика хуже. На момент выхода были достаточно плохо проработанные 3д модельки. Не знаю как сейчас. И третья со своим красивым артом была шикарная на этом фоне. 3) Сюжет. Герои третьи - это огромная вселенная где было 8 частей (или девять если считать недоразумение) Might And Magic, две части Heroes и прочие спинофы.
Официальный зарядник OrangePi на 65W, хотя это и дикий оверкил судя по всему. RPi5 официальный зарядник 35, он до 25 может вроде выесть. Сейчас много плат которым 15 может не хватить.
Ну и в целом TypeC часто подразумевает другие протоколы. У меня ещё на паре плат точно не 5v использует.
Какие сети превзошли? Детекция?:) Есть примерный паритет на очень больших датасетах на очень сложных задачах (какие-нибудь нетривиальные рентгены, многоклассовые задачи где человек плохо перформит). В первую очередь когда можно датасет собрать без разметки людьми и очень-очень большой..
Если у вас была невысокая точность разметки - может да, уперлось в датасет. Так бывает. Но это было то же самое 8 лет назад:)
Автономера качество лучше чем у человека - пока не реально. Трекинг - нереально. Распознавание большого числа товаров - нереально. И так в десятках задач. Главная проблема - это корнеркейсы и аномалии. В сегодняшнем мире большей частью эта проблема и будет определять качество...
Аугментациям в теории есть. Но на практике всё то что в йолах используется - это мозаик, несколько кропов и цветовых. Так что не думаю что будет серьезная разница в статистике при обучении.
Вы уверены что у вас распознавание поддерживает NPU? Скорее всего на CPU же бегает. Затаскивать на Khadas что-то отличное от простой классификации или детекции достаточно болезненно. Просто по вашему посту где скопировано "поддерживается TensorFlow, Caffe", которые уже давно никто не использует. И в коментах то же самое. Но это не поддержка, а экспорт. А для экспорта там ONNX используется. Ну и в целом разница между каким-нибудь ncnn и инференсом на NPU будет максимум раза в полтора-два. Часто в этом нет смысла, когда на плате уже CPU загружен.
1) Это не "новая версия". Любой может назвать свой детектор "yolo". Авторы не связаны с прошлыми авторами. 2) "добавлена новая функция сквозного обнаружения объектов в реальном времени" - рандомный набор слов, перевод промптом. Все йоло работают в реальном времени. Единстенное что там добавлено " Dual label Assignments". 3) "GNU GPL v3.0 " - AGPL, даже в этом косяк
В целом, если кому интересно - у меня есть обзор - https://youtu.be/HKbJFykrynM Но йоло, ну такое в двух словах. Смысла нет
К сожалению это бесполезно.
Отношение скорости модели A к модели B для платы 1 может быть N, а для платы 2 может быть 5N.
Примеры у меня в таблице были. На некоторые платы можно найти тесты. Но опять же, параметров исполнения слишком много чтобы это несло хоть какие-то знания.
Я давно занимаюсь этим хламом, та методика к которой я пришёл - описана в статье. Надо взять все критерии которые я описал, и откинуть то что не подходит по ним. И уже из оставшегося взять 3-4 платы и сравнивать характеристики по ним.
По скорости можно отсекать порядок исходя из того что пишут вендоры. 0-1TOPS, 2-10TOPS, 15-50 TOPS, более 50
RPi 5 не умеет аппаратно декодировать h264
А точно не умеет? Кажется энкодить не умеет, а декодить умеет. Или там только h265?
Для меня кейс с Frigate не очень интересен. Мы больше делаем кастомную разработку. И там очень много параметров чтобы учитывать. Так что обзор скорее в эту сторону.
Про Hailo я хочу сделать видео как раз про подключение к разным платам. Но это в планах пока только.
Я делаю минимальные бенчмарки по тем платам которые тестирую (в статье были ссылки на прошлые статьи с ними и на эти бенчмарки).
Но, если честно, мне кажется что такие вещи скорее вводят в заблуждение.
Слишком много параметров чтобы сравнивать разумно.
Ширина PCIe линии, скорость доступа к памяти, размер батчей, логика использования npu. И прочее и прочее. Это создаёт очень много хаоса и непонимания на тему того где какая скорость.
Хороший пример RK3588. Там 3 NPU ядра. При этом максимально эффективно инферить = инферить в 12 потоков.
В сравнении с 1 потоком использующим 3NPU юнита - скорость в 12 раз.
И как это бенчмаркать? На одном потоке или на 12? А как в таблице представлять latency, int8 квантизацию, и.т.д. Бенчмаркать на питоне или не. С NMS или без. И прочее и прочее.
Ещё хуже с Jetson'ами современными. По сути Orin - это три устройства два ускорителя + ГПУ. И у всех совершенно разные параметры и возможности.
Так что я специально из этого обзора убрал все упоминания о TOPS или "реальных" скоростях:)
Так там же целый раздел на тему внешних ускорителей есть.
В обзоре нет Coral - так как он уже устарел полностью. Про новую плату Sony всего пару слов. А про те которые представлены на рынке - достаточно много написано.
Так вся статья про NPU ускорители и про тренды...
Мне не очень понятно слово "калибровка". Я не очень глубоко CSI понимаю может. Инженеры с которыми я работал обычно говорили что "CSI это хреновый протокол где каждый поддерживает только кусок документации". И проблема в том что протокол на железке и на камере может быть поддержан по разному.
Мы очень часто могли под нужную плату найти работающую камеру. Под те же Radxa было не сложно, там RPi-камеры работали.
Про OP, там протокол похожий, но все же, там какое-то минимальное преобразование сигнала нужно чтобы обеспечить совместимость - https://orangepi.com/index.php?route=product/product&path=238&product_id=880
Не очень понял утверждение.
1) Почти все платы могут подключиться к камере по USB|LAN (понятно что это не самый выгодный и дешевый вариант, но многие так делают)
2) Почти на всех Edge платах есть CSI. С ним куча проблем с тем кто какой стандарт поддерживает, где какая совместимость, и.т.д. Но в большинстве случаев не проблема подобрать камеру если он работает. Исключение - те платы где разъема нет. Например OrangePi, у них свой протокол. И ещё несколько плат.
3) Если делать разработку самому то для большинства плат не большая проблема повесить свой протокол на PCI-e шину которая уже есть у всех чипов. Но это, конечно, что-то на богатом:)
Сложный вопрос.
Я их упоминал немного.
Но в целом они просто к ARM разделу относятся большей частью.
Понятно что есть Jetson, где это значимый модуль. У всего остального - не очень. Там есть 2-3 способа их использовать, но всё что я проверял - в итоге были даже медленнее своего же CPU. И ещё с плохой поддержкой слоёв и не самым лучшим энергопотреблением.
У меня сложилось ощущение что "иногда как дополнительный способ чуть-чуть улучшить производительность" - это работает. В остальных случаях - не очень.
Другая ситуация если идти в мобильные телефоны, но тут я старался их обойти стороной.
Очень подробный обзор. Но кажется, что вы забыли протокол "шёпот" и платформу "кухня".
Но 3 и 4 - это две принципиально разные игры...
Есть несколько формальных поводов почему четвёртые хуже в глобальном смысле (но геймплей пвп в целом это не сильно портит):
1) На момент выхода 4ртая была сильно более бажная.
2) Графика хуже. На момент выхода были достаточно плохо проработанные 3д модельки. Не знаю как сейчас. И третья со своим красивым артом была шикарная на этом фоне.
3) Сюжет. Герои третьи - это огромная вселенная где было 8 частей (или девять если считать недоразумение) Might And Magic, две части Heroes и прочие спинофы.
Да, протокол это подразумевает.
Но может не хватить в какой-то момент питания, в ребут уйдёт.
Официальный зарядник OrangePi на 65W, хотя это и дикий оверкил судя по всему.
RPi5 официальный зарядник 35, он до 25 может вроде выесть. Сейчас много плат которым 15 может не хватить.
Ну и в целом TypeC часто подразумевает другие протоколы. У меня ещё на паре плат точно не 5v использует.
Почитать документацию на то как работает Type-CДа не, ну нахрен, го комменты писать.
Не пробовал, не знаю. Если буду включать ещё в ближайшее время - посмотрю.
Но проще наверное документацию почитать.
А как же тогда Dalle-3 может передать что это именно ML модель?!
Восхищение от новой модели в проде!
Все же написано под картинкой:)
Какие сети превзошли? Детекция?:)
Есть примерный паритет на очень больших датасетах на очень сложных задачах (какие-нибудь нетривиальные рентгены, многоклассовые задачи где человек плохо перформит). В первую очередь когда можно датасет собрать без разметки людьми и очень-очень большой..
Если у вас была невысокая точность разметки - может да, уперлось в датасет. Так бывает. Но это было то же самое 8 лет назад:)
Автономера качество лучше чем у человека - пока не реально. Трекинг - нереально. Распознавание большого числа товаров - нереально. И так в десятках задач.
Главная проблема - это корнеркейсы и аномалии. В сегодняшнем мире большей частью эта проблема и будет определять качество...
Аугментациям в теории есть.
Но на практике всё то что в йолах используется - это мозаик, несколько кропов и цветовых. Так что не думаю что будет серьезная разница в статистике при обучении.
Вы уверены что у вас распознавание поддерживает NPU? Скорее всего на CPU же бегает. Затаскивать на Khadas что-то отличное от простой классификации или детекции достаточно болезненно. Просто по вашему посту где скопировано "поддерживается TensorFlow, Caffe", которые уже давно никто не использует. И в коментах то же самое.
Но это не поддержка, а экспорт. А для экспорта там ONNX используется.
Ну и в целом разница между каким-нибудь ncnn и инференсом на NPU будет максимум раза в полтора-два. Часто в этом нет смысла, когда на плате уже CPU загружен.
1) Это не "новая версия". Любой может назвать свой детектор "yolo". Авторы не связаны с прошлыми авторами.
2) "добавлена новая функция сквозного обнаружения объектов в реальном времени" - рандомный набор слов, перевод промптом. Все йоло работают в реальном времени. Единстенное что там добавлено " Dual label Assignments".
3) "GNU GPL v3.0 " - AGPL, даже в этом косяк
В целом, если кому интересно - у меня есть обзор - https://youtu.be/HKbJFykrynM
Но йоло, ну такое в двух словах. Смысла нет