Спасибо, про эти борды не знал. Но оно ещё и по цене не очень адекватно получается. Jetson Nano без материнки стоит дороже чем с материнкой. С такой бордой будет овер 300 баксов…
У нас почти все вопросы решалась либо через devtalks, либо напрямую с ConnectTech (мы используем их материнки). Да, у Nvidia есть штуки, которые доступны только их партнерам. Например, калибровочные данные для MIPI камер/сенсоров. Но их можно запросить, написав напрямую таким партнерам.
Я скорее говорит про разводку плат. В Artec3D сначала пробовали на своей плате развести TK1 и это был ужас. Там только NVIDIA знала как это делать.
Сейчас да, чаще отправляют к партнёрам. Тут один проект с которым мы работали NVIDIA почти прямо сказала «вот эти ребята у нас отреверсинжинерили, обращайтесь к ним, они дадут платные консультации».
В любом случае, большое спасибо за информацию. Мне кажется что её так мало, что сейчас практически ни для какого случая нельзя понять какая из платформ оптимальна…
И опять же, даже такого нельзя говорить без тестов. Производители очень любят обманывать. Прежде чем говорить «такой функционал работает» — надо это всё проверить…
Надо сказать, что это очень просто, но, наверное, не совсем ужасно. У того же Gyrfalcon сильно больше что можно, но сорсы закрыты. Тут открытость плюс. Но по тому что поддерживается, по тому что там работает — всё очень грустно конечно. Плюс огромный пласт вещей без примеров у них => скорее всего не работает. Например конвертор написано поддерживает 4 формата, а в коде только tflite. Хотя, если бы была полноценная поддержка tflite — это уже было бы дело.
А так — я бы брал этот процессор в последнюю очередь, после всего упомянутого в статье. Производительность у него, судя по всему не лучше чем у RPI.
Издеваетесь?)
1) Это не по теме статьи даже. 1.3 кг, pci-e, 80 ВТ — это не эмбеддед и не рядом.
2) для «МС127.05» и «TensorFlow|Caffe|PyTorch» нет упоминания ни в одной статье совместного. Для 1879ВМ8Я две статьи где не понятно есть что-то или в разработке всё. Нет ничего с гайдами и мануалами.
3) Работать с любой окологосударственной конторой в поле «инновационные технологии» это блин… За гранью добра и зла… Это очевидные процессоры для военки/госзаказа. Если бы было не так — были бы цены, был бы маркетинг, был бы хоть один репозиторий на GitHub…
Не очень похоже. Но у Gyrfalcon было не то два не то три разных способа использования (SDK, MDK, PLAI). Так как у нас оно в итоге не запустилось мы их не использовали. Но то что в коде SDK я видел выглядело не так.
Вы тестили? Проверили что всё работает? Может расскажите?
На каждом втором сайте коменты по типу такого:
I bought 2, the support is null, check well the few documents that there is in seeed, If that is enough for you, grat buy it,and you are a god of coding and electronics, for the rest, just avoid any k210 or riscV until adafruit release something with with support and comunity.
Примеров использования — ноль. Документацию полистал сам — она ужасна. Примеров инференса сложных сеток нет. Я даже не понял как на него портировать onnx или какой-либо другой формат нейронок. Как следствие — я не верю что оно хоть как-то работает с современным стеком AI технологий. Если я ошибаюсь — покидайте ссылок, думаю всем будет полезно.
Показать видео где что-то обрабатывается — может каждый… Нейронку свою написать очень просто… А вот поддержать все существующие на современный день трюки, функции активаций, ReLU юнитов, и.т.д…
На нашей плате Gyrfalcon был отдельным устройством. Всё равно все его обёртки, как я понял, при настройке требуют указания пусти устройства в системе. У нас, условно, был "/dev/sg0". Мне кажется что драйвера/алгоритм использования там не должен поменяться даже если его перенесут на чип… Основными минусами будет что нельзя инферить несколько сеток одновременно + 2801 судя по всему не самый быстрый чип.
Но тут такая штука, что Gyrfalcon слишком не определён и не предсказуем. Его создатели заявляют: «У нас конвертится TensorFlow, PyTorch, Caffe». А потом в драйверах лежит какая-то специфичная GNet, которая в 10 раз меньше по весу чем Мобилнет и подписано «почти не хуже чем Mobilnet». И для неё нет никаких нормальных файлов для разработки ни на TF ни на PT. В инете информации практически нет. Вся информация от разработчиков почти закрыта.
И как результат — надо пробовать, и лишь после этого будет понятно что он из себя представляет. Пока всё что я слышал — разговоры и полузакрытая документация на половину на китайском.
Я же писал про эту плату в разделе про Gyrfalcon…
Может это какая-то другая ревизия, конечно (pro, как я понимаю). Но NPU модуль вроде тот же. И в целом плата та же…
Но что больше RAM — Это, безусловно, хорошо. 2 (как у нас было), да даже 4 — это издевательство
Номера — да, там надо риалтайм видео колотить поток. Биометрия — тоже. В реальном времени. В целом, обработка видео в реальном времени — это залог того что устройство можно будет эксплуатировать на входе куда-то/на проходной. Честно говоря я даже не знаю чего-то embedded где не требовался бы реальный отклик. Всюду где он не требуется — проще накопить и отправить на сервер.
Миллионы китайских компов:)
Zotac это по сути такие же китайцы, только более известные + которые экспортируют в Россию. В реальности, если партия более 100 штук, можно выходить на любого такого производителя и пробовать костылизировать кастомизировать под вашу задачу.
Если вопрос «что кроме Зотака можно купить в России» — не знаю. В некоторых проектах люди брали IntelNUC. С дискретной карточкой, да под OpenVino он иногда даёт интересный результат.
1. Из того к чему мы имели отношение:
а) распознавание автономеров и всё с ними связанное. Там важно энергопотребление зачастую (удалённые точки). Я знаю несколько российских фирм которые свои решения сейчас на Jetson'ах делают. Да и по бюджету на один комплекс там весьма ограниченно зачастую. 100у.е. может трепит, а лишние 300-400 далеко не факт. Так же распознавание номеров есть не на трассах, а на въезде во дворы/супермаркеты/парковки. И там уже чем дешевле тем лучше. там и 50 баксов может решить. Мы как-то хотели сделать на RPi, но из-за ужаса в плане продакшна так и не собрались…
б) Artec Leo, который я упоминал — тоже на каком-то из TX1|Tx2 джетсонов
в) Биометрия, различные её применения — лица (2д/3д), радужка. Там без нейронок можно, но качество не очень и юзабилити. А с нейронками всё ок.
г) В CherryHome это аналитика и мониторинг пожилых людей. Там embedded конечно в рамках квартиры, но именно он обеспечивает высокий уровень конфиденциальности данных.
д) Системы подсчёта людей/учёта трафика
е) Мы не участвовали, но я видел применение в рекламе имено на embedded устройствах (марка авто/пол/возраст)
2. С авто я плохо знаком. Видел как люди полноценные видюхи ставят. Nvidia очень для этого продвигает и Jetson AGX Xavier. Вроде ещё какие-то решения аппаратные есть. Но с авто вариаций больше.
3. Когда плисы доберуться до того же уровня «production ready» в плане разработки — можно говорить. Но пока любая разработка которую я видел в реальности — это было год-полтора, без нормального выхлопа. Те ПЛИСы где смогли сделать нормальные хорошие и удобные интерпретаторы нейронок — называются gyrfalcon|google coral) И это уже не плисы а кристалы)
Я не видел пока ни одного серьёзного и удобного проекта где была бы хорошая поддержка современных нейрсетевых наработок.
Это не факт что оно не появиться. Но пока всё как-то очень уныло…
Таких коробок есть много разных. Более того, есть много заводов которые при разумной партии готовы собрать совсем мелкие платы под заказ. На мобильных/полноценных гпушках.
Но это всё же не совсем embedded. Тут скорее устройства в дом/в машину.
Это круто, если у вас есть понимание как выделить категорию «усталые люди». Просто у кто-то будет уставать через 3 часа, кто-то через 12. Кто-то мог работать на другой работе, а кто-то спать 12 часов перед рейсом. Вариант «лейблить руками» — тоже отпадает. Я видел такие видео — там я не могу определить уставшего человека…
Конечно, если у вас будет реальная выборка отлейбленная с водителями — все вопросы снимаются. Там это чисто технический вопрос. Но как её получить — я не понимаю.
Да, вы правы, есть вариант «набрать дохрена данных — и посмотреть что там получиться». Построить графики того как водитель устаёт во времени, как деградируют его характеристики. Попробовать воссоздать модель водителя и его уставания. Заставить сотню водителей заснуть на тренажёре, и.т.д., и.т.п.
Но это не даёт гарантированного результата. Тут ресёрч уровня «может быть что-то найдём». При этом надо будет собрать огромные датасеты (тысячи водителей), провести сотни натурных экспериментов с засыпанием (на тренажёрах?) для того чтобы построить хоть какую-то метрику и иметь репрезентативность.
Как человек который обычно делает Computer Vision проекты где обычно имеется предсказуемый результат — мне очень странно что был согласован проект где не видно предсказуемого результата;) Но, конечно, приятно, что кто-то инвестирует в ресёрч, где можно найти что-то новое. По крайней мере статей на этой теме и науку можно хорошо развести.
Но как вы выставите эти пороги? Где наберёте датасет примеров достаточно репрезентативных? Предположим у вас выйдет 99% ложных тревог. Я думаю не надо приводить на чём будет сбоить (мобильник на коленях, отвлекается на светофорах, странная посадка, аллергия, индивидуальная биология, и.т.д.). Как вы убедите водителей не саботировать эту систему? (и главное, как вы будете определять что был именно «ложняк», а не «успех»?)
Просто все системы такого плана которые я видел были практически нерабочими. Например выстроены на каких-то эмпириках ничем не обоснованных (я про такое даже статью писал). Единственное что более менее работает — детекция что нет именно состояния «сон». Это нормально для машинистов. Но для водителя это уже «поздно».
Я бы в вашем случае начинал не с того что «как сделать железку», а с того «как придумать хоть какую-то репрезентативную метрику»/ «понять как можно внедрить её и не получить ненависть в ответ»:)
Когда то копал в эту тему. Не очень понимаю почему вы считаете что моргание — достоверная характеристика «спит/не спит». Если честно, то я вообще не находил серьёзных исследований, где на большой выборке было бы подтверждено что есть зависимость характеристик от усталости.
Единственное что более менее достоверно было — закрыл глаза/не смотрит на дорогу/долго смотрит вниз. Но это уже последняя стадия. Всё остальное — набор эмпирик.
Как вы собираетесь набирать базу, и верифицировать характеристики?
Зачем RotationNet если в том же Unet можно сделать дополнительные выходы где дать «начало» и «конец» шурупа.Минус сеть — проще пайплайн, быстрее обучать, меньше память, выше точность, и.т.д…
И не вижу графика итоговых точностей. Такое обилие классов и такая длинна пайплайна приводит к накоплению ошибки. На каждом уровне ошибка выше и выше. С какой вероятностью полностью определит выход правильно?
Условно, если вы классифицируете 5 параметров с точностью 90% итоговая точность должна получатсья 0.9^5 = 60%, что достаточно хреновенько…
//Упс, увидел что пост выложил не автор доклада, а Роман (приветствую!). Если авторы тут появляются, то вопрос к ним:)
Конкретно по этой задаче, которую решает тут автор. Мне кажется, что для сопоставимых точностей хватит 50-100 КТшек. Скорее всего, даже 20-30.
Разметку скорее всего проще сделать будет через набор срезов. Скорее всего на человека хватит 20-30 срезов. Остальное можно будет заинтерполировать. Для базы в 20 человек это 400 картинок на разметку. Разметить одну картинку ~30 секунд, скорее ощутимо меньше. Это ~3.5 часа на базу в 20 человек, на которой уже может начать работать.
Разметчик по цене стоит в 4-5 раза дешевле программиста более-менее адекватного.
Конечно, тут ещё должно быть время программиста выделено на написание софтины для разметки (на коленке и если данные 3д понятные — 1 день, добротно и если с данными в первый раз сталкиваться — неделя). Обучение тоже сколько-то съест. Но реально тут надо будет максимум U-net обучить для первой точности. Это пара дней для человека который разбирается в теме.
Итого, идя по этому пути, можно решение сопоставимого качества получить за неделю где-то. Где 1-2 дня будет разметка.
При этом такой подход имеет перспективу на то чтобы получить точности сильно выше, на уровне специалиста.
А вообще, конечно, существует и много других способов и подходов такое решать…
Я скорее говорит про разводку плат. В Artec3D сначала пробовали на своей плате развести TK1 и это был ужас. Там только NVIDIA знала как это делать.
Сейчас да, чаще отправляют к партнёрам. Тут один проект с которым мы работали NVIDIA почти прямо сказала «вот эти ребята у нас отреверсинжинерили, обращайтесь к ним, они дадут платные консультации».
А так — я бы брал этот процессор в последнюю очередь, после всего упомянутого в статье. Производительность у него, судя по всему не лучше чем у RPI.
1) Это не по теме статьи даже. 1.3 кг, pci-e, 80 ВТ — это не эмбеддед и не рядом.
2) для «МС127.05» и «TensorFlow|Caffe|PyTorch» нет упоминания ни в одной статье совместного. Для 1879ВМ8Я две статьи где не понятно есть что-то или в разработке всё. Нет ничего с гайдами и мануалами.
3) Работать с любой окологосударственной конторой в поле «инновационные технологии» это блин… За гранью добра и зла… Это очевидные процессоры для военки/госзаказа. Если бы было не так — были бы цены, был бы маркетинг, был бы хоть один репозиторий на GitHub…
На каждом втором сайте коменты по типу такого:
Примеров использования — ноль. Документацию полистал сам — она ужасна. Примеров инференса сложных сеток нет. Я даже не понял как на него портировать onnx или какой-либо другой формат нейронок. Как следствие — я не верю что оно хоть как-то работает с современным стеком AI технологий. Если я ошибаюсь — покидайте ссылок, думаю всем будет полезно.
Показать видео где что-то обрабатывается — может каждый… Нейронку свою написать очень просто… А вот поддержать все существующие на современный день трюки, функции активаций, ReLU юнитов, и.т.д…
Но тут такая штука, что Gyrfalcon слишком не определён и не предсказуем. Его создатели заявляют: «У нас конвертится TensorFlow, PyTorch, Caffe». А потом в драйверах лежит какая-то специфичная GNet, которая в 10 раз меньше по весу чем Мобилнет и подписано «почти не хуже чем Mobilnet». И для неё нет никаких нормальных файлов для разработки ни на TF ни на PT. В инете информации практически нет. Вся информация от разработчиков почти закрыта.
И как результат — надо пробовать, и лишь после этого будет понятно что он из себя представляет. Пока всё что я слышал — разговоры и полузакрытая документация на половину на китайском.
Может это какая-то другая ревизия, конечно (pro, как я понимаю). Но NPU модуль вроде тот же. И в целом плата та же…
Но что больше RAM — Это, безусловно, хорошо. 2 (как у нас было), да даже 4 — это издевательство
Zotac это по сути такие же китайцы, только более известные + которые экспортируют в Россию. В реальности, если партия более 100 штук, можно выходить на любого такого производителя и пробовать
костылизироватькастомизировать под вашу задачу.Если вопрос «что кроме Зотака можно купить в России» — не знаю. В некоторых проектах люди брали IntelNUC. С дискретной карточкой, да под OpenVino он иногда даёт интересный результат.
а) распознавание автономеров и всё с ними связанное. Там важно энергопотребление зачастую (удалённые точки). Я знаю несколько российских фирм которые свои решения сейчас на Jetson'ах делают. Да и по бюджету на один комплекс там весьма ограниченно зачастую. 100у.е. может трепит, а лишние 300-400 далеко не факт. Так же распознавание номеров есть не на трассах, а на въезде во дворы/супермаркеты/парковки. И там уже чем дешевле тем лучше. там и 50 баксов может решить. Мы как-то хотели сделать на RPi, но из-за ужаса в плане продакшна так и не собрались…
б) Artec Leo, который я упоминал — тоже на каком-то из TX1|Tx2 джетсонов
в) Биометрия, различные её применения — лица (2д/3д), радужка. Там без нейронок можно, но качество не очень и юзабилити. А с нейронками всё ок.
г) В CherryHome это аналитика и мониторинг пожилых людей. Там embedded конечно в рамках квартиры, но именно он обеспечивает высокий уровень конфиденциальности данных.
д) Системы подсчёта людей/учёта трафика
е) Мы не участвовали, но я видел применение в рекламе имено на embedded устройствах (марка авто/пол/возраст)
2. С авто я плохо знаком. Видел как люди полноценные видюхи ставят. Nvidia очень для этого продвигает и Jetson AGX Xavier. Вроде ещё какие-то решения аппаратные есть. Но с авто вариаций больше.
3. Когда плисы доберуться до того же уровня «production ready» в плане разработки — можно говорить. Но пока любая разработка которую я видел в реальности — это было год-полтора, без нормального выхлопа. Те ПЛИСы где смогли сделать нормальные хорошие и удобные интерпретаторы нейронок — называются gyrfalcon|google coral) И это уже не плисы а кристалы)
Я не видел пока ни одного серьёзного и удобного проекта где была бы хорошая поддержка современных нейрсетевых наработок.
Это не факт что оно не появиться. Но пока всё как-то очень уныло…
Но это всё же не совсем embedded. Тут скорее устройства в дом/в машину.
Конечно, если у вас будет реальная выборка отлейбленная с водителями — все вопросы снимаются. Там это чисто технический вопрос. Но как её получить — я не понимаю.
Да, вы правы, есть вариант «набрать дохрена данных — и посмотреть что там получиться». Построить графики того как водитель устаёт во времени, как деградируют его характеристики. Попробовать воссоздать модель водителя и его уставания. Заставить сотню водителей заснуть на тренажёре, и.т.д., и.т.п.
Но это не даёт гарантированного результата. Тут ресёрч уровня «может быть что-то найдём». При этом надо будет собрать огромные датасеты (тысячи водителей), провести сотни натурных экспериментов с засыпанием (на тренажёрах?) для того чтобы построить хоть какую-то метрику и иметь репрезентативность.
Как человек который обычно делает Computer Vision проекты где обычно имеется предсказуемый результат — мне очень странно что был согласован проект где не видно предсказуемого результата;) Но, конечно, приятно, что кто-то инвестирует в ресёрч, где можно найти что-то новое. По крайней мере статей на этой теме и науку можно хорошо развести.
Просто все системы такого плана которые я видел были практически нерабочими. Например выстроены на каких-то эмпириках ничем не обоснованных (я про такое даже статью писал). Единственное что более менее работает — детекция что нет именно состояния «сон». Это нормально для машинистов. Но для водителя это уже «поздно».
Я бы в вашем случае начинал не с того что «как сделать железку», а с того «как придумать хоть какую-то репрезентативную метрику»/ «понять как можно внедрить её и не получить ненависть в ответ»:)
Единственное что более менее достоверно было — закрыл глаза/не смотрит на дорогу/долго смотрит вниз. Но это уже последняя стадия. Всё остальное — набор эмпирик.
Как вы собираетесь набирать базу, и верифицировать характеристики?
И не вижу графика итоговых точностей. Такое обилие классов и такая длинна пайплайна приводит к накоплению ошибки. На каждом уровне ошибка выше и выше. С какой вероятностью полностью определит выход правильно?
Условно, если вы классифицируете 5 параметров с точностью 90% итоговая точность должна получатсья 0.9^5 = 60%, что достаточно хреновенько…
//Упс, увидел что пост выложил не автор доклада, а Роман (приветствую!). Если авторы тут появляются, то вопрос к ним:)
Разметку скорее всего проще сделать будет через набор срезов. Скорее всего на человека хватит 20-30 срезов. Остальное можно будет заинтерполировать. Для базы в 20 человек это 400 картинок на разметку. Разметить одну картинку ~30 секунд, скорее ощутимо меньше. Это ~3.5 часа на базу в 20 человек, на которой уже может начать работать.
Разметчик по цене стоит в 4-5 раза дешевле программиста более-менее адекватного.
Конечно, тут ещё должно быть время программиста выделено на написание софтины для разметки (на коленке и если данные 3д понятные — 1 день, добротно и если с данными в первый раз сталкиваться — неделя). Обучение тоже сколько-то съест. Но реально тут надо будет максимум U-net обучить для первой точности. Это пара дней для человека который разбирается в теме.
Итого, идя по этому пути, можно решение сопоставимого качества получить за неделю где-то. Где 1-2 дня будет разметка.
При этом такой подход имеет перспективу на то чтобы получить точности сильно выше, на уровне специалиста.
А вообще, конечно, существует и много других способов и подходов такое решать…