یکی از محصولات اصلی Scancam سامانهٔ ضدِ سرقت سوختی است که برای خردهفروشانِ سوخت طراحی شده و راهکاری یکپارچه برای پیشگیری و مدیریت سرقت سوخت ــ از جلوگیری تا وصول بدهی ــ در اختیارشان میگذارد.

مشکل کسبوکار
سرقت سوخت هر سال میلیونها دلار به خردهفروشان سوخت در استرالیا ضرر میزند. در پمپبنزینهای این کشور ابتدا باک خودرو پر میشود و پرداخت بعداً انجام میگیرد؛ به همین دلیل بعضی رانندگان بدون پرداخت فرار میکنند یا بعد از پر کردن باک متوجه میشوند پول کافی ندارند. این «رانندهفراریها» و ناتوانی در پرداخت باعث ضرر مستقیم برای فروشندگان سوخت میشود.
راهکار Scancam با استفاده از فناوری تشخیص پلاک خودرو، خودروهای حاضر در نازلِ سوخت را شناسایی کرده و اگر پلاک در فهرست بدهکاران شبکه باشد فوراً هشدار میدهد. این سیستم همچنین امکان گزارش سرقت، تولید خودکار ویدئوی رخداد، پرداخت آنلاین و پیگیری بدهی را پوشش میدهد.

چرا ML.NET؟
Scancam یک شرکت کاملاً مبتنی بر .NET است. پیش از ML.NET، پردازش تشخیص اشیاء (Object Detection) در کانتینر Docker حاوی کد Python اجرا میشد. با قابلیت خروجیگرفتن مدلهای Custom Vision، Scancam بهراحتی به ML.NET مهاجرت کرد و اکنون مؤلفهٔ یادگیری ماشین در همان مخزن کدِ برنامههایشان قرار دارد.
Scancam کد C# را از کوچکترین دستگاههای اج در محل تا فضای ابری اجرا میکند؛ در تمام لایهها همان زبان و ابزارهای آشنا در دسترس است و جابهجایی کد میان Edge و Cloud (مثلاً از Azure Functions به تصویر کانتینری ASP.NET Core روی دستگاههای ARM۳۲) بسیار ساده شده است.
تأثیر ML.NET
استفاده از ML.NET به Scancam انعطاف داد تا محل اجرای کد را بهآسانی جابهجا کند؛ چه روی دستگاه اج، چه موبایل یا ابر. تشخیص اشیاء با ML.NET تا ۳۵٪ پهنای باند مصرفی را کاهش داد و نیاز به توان محاسبهٔ ابری را پایین آورد. مؤلفههای تشخیص ناهنجاری نیز صدها دستگاه را بهصورت پیشگیرانه زیر نظر میگیرد.
— June Tabadero، مدیر فنی Scancam Industries :
ML.NET بهرهوری ما را بالا برد؛ چون میتوانیم اجزای ML را با همان زبان و ابزارهایی بنویسیم که برای سایر بخشها استفاده میکنیم. برای توسعهدهندگان .NET ما، ML.NET سادهترین نقطهٔ شروع برای وارد کردن یادگیری ماشین به برنامهها بود.
از لحظهٔ شناسایی خودرو تا شروع سوختگیری تقریباً ۵ تا ۷ ثانیه زمان وجود دارد؛ با ML.NET پیشبینیها بهطور میانگین در حدود ۳۰۰ میلیثانیه انجام میشود و عملاً تأثیر منفی بر کارایی ایجاد نمیکند.
معماری راهکار
پشتهٔ فنی Scancam شامل ML.NET، ASP.NET Core، Xamarin (iOS) و Azure (App Service، Azure Functions، Azure Service Bus، Azure Storage، Azure Cosmos DB، SignalR، Azure SQL Database) است.

وقتی خودرویی به نازل میرسد، دوربین رویدادی را به یک HTTP endpoint روی ASP.NET Core (در Docker) ارسال میکند. ML.NET ابتدا حضور خودرو و سپس ناحیهٔ پلاک را تشخیص میدهد. بعد فناوری جداگانهٔ تشخیص پلاک حروف و اعداد را میخوانَد و آن را به یک تابع Azure میفرستد تا مراحل ابری ادامه یابد؛ از تطبیق پلاک با پایگاهدادهٔ بدهکاران تا ارسال پلاکهای شناساییشده به آیپدها و نمایشگرها از طریق SignalR.
برنامهٔ Client
کاربران نهایی، متصدیان پمپبنزین هستند که روی آیپد از یک اپ Xamarin استفاده میکنند. این اپ همهٔ پلاکهای شناساییشده در هر نازل را نشان میدهد و اگر پلاک در فهرست بدهکاران باشد هشدار میدهد؛ اپراتور میتواند جلوِ سوختگیری را بگیرد و از مشتری پیشپرداخت بخواهد.

تشخیص اشیاء (Object Detection)
دوربینهای Scancam معمولاً با تشخیص حرکت فعال میشوند و روزانه صدهاهزار رویداد از صدها دوربین ثبت میشود. شلوغی جایگاه سوخت باعث تولید هشدارهای کاذب فراوانی میشود که باید برای تشخیص پلاک پردازش شوند و پهنای باند محدودی را اشغال میکنند.
برای کاهش رویدادهای ارسالی به ابر، Scancam با Azure Custom Vision مدلی آموزش داد تا حضور خودرو و بخش قابلدید پلاک را شناسایی کند و مدل را در قالب ONNX خروجی گرفت. این مدل در دستگاههای اج با ML.NET اجرا میشود تا قبل از ارسال رویداد به ابر، پیشپردازش انجام شود.
تشخیص ناهنجاری (Anomaly Detection)
Scancam از ML.NET برای تشخیص نوسانها استفاده میکند؛ مثلاً افزایش ناگهانی رویدادها (تنظیمات حساسیت نادرست) یا کاهش شدید رویدادها (دوربین جابهجا شده یا مسدود است). این کار سلامت صدها دوربین را بدون جستوجوی دستی در لاگها پایش میکند.
طبقهبندی تصویر (Image Classification)
Scancam در گام بعدی قصد دارد امکان شناسایی برند و مدل خودرو را نیز به راهکار ML.NET خود اضافه کند.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید