Раз уж обучение 2х этапное, почему не стали перформер у генерирующей модели учить выдавать latent space vector?
По моим прикидкам инференс будет "легче", если сначала репрезентацию такта генерить большой моделью, а потом уже превращать такт в токены для проигрывания (меньшей моделью).
У меня есть небольшое дополнение – в данный момент камера для съёмок скорее всего находится в каком-то фиксированном месте. По этой причине, почему бы на этом месте не создать пост видеосъёмки?
Так и есть. Видеокамера находится на входе в склад.
Если правильно понимаю, фон вносит коррективы в распознавание деталей. Так можно использовать определённую или наиболее подходящую подложку (с контрастным фоном, точками привязки, линейкой и т.д.).
Фон, как пример — коврик для резки.
Это тоже используется. Несмотря на то, что модель неплохо работает с широким спектром фоновых материалов при разных уровнях освещения, на однотонном контрастном фоне результат становится еще лучше. В продакшне под камерой располагается стол, который «на всякий случай» окрашен в зеленый цвет и сверху есть доп. подсветка.
Да, конечно.
Склад промежуточный и используется между операциями (после того как деталь вырезана, но до покраски/сборки узлов). Заказ-наряд есть, но он не отражает полного списка произведенного. Чтобы отходов производства было меньше, в остающиеся свободные места на металлическом листе добавляют детали, которых нет в заказ-наряде, но они повышают коэффициент использования материала.
А для деталей, которые есть в списке, новый кладовщик, даже видя наименования, не всегда может соотнести их с тем что видит. Поэтому, даже имея наименования деталей, ему приходится рыться в каталогах, чтобы понять как деталь выглядит. С опытом они, наверняка, и в полной темноте могут детали отличать и место хранения находить, но из-за текучки опыт постоянно обнуляется. Изо дня в день заказы меняются по наименованиям (мелкая серия). А т.к. перечень деталей больше 10000 наименований, то постоянно попадаются детали, которых кладовщик раньше не видел.
Через пару месяцев кладовщик меняется и все начинается по новой.
Честно говоря, я лично ни разу не был на самом складе и не видел что они приклеивают. Возможно, номер партии прикладывают. А так в день поступает ~600 деталей.
На самом деле так и есть. И мы ее решаем. Только ввиду формата блог-поста я не описал всех деталей.
В нашем случае, мы во время трейна снизу изображения добавляем масштабную шкалу (черные и белые чередующиеся полоски) в 50% случаев (чтобы модель работала как со шкалой, так и без).
Во время инференса, если расстояние от камеры до детали статично (как в случае камеры на входе склада), то мы также добавляем шкалу.
Если же инференс будет с камеры телефона (пока не реализовано), то шкала не добавляется.
Со шкалой модель не путает разные размеры.
Например можно пользователя заставлять «ткнуть» на верную деталь. Если она не на первом месте — записывать данное изображение в обучающую выборку для дообучения модели.
Дообучать можно сразу (если данных мало) или раз в сутки.
Дополнительный трейн сет на основе фидбэка пользователя собирать можно, но это сильно удорожает поддержку решения. Будем рассматривать такой вариант только если в процессе эксплуатации возникнет непредвиденные кейсы с низким качеством распознавания, и это будет оптимальным решением.
Таким образом через год эксплуатации можно выйти на 99.9999%.
99.9999% это вряд ли. Всегда будут кейсы, когда распознавание будет сильно хуже среднего. У нас цель — ускорить работу кладовщика. Целевая метрика — 98% правильно распознанных деталей. Все что выше, это хорошо, но экономия, к примеру, 0.1% времени свыше 98% уже незаметна с точки зрения бизнеса. Поэтому экономически нецелесообразно тратить усилия на такие улучшения (хотя с точки зрения дата-саенса улучшить результат можно).
Раз уж обучение 2х этапное, почему не стали перформер у генерирующей модели учить выдавать latent space vector?
По моим прикидкам инференс будет "легче", если сначала репрезентацию такта генерить большой моделью, а потом уже превращать такт в токены для проигрывания (меньшей моделью).
На pytorch делалось.
Классификация на «голом» ResNet-50.
Сегментация на github.com/qubvel/segmentation_models.pytorch
Аугментация на github.com/albumentations-team/albumentations
Так и есть. Видеокамера находится на входе в склад.
Это тоже используется. Несмотря на то, что модель неплохо работает с широким спектром фоновых материалов при разных уровнях освещения, на однотонном контрастном фоне результат становится еще лучше. В продакшне под камерой располагается стол, который «на всякий случай» окрашен в зеленый цвет и сверху есть доп. подсветка.
Склад промежуточный и используется между операциями (после того как деталь вырезана, но до покраски/сборки узлов). Заказ-наряд есть, но он не отражает полного списка произведенного. Чтобы отходов производства было меньше, в остающиеся свободные места на металлическом листе добавляют детали, которых нет в заказ-наряде, но они повышают коэффициент использования материала.
А для деталей, которые есть в списке, новый кладовщик, даже видя наименования, не всегда может соотнести их с тем что видит. Поэтому, даже имея наименования деталей, ему приходится рыться в каталогах, чтобы понять как деталь выглядит. С опытом они, наверняка, и в полной темноте могут детали отличать и место хранения находить, но из-за текучки опыт постоянно обнуляется. Изо дня в день заказы меняются по наименованиям (мелкая серия). А т.к. перечень деталей больше 10000 наименований, то постоянно попадаются детали, которых кладовщик раньше не видел.
Через пару месяцев кладовщик меняется и все начинается по новой.
В нашем случае, мы во время трейна снизу изображения добавляем масштабную шкалу (черные и белые чередующиеся полоски) в 50% случаев (чтобы модель работала как со шкалой, так и без).
Во время инференса, если расстояние от камеры до детали статично (как в случае камеры на входе склада), то мы также добавляем шкалу.
Если же инференс будет с камеры телефона (пока не реализовано), то шкала не добавляется.
Со шкалой модель не путает разные размеры.
Дополнительный трейн сет на основе фидбэка пользователя собирать можно, но это сильно удорожает поддержку решения. Будем рассматривать такой вариант только если в процессе эксплуатации возникнет непредвиденные кейсы с низким качеством распознавания, и это будет оптимальным решением.
99.9999% это вряд ли. Всегда будут кейсы, когда распознавание будет сильно хуже среднего. У нас цель — ускорить работу кладовщика. Целевая метрика — 98% правильно распознанных деталей. Все что выше, это хорошо, но экономия, к примеру, 0.1% времени свыше 98% уже незаметна с точки зрения бизнеса. Поэтому экономически нецелесообразно тратить усилия на такие улучшения (хотя с точки зрения дата-саенса улучшить результат можно).