Архив приложений BH

Анализ помола кофе

Быстрый старт - Идея использовать изображение молотого кофе для измерения гранулометрического состава принадлежит доктору Джонатану Ганье. Благодаря щедрой помощи Джонатана и сотрудников Barista Hustle, эта браузерная версия открывает эту технику для более широкой аудитории.

Числа еще НЕ оптимизированы и не проверены, но вы получите общее представление. Открывающееся тестовое изображение имеет относительно низкое разрешение, поэтому оно не является репрезентативным для изображения высокого качества, но полезно продемонстрировать принципы. Его калиброванная ширина составляет 138 мм.

Как все это работает

Объяснение предыстории - Идея проста. Сделайте снимок измельчения и автоматически определите каждую истинную частицу на изображении, подсчитайте количество пикселей в этой частице, а затем вычислите, как зерна распределены по разным размерам.

Часто думают, что такая техника «анализа изображений» будет очень сложной. На самом деле есть две основные трудности, которые не имеют ничего общего с анализом модных изображений:

1 - Получить равномерное освещение с идеальными черными / коричневыми бобами на идеальном белом фоне очень сложно. Любые недостатки в освещении, фоне, цвете бобов затрудняют различение частиц от фона или шума.

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

По принципу «будь простым» первая проблема решается за счет подсветки помола. В моем случае я использовал экран моего ноутбука, который складывается плоско - с таким же успехом я мог бы использовать монитор, лежащий на его спине. Помогает то, что у меня есть отличный портативный вакуум очиститель, который быстро всасывает зерна после теста.

Другой простой подход, используемый здесь, заключается в том, что вы каким-то образом точно знаете полную ширину вашего изображения в миллиметрах. Я предпочитаю использовать шкалу по верхнему или нижнему краю изображения. Приложение превращает его в один большой объект, который автоматически отбрасывается элементом управления MaxPixel - или цвет устанавливается настолько тусклым, что blobbing все равно игнорирует его.

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

Анализ размеров - Загрузите изображение. Выбрав параметр «Только изображение», вы можете получить хорошее представление о качестве изображения, а также прочитать шкалу и ввести правильное значение калибровки. Теперь вам нужно выбрать пороговое значение. Все менее яркое, что будет рассматриваться как частица, все более яркое будет проигнорировано. Вы можете перемещать указатель мыши по изображению и получать значение RGBK. K (для blacK) - это значение шкалы серого, используемое для порогового значения. Переместите несколько зерен и почувствуйте их значения K (маленькие) по сравнению с фоном (большие). Затем выберите значение порога, которое безопасно включает ваши зерна, но исключает нечетные тени, отметины и т. Д. - насколько это возможно. Джонатан использовал значение из синего канала, поскольку оно наиболее чувствительно к коричневому цвету кофейных зерен. Вы можете выбрать этот вариант, если хотите. Если вы щелкните и перетащите указатель мыши на зерно, вы получите представление о его размере, если ваша калибровка верна.

Если у вас есть шумное изображение с большим количеством точек в 1-2 пикселя, установите значение Min-Pixels, скажем, 5, чтобы этот шум игнорировался. Из course это может исключить некоторые настоящие зерна, поэтому вам нужно достичь компромиссного значения. Значение Max-Pixels часто можно установить на среднее значение, чтобы можно было исключить такие вещи, как отметки шкалы или небольшой черный край, который появился на изображении. Установите его слишком маленьким, и некоторые настоящие зерна будут исключены. Слишком большое количество мусора будет включено и, как правило, уменьшит ценность вычислений. Чем точнее ваше освещение и изображение, тем меньше вам нужно беспокоиться об этих деталях.

Для анализа размеров принято складывать их в «ящики». Все от 0 до 0,1 мм может быть в одном контейнере, все от 0,1 до 0,2 мм в другом и т. Д. N-Bins позволяет вам выбирать. Слишком мало, и вы не получите разумного анализа. Слишком много, и вам, вероятно, не хватит зерен на бункер, чтобы данные имели статистический смысл.

Каждый раз, когда вы меняете свои входные данные, все автоматически пересчитывается - скорости кажутся нормальными, если вы не скользите слишком сильно. Вы получаете NGrounds, количество идентифицированных отдельных частиц (в пределах ваших Min-Max Pixels) и Max, самую большую из них. Этот ящик очень полезен. Если вы измените Порог или Мин-Макс пикселей  

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

