https://www.ultralytics.com/license Можете тут ознакомиться. Если коммерческая лицензия - то в целом можете использовать как хотите, если её получите. Если лицензия открытая, то это только академическое использование с полным открытие исходного кода ПО и публикацию моделей + все опубликованное ПО и модели должны лицензировать этой же лицензией.
Так-то для android девайсов есть квантизированные модели той же yolo https://docs.ultralytics.com/hub/app/android/ 4/5 yolo довольно старые версии сети. Хоть и 5 до сих пор используются в некоторый кейсах, когда нужна производительность, но в большинстве своём уже все перешли на 8 или11 yolo. И если уж и сравнивать FPS, то в данном конкретном случае нужно было брать yolov5n, а yolov5s. Тогда бы, я думаю картина была бы чуть более честной + конечно в табличку бы хотя бы какую нибудь метрику по типу mPA 0.5:0.95, чтобы нормально оценивать получившийся результат. А реализация IOU и NMS уже есть в тех фрейворках, которые вы используете, зачем изобретать велосипед - непонятно. И плюс ко всему этому YOLO это конечно SOTA модель, но в коммерческих целях её можно применять согласно их коммерческой лицензии, что вносить ряд очень серьёзных ограничений в её использовании.
P.S. С помощью тулзы в репозитории yolov5 можно экспортнуть pt модель в NCNN формат без каких либо проблем.
Нет никакой проблемы. Подобных статей написано на разных ресурсах, включая хабр, огромное количество и все они под копирку. Но помимо хабра и статей, если другие источники, в которых можно посмотреть как и что делается и как делают другие люди. Тем более у dotnet хорошее комьюнити у которого всегда можно поспрашивать вопросы и попросить примеры. ИМХО более управляемо и понятнее стартовать бота подобным образом: https://github.com/ImoutoChan/GreenCaptchaBot https://github.com/ForNeVeR/Megadeth И в дальнейшем будет более проще им управлять (например, прикрутить админку или сорт оф)
Хотелось бы конечно увидеть хоть какие-то метрики по итогу и сравнения с классическими подходомами к детекции знаков (например, поиск по цвету, выделение контуров, сглаживание) и потом классификации (тут уже целый зоопарк, взять какую нибудь SoTA для легких устройств). Пока это выглядит так, как будто танком пытаются заводить блоху. Есть масса детекторов знаков (не обязательно дорожных), которые работают на базе встраиваемых устройств или вообще внутри ip камер. И там вашу yolo8s конечно будет трудно раскатать, а судя по всему, ещё и результат будет не намного лучше, хотя тут уже как посмотреть (а в случае, с нейронными сетями, ещё и как обучить)
В главе C# vs Python в секции 3 "Синтаксис" ничего не сказано про синтаксис, кроме того, что он легче понимается и читается, что спорно. Весь остальной текст в этом пункте уделён типизации, да и в целом не специфичной проблемы для Python (я бы даже сказал, что этой проблемой больше страдают js, php и т.п.)
P.S. Почему спорно? Потому что ООП на Python выглядит чисто визуально устрашающе.
При работе с OpenCV DNN сборка из исходников практически единственный вариант заставить это всё работать с Cuda Toolkit и CuDnn, в особенности с определенными версиями последних.
Да там большинство кода это шаблон.Но всё равно кода можно намного меньше было, просто я не стал всё писать в Code-behind в MVVM freandly фреймоворке. Столько кода, потому что вычисления вынесены в отдельный сервис, а сама приложение разбито на Model, ViewModel и View. Поэтому View такое жирное, т.к. живёт само по себе. И в принципе его без проблем можно оторвать от всего остального и безболезненно переписать. А сами ViewModel и Model там из нескольких строк состоят (равному количеству полей конечно же). Зато очень всё удобно и масштабируемо и хорошо разделяет ответственность. Конечно в данном конкретном случае это овернженеринг, но например к этому с 1 тычка прикручивается генератор PDF отчётов (с помощью PDF.Quest), т.к. модель отдельно существует.
А так, если всю логику поместить во View, напрямую биндиться к эвентам и забирать напрямую значения из контролов, то выйдет примерно столько же.
https://www.ultralytics.com/license
Можете тут ознакомиться.
Если коммерческая лицензия - то в целом можете использовать как хотите, если её получите.
Если лицензия открытая, то это только академическое использование с полным открытие исходного кода ПО и публикацию моделей + все опубликованное ПО и модели должны лицензировать этой же лицензией.
Так-то для android девайсов есть квантизированные модели той же yolo https://docs.ultralytics.com/hub/app/android/
4/5 yolo довольно старые версии сети. Хоть и 5 до сих пор используются в некоторый кейсах, когда нужна производительность, но в большинстве своём уже все перешли на 8 или11 yolo.
И если уж и сравнивать FPS, то в данном конкретном случае нужно было брать yolov5n, а yolov5s. Тогда бы, я думаю картина была бы чуть более честной + конечно в табличку бы хотя бы какую нибудь метрику по типу mPA 0.5:0.95, чтобы нормально оценивать получившийся результат.
А реализация IOU и NMS уже есть в тех фрейворках, которые вы используете, зачем изобретать велосипед - непонятно.
И плюс ко всему этому YOLO это конечно SOTA модель, но в коммерческих целях её можно применять согласно их коммерческой лицензии, что вносить ряд очень серьёзных ограничений в её использовании.
P.S. С помощью тулзы в репозитории yolov5 можно экспортнуть pt модель в NCNN формат без каких либо проблем.
Никто не спорит, мозги у них сидят очень серьёзные, но случаются конечно иногда оказии
https://fornever.me/en/posts/2023-10-21.code-vectorization.html
Нет никакой проблемы. Подобных статей написано на разных ресурсах, включая хабр, огромное количество и все они под копирку. Но помимо хабра и статей, если другие источники, в которых можно посмотреть как и что делается и как делают другие люди.
Тем более у dotnet хорошее комьюнити у которого всегда можно поспрашивать вопросы и попросить примеры.
ИМХО более управляемо и понятнее стартовать бота подобным образом:
https://github.com/ImoutoChan/GreenCaptchaBot
https://github.com/ForNeVeR/Megadeth
И в дальнейшем будет более проще им управлять (например, прикрутить админку или сорт оф)
Хотелось бы конечно увидеть хоть какие-то метрики по итогу и сравнения с классическими подходомами к детекции знаков (например, поиск по цвету, выделение контуров, сглаживание) и потом классификации (тут уже целый зоопарк, взять какую нибудь SoTA для легких устройств).
Пока это выглядит так, как будто танком пытаются заводить блоху.
Есть масса детекторов знаков (не обязательно дорожных), которые работают на базе встраиваемых устройств или вообще внутри ip камер. И там вашу yolo8s конечно будет трудно раскатать, а судя по всему, ещё и результат будет не намного лучше, хотя тут уже как посмотреть (а в случае, с нейронными сетями, ещё и как обучить)
В главе C# vs Python в секции 3 "Синтаксис" ничего не сказано про синтаксис, кроме того, что он легче понимается и читается, что спорно. Весь остальной текст в этом пункте уделён типизации, да и в целом не специфичной проблемы для Python (я бы даже сказал, что этой проблемой больше страдают js, php и т.п.)
P.S.
Почему спорно? Потому что ООП на Python выглядит чисто визуально устрашающе.
При работе с OpenCV DNN сборка из исходников практически единственный вариант заставить это всё работать с Cuda Toolkit и CuDnn, в особенности с определенными версиями последних.
Да там большинство кода это шаблон.Но всё равно кода можно намного меньше было, просто я не стал всё писать в Code-behind в MVVM freandly фреймоворке.
Столько кода, потому что вычисления вынесены в отдельный сервис, а сама приложение разбито на Model, ViewModel и View. Поэтому View такое жирное, т.к. живёт само по себе. И в принципе его без проблем можно оторвать от всего остального и безболезненно переписать.
А сами ViewModel и Model там из нескольких строк состоят (равному количеству полей конечно же). Зато очень всё удобно и масштабируемо и хорошо разделяет ответственность. Конечно в данном конкретном случае это овернженеринг, но например к этому с 1 тычка прикручивается генератор PDF отчётов (с помощью PDF.Quest), т.к. модель отдельно существует.
А так, если всю логику поместить во View, напрямую биндиться к эвентам и забирать напрямую значения из контролов, то выйдет примерно столько же.
После вашего поста тоже захотел переписать на близкую к душе кроссплатформенную технологию.
Поэтому вот приложение на Avalonia, которое запускается на Windows, Linux, MacOS, Android, IOS и WebAssembler (запускается в браузере)
Исходный код на гитхаб для посмотреть