IRIS

الخصوصية والإشعارات

كل جملة هنا بتوصف سلوك موجود فعلًا في المنتج ومتحقق باختبارات — مش سياسة مكتوبة عشان تتقري. واللي مكانه العقد مش صفحة ويب — الأساس القانوني، مدد الاحتفاظ كالتزام، القانون الحاكم — الصفحة بتقول إحنا بنشتغل إزاي، والباقي بيتحدد معاك مكتوب وموقّع.

بيان الخصوصية

بيشوف القاعة. ومايعرفش حد.

اللي البرج بيعالجه

الكاميرات المدمجة في البرج بتصوّر القاعة. كل النماذج بتشتغل على البرج نفسه — كشف الوش، والتوقيع الرقمي اللي بيجمّع الشخص على نفسه، والتعبير، ووضع الراس، والفئة العمرية، والنوع. في الإعداد الافتراضي مافيش أي استدعاء تحليل بيخرج من الجهاز.

لكل وش بيتلاقى في كادر، البرج بيكتب سجل واحد: الوقت، الكاميرا اللي شافته، المربّع اللي احتلّه، درجة الثقة والحجم بالبكسل، التوقيع الرقمي، التعبير، علامة إنه منتبه، الفئة العمرية، النوع، زوايا الراس والنظرة، ومكانه في القاعة. دي القايمة كاملة، مش مختصرة.

مافيش اسم، ولا رقم تذكرة، ولا مسح بادچ، ولا عنوان MAC لجهاز، ولا التقاط لإشارة واي-فاي في السجل ده — ولا أي معرّف بيعيش بعد الإيفنت.

اللي بيوصلك إحصائي: عدد حضور فريد، وانتباه موزّع على مناطق القاعة، ومؤشرات إحساس مجمّعة على مستوى الجمهور.

التوقيع الرقمي للوش، بالاسم الصريح

إنك تعدّ الشخص مرة واحدة معناه إنك تعرف إن وشّين في كادرين هما نفس الوش. البرج بيعمل ده بإنه بيحسب قالبًا رقميًا من كل وش بيقيسه في مدى التعرّف، وبيجمّع اللي بيتطابق. القالب ده اسمه face embedding — توقيع رقمي مشتق من وش إنسان. وإحنا بنسمّيه كده مش «مجرد أرقام»، عشان اللي بيراجع النظام لازم يقدر يزنه على حقيقته.

الرصدات اللي بره مدى التعرّف مابتحملش توقيع أصلًا — بتتخزّن بمتجه فاضي، يعني عدّ الزحام البعيد مابينتجش أي قالب.

الشخص اللي التوقيع بيتجمّع تحته رقم صحيح بيبدأ من ١ في كل جلسة ومعناهوش أي حاجة برّاها. مافيش رقم تاني في أي مكان بيربطه بشخص، أو كرسي، أو تذكرة، أو إيفنت تاني.

اللي بيقعد على هارد البرج والإيفنت شغّال

في الإعداد الافتراضي، البرج بيكتب كوادر بالدقة الكاملة، وقصاصات وشوش، وتوقيعات رقمية على تخزينه المشفّر طول مدة الإيفنت. ولازم يعمل كده: تجميع نفس الشخص عبر ساعة كاملة من الكوادر هو اللي بيخلّي العدّ من غير تكرار ممكن، والشغل ده بيحصل في الآخر على كل اللي اتحفظ.

التخزين بـ AES-256-GCM، بمفتاح بيتولّد أول تشغيل ومتخزّن بصلاحيات 0600.

والحد الأمين: المفتاح ده قاعد على نفس الهارد اللي بيحمي بياناته، ولسه مش ملفوف بعنصر أمان مخصص. ده بيحمي من هارد اتسرق واتقرا في مكان تاني. ومابيحميش من حد وصل لصلاحية الجذر على برج شغّال. نقول ده أحسن من إن كلمة «مشفّر» تشيل أكتر من طاقتها.

دورة الحياة، واللحظة اللي بيموت فيها التسجيل

التقاط → تحليل نهائي → إصدار تقرير موقّع → مسح البيانات الخام. كل انتقالة بتتكتب في سجل مترابط بالهاش، فأي خطوة تتمسح أو تتعدّل بعدين بتبان — والسلسلة بتتقارن براس محفوظة في ملف جنبها، يعني إخفاء إدخال محتاج تعديل متّسق لملفين، مش قص ملف واحد.

افتراضيًا، المخزن الخام بيتمسح في نفس لحظة تصدير التقرير. المسح بيشيل الشجرة الخام كلها وبيرفع علامة بترفض أي كتابة خام بعد كده، فدورة التقاط لسه في السكة مش ممكن ترجّع بيانات وشوش بعد ما المسح يخلص.

