Проблема

Итак, пару лет назад я работал над решением проблемы, с которой столкнулся один из наших клиентов. Чтобы дать вам представление, наши клиенты - это в основном компании-производители. Эта компания производит безопасные бритвы и хотела иметь возможность различать бритвы с колпачком и без него до того, как она будет упакована и отправлена ​​потребителю. Скажу честно, я устал сидеть весь день за своим столом. Итак, я взялся за проект (в то время я предполагал, что я просто куплю какую-нибудь штуковину на рынке и продам им 🤦‍♂️), и вот как все прошло.

Проблема заключалась в том, что безопасные бритвы работали на конвейерной ленте с тремя потенциальными дефектами, которые, если бы они возникли, могли быть устранены путем остановки машины. Состояние всегда было одним из следующих:

1. Отсутствует безопасная бритва.

2. Отсутствует головка безопасной бритвы.

3. Отсутствует колпачок для безопасной бритвы.

4. Безопасная бритва ОК

Решение на основе ML

Я провел свое исследование и, используя доступное мне оборудование, выбрал метод классификации изображений (на основе случайного обсуждения с другом, который упомянул что-то о разделении изображений кошек и собак 😐).

Я прочитал несколько статей и статей, чтобы познакомиться с ML (что было бы невозможно без поддержки сообщества разработчиков ПО с открытым исходным кодом😊). Моя цель теперь состояла в том, чтобы точно настроить существующую модель машинного обучения, используя мои собственные изображения (также известное как трансферное обучение). Были получены изображения каждого из вышеуказанных условий. Теперь мне нужно было загрузить эти изображения в модель машинного обучения для обучения. К сожалению, мой компьютер не справился с этой задачей. Обучение моделей машинного обучения требует гораздо большей вычислительной мощности. Я погуглил это предложение и продолжил использовать инстанс Amazon EC2 для обучения моей модели в облаке. Я обучил одну модель, но результаты были невысокими, поэтому я отказался от этого метода и остановился на обучении на своей системе, уменьшив размер пакета, что также снижает требуемую вычислительную мощность (гуглил свой путь по жизни 😎). Модель успешно обучена. Теперь пришла задача запечатлеть реальное изображение в реальном времени. Датчик был использован для определения местоположения бритвы, которая отправила сигнал на компьютер. Компьютерная программа проверила сигнал и начало последовательности захвата изображения. Короче говоря, веб-камера захватила изображение, которое было отправлено в процессор и передано в модель машинного обучения. Программа выведет проценты того, на что эта деталь, скорее всего, похожа (дефектная или приемлемая). В зависимости от результата сигнал будет управлять реле, которое отключит машину в случае, если программа примет неверное решение о результате.

Программная часть всех вышеперечисленных функций выполнялась на Python, работающем на ОС на базе Linux.

После тестирования более сотни различных моделей одна была реализована с точностью примерно до 1 ошибочной классификации на каждые 1000 бритв. Если честно, я был вполне доволен собой, но клиент не хотел. Что-то связанное с соблюдением 😒.

Решение на основе отражательной способности

Для меня это было препятствием, потому что было трудно отследить основную причину ошибочной классификации, поскольку модель не давала четких объяснений, почему она предпочла один класс другому. Я был готов сдаться. Но тут меня осенила идея. Я пытался придумать способы визуального различения двух объектов (с пластиковым колпачком и без него), когда мне в голову пришла очень очевидная характеристика пластика. Они более рефлексивны. Я изменил аналитическую часть программы, чтобы сравнить значения яркости изображений и догадаться, что это сработало! Он был лучше по производительности и меньше по вычислениям. После тщательной оценки клиент купил систему. А через месяц заказали еще. Ниже я добавил фотографии продукта до и после.

Для меня главным выводом из этого проекта было сделать его максимально простым, но при этом удовлетворить потребности. Кроме того, довольно классные люди, которые предоставляют бесплатные учебные материалы 😉