
GOLDGUARD
ذكاء المجوهرات. في الزمن الحقيقي.
نظام أمني يجمع الذكاء الاصطناعي والعتاد والرؤية الحاسوبية، يحوّل أسطح عرض المجوهرات إلى مناطق تُوزن باستمرار، بحيث تصبح مغادرة قطعة لصينية العرض حدثًا بدلًا من اكتشاف عند الإغلاق.
GoldGuard منصة لذكاء المخزون المادي ومنع الخسائر في الزمن الحقيقي لمتاجر المجوهرات. أربع مناطق من خلايا الوزن تحت سطح العرض تغذّي محوّلًا تناظريًا رقميًا من نوع دلتا-سيجما بدقة 24 بت ومتحكم ESP32-S3؛ ويشغّل الخادم الخلفي سلسلة مرشحات DSP، وآلة حالات للاستقرار، ومصنّف أحداث، ومحرك ارتباط عبر المناطق يتعرّف على التحويلات الداخلية عديمة الخسارة. تتدفق النتائج عبر WebSocket إلى لوحة تحكم React مع أدوار ومشاركة بروابط وتقرير صباحي.
ويضيف نظام رؤية فرعي موازٍ تتبّعًا للأشخاص والأيدي عبر الكاميرا مع بقاء خلية التحميل هي المرجع: أي ربط خاطئ يتراجع إلى حالة AMBIGUOUS، ولا يتحول أبدًا إلى إنذار سرقة زائف. والمستودع يراجع نفسه بصدق بشأن حالته — منصة البرمجيات تعمل وتغطيها مجموعة اختبارات آلية، والمحاكاة متحقَّق منها، والبرنامج الثابت يُبنى لـ ESP32-S3، والتحقق المادي ينتظر العتاد صراحةً.
نظرة عامة
الذهب نفسه هو الدرع. يحوّل GoldGuard كل غرام على واجهة العرض إلى بيانات — تُوزن باستمرار، وتُصنّف إلى أحداث عمل، وتُربط عبر المناطق، وتُسلَّم إلى المتجر في الزمن الحقيقي.
المشكلة
تُكتشف خسائر المجوهرات عند الإغلاق، حين يأتي الجرد ناقصًا ولا يستطيع أحد أن يحدد أي صينية أو أي ساعة أو أي يد. الكاميرات تسجّل كل شيء ولا تفسّر شيئًا. والميزان تحت صينية واحدة يخبرك بوزن، لا بحدث.
“تصبح مغادرة قطعة لصينية العرض حدثًا — ITEM_REMOVED أو ITEM_ADDED أو INTERNAL_TRANSFER أو TRAY_REMOVED أو TAMPER_EVENT — بدلًا من اكتشاف عند الإغلاق.”
النظام
الطبقة الأولى هي المحوّلات الحسية: أربع خلايا وزن أحادية النقطة بمقياس انفعال بسعة 5 kg لكل منطقة، ومستشعر حرارة TMP117، ومقياس تسارع LIS2DW12 للاهتزاز والعبث. الطبقة الثانية هي البرنامج الثابت الطرفي على ESP32-S3 الذي يأخذ عينات بمعدل 10–80 Hz لكل قناة مع معالجة DSP على الجهاز وآلة حالات للاستقرار. الطبقة الثالثة خادم خلفي بمعمارية نظيفة — النطاق، والتطبيق، والبنية التحتية، وواجهة API — مع Express ومركز ws وقاعدة PostgreSQL خلف عقد مستودع مع بديل احتياطي في الذاكرة.
خط معالجة الوزن هو سلسلة: رفض القيم الشاذة → وسيط متحرك → EMA → متوسط متحرك، ثم تعويض الانحراف، ثم محرك استقرار إحصائي ومصنّف أحداث. ويطابق محرك الارتباط عبر المناطق ΣΔW ≈ 0 بين المناطق داخل نافذة 1.5 s ليتعرّف على قطعة نُقلت من صينية إلى أخرى بوصفها تحويلًا داخليًا لا خسارة.
البنية
- خلايا وزن ×45 kg / zone
- محوّل ADS1234 بدقة 24 بتكسب 128
- البرنامج الثابت لـ ESP32-S3DSP · آلة حالات · طابور دون اتصال
- استيعاب بأسلوب التخزين ثم الإرسالحارس التسلسل
- محرك الوزنمرشحات · انحراف · استقرار · مصنّف
- الارتباط عبر المناطقΣΔW ≈ 0 خلال 1.5 s
- دمج الرؤيةهوية محمولة باليد · الخلايا هي المرجع
- POSTGRESQL27 جدولًا · ترحيلات
- مركز WEBSOCKETمحمي بالرموز
- لوحة التحكم · سطح المكتب · البوابةReact · Tauri · Cloudflare
سطح المستودع
- 01backend — واجهة Express API، ومركز ws، والمحركات، والترحيلات، و36 ملف اختبار
- 02frontend/goldguard-dashboard — React 19 + Vite، أكثر من 23 عرضًا، العربية / العبرية / الإنجليزية
- 03apps/marketing — تصدير ثابت بـ Next.js، وقصة منتج بـ three.js مدفوعة بالتمرير، و5 لغات
- 04apps/desktop — غلاف Tauri 2 مع سير عمل إصدارات لـ Windows وmacOS
- 05apps/twin-studio + simulator/goldguard-twin — توأم رقمي مرئي وبلا واجهة
- 06services/goldguard-vision + goldguard-vision-runtime — نطاق رؤية بلغة TS خالصة وبيئة تشغيل ONNX
- 07services/goldguard-vision/ml — تدريب PyTorch والتقييم والتصدير إلى ONNX
- 08firmware/goldguard-controller — ESP-IDF C++ لـ ESP32-S3
- 09hardware/cad/fusion360 — سكربتات Fusion 360 بارامترية؛ الهندسة مصدَّرة إلى الويب
الذكاء الاصطناعي والرؤية
تنطلق بنية الرؤية من قيد مقاس لا من قائمة أمنيات: في لقطات المتجر بدقة 3840×2160 يبلغ الوسيط لبصمة خاتم على الصينية 28 px، وبعد تغيير حجم الكاشف إلى 800 px تصبح 5.8 px مقابل أصغر مرساة بحجم 32 px. الاستدلال على الإطار الكامل وجد 0 خاتم حيث وجدت 32 بلاطة بالدقة الأصلية 7. لذلك يشغّل التصميم مسارين — الأشخاص والأيدي على إطار مصغّر بمعدل 10 Hz، وإحصاء الصينية على بلاطات بالدقة الأصلية مشروط بوجود اليد — ويسمح للقطعة بأن ترث هويتها من اليد التي حملتها.
“الهوية الفردية المستمرة لنحو 50 خاتمًا ساكنًا متلاصقًا شبه متطابق هي انحلال في المسألة نفسها، لا حدٌّ في جودة النموذج. تتبّع اليد؛ ودع القطعة ترث هويتها من حاملها.”
التصميم
الذهب نفسه هو الدرع.
وجهان ذهبيان متقابلان يشكّلان درعًا، وفي قلبه الداكن سبيكة على منصة وزن. هندسة مستقيمة فقط، مقروءة من لوحة إعلانية إلى أيقونة موقع بحجم 16 px. وسماوي المستشعر محجوز للقياس الحي داخل لوحة التحكم ومُبعَد عمدًا عن العلامة.
- —GOLD باللون #F5F7FA، وGUARD بالتدرج الذهبي
- —Inter ExtraBold، تباعد أحرف 2.5
- —قصّة مدمجة لمقاسات 16–31 px، وقصّة أحادية اللون للنقش
التحديات
- 01أول ضبط للمرشح ألغى تغيرات الوزن الحقيقية بوصفها قيمًا شاذة — سحب 8 g أنتج 0 حدث. أُصلح في 2026-08-23؛ والسحب نفسه ينتج الآن حدث ITEM_REMOVED واحدًا بالضبط مع Δ −8.05 g.
- 02كان الإصدار v1.0.0-rc ناجحًا بنتيجة 67/67 بينما كان مسار PostgreSQL معطلًا: الاختبارات الناجحة التي لا تلمس مسار الإنتاج لا تثبت شيئًا عنه. مجموعة اختبارات Postgres الحقيقية صارت الآن جزءًا من CI.
- 03انقسم المنتج لفترة وجيزة بين شجرتين مع 44 ملفًا متعارضًا وستة تعارضات دلالية لا تكشفها أداة دمج. خطة دمج مكتوبة وتدقيق للبنية سبقا عملية الدمج.
- 04لم تُوصَّل أي خلية تحميل حتى الآن. كل رقم للكتلة أو الضجيج أو زمن الاستجابة في المستودع موسوم بأنه هدف تصميمي لا قياس.
النتائج
يحصل العميل على بوابة تقدّم دائمة بلا أنفاق على Cloudflare Workers — النسبة المئوية، وخطة الأسابيع الخمسة، وما اكتمل وما يأتي لاحقًا — بينما لا تصلها أبدًا القياسات الحية ولا وحدة التحكم التشغيلية.