
مجموعة أدوات deepfake في الوقت الفعلي لاختبار اختراق أنظمة التحقق من الهوية ومؤتمرات الفيديو. تدعم face swap و image animation و virtual camera injection لعمليات red team.
dot (أو مجموعة أدوات التزييف العميق الهجومية) يجعل التزييف العميق في الوقت الفعلي والقابل للتحكم جاهزًا للحقن في الكاميرات الافتراضية. تم إنشاء dot لإجراء اختبار الاختراق ضد أنظمة التحقق من الهوية ومؤتمرات الفيديو على سبيل المثال، لاستخدام محللي الأمن، وأعضاء الفريق الأحمر، وباحثي القياسات الحيوية.
إذا كنت تريد معرفة المزيد عن كيفية استخدام dot لاختبارات الاختراق باستخدام التزييف العميق في الصناعة، اقرأ هذه المقالات من The Verge و Biometric Update.
تم تطوير dot لأغراض البحث والتوضيح. كمستخدم نهائي، تقع على عاتقك مسؤولية الامتثال لجميع القوانين المعمول بها عند استخدام هذا البرنامج. لا يتحمل المؤلفون والمطورون المساهمون أي مسؤولية ولا يتحملون مسؤولية أي إساءة استخدام أو ضرر ناتج عن استخدام هذا البرنامج.
باختصار، يعمل dot على هذا النحو
flowchart LR;
A(تغذية كاميرا الويب الخاصة بك) --> B(مجموعة من التزييف العميق في الوقت الفعلي);
B(مجموعة من التزييف العميق في الوقت الفعلي) --> C(الحقن في الكاميرا الافتراضية);
جميع التزييفات العميقة التي يدعمها dot لا تتطلب تدريبًا إضافيًا. يمكن استخدامها في الوقت الفعلي بسرعة على صورة تصبح هدفًا لانتحال الوجه. الطرق المدعومة:
224 و 512
256 و 512قم بتنزيل وتشغيل الملف التنفيذي لـ dot وفقًا لنظام التشغيل الخاص بك:
Windows (تم الاختبار على Windows 10 و 11):
dot.zip من هنا، قم بفك ضغطه ثم قم بتشغيل dot.exeUbuntu:
Mac (تم الاختبار على Apple M2 Sonoma 14.0):
dot-m2.zip من هنا وقم بفك ضغطهxattr -cr dot-executable.app لإزالة أي سمات ممتدةإظهار محتويات الحزمةdot-executable من المجلد Contents/MacOSمثال على الاستخدام:
source.target. في معظم الحالات، 0 هو معرف الكاميرا الصحيح.config_file. اختر تهيئة افتراضية من القائمة المنسدلة أو استخدم ملفًا مخصصًا.use_gpu لاستخدام GPU.RUN لبدء التزييف العميق.لمزيد من المعلومات حول كل حقل، انقر على القائمة Help/Usage.
شاهد فيديو العرض التوضيحي التالي لفهم أفضل للواجهة:
Linux
sudo apt install ffmpeg cmake
MacOS
brew install ffmpeg cmake
Windows
تفترض التعليمات أن لديك Miniconda مثبتة على جهازك. إذا لم يكن لديك، يمكنك الرجوع إلى هذا الرابط للحصول على تعليمات التثبيت.
conda env create -f envs/environment-gpu.yaml
conda activate dot
قم بتثبيت تبعيات torch و torchvision بناءً على إصدار CUDA المثبت على جهازك:
قم بتثبيت CUDA 11.8 من الرابط
قم بتثبيت cudatoolkit من conda: conda install cudatoolkit=<cuda_version_no> (استبدل <cuda_version_no> بالإصدار الموجود على جهازك)
قم بتثبيت تبعيات torch و torchvision: pip install torch==2.0.1+<cuda_tag> torchvision==0.15.2+<cuda_tag> torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118، حيث <cuda_tag> هو علامة CUDA المحددة من قبل Pytorch. على سبيل المثال، pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118 لـ CUDA 11.8.
ملاحظة: يمكن استخدام torch1.9.0+cu111 أيضًا.
للتحقق من تثبيت torch و torchvision بشكل صحيح، قم بتشغيل الأمر التالي: python -c "import torch; print(torch.cuda.is_available())". إذا كان الإخراج True، فقد تم تثبيت التبعيات مع دعم CUDA.
conda env create -f envs/environment-apple-m2.yaml
conda activate dot
للتحقق من تثبيت torch و torchvision بشكل صحيح، قم بتشغيل الأمر التالي: python -c "import torch; print(torch.backends.mps.is_available())". إذا كان الإخراج True، فقد تم تثبيت التبعيات مع دعم إطار عمل Metal.
conda env create -f envs/environment-cpu.yaml
conda activate dot
pip install -e .
قم بتشغيل dot --help للحصول على قائمة كاملة بالخيارات المتاحة.
Simswap
dot -c ./configs/simswap.yaml --target 0 --source "./data" --use_gpu
SimSwapHQ
dot -c ./configs/simswaphq.yaml --target 0 --source "./data" --use_gpu
FOMM
dot -c ./configs/fomm.yaml --target 0 --source "./data" --use_gpu
FaceSwap CV2
dot -c ./configs/faceswap_cv2.yaml --target 0 --source "./data" --use_gpu
ملاحظة: لتمكين تحسين دقة الوجه، استخدم العلم --gpen_type gpen_256 أو --gpen_type gpen_512. لاستخدام dot على CPU (غير موصى به)، لا تمرر العلم --use_gpu.
إخلاء مسؤولية: نستخدم تقنية
SimSwapفي العرض التوضيحي التالي
تشغيل dot عبر أي من الطرق المذكورة أعلاه ينتج Deepfake في الوقت الفعلي على تغذية الفيديو المدخلة باستخدام الصور المصدر من مجلد data/.
عند تشغيل dot، تظهر قائمة بخيارات التحكم المتاحة في نافذة الطرفية كما هو موضح أعلاه. يمكنك التبديل بين الصور المصدر المختلفة وتحديدها بالضغط على مفتاح التحكم المرتبط.
شاهد فيديو العرض التوضيحي التالي لفهم أفضل لخيارات التحكم:
بناء الحاوية
docker-compose up --build -d
الوصول إلى الحاوية
docker-compose exec dot "/bin/bash"
بناء الحاوية
docker build -t dot -f Dockerfile .
تشغيل الحاوية
xhost +
docker run -ti --gpus all \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
-e NVIDIA_VISIBLE_DEVICES=all \
-e PYTHONUNBUFFERED=1 \
-e DISPLAY \
-v .:/dot \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
--runtime nvidia \
--entrypoint /bin/bash \
-p 8080:8080 \
--device=/dev/video0:/dev/video0 \
dot
اتبع التعليمات هنا تحت Windows لإعداد الكاميرا مع docker.
بناء الحاوية
docker build -t dot -f Dockerfile .
تشغيل الحاوية
docker run -ti --gpus all \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
-e NVIDIA_VISIBLE_DEVICES=all \
-e PYTHONUNBUFFERED=1 \
-e DISPLAY=192.168.99.1:0 \
-v .:/dot \
--runtime nvidia \
--entrypoint /bin/bash \
-p 8080:8080 \
--device=/dev/video0:/dev/video0 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
dot
اتبع التعليمات هنا لإعداد الكاميرا مع docker.
بناء الحاوية
docker build -t dot -f Dockerfile .
تشغيل الحاوية
docker run -ti --gpus all \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
-e NVIDIA_VISIBLE_DEVICES=all \
-e PYTHONUNBUFFERED=1 \
-e DISPLAY=$IP:0 \
-v .:/dot \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--runtime nvidia \
--entrypoint /bin/bash \
-p 8080:8080 \
--device=/dev/video0:/dev/video0 \
dot
تختلف التعليمات حسب نظام التشغيل الخاص بك.
قم بتثبيت OBS Studio.
قم بتشغيل OBS Studio.
في قسم المصادر، اضغط على زر الإضافة (علامة "+")،
اختر Windows Capture واضغط OK. في النافذة التي تظهر، اختر "[python.exe]: fomm" من القائمة المنسدلة للنافذة واضغط OK. ثم اختر Edit -> Transform -> Fit to screen.
في OBS Studio، اذهب إلى Tools -> VirtualCam. حدد AutoStart،
اضبط Buffered Frames على 0 واضغط Start.
الآن يجب أن تكون كاميرا OBS-Camera متاحة في Zoom
(أو أي برنامج مؤتمرات فيديو آخر).
sudo apt update
sudo apt install v4l-utils v4l2loopback-dkms v4l2loopback-utils
sudo modprobe v4l2loopback devices=1 card_label="OBS Cam" exclusive_caps=1
v4l2-ctl --list-devices
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt install obs-studio
افتح OBS Studio وتحقق من وجود tools --> v4l2sink.
إذا لم يكن موجودًا، اتبع هذه التعليمات:
mkdir -p ~/.config/obs-studio/plugins/v4l2sink/bin/64bit/
ln -s /usr/lib/obs-plugins/v4l2sink.so ~/.config/obs-studio/plugins/v4l2sink/bin/64bit/
استخدم الكاميرا الافتراضية مع OBS Studio:
OBS Studiotools --> v4l2sink/dev/video2 و YUV420startOBS Cam--use_cam لتمكين تغذية الكاميراإذا كنت تجري اختبارًا ضد تطبيق جوال، فإن الكاميرات الافتراضية يصعب حقنها كثيرًا. البديل هو استخدام محاكيات الجوال واللجوء إلى حقن الكاميرا الافتراضية.
قم بتشغيل dot. راجع تشغيل dot لمزيد من المعلومات.
قم بتشغيل OBS Studio وإعداد الكاميرا الافتراضية. راجع حقن الكاميرا الافتراضية لمزيد من المعلومات.
قم بتنزيل وتثبيت Genymotion.
افتح Genymotion وقم بإعداد محاكي Android.
قم بإعداد dot مع محاكي Android:
camera واختر OBS-Camera ككاميرا أمامية وخلفية. يجب أن تظهر معاينة لنافذة dot.
في حالة عدم وجود معاينة، أعد تشغيل OBS والمحاكي وحاول مرة أخرى.
إذا لم يعمل ذلك، استخدم برنامج كاميرا افتراضية آخر مثل e2eSoft VCam أو ManyCam.dot هو كاميرا هاتف المحاكي الآن.تم الاختبار على معالج AMD Ryzen 5 2600 Six-Core مع بطاقة NVIDIA GeForce RTX 2070 واحدة
Simswap: FPS 13.0
Simswap + gpen 256: FPS 7.0
SimswapHQ: FPS 11.0
FOMM: FPS 31.0
تم الاختبار على Macbook Air M2 2022 16GB
Simswap: FPS 3.2
Simswap + gpen 256: FPS 1.8
SimswapHQ: FPS 2.7
FOMM: FPS 2.0
هذا ليس منتجًا تجاريًا من Sensity، ويتم توزيعه مجانًا بدون ضمانات
البرنامج موزع تحت BSD 3-Clause. يستخدم dot العديد من المكتبات مفتوحة المصدر. إذا كنت تستخدم dot، فتأكد من موافقتك على تراخيصها أيضًا. على وجه الخصوص، تم بناء قاعدة التعليمات البرمجية هذه على المشاريع البحثية التالية:
إذا كانت لديك أفكار لتحسين dot، فلا تتردد في فتح المشكلات وطلبات السحب ذات الصلة. يرجى قراءة CONTRIBUTING.md قبل المساهمة في المستودع.
dot على ملفات الصور والفيديو المسجلة مسبقًاdot بطيء جدًا ولا يمكنني تشغيله في الوقت الفعليتأكد من أنك تقوم بتشغيله على بطاقة GPU باستخدام العلم --use_gpu. لا ينصح باستخدام CPU. إذا كنت لا تزال تجده بطيئًا جدًا، فقد يكون ذلك بسبب تشغيله على نموذج GPU قديم، بذاكرة أقل من 8 جيجابايت.
dot فقط مع تغذية كاميرا الويب أو أيضًا مع فيديو مسجل مسبقًا؟يمكنك استخدام dot على ملف فيديو مسجل مسبقًا من خلال هذه البرامج النصية أو تجربته مباشرة على Colab.