Evolution Software는 ML.NET으로 헤이즐넛 품질을 향상시킵니다.
고객
Evolution Software Design, Inc.
제품 및 서비스
ML.NET
Azure
.NET Core
ASP.NET Core
Entity Framework Core
SignalR
SQL Server
Xamarin
업계
컨설턴트
조직 규모
소규모(직원 1~100명)
국가/지역
미국
Evolution Software Design, Inc.는 전략적 기술 솔루션을 통해 그리고 의료, 전자 상거래, 농업 및 엔터프라이즈 응용 프로그램을 개발하여 다른 조직이 기술을 보다 효과적으로 적용할 수 있도록 지원하는 컨설팅 회사입니다. 회사의 최근 벤처 중 하나는 헤이즐넛 업계에 종사하고 있으며 다양한 헤이즐넛 가공 회사와 협력하여 기계 학습 및 ML.NET을 사용하여 농장에서 소비자에 이르기까지 헤이즐넛의 품질을 개선합니다.
ML.NET을 사용하면 기존 .NET 및 C# 기술과 소프트웨어 자산을 활용하여 애플리케이션에 기계 학습 기능을 추가할 수 있습니다. 나머지 애플리케이션은 Microsoft 기술 스택을 사용하여 개발되고 Azure에 배포되기 때문에 기계 학습 모델은 쉽고 간단했습니다."
비즈니스 문제
헤이즐넛이 식용에 적합하려면 특정 요구 사항을 충족해야 합니다. 이러한 요구 사항 중 하나는 헤이즐넛이 "잘 건조"되어야 하거나 업계에서 8.5%에서 11.5% 사이로 지정하는 특정 수준의 수분을 함유해야 한다는 것입니다. 구매자가 견과류를 받아들이려면 수분 함량을 올바르게 맞추는 것이 중요합니다. 수분 함량이 너무 낮으면 견과류가 너무 많이 수축됩니다. 너무 높으면 견과류가 곰팡이가 생겨 상할 수 있습니다.
헤이즐넛이 이 수분 수준에 도달하도록 하기 위해 수확 후 농장에서 수령 스테이션으로 헤이즐넛을 가져와 각각 최대 50,000파운드의 헤이즐넛을 포함할 수 있는 상업용 건조기에 넣습니다.
헤이즐넛이 목표 수분에 도달하기 위해 건조기에서 보내야 하는 시간을 결정하는 것은 오류가 발생하기 쉬운 예술일 수 있으며 헤이즐넛의 종류, 배치의 무게, 사용 중인 건조기, 위치 및 날씨와 같은 여러 변수에 의해 영향을 받습니다. 수분 함량을 결정하는 표준 방법은 매우 수동적인 과정입니다. 누군가가 주기적으로 건조기에 보내져 견과류 한 통을 퍼내고, 알맹이를 무게를 재고, 건조시킨 다음 무게의 차이를 살펴봅니다. 건조 과정에서 이 과정이 여러 번 반복되며 건조기 내 조건은 100mph에서 120도 화씨로 부는 공기로 인해 이상적이지 않습니다.
한동안 이 프로세스를 수행해 온 사람들은 샘플링 프로세스를 수행하지 않고 헤이즐넛이 준비될 때를 알고 있다고 가정합니다. 그러면 잘못된 수분 수준과 건조기 간의 불일치가 발생할 수 있으며 결과적으로 수신 스테이션 및 헤이즐넛 프로세서에 대한 수익 손실이 발생할 수 있습니다.
또한, 매년 가을 비교적 짧은 기간 내에 대량의 헤이즐넛을 수확하여 가공하기 때문에(2018년 참여 헤이즐넛 가공 회사는 수령 스테이션에서 6,800만 파운드의 말린 견과류를 받았습니다) 24시간 작동 중 건조기 사용의 최적화에 높은 비즈니스 가치가 있습니다.
이러한 비즈니스 문제를 해결하기 위해 Hazelnut Monitor 애플리케이션은 ML.NET을 사용하여 건조 배치 내 견과류의 수분 함량을 예측하고 목표 수준에 도달하면 작업자에게 알립니다.
이 앱의 목표는 건조기를 작동시키는 사람들이 샘플링을 할 필요성을 줄이면서 견과류의 수분이 최적의 수분 범위에 가까운 시기를 알 수 있도록 하는 것입니다. 결국 우리는 그들이 견과류를 자주 샘플링을 하지 않아도 되는 수준에 이르렀으면 좋겠습니다."
왜 ML.NET를 사용해야 하나요?
기계 학습은 비즈니스 문제를 해결하기 위한 흥미로운 전략으로 보이지만 애플리케이션 내에서 이것이 얼마나 쉽게 구현될지는 불분명했습니다. 그러나 ML.NET의 출시는 구현을 극적으로 가속화했으며 개발 4주 반 후에 Evolution Software는 35개의 상업용 건조기에 대해 2.5-3% 이내의 헤이즐넛 수분 수준 예측을 개선하기 위한 최초의 기계 학습 모델을 갖게 되었습니다.
ML.NET의 영향
온도, 습도 및 기압과 같은 측정값을 모니터링하는 것 외에도 건조기를 작동하는 프로세서는 이제 모바일 친화적인 웹 클라이언트를 통해 액세스할 수 있는 수분 수준의 실시간 예측을 사용할 수 있습니다. 알림 엔진은 측정값과 예측값 모두에서 작동하므로 운영자는 목표 수분 수준에 도달하면 SMS 또는 이메일 메시지를 받을 수 있습니다.
이 추가 정보는 운영자에게 휴대폰 및 기타 장치를 통한 Drying 프로세스의 상태에 대한 향상된 가시성과 더 높은 신뢰도를 제공합니다.
솔루션 아키텍처
데이터 처리
데이터가 서버에 도착하여 SQL 데이터베이스에 데이터를 저장하면 앱에서 SignalR을 사용하여 실시간 업데이트를 가져옵니다. 각 건조기에는 허브에 연결된 여러 센서가 있으며, 1분마다 REST를 통해 수집된 다음 데이터를 ASP.NET Core MVC에서 구현된 Web API로 보냅니다.
시작 및 종료 시간, 무게, 헤이즐넛 종류, 구조(건조기) 및 위치(건조 시설)와 같은 예측을 하는 데 필요한 추가 데이터는 시설의 작업자가 수동으로 수집하고 기록합니다.
헤이즐넛 샘플의 수분 수준(훈련 데이터에 사용됨)도 수동으로 수집 및 기록됩니다.
데이터 변환 및 기계 학습 알고리즘
Hazelnut Monitor는 one-hot 인코딩을 사용하여 범주형 기능(헤이즐넛의 다양성, 건조기 위치, 용기/구조 번호)을 변환합니다. ML.NET 알고리즘에서 허용하는 형식인 float 데이터 유형으로 변환하고 이러한 기능을 온도 델타, 습도 델타 및 무게와 연결합니다. 그런 다음 이러한 기능 열은 헤이즐넛 수분 수준을 예측하는 고속 트리 회귀 알고리즘으로 전달됩니다.
작년에는 학습 알고리즘은 예약된 작업으로 하루에 한 번 실행되었으며 학습된 모델은 Azure Blob Storage에 zip 파일로 푸시되었습니다. 그런 다음 모델은 Azure App Services 캐시에 로드되고 새 데이터에 사용되어 습기 수준 예측을 만듭니다. 이번 시즌에 Evolution Software는 이 프로세스를 예약된 Azure Function으로 이동할 계획입니다.
클라이언트 애플리케이션
Hazelnut Monitor는 .NET Core 및 Aurelia를 사용하여 빌드되고 Azure에서 호스트되는 웹 기반 포털을 제공하며, 여러 위치에서의 DRY 작동에 대한 인사이트를 제공합니다. 또한 특정 측정값이 범위를 벗어나거나(예: 온도가 너무 낮거나 너무 낮음), 센서가 오작동하거나 목표 습기 함량에 도달할 때 SMS 및 전자 메일 알림을 통해 주요 직원에게 경고할 수 있는 규칙 엔진 및 알림 시스템(Azure Functions 사용)도 포함합니다.
ML.NET이 출시되면서 Evolution Software는 기계 학습 기능을 Hazelnut Monitor 애플리케이션에 쉽게 추가할 수 있었습니다. 이 회사는 기존 .NET 및 C# 기술과 소프트웨어 자산을 활용하여 짧은 시간에 처음부터 작동하는 기계 학습 모델로 전환하여 목표로 하는 비즈니스 문제를 해결할 수 있었습니다.
시작할 준비가 되셨나요?
단계별 자습서는 컴퓨터에서 ML.NET을(를) 실행하는 데 도움이 될 것입니다.