Все, конечно, намешано в один котел. Хорошо, что вы разобрались в книге "TinyML Cookbook - Second Edition", там как раз описан проект, который вы взяли для статьи (chapter 6). Издания от "Лани" зачастую полны опечаток, а иногда и ошибок. Можно было своими словами добавить пояснений, которые выкинули из книги, тогда у читателя хотя бы картинка сложилась до конца. Например, названия классов в книге неспроста взяты cirlce, cross, pan. Это дает некоторую логику в движениях при сборе датасета. Как и то, как этот датасет собирать.
Кроме того, вы не добавили 4й класс unknown. Который нужен для случаев, когда плата просто на столе лежит. Собрать его просто - просто запишите показания, когда плата не двигается. Иначе у вас при классификации будет все время выдавать один из классов, хотя плата, возможно, ничего не будет делать. Я тоже делал из этой книги проект на arduino Nano 33 ble с видеокамерой и у меня так было.
Важное пояснение - tensorflow должен быть с keras 2x версий, современный, с keras 3, потребует значительных усилий для правок, включая выпуск новой книги в издательстве "Лань". xxd утилита конвертации модели на windows работает некорректно, и лучше это делать на linux. xxd -c 60 -i model.tflite > indoor_scene_recognition.h
Непонятно зачем билдить tensorflow на raspberry pi, когда есть готовые wheels. Но, видимо, Q-engineering виднее, они и с vulkan модели запускали в надежде на ускорение.
Спасибо, что упомянули про ESP32-S3, хотя не понятно, как это клеится к общей статье. Тем не менее, данный объект крайне прожорлив по питанию, и, греется как orange pi в ее молодые годы. Тем не менее мобилен, на удивление хорошо передает видеопоток.
>3D- печать для быта и дома не очень подходит А не подходит она по простой причине - микропластик. Посуда и предметы гигиены не потому из металлов и керамики изготавливают. Давно бы уже кружек-ложек напечатали.
Чтобы не застревало в сопле - старайтесь покупать качественный пластик. У меня с экспресса тоже постоянно с ним проблемы.
Модели с crealitycloud уже "идут из коробки" и на creality k1c, например, печатать одно удовольствие. Не нужно стол выравнивать, камера закрытая уже есть, мобильное приложение с видео, где можно печать остановить, если что-то пошло не так. Единственный минус - принтер не отключить из розетки, когда напечатал. Но это решается умными розетками, не так ли ?
задача из области "размять пальцы". полезно, но не практично. аргументы: - если книг настолько много, что их приходится сортировать, то, возможно, их не перечитать. - многие книги дублируют друг друга, особенно в начальных главах. "Самый сок" начинается к концу или "размазан" в середине. Поэтому в 30000 первых слов можно насобирать из глав "как установить" python. - некоторые книги не переводятся корректно в текст. - в отношении информации все быстро сейчас устаревает, поэтому "обновление кода" в книгах старше 3-4 лет может быть нетривиальной задачей (помним про Keras v2, TF и т.д.). - концентрируясь только на python и медицине, можно пропустить интересное в смежных языках.
Поэтому, самое простое: - качаем "свежее" за последние 1-2 года. - раскладываем по языкам программирования.
*есть конечно хорошие книги или справочники, которые старше 1-2 лет, но их вы и так найдете. они либо в ссылках в новых книгах либо упоминаются в них.
как это все работает на большом количестве классов (>1000) ? *текстовое описание картинок для 1000 классов, очевидно, трудоемко. можно, конечно, использовать мультимодальные LLM для описания картинок, чтобы упростить себе работу. но они выдают иногда описание > 77 токенов или очень схожее. речь идет о предметах, допустим, на полке в магазине. текстовое описание получается очень похожим, а на 1000 классах так вообще, все в одно большое пятно сливается.
После внедрения Metric Learning и своей платформы разметки мы пришли к следующему пайплайну.
Проводим аналитику и собираем новые товары или те, которые плохо распознаются.
Выделяем из новых фото группы товаров.
Если нужно, дообучаем модель.
Векторизуем все группы товаров и добавляем в базу. Аналоги векторизуются отдельно, но им проставляется метка основного товара.
Когда приходит фото на распознавание, мы извлекаем из него вектор признаков и сравниваем с теми, которые есть в базе, и выбираем товар с наиболее похожим вектором.
И проверяем насколько большое расстояние у этого товара и отправленного изображения. Если оно больше определенного порога, мы понимаем, что такого товара у нас нет в базе. И так мы перестали путать людей с углем.
Т.е. вы классификатору "показываете" картинки целиком ? Или то, что "вырежет" детектор ? Если первое, то рискну предположить, что у вас расстояния между векторами будут неточными, т.к. на картинке кроме основного предмета есть еще и посторонние.
Кроме того, в зависимости какая у вас сеть на классификаторе время обучения будет разным. Если вы resnet обучаете, то при большом количестве классов, это, видимо, несколько дней. Если one-shot сети, то за пару часов можно переобучить всю сеть целиком и не заморачиваться с векторами.
Если правильно понимаю, в статье решается вопрос поиска иностранных слов с их "привязкой" к русским аналогам. И это должно помочь в изучении иностранного языка. Вопросы по технической реализации: - сначала нужен литературный перевод, т.к. agrotranslate слабовато в этом вопросе? - как вы "победили" расстановку правильных ударений и интонацию? У CoquiTTS сложно с этим. - насколько длинные предложения получается преобразовывать ? Опять же у CoquiTTS при длинных предложениях появляются какие-то провалы в речи либо охи-вздохи.
да, камера, на удивление, оказалась хороша. и изголовье удачно сделано. научиться бы еще ее динамиком управлять, чтобы она озвучивала, допустим, распознанное с одноплатника, куда идет видеопоток с нее... а так вполне себе переносная web камера, со стабилизацией, 4к и маленьким пультом. реклама, пошла реклама.
хм. код еще работает, только url изменить, например -
url = 'https://search.wb.ru/exactmatch/ru/common/v9/search?ab_testing=false&appType=1&curr=rub&dest=-1257786&hide_dtype=13&lang=ru&page=1&query=%D0%BA%D1%80%D0%BE%D1%81%D1%81%D0%BE%D0%B2%D0%BA%D0%B8%20%D0%B6%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B5&resultset=catalog&sort=popular&spp=30& suppressSpellcheck=false'
{'brand': 'STARRIER', 'name': 'Кроссовки', 'id': 189699304, 'reviewRating': 4.7, 'feedbacks': 47149}
{'brand': 'Essenza', 'name': 'кроссовки белые дышащие', 'id': 317306139, 'reviewRating': 4.5, 'feedbacks': 292}
{'brand': 'STARRIER', 'name': 'Кроссовки женские демисезонные', 'id': 280450780, 'reviewRating': 4.8, 'feedbacks': 352}
Все, конечно, намешано в один котел. Хорошо, что вы разобрались в книге "TinyML Cookbook - Second Edition", там как раз описан проект, который вы взяли для статьи (chapter 6). Издания от "Лани" зачастую полны опечаток, а иногда и ошибок. Можно было своими словами добавить пояснений, которые выкинули из книги, тогда у читателя хотя бы картинка сложилась до конца.
Например, названия классов в книге неспроста взяты cirlce, cross, pan. Это дает некоторую логику в движениях при сборе датасета. Как и то, как этот датасет собирать.
Кроме того, вы не добавили 4й класс unknown. Который нужен для случаев, когда плата просто на столе лежит. Собрать его просто - просто запишите показания, когда плата не двигается. Иначе у вас при классификации будет все время выдавать один из классов, хотя плата, возможно, ничего не будет делать. Я тоже делал из этой книги проект на arduino Nano 33 ble с видеокамерой и у меня так было.
Важное пояснение - tensorflow должен быть с keras 2x версий, современный, с keras 3, потребует значительных усилий для правок, включая выпуск новой книги в издательстве "Лань".
xxd утилита конвертации модели на windows работает некорректно, и лучше это делать на linux.
xxd -c 60 -i model.tflite > indoor_scene_recognition.h
Непонятно зачем билдить tensorflow на raspberry pi, когда есть готовые wheels. Но, видимо, Q-engineering виднее, они и с vulkan модели запускали в надежде на ускорение.
Спасибо, что упомянули про ESP32-S3, хотя не понятно, как это клеится к общей статье. Тем не менее, данный объект крайне прожорлив по питанию, и, греется как orange pi в ее молодые годы. Тем не менее мобилен, на удивление хорошо передает видеопоток.
пока не нашли точную причину онкологии, оставим эту тему открытой. когда-то к радиации тоже было лояльное отношение.
+- 0.15 мм не каждый и 3d сканнер может. понятно, что здесь другая точность.
нормальный результат выходит, если вы только не внутренности автомобиля сканируете. youtu.be/7aQboKKODfA
>3D- печать для быта и дома не очень подходит
А не подходит она по простой причине - микропластик. Посуда и предметы гигиены не потому из металлов и керамики изготавливают. Давно бы уже кружек-ложек напечатали.
Чтобы не застревало в сопле - старайтесь покупать качественный пластик. У меня с экспресса тоже постоянно с ним проблемы.
Модели с crealitycloud уже "идут из коробки" и на creality k1c, например, печатать одно удовольствие. Не нужно стол выравнивать, камера закрытая уже есть, мобильное приложение с видео, где можно печать остановить, если что-то пошло не так. Единственный минус - принтер не отключить из розетки, когда напечатал. Но это решается умными розетками, не так ли ?
Creality Cloud -zoldaten personal page www.crealitycloud.com/user/3142795339
задача из области "размять пальцы". полезно, но не практично.
аргументы:
- если книг настолько много, что их приходится сортировать, то, возможно, их не перечитать.
- многие книги дублируют друг друга, особенно в начальных главах. "Самый сок" начинается к концу или "размазан" в середине. Поэтому в 30000 первых слов можно насобирать из глав "как установить" python.
- некоторые книги не переводятся корректно в текст.
- в отношении информации все быстро сейчас устаревает, поэтому "обновление кода" в книгах старше 3-4 лет может быть нетривиальной задачей (помним про Keras v2, TF и т.д.).
- концентрируясь только на python и медицине, можно пропустить интересное в смежных языках.
Поэтому, самое простое:
- качаем "свежее" за последние 1-2 года.
- раскладываем по языкам программирования.
*есть конечно хорошие книги или справочники, которые старше 1-2 лет, но их вы и так найдете. они либо в ссылках в новых книгах либо упоминаются в них.
**вот еще еще человек сизифовым трудом занимается - www.youtube.com/@stakap/videos
есть возможность https://huggingface.co/ai-forever/ruGPT-3.5-13B в gguf перевести, чтобы простые смертные могли пользоваться ?
как это все работает на большом количестве классов (>1000) ?
*текстовое описание картинок для 1000 классов, очевидно, трудоемко. можно, конечно, использовать мультимодальные LLM для описания картинок, чтобы упростить себе работу. но они выдают иногда описание > 77 токенов или очень схожее. речь идет о предметах, допустим, на полке в магазине. текстовое описание получается очень похожим, а на 1000 классах так вообще, все в одно большое пятно сливается.
Т.е. вы классификатору "показываете" картинки целиком ? Или то, что "вырежет" детектор ?
Если первое, то рискну предположить, что у вас расстояния между векторами будут неточными, т.к. на картинке кроме основного предмета есть еще и посторонние.
Кроме того, в зависимости какая у вас сеть на классификаторе время обучения будет разным.
Если вы resnet обучаете, то при большом количестве классов, это, видимо, несколько дней. Если one-shot сети, то за пару часов можно переобучить всю сеть целиком и не заморачиваться с векторами.
p.s. где обещанная статья про ценники?
Потеряли в коде train_loader, test_loader. Хотя, возможно, так задумано.
Отсюда, наверно, материал - https://github.com/cezannec/capsule_net_pytorch/blob/master/Capsule_Network.ipynb
Но там по mnist у автора скромнее результаты.
Возможно, капсульные сети стали лучше спустя время.
Если правильно понимаю, в статье решается вопрос поиска иностранных слов с их "привязкой" к русским аналогам. И это должно помочь в изучении иностранного языка.
Вопросы по технической реализации:
- сначала нужен литературный перевод, т.к. agrotranslate слабовато в этом вопросе?
- как вы "победили" расстановку правильных ударений и интонацию? У CoquiTTS сложно с этим.
- насколько длинные предложения получается преобразовывать ? Опять же у CoquiTTS при длинных предложениях появляются какие-то провалы в речи либо охи-вздохи.
"когда галактика выглядит как массивная и крякает как массивная, " ?
да, камера, на удивление, оказалась хороша. и изголовье удачно сделано. научиться бы еще ее динамиком управлять, чтобы она озвучивала, допустим, распознанное с одноплатника, куда идет видеопоток с нее... а так вполне себе переносная web камера, со стабилизацией, 4к и маленьким пультом. реклама, пошла реклама.
Т.е. для управления одним компьютером нужен другой рядом постоянно включенный ?
В коде для esp32, который позаимствован от arduino (2011 г), судя по коду на github, распиновка приведена с учетом модели esp32 ?
Есть полная схема, в которой учтены транзисторы и конденсаторы (?) на ногах esp32 ?
https://youtu.be/Exo80gW8g3Q
на cm4-io-base board m2 вроде были -
какая такая Фанкапча ?
cm4-nano-b(a,c)