الاحتفاظ اختياري صريح، والاختيار الصريح بيغلب أي تركيبة تانية من الإعدادات — تحكّم زي ده ليه اتجاه واحد آمن يفشل ناحيته. لما الاحتفاظ يكون مفعّل، البرج بيتخطّى المسح، وبيكتب إدخال purge_skipped بسببه جوّه السلسلة الموقّعة، وكونسول التشغيل بيغيّر الإشعار المعروض. يعني برج احتفظ بالتسجيل مش هيقدر يدّعي العكس في الضلمة.

أربع اختبارات بتمسك السلوك ده في مكانه، مش وعد مكتوب.

اللي مابيحصلش

  • مافيش تحديد هوية. مافيش قايمة مراقبة، ولا معرض تسجيل، ولا قاعدة بيانات وشوش يتقارن بيها حد — المفاهيم دي مش موجودة في الكود من الأساس.
  • مافيش سجل فردي بيوصلك. لا الشاشة الحيّة ولا التقرير فيهم صف واحد عن شخص بعينه.
  • مافيش هوية بتعدّي بين الإيفنتات. اللي اتشاف في القاعة دي مابيتشافش في اللي بعدها؛ أرقام الجلسة بتتدمر مع البيانات الخام.
  • مافيش حاجة تعرّف بشخص بتخرج من القاعة. لما برجين يغطّوا قاعة واحدة، كل واحد بينشر للتاني نقطة مركزية لكل شخص — متوسط التوقيع الرقمي بتاعه — على شبكة القاعة نفسها، عشان اللي واقف في مجال الاتنين يتعدّ مرة واحدة. النقطة دي قالب مشتق من وش، بتمشي على شبكتك انت ومابتعدّهاش.
  • مافيش تتبّع عبر أماكن أو عبر وقت. كل إيفنت مقفول على نفسه.

اللي بيعدّي على الشبكة، بالظبط

بين الأبراج، على شبكتك انت: النقاط المركزية اللي فوق، ومافيش غيرها. والتبادل ده قايمة سماح من سبع خانات بس، بتتبني خانة خانة، فأي خاصية تتضاف لرصدة السنة الجاية مش هتقدر تركب معاها. وفيه بوّابة بترفض البايتات الخام، وأسماء الخانات اللي شكلها صور، وروابط البيانات، وبصمة الصور المشفّرة بـ base64، والنصوص الطويلة أوي، والتداخل العميق — في الخروج وفي الدخول، فبرج متخترق مش هيقدر يحقن كوادر في برج سليم.

لينا إحنا: مافيش أي حاجة خالص إلا لو فيه عنوان مزامنة متظبّط، والافتراضي فاضي. برج من غير عنوان مزامنة مابيفتحش الاتصال أصلًا.

ولما يتظبّط، اللي بيتبعت أرقام مجمّعة على قايمة خانات مقفولة: الحضور الفريد، وذروة التزامن، وذروة الإشغال، ومتوسط الانتباه، وصافي الإحساس، ومتوسط مدة البقاء، وكتلة ديموغرافية بتقبل بس فئات عمرية ونوع في صورة تسمية ← نسبة. وكتلة الأبراج المشتركة بتقبل أعداد ومعرّفات أبراج وحد فاصل — وبترفض قايمة أرقام في مكان معرّفات الأبراج، بحجّة معلنة في الكود: قايمة الأرقام دي شكل التوقيع الرقمي، والمخزن ده عمره ما بيمسك واحد. أي حاجة تانية بترجع بـ 400 ومابتتكتبش.

ودي النقطة اللي تستاهل تتفهم: المجهولية هنا مش وعد السيرفر بيوعد بيه بالنيّة. دي شكل بيرفض يخزّنه.

ومنفصل تمامًا عن بيانات الإيفنت، البرج بيبلّغ عن نفسه: معرّفه ومفتاحه العام عند التسجيل، ومؤشرات حيوية موقّعة (الإصدار، المعالج، القرص، الاتصال)، وعدّادات موقّعة للفوترة — جلسات وكوادر ووشوش. دي بتوصف الماكينة، مش الجمهور. الكوادر والوشوش بتتعدّ؛ ولا واحد فيهم بيتبعت.

مسارين السحابة، بالظبط

سرد التقرير — حقيقي، ومقفول لحد ما تفتحه. الفقرة السردية في تقريرك بتتكتب افتراضيًا أوفلاين، بكاتب حتمي متاح دايمًا. لو المشغّل حوّل المزوّد لنموذج خارجي، الفقرة دي بتتكتب بدل كده باستدعاء API بيشيل اسم الإيفنت والمقاييس النهائية المجمّعة في صورة JSON — أعداد ونسب ونقاط زمنية. مافيش صور، ولا توقيعات رقمية، ولا صفوف أفراد. وأي فشل بيرجع للكاتب الأوفلاين.

