Comments 21
Есть много аутсорс фирм, которые и занимаются обработкой фоток по подобным параметрам. Например, отмечать дорожные знаки/разметку и много чего другого, в том числе и лидары. Как я понимаю, большинство из такого идёт на гуглы и тд, для обучения машин(в которой я работал делали для обучения безпилотных автомобилей(тут прям был запар с слоированием изображения, тоесть выделением всего что есть на картинке отдельными категориями и раставлять в порядке приближения) и много чего другого). Есть и прикольные случаи, например надо было для експеримента пить пиво весь день! Тоесть по определёному графику ты выпиваешь некоторую порцию алкоголя и потом перед камерой выполняешь одни и те же действия. Или же когда надо было отмечать на видео расположение конечностей людей(там один и тот же сюжет был, кароч мол идёт кто-то и на него нападают: то ножом пырнут, то ещё чем) таких видео уйма была и всё по-кадрово отмечалось. Думаю можна догадатся для чего подобное может понадобится.
Работа интересная была, жаль платили не очень, продержался там 2 года только из-за команды
У нас тут в городе, в Новосибирске, мало машин с чистыми, , читаемыми номерами.
В городе... Ожидать от лесовозов вообще возможность найти контур номера - фантастика.
Грузовые машины(и прицепы) +/- можно сгруппировать по размеру кузова/ширины моста. На той же нейросети натренироваться на определение размера по контуру - больше приближение к рабочему варианту даст. Имх.
Протереть номер не сложно, если это требуется для сдачи груза установленными правилами.
Считать размер по расстояниям между колёсами, фарами и пр. думаю тоже рабочий вариант. Надо только учесть разную плоскость у бревен и условного моста. И большую базу собрать будет сложнее.
По ГОСТ'у водитель лесовоза должен протирать номер перед приемкой груза.
По госту, машина не должна иметь неисправностей. Не должно быть подтёков масла, не должно быть люфта рулевой, фары должны светить и т.д.
В реальности ничего не соблюдается.
Если делается система, которая должна облегчать контроль, путём избегания ошибок и сложностей для обслуживания участниками, то надо и делать такую систему, а не надеяться на госты, которые нарушаются налево и направо.
Номер по госту имеет размеры и читаемость, в жизни они помятые и стёртые. Машина может быть с прицепом(на фотографии есть такой пример) и на буксире номера не видно за прицепом, как и торцов брёвен.
С таким подходом, можно налеплять/прислонять на машину рамку контрольную, с ней фотографировать, а от неё отталкиваться в вычислении.
Но так и не понятно, как по фотографии сзади, высчитать объем леса, т.к как уже отметили, нет понимания его геометрического размера в куче.
Вобщем статья интересная из-за технических деталей обучения и подхода, но применение практическое как-то плохо видится в таком подходе.
Зы: отвечать раз в сутки могу, потому молчал, хотя были сразу замечания.
Вы правы, что для встраивания такой автоматизации в бизнес-процесс надо еще решить ряд вопросов.
Но как раз с протиранием номера проблем не видится. На примере складов Wildberries, там автоматический шлагбаум, который открывается если номер авто есть в заказанном электронном пропуске. И вы не найдете ни одного авто на приемке с грязными номерами)
Ширина лесовозов может колебаться в диапазон 2,45-2,55, т.е. 2,5+-2%
Скорее всего всё-так это позволит точнее определять ширину, либо (как минимум) точнее определять максимальный верхний порог ширины.
Очень перспективное с точки зрения комерциализации направление.
встречался с подобной проблемой.
Есть некоторые вопросы, особенно по в ГОСТ 32594-2013 .
Предположим вы внедрили свою программу на складе пиломатерьялов:
1 - какая погрешность по отношению к объему леса, а не вашей экспертной оценки картинок?
2 - как вы учитываете требования ГОСТа по конусности, в зависимости от сорта древесины?
3 - Как вы делали разметку - я имею ввиду измерения диаметра стволов на лесовозе?
4 - у вас идеально уложенные лесовозы, в реальности все стволы разной длинны.
5 - Как ваш ИИ научился работать с точностью измерений больше см?
6 - ну вот вы старательно фотографируете, и по расчету площади выставляете счета заказчикам, кто то из заказчиков проверяет ваши расчеты и естественным образом выдвигает вам претензию - привезли леса меньше чем в накладной, Как вы будете переучивать вашу систему если у вас нет размеченных данных по ошибочным лесовозам?
7 - ну и как в налоговой и суде вы будете обьяснять расхождения с реальными измерениями?
Тут только весовой контроль справится IMHO.
Средняя точность в сравнении с ручным методом измерения находится в пределах 2% с выбросами до 6%. Проверялось на 12 лесовозах. Также проверяли этим методом длину приложенной метровой линейки, ошибка получилась в пределах 3%
В пилотном решении разную конусность у разных пород не учитывали. Но можно научить сеть определять сорт и применять соответствующий коэффициент по таблицам ГОСТа.
Размечали рамками по контуру бревна, упоминается в статье. В ТЗ учитывалось перекрытие, нецелые бревна и прочее.
Да, влияние разной длины бревен будет как у ручного измерения без разгрузки лесовоза. Это ограничение.
Не понял вопрос. ИИ счтитает с тоностью предусмотренной типом float) Дальше вопрос округления и размера ошибки.
1) Добавление ручной корректировки, если визуально видно ошибку. 2) Дообучение, если ошибки возникают слишком часто.
Есть ограничение любого решения ИИ - это черный ящик, и как получен результат ИИ объяснить не может. Т.е. использовать для судов и прочее не получится. Также как распознавание преступника на камере не может служить 100% доказательством вины. Но упростить ручной расчет вполне можно.
Отличная статья!
Использовать номерной знак как линейку - оригинальная идея.
Несколько замечаний:
Для расширения тренировочной базы применена аугментация
Это необязательно было делать. В самом train скрипте YoLOv5 уже есть подбор аугментаций.
Важно учитывать, что не все варианты аугментации одинаково полезны. Например в нашей задаче поворот изображения на случайный угол собьет координаты рамки относительно контура бревна и ухудшит точность определения размеров
Albumentations умеет корректно работать с рамками при поворотах.
Спасибо за положительный отзыв и полезный комментарий.
YoLOv5 уже есть подбор аугментаций.
Обучающая база состояла сначала из трех, потом 7 фото лесовозов. Понадобилось расширять базу до подачи в YOLO. Часть аугментации в самой YOLO отключал. И хотелось визуально контролировать на чем обучается сеть. Можно конечно было попробовать отдавать копии изображений и аугментировать самой YOLO. Надо проверить, интересно сравнить.
Albumentations умеет корректно работать с рамками при поповоротах.
чтобы повернуть рамку вокруг круглого объекта надо понимать, что внутри рамки именно круг. Иначе рамка увеличится. Но такой параметр нигде не задаётся. Или есть способ зафиксировать размер bbox при повороте? ?
Как при подсчёте кругляка учитывается, то что не все стволы деревьев погружены вершинками в одну сторону? А кубатуру ствола меряют с вершины.
кубатуру ствола меряют с вершины
Измерение по верхнему диаметру и среднему сбегу один из методов. Нам не подходит, т.к. стволы уложены "вальтом". Такие вводные от заказчика.
Проверка объема рассчитанная на основе диаметров бревен (1го сорта) с торца в нашем случае показала, что при правильном подборе коэффициентов автоматического расчета он соответствует объему рассчитанному способом "Групповой метод определения объема бревен в штабеле, сформированном на железнодорожном и автомобильном транспорте".
Спасибо за статью, а насколько быстро происходит распознавание по каждому этапу?
Просмотрел сообщение, сорри за такой долгий ответ(
Спасибо за положительный отзыв.
По поводу скорости. Обнаружение номера и бревен, а также распознавание номера происходят быстро, на каждый этап меньше одной секунды. С учетом конвертации размеров изображения на входе итого <2 сек (на сервере колаб с бесплатной GPU).
В пилоте была добавлена еще классификация сортов дерева. Это условно вырезать из фото несколько десятков бревен и каждое пропустить через нейронную сеть для получения вектора признаков. Время увеличивалось на столько, что даже не прилично тут писать) Есть куда оптимизировать.
Нейронная сеть считает лес кругляк и распознает автомобильные номера. Как это сделано?