Занимаясь вопросами качества поиска, рано или поздно приходится столкнуться с задачей визуальной валидации продуктов. Опустим простые задачи, с которыми справится обычный классификатор, сосредоточившись на случаях, которые требуют более или менее точной геометрии объекта:
![](https://habrastorage.org/webt/gh/nx/ex/ghnxex4c-2_cbbrhunftnhetzzw.gif)
Предположим, необходимо отобрать только хорошие фотографии тех или иных объектов, для последующего использования в e-commerce. Под хорошими будем подразумевать фотографии без лишних деталей с доминирующим основным объектом.
Любое нестандартное изображение продукта однозначно привлечет внимание. Но реакция потенциального покупателя может быть как положительной, так и отрицательной. Задача предварительной валидации — уменьшить (желательно существенно) вероятность отрицательного сценария.
Ниже «разнобой» стилей для одной из категорий тестового магазина
![](https://habrastorage.org/webt/ik/os/no/ikosno3402wc7e7c84jic9hmc4i.png)
Не усложняя далее, если футболка немного теряется на фотографии, или вы рассматриваете не совсем нужные вам детали — что-то с большой вероятностью пойдет (или уже пошло) не так.
Таким образом, одна из стратегий предварительной валидации может быть сформулирована очень просто: фотографии с доминирующими продуктами побеждают. Дело за малым, необходимо дать им победить.
![](https://habrastorage.org/webt/lb/uk/nx/lbuknx0iqipmtp_rdnzqkuh7mf0.png)
Основная проблема — точность результатов. Сложные объекты, нестандартные фотографии, реальная жизнь, ну вы знаете. Таким образом, если у вас есть bounding box — у вас все еще недостаточно информации.
![](https://habrastorage.org/webt/oz/mj/xa/ozmjxagsbhbowwfkpfyprra33ie.png)
Вывод несколько огорчает, поскольку сразу отметает проверенные и хорошо работающие решения (или делает их существенно сложнее). Например, использование нейросетей для получения сколь-нибудь точной геометрии требует достаточно много ресурсов на подготовку тренировочного набора, не гарантируя необходимую точность.
![](https://habrastorage.org/webt/az/42/-m/az42-mirnxjlnfe14rlltzsjbws.gif)
А ведь имея более или менее точную геометрию, можно было бы использовать более сложную логику анализа и валидации. Да чего уж там, можно и на видео замахнуться (выбор необходимого отрезка, автоматический кроп и т.д.)
![](https://habrastorage.org/webt/yy/56/1m/yy561mnudjwul6kuc3n8e8giunc.gif)
Кстати, очень любопытно, напишите в комментариях какое применение детальной геометрии видите вы.
Занимаясь данное темой некоторое время, могу уверенно сказать — все случаи по-своему сложные. Тем не менее, динамичные сцены или сцены с изменяющейся дистанцией создают наибольшие сложности. (Да, мы очень быстро ушли от статичных фотографий к динамичным сценам без объяснений, которые оставим до следующего раза).
![](https://habrastorage.org/webt/q5/ow/ej/q5owej5pftgormepm8cmsu33nga.gif)
![](https://habrastorage.org/webt/8e/jt/d1/8ejtd1wsdurcsx5rzdl0q0bhoik.gif)
Если интересны дополнительные детали и апдейты, подписывайтесь:
Телеграм: RobotsCanSee
Instagram: RobotsCanSee
![](https://habrastorage.org/webt/gh/nx/ex/ghnxex4c-2_cbbrhunftnhetzzw.gif)
Предположим, необходимо отобрать только хорошие фотографии тех или иных объектов, для последующего использования в e-commerce. Под хорошими будем подразумевать фотографии без лишних деталей с доминирующим основным объектом.
Зачем это нужно?
Любое нестандартное изображение продукта однозначно привлечет внимание. Но реакция потенциального покупателя может быть как положительной, так и отрицательной. Задача предварительной валидации — уменьшить (желательно существенно) вероятность отрицательного сценария.
Ниже «разнобой» стилей для одной из категорий тестового магазина
![](https://habrastorage.org/webt/ik/os/no/ikosno3402wc7e7c84jic9hmc4i.png)
Не усложняя далее, если футболка немного теряется на фотографии, или вы рассматриваете не совсем нужные вам детали — что-то с большой вероятностью пойдет (или уже пошло) не так.
Таким образом, одна из стратегий предварительной валидации может быть сформулирована очень просто: фотографии с доминирующими продуктами побеждают. Дело за малым, необходимо дать им победить.
![](https://habrastorage.org/webt/lb/uk/nx/lbuknx0iqipmtp_rdnzqkuh7mf0.png)
Что не так bounding box подходом?
Основная проблема — точность результатов. Сложные объекты, нестандартные фотографии, реальная жизнь, ну вы знаете. Таким образом, если у вас есть bounding box — у вас все еще недостаточно информации.
![](https://habrastorage.org/webt/oz/mj/xa/ozmjxagsbhbowwfkpfyprra33ie.png)
Вывод несколько огорчает, поскольку сразу отметает проверенные и хорошо работающие решения (или делает их существенно сложнее). Например, использование нейросетей для получения сколь-нибудь точной геометрии требует достаточно много ресурсов на подготовку тренировочного набора, не гарантируя необходимую точность.
![](https://habrastorage.org/webt/az/42/-m/az42-mirnxjlnfe14rlltzsjbws.gif)
А ведь имея более или менее точную геометрию, можно было бы использовать более сложную логику анализа и валидации. Да чего уж там, можно и на видео замахнуться (выбор необходимого отрезка, автоматический кроп и т.д.)
![](https://habrastorage.org/webt/yy/56/1m/yy561mnudjwul6kuc3n8e8giunc.gif)
Кстати, очень любопытно, напишите в комментариях какое применение детальной геометрии видите вы.
Сложные случаи
Занимаясь данное темой некоторое время, могу уверенно сказать — все случаи по-своему сложные. Тем не менее, динамичные сцены или сцены с изменяющейся дистанцией создают наибольшие сложности. (Да, мы очень быстро ушли от статичных фотографий к динамичным сценам без объяснений, которые оставим до следующего раза).
Танцы
![](https://habrastorage.org/webt/q5/ow/ej/q5owej5pftgormepm8cmsu33nga.gif)
Лыжник
![](https://habrastorage.org/webt/8e/jt/d1/8ejtd1wsdurcsx5rzdl0q0bhoik.gif)
Если интересны дополнительные детали и апдейты, подписывайтесь:
Телеграм: RobotsCanSee
Instagram: RobotsCanSee