إثراء الرؤية السحابي — مش مبني. فيه وصلة في الكود لإرسال عينات من قصاصات الوشوش لخدمة رؤية خارجية. ومش قادرة تبعت حاجة: الدالة اللي المفروض تبني العميل ده بترجّع فاضي في المسارين، سواء فيه مفتاح أو مافيش. الجملة الأمينة دلوقتي إن الصور الخام عمرها ما بتخرج من البرج، والخاصية اللي كانت هتبعتها مش موجودة. ولو اتبنت يومًا، اتفاق مكتوب بعدم الاحتفاظ مع المزوّد ده بيبقى شرط قبل الشحن — مش وصف لحاجة موجودة خلاص.

الوضوح في القاعة

IRIS متعمل عشان يتشاف. عمود بارتفاع مترين واقف قدام القاعة وخط ضوء شغال، مش حاجة مدسوسة في سقف. التغطية بتتحدد وبتتراجع قبل بداية الإيفنت، فالمشغّل عارف بالظبط الجزء المقاس من القاعة والجزء اللي بره القياس.

والمنتج مابيشحنش أي لافتات موجّهة للحضور. مافيش حاجة جوّاه بتولّد أو بتعرض أو بتطبع إخطارًا للناس اللي في القاعة، ومافيش تصميم لافتة في المنتج النهارده. اللافتات في مكانك حاجة بنتفق عليها معاك قبل الإيفنت، مش حاجة البرج بيعملها نيابة عنك — ونقولها لك دلوقتي أحسن ما تكتشفها يوم الإيفنت.

اللي مااتعملش

مافيش اختبار اختراق، ولا تدقيق خارجي، ولا أي شهادة اعتماد من أي نوع اتعملت على النظام ده. ولا كلمة في الصفحة دي المفروض تتقري كإنها كده، ولو حد سلّمك ورقة شكلها كده فهي مش جاية مننا. لما ده يتغيّر، هنقول اسم الجهة والتاريخ.

إحنا بنشتغل إزاي

اللي مكانه العقد، مش صفحة ويب.

خمس حاجات بيسألها كل قسم قانوني. الحقيقة التقنية فيهم متحددة ومكتوبة تحت. اللي بعد كده بيتحط في اتفاق موقّع، لأن ده المكان الوحيد اللي بيلزمنا فعلًا.

مين بيقرر إيه

انت اللي بتقرر تركّب برج، وانت اللي بتحدد القاعة والإيفنت والغرض، والتقرير بتاعك انت. والبرج بيشتغل في مكانك وبإيدين ناسك.

في التركيب الافتراضي إحنا بنستقبل أرقام مجمّعة، وبيانات حالة الجهاز، وعدّادات الاستخدام. وموظفينا اللي معاهم صلاحيات الأسطول يقدروا يعرضوا الأجهزة المسجّلة، ويقروا بيانات الأسطول المجمّعة دي، ويبعتوا أمرًا موقّعًا لجهاز.

ومانقدرش نقرا تسجيلًا خامًا عن بُعد. مافيش مسار واحد في النظام بيقدّم كادر أو قصاصة أو توقيع رقمي من برج لينا — ودي خاصية في اللي اتبنى، مش سياسة بنلتزم بيها.

وإزاي ده بيترجم لمتحكم ومعالِج في عقدك بيتبع الحقائق دي، وبنحسمه معاك مكتوب.

الأساس اللي بتعالج عليه

الأساس القانوني لقياس جمهور في مكانك قرارك انت، ومش هو هو لمؤتمر بتذاكر في بلد وبهو مفتوح في بلد تانية. وإحنا مابنطبعش واحد على صفحة ويب، لأن أساس بيقوله المورّد مالوش أي قيمة عند المكان اللي هيقف قدامه.

اللي علينا بدل كده إننا ندّيك وصفًا تقنيًا دقيقًا كفاية تحدده على أساسه — وصف بيذكر الملف والسطر لكل جملة، وبيقول الأجزاء المحرجة بدل ما يلمّسها. المستند ده موجود، وهو اللي الصفحة دي اتكتبت منه، وفريقك القانوني ياخده. وإحنا هنقعد معاهم وهما بيقروه.

كل حاجة بتقعد قد إيه

البيانات الخام: بتتمسح مع تصدير التقرير، افتراضيًا، بالطريقة الموصوفة فوق.

