Ответ на пост «Вам доставка»
Почти 3к плюсов на пост с ссылкой на телегу. Что ж вы тогда жалуетесь на ТГ каналы, а сами их плюсуете? Никаких стандартов кроме двойных
Почти 3к плюсов на пост с ссылкой на телегу. Что ж вы тогда жалуетесь на ТГ каналы, а сами их плюсуете? Никаких стандартов кроме двойных
Телеграм - Три мема внутривенно
Помогите распознать первую запись, что там написано, второе прочитать смог - это St aureus. Спасибо
Привет! Сегодня я вам расскажу, как мы сделали систему распознавания чеков для FMCG заказчика и не захлебнулись на объеме.
Сжатые сроки и неназванный заказчик
В лучших традициях digital-интегратора, к нам пришел клиент, которого нельзя называть, и сказал, что ему уже вчера надо было сделать систему, которая «может все», и при этом ни разу не упадет. В данном случае, под «может все» подразумевалась система распознавания чеков. Да, тех самых обычных кассовых чеков.
Забегая вперед, мы взяли контракт только потому, что уже работали с этим заказчиком, и взаимное доверие было не на нуле.
Если это читают представители заказчиков, то почерпните для себя тезис, что не надо искать исполнителя, когда уже все подгорело — лучше обратиться заранее: сэкономит и вам, и разработчику кучу нервов. А если и прибежали, то надо быть готовым, что многие агентства (да и фрилансеры) откажутся от реализации. Просто потому, что очень высок риск не сдать все вовремя и с ожидаемым качеством.
Но хватит занудничать, давайте к кейсу.
Бизнесовая цель
Тут все просто и понятно. Надо распознавать чеки.
Быстро, качественно, разбирая все атрибуты чека от фискального номера до позиции в чеке без права на ошибку.
Больше, по правилам хорошего тона (NDA), я говорить не буду. Что заказчик делает с этими данными, будем считать, нам не сказали, но намекну, что это выгодно для покупателя товара.
Как работает?
Пользователь грузит фотку чека из чат-бота, мы читаем QR, распознаем, что там внутри, берем эти данные, и «идем» с ними в налоговую. ФНС возвращает в ответ содержимое чека, мы ищем нужный нам товар, кладем его в базу, и формируем отчет для клиента.
Процесс
Есть смысл описывать что «мы вели клиента по стандартным этапам»? За две недели многие заказчики не успевают и договор прочитать, а исполнители принять правки к нему. А тут мы и подписаться успели, и разработать, и успешно стартануть.
Из-за того, что все так классно получилось, мы и пишем этот кейс 😊 Мы, разумеется, разбили работы по этапам. В лучших традициях итеративной разработки, взяли тот функционал, без которого и проект не проект, и начали делать его в первую очередь. Когда пошли загрузки чеков, уже докручивали все остальное.
Чтобы закончить этот «корневой» функционал, у нас ушло всего пару дней. Тестировали, что называется, всей маршруткой.
Дальше - про то, как мы докрутили каждый из этапов и как его тестировали, думаю, что никому не интересно. Главное знать, что мы справились.
Особенности
Отличие кейса от всех остальных проектов, запущенных по подобным «лекалам», заключается в следующем:
— Сжатый срок. Времени у нас было две недели на всю эту красоту.
— Большой объем данных СРАЗУ. Это можно расценить как плюс, что было достаточно чеков, чтобы протестировать со всех сторон. Но и как минус, что эти чеки надо было сразу распознавать и сразу выдавать результат. Не было «права на ошибку и отладку», так скажем.
— Плохое качество фото. Тот же самый, например, "Едадил", легко может сказать «не удалось распознать QR», или просто молча не распознать. У нас такой роскоши нет, поэтому родилась следующая особенность:
— Если мы не смогли распознать QR, то отправляем чек на ручную модерацию. Это делается уже на стороне клиента. Такой объем мы бы сами замучились распознавать. НО! Это рождает, как вы уже поняли, админку, куда сыпятся эти чеки, и некий «механизм ручной модерации». Этот самый условный модератор, открывая фото, должен куда-то ввести данные, которые смог распознать своими глазами. И это опять улетает в ФНС, и т. д.
— Аналитика, мониторинг, бекапы, хранилище. Да, мы умудрились не просто сделать чтобы оно работало, а еще и не падало, и бекапилось, и строило красивые графики, и даже мониторилось (если этот пункт не понятен, почитайте мою прошлую статью).
На сладкое
Чеков за все время мы распознали порядка 790 000 штук. Точное количество назвать сложно, потому что они прибывают с каждой минутой. В первую неделю после запуска распознавателя – было загружено порядка 120 000 чеков. Если рассуждать по-простому, то это примерно по 12 чеков в минуту. Каждую минуту. Если считать, что в сутках 24 часа. Естественно, чеки грузили в основном в рабочее время, что увеличивает нагрузку вплоть до 30шт/мин.
Отдельно акцентирую внимание, что мы храним каждую фотку. Даже если считать, что каждая весит по 2 МБ (телефоны, в наши дни, делают фотографии примерно с весом 2-5 МБ), то 790 000 шт по 2 МБ это почти 2 ТБ. Только файловое хранилище. Напомню, что мы не Яндекс, и своих датацентров еще не построили. А мы их еще и бекапим, чтоб не потерялось.
Наверное, к этому моменту вы хотите узнать, сколько это удовольствие стоило? Это мы раскрывать не можем, но спасибо, что дочитали досюда 😊
Если интересны технологии, на которых это все было реализовано, или еще какие-то детали, то напишите комментарий. Может, еще на одну статью наберется, и я опишу более подробно.
Наш Telegram-канал, куда выкладываем подобные новости: https://t. me/botcreatorsru
Поиск по яндекс- и гугл-картинкам результата не принёс. Возможно кто-то знает, от чего или для чего она? Как запустить/протестить?
Как создатели фейк-аккаунтов, могут получить оригинальные фото-изображения, которые не проверишь на предмет фейка через поисковые сервисы(выполняющие по изображению)?
Все просто. Достаточно сделать скриншот изображения из историй/сторисов соц.сетей.
Т.к содержимое историй, не попадает в базу поисковиков.
Как мы видим на примере этого скриншота, поисковик не смог найти изображение, которое было взято из истории в Инстаграме, причем из открытого аккаунта..
Поисковик может разоблачить создателя фейка только лишь в случае, когда точно такая-же картинка из истории продублирована в постах и других местах,, где интернет-поисковики могут сканировать.
Как защититься? Гарантированного способа нет. Только держать свой аккаунт закрытым, чтобы не было легкого доступа к вашим сторисам.
Если перед нами два класса — животные и растения, то куда отнести сковородку?
Задачи Бонгарда — это задачи зрительного распознавания образов. Каждая задача представлена двумя группами изображений по 6 каждая, слева и справа. В каждой группе изображения объединены общим признаком, и этим же признаком две группы отличаются между собой. Задача состоит в том, чтобы определить этот признак. Признаки могут быть как простыми и даже тривиальными, например, форма, цвет, размер, так и весьма изощрёнными. Например на заглавном рисунке выше у фигур слева ровно 3 «простых» (прямых) стороны, а у фигур справа — ровно 3 «сложных».
Задачи впервые появились в 1967 году в книге Михаила Моисеевича Бонгарда «Проблема узнавания» издательства «Наука» и стали широко известны после выхода в 1979 году книги Дугласа Хофштадтера «Гёдель, Эшер, Бах: эта бесконечная гирлянда» (Douglas Hofstadter, “Gödel, Escher, Bach: an Eternal Golden Braid”, переведена на русский язык издательством «Бахрах-М» в Самаре в 2001 году). Хофштадтера заинтересовали не столько идеи Бонгарда, сколько сами задачи, он также предложил собственные задачи, выходящие за рамки простого распознавания изображений и посвящённые абстрактным отношениям и построению аналогий. В 2006 году Гарри Фундалис (Harry Foundalis) под руководством Хофштадтера защитил диссертацию по теме создания компьютерной программы, способной решать задачи Бонгарда — Foundalis H. E. “PHAEACO: A cognitive architecture inspired by Bongard’s problems” («PHAEACO (Фиако): Когнитивная система для задач Бонгарда»), Bloomington, Indiana, USA; May 2006.
Исследования Бонгарда и Фундалиса направлены на создание «искусственного интеллекта»: компьютерных программ, автоматов, роботов. Последний даже в какой-то момент решил, что такие исследования могут иметь неприятные для человечества последствия. Тем не менее, решение и составление подобных задач может быть полезным и для «естественного интеллекта». Во-первых, это занимательные головоломки. Во-вторых, это полезный и, вероятно, важнейший способ мышления и систематизации знаний. Это именно то, на что обратил внимание Хофштадтер, и об этом говорит Бонгард во введении к своей книги приводя в пример марсиан, решивших «найти такое расположение некоторого числа атомов в пространстве, чтобы их совокупность могла перевозить человека по хорошей дороге со скоростью не меньшей, чем лошадь»:
Именно умение думать «не атомами, а крупными блоками» и дало возможность людям создать достаточно сложные устройства. И именно отсутствие такой возможности лишает марсиан надежды на успех. Пока они не создадут предпосылок для «крупноблочного мышления» (механики, химии, технологии материалов и т. п.), им придётся довольствоваться сознанием того, что изготовить автомобиль в принципе возможно, ездить же на автомобилях будут только герои фантастических романов.
Не обязательно иметь именно 12 и именно картинок, это могут быть любые абстрактные понятия, например глаголы или их временны́е формы и ситуации, в которых их надо применять (при изучении иностранных языков). В конце концов, любая идея записанная словами — это изображение. Это могут быть числа, например «слева» 7 5 11 3 9 и «справа» 10 4 18 6 2, записанные арабскими или римскими цифрами, или словами, или математическими выражениями, или любыми другими способами, в том числе на разных языках, причём либо только слева или справа, либо вперемешку. Это могут быть названия, фрагменты, краткие изложения или иллюстрации повестей А. С. Пушкина и А. П. Чехова. Идея может быть использована для составления тестов для проверки знаний. Например, для теста не годится вопрос «Кто из перечисленных людей написал повесть „Капитанская дочка“?», потому что на него существует только один правильный ответ. Пример хорошего вопроса: «Которая из перечисленных повестей написана А. С. Пушкиным?» — на этот вопрос есть множество правильных и множество неправильных ответов (например, повести Чехова), можно составить несколько вариантов теста одинаковых по сложности, но разных по содержанию. Для ответа на такой вопрос требуется знакомство с произведениями нескольких авторов, понимание их стиля или тематики. По сути хорошие тесты являются «обратными задачами Бонгарда», когда известен признак и нужно рассортировать объекты по этому признаку.
Ниже ещё несколько примеров задач Бонгарда, а полная коллекция Фундалиса доступна по ссылке «Задачи Бонгарда»:
Мы постарались сделать каждый город, с которого начинается еженедельный заед в нашей новой игре, по-настоящему уникальным. Оценить можно на странице совместной игры Torero и Пикабу.
Реклама АО «Кордиант», ИНН 7601001509