تصور کنید در دل یک جنگل انبوه هستید و با گیاهی ناشناخته روبهرو میشوید، اما هیچ سیگنالی برای اتصال به اینترنت ندارید. WildLens ثابت میکند که شناسایی دقیق تنوع زیستی میتواند بهطور کامل در لبهه (Edge) و بدون وابستگی به ابر رخ دهد. این ابزار که به عنوان بخشی از چالش هفته اول هوش مصنوعی متنباز Hacktoberfest با عنوان «Touch Grass» (با طبیعت ارتباط برقرار کن) عرضه شده است، یک دفترچه یادداشت میدانی جدید است که اجازه میدهد گیاهان، پرندگان و حشرات را بدون ارسال حتی یک بایت داده به سرور شناسایی کنید.
طبق گزارش توسعهدهنده در وبسایت dev.to، اکثر ابزارهای بینایی ماشین فعلی به APIهای ابری متکی هستند که در لحظهای که یک کوهنورد در مسیر خود سیگنال را از دست میدهد، عملاً بیکاربرد میشوند. این وابستگی نهتنها کارایی را کاهش میدهد، بلکه نگرانیهای شدیدی درباره حریم خصوصی دادههای مکانی (Location Data) که در متادیتای عکسهای حیاتوحش جاسازی شدهاند، ایجاد میکند. WildLens با انتقال کل موتور استنتاج (Inference) — که شبیه لحظه آشپزی واقعی است، نه دوره آموزش آشپز — به حافظه پنهان (Cache) مرورگر کاربر، این مشکل را حل کرده است.
همانطور که در تحلیلهای پیشین ما درباره رایانش لبه اشاره کردیم، حذف واسطههای ابری کلید دستیابی به حریم خصوصی مطلق است. در WildLens، این هدف با معماری فنی دقیقی محقق شده است. این برنامه به عنوان یک اپلیکیشن وب پیشرونده (PWA) با استفاده از React، TypeScript، Vite و Tailwind ساخته شده است. هسته هوشمند آن مدل BioCLIP است؛ یک مدل با وزنهای باز (Open Weights) تحت لایسنس MIT که توسط مؤسسه Imageomics توسعه یافته است. این مدل برخلاف مدلهای عمومی، بهطور تخصصی برای شناسایی موجودات زنده طراحی شده است.
برای اینکه این مدل روی یک گوشی هوشمند قابل اجرا باشد، توسعهدهنده رمزگذار تصویر (Image Encoder) را با استفاده از Google Colab به فرمت ONNX تبدیل کرده است. در سمت کاربر، برنامه از ONNX Runtime Web به همراه WebAssembly استفاده میکند تا مدل را مستقیماً در مرورگر اجرا کند. طبق مستندات پروژه، کاربر در اولین اجرای برنامه، یک بار فایل مدل را که حجم آن تقریباً ۳۳۰ مگابایت است دانلود میکند؛ این فایل سپس در حافظه پنهان مرورگر برای استفادههای آفلاین ذخیره میشود. خودِ اپلیکیشن نیز به عنوان یک سایت استاتیک روی پلتفرم Render مستقر شده است.
فرآیند شناسایی در WildLens برای حفظ سرعت و دقت از یک خط لوله (Pipeline) مشخص پیروی میکند:
- پیشپردازش: برنامه ابتدا عکس گرفته شده را برش مرکزی (Center-crop) کرده و آن را نرمالسازی میکند تا برای مدل قابل فهم باشد.
- برداریسازی: رمزگذار BioCLIP تصویر را به یک بردار معنایی (Embedding) تبدیل میکند — چیزی شبیه کارت معرفی عددی برای هر واژه که میگوید این کلمه همسایه چه کلمات دیگری است.
- مقایسه: این بردار با بردارهای پیشمحاسبهشده برای گونههای مختلف مقایسه میشود تا نزدیکترین شباهتها پیدا شوند.
- نگاشت تاکسونومیک: توسعهدهنده از یک اسکریپت ساخت (Build Script) استفاده کرد تا رشتههای تاکسونومیک را از GBIF (تسهیلات جهانی اطلاعات تنوع زیستی) استخراج کرده و آنها را در قالب عبارت «عکسی از [نام گونه]» جاسازی کند.
- بردارهای متنی: این جاسازیهای متنی در قالب یک فایل کوچک ارسال میشوند، به این معنی که گوشی کاربر فقط نیاز دارد بخش تصویری مدل را اجرا کند و نیازی به پردازش متنی سنگین ندارد.
برای جلوگیری از توهم (Hallucination) — یعنی وقتی مدل با اطمینان چیزی میگوید که وجود ندارد، شبیه دوستی که خاطره را اشتباه تعریف میکند — برنامه از تابع سافتمکس (Softmax) برای تبدیل شباهتها به احتمالات استفاده میکند. اگر هیچ گونهای بهطور واضح برنده نشود، سیستم احتمالات را بر اساس سرده (Genus)، تیره (Family)، رده (Order) و کلاس (Class) تجمیع میکند. این مکانیسم اجازه میدهد برنامه بهجای حدس زدن یک گونه اشتباه، صادقانه گزارش دهد که موجود «احتمالاً در خانواده گربهسانان است».
ایمنی و تجربه کاربری در این برنامه اولویت بالایی داشته است. WildLens یک فیلتر «غیرطبیعی» (Not Nature) دارد تا اطمینان حاصل کند عکس یک اتاق پذیرایی بهاشتباه به عنوان یک مارمولک شناسایی نمیشود. همچنین حفاظهای ایمنی شدیدی تعبیه شده است؛ از جمله یک هشدار دائمی که تأکید میکند کاربران هرگز نباید صرفاً بر اساس شناسایی عکس، گیاهی را بخورند. در مورد موجودات یا گیاهان خطرناک، یادداشتهای ایمنی خاصی فعال میشود.
برای اینکه کاربر بهجای خیره شدن به صفحه، به طبیعت توجه کند، هر نتیجه شامل یک درخواست «دقیقتر نگاه کن» (Look closer) است. این تسک از کاربر میخواهد تا یک جزئیات خاص از موجود زنده را در دنیای واقعی پیدا کند و بدین ترتیب هوش مصنوعی را به پلی برای بازگشت به طبیعت تبدیل میکند، نه یک عامل حواسپرتی. رابط کاربری نیز به گونهای طراحی شده که تجربهای «آرام» باشد؛ با پسزمینه کاغذ پوستی، رنگهای سبز ملایم و استفاده از فونتهای Serif برای نامهای علمی، و حذف گرادینتها تا حس یک دفترچه یادداشت فیزیکی را منتقل کند.
بر اساس گزارشهای فنی در dev.to، این پروژه در ابتدا با استفاده از مدل CLIP شرکت OpenAI (نسخه ViT-B/32، ۸ بیتی) از طریق Transformers.js شکست خورد. با وجود تلاش برای ترکیب پرامپتها (Prompt Ensembling) و گسترش لیست برچسبها، این مدل عمومی نمیتوانست تفاوتهای ظریف بین گونههای مشابه، مثل گربه و یوزپلنگ را تشخیص دهد و تقریباً هر بار اشتباه میکرد.
جایگزینی آن با BioCLIP این مشکلات را حل کرد، زیرا این مدل بهطور تخصصی روی تصاویر تنوع زیستی در تمام درخت حیات آموزش دیده است. توسعهدهنده این انتقال را با بستهبندی منطق برنامه در یک رابط (Interface) به نام NatureIdentifier مدیریت کرد؛ این کار اجازه داد مدل و سیستم امتیازدهی بهروزرسانی شوند بدون اینکه نیازی به تغییر در کدهای رابط کاربری (UI) باشد.
این پروژه قدرت مدلهای باز را به رخ میکشد. چون وزنها باز هستند، توسعهدهنده توانست مدل را در Hugging Face میزبانی کرده و بهصورت محلی اجرا کند و از پرداخت هزینههای هر عکس، محدودیتهای تعداد درخواست (Rate Limits) یا نیاز به API Key بینیاز شود. در مدلهای بسته، اگر API برای زیستشناسی ناکافی باشد، تنها راه ارسال تیکت پشتیبانی است؛ اما در مدلهای باز، توسعهدهنده بهسادگی مدل را عوض میکند.
حریم خصوصی در اینجا یک اصل بنیادین است. عکسهای حیاتوحش معمولاً حاوی زمان و مکان هستند؛ دادههایی که توسعهدهنده نمیخواست روی سرورهای دوردست ذخیره شوند. با مدل محلی، عکس هرگز دستگاه را ترک نمیکند. برای کاربر، این به معنای داشتن یک ژورنال میدانی خصوصی و محلی است که در IndexedDB ذخیره میشود. این رویکرد یادآور طراحی WanderLog است که برای تبدیل یادداشتهای صوتی به دفترچه طبیعتگردی از معماری محلی استفاده کرد تا دادههای کاربر را در محیطی امن نگه دارد. مشاهدات و مکانهای تقریبی روی دستگاه میمانند و کاربر میتواند هر زمان که بخواهد دادهها را صادر یا پاک کند. توسعهدهنده ابتدا برنامه را در باغچه خود برای شناسایی گیاهان و یک گربه محلی تست کرد و سپس آن را برای ثبت گلها به طبیعت برد.
در فرآیند توسعه، از یک دستیار کدنویسی هوش مصنوعی برای اسکلتبندی (Scaffolding)، رفع خطاهای مربوط به تنظیمات WebAssembly در مرورگر و خروجی گرفتن یکباره از مدل استفاده شده است. با این حال، تمام تصمیمات کلیدی درباره ویژگیها و تستهای نهایی بهصورت دستی توسط توسعهدهنده انجام شده است.
این رویکرد پارادایم هوش مصنوعی را از «اول-ابر» (Cloud-First) به «اول-لبه» (Edge-First) تغییر میدهد؛ جایی که مدل ابزاری است که کاربر را در طبیعت همراهی میکند، نه سرویسی که باید به آن متصل شد. این تمرکز بر پردازش محلی مشابه رویکرد MusPatrol در مبارزه با تب دنگی در کامبوج است که برای شناسایی سریع آفات به هوش مصنوعی آفلاین روی دستگاه تکیه کرد. با ترکیب BioCLIP، ONNX Runtime، تاکسونومی GBIF و میزبانی Hugging Face، WildLens یک دفترچه یادداشت کاربردی ایجاد کرده است که دقیقاً در لبه مسیرهای طبیعت کار میکند.
گام بعدی شما
- اگر توسعهدهنده هستید، کتابخانه ONNX Runtime Web را برای اجرای مدلهای بینایی روی مرورگر بررسی کنید.
- برای دسترسی به دادههای تاکسونومیک دقیق، مستندات GBIF را مطالعه کنید.
- مدلهای تخصصی (Domain-specific) را بهجای مدلهای عمومی برای کاربردهای علمی امتحان کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما درباره تراشههای NPU در گوشیهای جدید مراجعه کنید.




گفتگو