الأرقام المجمّعة والتقرير الموقّع وسجل التدقيق: مافيش أي انتهاء صلاحية في المنتج. لا مهمة مجدولة، ولا عمر افتراضي، ولا حاجة بتمسحهم. بيقعدوا على برجك لحد ما تمسحهم انت أو تعيد تهيئة الجهاز.

وبالنسبة لسجل التدقيق ده مقصود — هو الدليل إن المسح حصل، فمسحه بيدمّر إثبات الالتزام مش بيحسّنه.

ومدة احتفاظ كالتزام ناحيتك حاجة تانية خالص غير إعداد افتراضي في سوفتوير، ومكانها اتفاقك، اللي هو المكان الوحيد اللي تقدر تلزمنا بيه.

لو حد من الحضور سأل عن بياناته

الإجابة التقنية الأمينة إن مافيش حاجة مربوطة بيه عشان تتلاقى. مافيش حاضر متحدد هويته، وأرقام الأشخاص أرقام صحيحة محصورة في جلسة واحدة، وبعد المسح المادة اللي كان ممكن نظريًا حد يتلاقى منها بتبقى راحت.

يعني الطلب مش ممكن يتنفّذ بإننا نلاقي سجل شخص ونمسحه — السجل ده مش موجود في أي لحظة. وممكن يتنفّذ بمسح الجلسة كلها، وده هنعمله بتعليماتك، وبيتسجّل هو نفسه في السلسلة الموقّعة. وهو كمان بيدمّر تقريرك، ولازم تعرف ده قبل ما تطلبه.

وهل المخرجات المجمّعة تفضل بيانات شخصية في ولايتك القضائية بعد مسح المخزن الخام؟ دي مسألة لمستشارك. وهي مسألة أسهل بكتير لما يكون المستند التقني قدامه، وعشان كده بنبدأ بيه.

العقد، والقانون الحاكم، وفين تروح بمشكلة

القانون الحاكم والاختصاص والمسؤولية مكانهم اتفاق الشراء، بمراجعة مستشار في الولاية اللي بتشتغل فيها قبل ما أي طرف يمضي. وإحنا مابنقررهمش هنا — بند على صفحة تسويق مابيلزمش حد، وبيقرا كإننا مافكرناش في الموضوع أصلًا.

وأي سؤال خصوصية عن تركيب بعينه بيمشي من خلال جهة التعامل اللي اشتريت من خلالها، وبيوصل للناس اللي بنت النظام نفسه.

إشعارات الأطراف الثالثة

اللي بيتشحن جوه الجهاز، ومين عمله.

IRIS بيشحن أوزان نماذج من أطراف تالتة على كل برج. وكذا رخصة فيهم بتلزمنا نذكر أصحابها بالاسم، والالتزام ده بيتوفّى بالمستند الكامل تحت ومن غيره لأ — رخصة بتطلب ذكر الاسم مابتتوفّاش بملف رخصة قاعد في مستودع حد تاني.

الجدول ده ملخّص للمكوّنات اللي رخصها بتفرض علينا ذكر أصحابها. المستند هو الإشعار.

وفيه ملفين من عندنا — رأس الفئة العمرية ورأس النوع — بس التسميات اللي اتدرّبوا عليها جت من FairFace، وده بيخلّيهم مادة مشتقة تحت نفس نسب CC BY 4.0.

المكوّنالرخصةالجهةالمصدر
FairFace
مُعدَّل — التفاصيل في المستند الكامل.
CC BY 4.0 Kimmo Kärkkäinen, Jungseock Joo github.com/joojs/fairface
YuNet MIT Shiqi Yu github.com/opencv/opencv_zoo
MediaPipe Face Landmarker Apache-2.0 Google github.com/google-ai-edge/mediapipe
YOLOX (yolox-nano) Apache-2.0 Megvii BaseDetection github.com/Megvii-BaseDetection/YOLOX
FSRCNN ×3 Apache-2.0 Saafke github.com/Saafke/FSRCNN_Tensorflow
Real-ESRGAN (realesr-general-x4v3)
مُعدَّل — التفاصيل في المستند الكامل.
BSD-3-Clause Xintao Wang et al. github.com/xinntao/Real-ESRGAN
OpenVINO OMZ — face-reidentification-retail-0095 Apache-2.0 Intel / OpenVINO Open Model Zoo github.com/openvinotoolkit/open_model_zoo

المستند الكامل هو الجرد الكامل لكل ملف نموذج في صورة الجهاز — بما فيها أي ملف رخصته مابتسمحش بالاستخدام التجاري وبالتالي بيمنع الإصدار لحد ما يتشال أو تتشترى رخصته. وبيسجّل كمان لكل نموذج البيانات اللي اتدرّب عليها، وفين دي مش معلنة.

المستند الكامل للإشعارات