Результаты, достижения - Предположим, у вас есть 99 частиц диаметром 1 каждая и 1 частица диаметром 100. Вы можете правильно сказать: «Мой помол 99% размер 1», и вы можете быть очень счастливы - пока не попробуете кофе. Другой способ думать об этом - сказать, что эти 99 частиц будут весить, скажем, 1 единицу каждая, так что их общий вес будет 99. Поскольку вес зависит от объема, который зависит от диаметра³, одна большая частица будет весить 1000000. Следовательно, с точки зрения веса ваши 99 частиц незначительны, и фактически у вас есть только один большой кусок кофе, который не извлекается эффективно.

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

Если у вас есть мошенническая большая частица, несколько верхних ящиков могут оказаться пустыми, а в последнем (объемном) контейнере произойдет скачок. Уменьшите максимальное количество пикселей ниже максимального значения, указанного в информационном поле вверху. Мусорная корзина должна исчезнуть, и ваш сюжет станет более разумным. Что касается course, если эта мошенническая частица реальна и имеет значительно больший размер, тогда (как вы увидите на графике совокупного объема) в экстракции кофе будет преобладать эта одна большая частица!

Распространение помола - Приложение не устает считать. Таким образом, чем больше частиц вы можете поместить в изображение, тем точнее будет статистика для анализа размера частиц. Проблема в том, что если любые две частицы соприкасаются, они будут считаться одной большей частицей. Найти способ распространить максимальное количество частиц с минимальным количеством касаний - одна из ваших больших проблем. Джонатан предлагает обрызгать кончиками пальцев - идея, которую я нашел на удивление хорошей. У него также есть возможность удалить соприкасающиеся частицы с изображения, но для этого вам потребуется принять решение и убрать их с помощью мыши.

Твоя камера - С анализом помола кофе, как и со всем остальным, мусор на входе, мусор на выходе. Вы можете легко сделать снимок с помощью камеры вашего смартфона, но вы обнаружите, что «умная» часть телефона является настоящей неприятностью. Он может автоматически сфокусироваться на чем-то важном для него, а не на вас. Он может решить, что ваш резкий контраст действительно неприятен, поэтому автоматически сгладит ваше освещение. Кто знает, какие «умные» алгоритмы он вызовет. Смартфоны создавались не людьми, чьи интересы в первую очередь заключались в точном, высококонтрастном,

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

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

Чтобы упростить задачу (в конечном итоге), настройте установку для камеры так, чтобы она всегда находилась под прямым углом к источнику подсветки, с четкой шкалой вверху и на оптимальном расстоянии. На изображении вы видите, что моя камера установлена на прочном штативе, и я использую «спиртовой уровень с горячим башмаком» (желто-зеленая капля), чтобы все было квадратным.

Расчеты - На двумерном изображении трехмерных зерен недостаточно информации для точного анализа их размеров. Поэтому расчеты сводятся к выбору приближений.

Джоанатан выбрала более сложный метод, который использует информацию о 2D-форме. Для скорости и простоты я выбрал другой подход. Возможно, в будущей версии будет предпринята попытка чего-то более сложного.

Все, что я знаю после обработки изображения, - это количество пикселей, составляющих «каплю». Я могу назвать это площадью A, поэтому я знаю, что если бы это был круг, то радиус был бы равен Α = πr². Теперь у меня есть псевдорадиус r = √ (A / π) каждой капли. Тогда я могу сказать, что площадь поверхности зерна составляет 4πr², а его объем составляет 4 / 3πr³. Это позволяет мне для каждого радиуса бункера (хотя я рисую его как более удобный диаметр) знать количество частиц в этом бункере, площадь этих частиц и их объем.

Чтобы сообщить о результатах, для простоты я даю среднее значение числа, площади и объема, чтобы зафиксировать «среднее». Для тех, кто знаком с темой, это значения D [1,0], D [2,1] и D [3,2]. Также есть Dx, который вы определяете как D90, D80 и т. Д. С помощью ползунка. Это диаметр, ниже которого находятся зерна 90%, 80% и т. Д. Доступны и другие «средние» значения, и дополнительные параметры могут быть добавлены позже.

Сделано профессором Стивеном Эбботтом специально для Barista Hustle!

Это приложение было создано профессором Стивеном Эбботтом специально для Barista Hustle и наших подписчиков. За его выдающуюся карьеру он путешествовал по всему миру, включая работу с производителями бананов на Филиппинах, полиграфическими компаниями в Колумбии и компанией по производству клапанов для кофейных пакетов в США. Профессор Эбботт - мировой эксперт в области науки о сушке и распространение. Его приложения и электронные книги подходят для всех, кто серьезно относится к науке добычи.

См. Коллекцию книг профессора Стивена Эбботта. здесь!