مِلْء الفراغات (a diffusion-based image inpainting pipeline)

Eyoel Gebre, Krishna Saxena, Timothy Tran

مُلَخَّص

إعادةُ ترميمِ الصور هي عمليّةُ أخذِ صورةٍ وإعادةِ بناءِ الأجزاءِ المفقودة أو المحجوبة عمدًا. وتطبيقاتُ هذا المجال لا حصرَ لها، بما في ذلك استعادةُ الصورِ المتضرِّرة، وتحسينُ جودةِ الصور التي تدهورت نتيجةً لضغطِ البيانات، وإزالةُ العناصر أو النصوص غير المرغوب فيها. لقد أثبتت تقنياتُ ترميمِ الصور الحديثة قُدرتَها على توليد استكمالاتٍ منطقيةٍ للصورِ المُحجَّبة بأقنعة. في هذه الورقة، نستعرض التقدُّم الحاصلَ في تقنيات ترميم الصور ونحلِّل أبرزَ المناهج الرائِدة، مع إبرازِ نقاطِ القوةِ والضعف. كما نسلِّط الضوء على ثغرةٍ حرِجة في النماذج الحالية، تتعلّق بقدرتِها المحدودة على التوجيه والتحكُّم الدقيق في المحتوى المُنتَج. نُبيِّن كذلك لماذا نعتقد أن هذه الخطوة هي التطوّر الطبيعي التالي لأساليب ترميم الصور، ونقدِّم آلياتٍ عدّة لتنفيذ ذلك. أخيرًا، نقوم بتقييم نتائجنا تقييمًا نوعيًّا للتأكّد من إنتاج صورٍ عاليةِ الجودة تُعيد إحياءَ المناطقِ المفقودة بدقّة وفق التوجيهات المقدَّمة.

مُقَدِّمَة

الدافِع

لطالما شكّلت مسألةُ استكمالِ الصور تحدّيًا مهمًّا في مجال الرؤية الحاسوبيّة منذ عقود. إذ تُعدّ هذه العمليّة أساسيةً في تطبيقاتٍ متعدّدة مثل إزالة الأجسام غير المرغوب فيها، واستعادة الصور المتضرّرة، والتحرير، وإعادة التوجيه، وتركيب الصور، والتوليد القائم على الصور. ومع الانتشار الواسع لأدوات الذكاء الاصطناعي التوليدي، نتوقّع أن تشهد تقنياتُ الاستكمال استخدامًا متزايدًا في المجالات الإبداعية أيضًا. فمع أدوات مثل دالي-إي، وتشات جي بي تي، ومِدجورني، وسورا التي أثبتت قيمتَها للمحترفين في المهن الإبداعيّة، نُشاهد كيف تُغيِّر أنظمةُ الذكاء الاصطناعي بشكل جذري هذه الصناعة (تشير تقارير مكتب تحليل الاقتصاد الأمريكي إلى أن الفنون والإنتاج الثقافي يُشكِّلان $1,016,249,142,000$ وبنسبة 4.4% من اقتصاد الولايات المتحدة، ويوفّران 4,851,046 وظيفة (NASAA2020)). لذا فإن تحسين تقنيات الاستكمال وتوسيع قدراتِها يمكن أن يُحدِثَ تأثيرًا اقتصاديًّا ملموسًا.

الخَلْفِيَّة

هناك نهجان رئيسيان لمشكلة الترميم: الاحتمالي والحتمي. تُنتِج الطرقُ الاحتمالية نتائجَ متعدّدة معقولة عبر أخذ عيناتٍ عشوائية، بينما تُولِّد الطرقُ الحتمية نتيجةً واحدة فقط. وأحدُ النهجِ الحتمية الشائعة هو أخذ صورةٍ مع قناعٍ ثنائي يُحدِّد المنطقةَ المرادَ ترميمُها، ثم إدخالُهما في نموذجٍ مُولِّد مثل شبكةِ الخصومةِ التوليدية المدربة على مِلء المنطقة المفقودة. وقد حسّن الباحثون أداءَ المُولِّد عبر آليات الانتباه، ووصلات المُشَفِّر–المُفَكِّك (Skip Connections)، والسابقِ الصُّوريِّ العميق (Deep Image Prior)، والتجميعِ متعدِّدِ المقاييس (quan2024deep). بالمقابل، تتبع تقنياتُ الترميم الاحتمالية، ومنها نماذجُ التدفّق (Flow) والنماذجُ التوليديّة التسلسليّة، نهجًا يبدأ بصورةٍ مُشَوَّشة ويُقلِّل الضوضاء تدريجيًّا حتى الوصول إلى نتيجةٍ معقولة؛ وهي الاستراتيجية التي تعتمد عليها غالبيةُ تقنياتِ الترميم المبنيّة على الانتشار، والتي سنركّز عليها لاحقًا.

الأعمال ذات الصلة

كما ذُكر، تتبع استراتيجياتٌ حتميّة عديدة نهجَ إدخال صورٍ من مجموعة بياناتٍ مع أقنعةٍ مُولَّدةٍ من توزيعٍ معيّن، ثم تدريبَ نموذجٍ لملء هذه الأقنعة. مثالٌ على ذلك هو منهج LaMa. خلال التدريب، يأخذ LaMa عيّناتٍ من الصور ويُولِّد لكلٍّ منها قناعًا من توزيعٍ ثابت، ثم يُدرِّب شبكةَ التفاف فورييه للتنبّؤ بما وراء القناع، محقِّقًا نتائج قويّة. لكنّ العيب أن النموذج غالبًا ما يُواجِه صعوبةً في تعميم قدراتِه على أقنعةٍ خارجَ التوزيعِ التدريبي.

الجهدُ الرائد الذي حدّدناه هو ورقةٌ من المعهد التقني في زيورخ بعنوان RePaint (A2). يقترح RePaint سيرًا احتماليًّا مبنيًّا على عمليةِ ماركوف لإضافةِ ضوضاء غاوسيّة إلى الصورةِ المُدخلة، يليه مسارٌ عكسي لإزالةِ الضوضاء من الجزء المُقنَّع. بهذه الطريقة، يتجاوز RePaint الاعتمادَ على توزيعِ أقنعةٍ ثابت عبر استخدام نموذجِ انتشارٍ مُدرَّب مسبقًا لإزالة الضوضاء من بكسلات القناع عشوائيًّا ضمن سياقها المجاور. ولزيادةِ التنوّع الدلالي في المخرجات، اقترح المؤلفون خطوةَ إعادةِ أخذِ العينات (Resampling) خلال المسار العكسي. ففي هذه الخطوة تُضاف ضوضاءُ غاوسيّة مُجدّدًا إلى عيّنةٍ جزئية غير مُشَوَّشة لمرّاتٍ ثابتة، ما يُعزِّز العشوائية ويُحسِّن جودةَ الحدود (انظر القسم [subsec:ResamplingJumping]).

إجمالًا، يركّز RePaint على إزالة الضوضاء من المنطقة المُقنَّعة مع استخدام الجزء غير المُقنَّع من الصورة كمرجع سياقي. وينتج عنه صورٌ تبدو طبيعيةً جدًّا، وقد قُيِّم أعلى من النماذج الحديثة عبر توزيعاتٍ متنوّعة من الأقنعة. كما يمتاز RePaint بمرونةٍ في إدخال عناصرَ إبداعية ضمن المنطقة المُقنَّعة مع الحفاظ على الصحة الدلالية (A2).

ومن سمات RePaint اللافتة أنّه قد يُدخِل أشياءَ عشوائية داخل المناطق المُعاد إنشاؤها. ورغم أن هذه العناصر تبدو طبيعيةً دلاليًّا، قد تكون العشوائيةُ غيرَ مرغوبةٍ في حالات عديدة؛ كإدخالِ سحليةٍ عند إزالة يدٍ بشرية. هدفُنا هو تمكين RePaint من الاحتفاظ بأدائه وصحّته الدلالية مع توفير تحكُّمٍ أكبر في المحتوى المُنتَج داخل المنطقة المُقنَّعة. فالنسخة الحالية من RePaint لا تأخذ في الاعتبار أيّ تفضيلاتٍ حول ما يجب إدخاله، ولا توجد واجهةٌ واضحة لتزويدِه بمعطياتٍ إضافية تُحدِّد ذلك.

لذلك، نهدف إلى توسيع قدرات RePaint بحيث يقبل، إلى جانب الصورة والقناع، معلوماتٍ إضافية عن الهدف المراد إدخاله. الخيارات متنوّعة: وصفٌ نصّي لما ينبغي توليده، صورةُ الهدف المطلوبة، مجموعةُ بياناتٍ من الخيارات المقبولة، وغيرها.

ومن فوائد RePaint أنه يُعدِّل فقط خطوةَ إزالةِ الضوضاء في نموذج الانتشار المُدرَّب مسبقًا، ما يُلغي الحاجةَ إلى تحضير بياناتٍ جديدة أو إعادةِ تدريبِ النموذج. هذا يُسهِّل تجربةَ خياراتٍ مختلفة لتحديد جسمِ الهدف المفضّل. سنبدأ بتقييم أداء RePaint عند تزويدِه بصورةٍ واحدة للهدف المراد إدخاله في القناع، عبر حقنِها في خطوةِ إزالةِ الضوضاء على نحوٍ مماثلٍ لاستخدام المرجع في المنطقة غير المُقنَّعة الأصلية. باختصار، سنُنشئ خطَّ أنابيبٍ جديدًا يستقبل ثلاث مدخلات (الخلفية، والقناع، وصورةَ الهدف)، ويُعالجُها لإنتاج صورةٍ موحَّدة كما هو مُبيَّن في القسم [subsec:CorePipeline].

الطَّرِيقَة

تعتمد خطوطُ الأنابيب لدينا على خوارزمية الاستدلال في RePaint (القسم [subsec:RepaintPipeline])، مع إضافة القدرة على توجيهِ المدخلات بصورةِ هدف. لاختبار خطوط الأنابيب، أنشأنا مجموعةَ بياناتٍ صغيرة من صورِ المشاهد وصورِ الأهداف وأقنعةٍ ثنائيةٍ مُنشأة يدويًّا تُحدِّد موقعَ الهدف داخل المشهد. تصبح هذه الثلاثة مدخلات (المشهد، والهدف، والقناع) أساسًا لخطِّ الأنابيب كما في القسم [subsec:CorePipeline].

خلفيّة مسار عمل RePaint

من الضروري فهمُ مسار عمل RePaint أوّلًا. في البداية، يُحوِّل المرورُ الأمامي لعمليةِ الانتشار الصورةَ الابتدائية المُقنَّعة \(x_0\) إلى ضوضاءَ غاوسيّةٍ بيضاء \(x_T\) بإضافةِ ضوضاءَ مستقلّةٍ متزايدةِ التباين تدريجيًّا. في كل خطوةٍ زمنيّة \(t\) من المرور الأمامي، تتزايد الضوضاء حتى الوصولِ إلى ضوضاءَ نقيّة عند \(t = T\).

في المرور الخلفي، نسعى إلى إعادة بناء الصورة الأصلية من الضوضاء الغاوسيّة. في كل خطوةٍ زمنيّة \(t\)، تُمرَّر الصورةُ المُشَوَّشة إلى نموذج إزالة الضوضاء القائم على الانتشار الاحتمالي (DDPM) المشروط. يُستخلص ناتجُ الجزء المُقنَّع ويُدمَج مع المنطقة غير المُقنَّعة من المرور الأمامي المقابل، فتتمّ استعادةُ الصورة تدريجيًّا بأعلى دقّة ممكنة. كما يقدّم RePaint خطواتِ إعادةِ أخذِ العينات والقفز التي سنوضّحها في القسم [subsec:ResamplingJumping].

خطُّ الأنابيب الأساسي للاستكمال المُوجَّه بصورةِ هدف

مساهمتُنا هنا هي إضافةُ القدرة على تحديد جسمِ هدف ليُعاد إدخاله في موقعٍ محدَّد داخل المشهد. صُمِّم الخطّ ليأخذ ثلاث مدخلات: صورةَ خلفيّةٍ للمشهد، صورةَ الهدف، وقناعًا ثنائيًّا يُحدِّد المنطقة المعنيّة. وعلى عكس RePaint الأصلي الذي يتعامل مع قناعٍ عشوائي فقط، يدمج نهجُنا معلوماتِ الهدف لتحسين عملية الاستكمال. خلال المرور الأمامي، نُطبِّق عمليةَ الانتشار على كلٍّ من المشهد والهدف. وعند المرور الخلفي، تُمرَّر الصورةُ المُشَوَّشة \(x_t\) إلى نموذج DDPM المشروط لإنتاج \(x_{\text{repaint},t-1}\). في الوقت نفسه، نسترجع الجزء غير المُقنَّع من المشهد المُشوَّش \(x_{\text{scene},t-1}\)، والهدف المُشوَّش \(x_{\text{target},t-1}\) من الانتشار الأمامي المتّسق زمنيًّا. ثم نحلّ تعارُضَ القناع بين تنبّؤ النموذج ونسخةِ الهدف المُشَوَّشة عبر مزيجٍ محدّب بمعامل \(\lambda_t\):

\[ x_{t-1}^{\text{unknown}} = \lambda_t\,x_{\text{repaint},t-1} + (1-\lambda_t)\,x_{\text{target},t-1} \tag{3} \]

أخيرًا، ندمج المنطقة المعروفة من المشهد مع المزيج الجديد في المنطقة المُراد استكمالُها:

\[ x_{t-1} = m \odot x_{\text{scene},t-1} + (1-m)\odot x_{t-1}^{\text{unknown}} \tag{4} \]

حيث \(m\) هو القناع الثنائي (مع الاتفاق على أنّ \(m=1\) على المنطقة المعروفة غير المُقنَّعة، و\(m=0\) على المنطقة المراد استكمالها). يوضّح الشكل [fig:corepipeline] كامل العملية.

إعادةُ أخذِ العينات والقفز

في المسار العكسي، قد تبدو الحدود بين المنطقة المُقنَّعة وغير المُقنَّعة حادّةً أو غيرَ طبيعية. وللتغلّب على ذلك، يقترح RePaint إضافةَ خطواتٍ لإعادةِ أخذِ العينات كل \(j\) خطوةٍ زمنيّة، بإعادةِ إدخالِ ضوضاءَ غاوسيّة ثم تمريرِها مُجدّدًا إلى DDPM \(r\) مرّات. يُتيح هذا الإجراءُ لـDDPM فرصةً لتنعيم الحدود وتوليدِ تنوّعٍ أعلى داخل القناع دون زيادةٍ في الموارد الحسابية حين \(r \le j\).

بحثٌ أوّلي عن المعلمات الفائقة

كما ذُكر في [subsec:CorePipeline]، يتحكّم \(\lambda_t\) في وزن مساهمة تنبّؤ النموذج مقابل نسخةِ الهدف المُشوَّشة. أجرينا تجارب عبر قيم \(\lambda_t\in\{0.8,0.9,0.993,0.995,0.999,0.9999\}\)، وقيم لعدد الخطوات الكلّي \([50,100,150,200,250]\)، وقيمٍ للقفز وإعادةِ أخذِ العينات ضمن \([10,20,30,40]\). وجدنا أن \(\lambda_t\approx0.993\) يُوازِنُ على نحوٍ أفضل بين الحفاظ على تفاصيلِ الهدف وعدمِ إظهاره مُلتصِقًا. كما حدّدنا أن \(T=200\)، و\(j=r=40\) تُعطي عمومًا جودةً عالية دون ضبابيّةٍ مُفرطة.

بالنسبة لقناع الهدف، جرّبنا طريقتين: الأولى قناعٌ دقيق يسمحُ بتفاصيلَ أفضل لكن ينتج انتقالًا حادًّا؛ والثانية قناعٌ أكثرُ تساهلًا يضمّ معلوماتٍ مُحيطة لكنه يُقلِّل الدقّة. وللتغلّب على محدودية القناع الدقيق، استكشفنا بديلَين موضّحين في القسم [subsec:MaskAlt].

التجارب

على الرغم من جودةِ التفاصيل، لاحظنا أنّ الهدف لا يتفاعلُ بما يكفي مع عناصر المشهد المحيطة (مثل أن يحجب العُشبُ بعضَ مخالبِ الكلب جزئيًّا). لذا اقترحنا تعديلاتٍ عدّة لتعزيز هذا التفاعل.

بدائلُ التقنيع

أكبرُ تحدٍّ واجهناه كان الحدودَ غيرَ الطبيعية عند القناعِ الثنائي الدقيق. لذلك استكشفنا طرائقَ أكثر مرونةً للقناع تُتيح لـDDPM توليدَ انتقالاتٍ سلسة.

قناعٌ مُتَدَرِّج قائمٌ على المسافة

بدلًا من قناعٍ ثنائي، نستخدم قناعًا بقيمٍ بين 0 و1 يُحدِّد قُربَ كلّ بكسل من حدود القناع. للبكسل عند الإحداثيات \((i,j)\) ومسافةِ مانهاتن إلى أقرب بكسل خارجي \(d_{i,j}\)، نُعرِّف:

\[ m_{i,j}^{\mathrm{heated}} = \min\left(\frac{d_{i,j}}{b},\,1\right) \tag{5} \]

حيث \(b\) هو نصفُ عرض المنطقة المُتدرِّجة. هذا يُعطي DDPM حريّةً أكبر لتنعيم الحدود مع المحافظة على التفاصيل داخل القناع.

مخزنٌ مؤقّت للمشهد (Buffer)

للمزيد من الاتّساق بين الهدف والمشهد، أضفنا حول القناع الدقيق "حلقة" عرضُها 4 بكسل، تُؤخذ من ناتج DDPM السابق بدلًا من مشهد المرور الأمامي. بذلك نسمح بانتقالٍ سلسٍ دون الاعتماد على تشابُه الخلفيات.

جدولة \(\lambda_t\) لزيادة التكامل مع RePaint

لتحسين دقّةِ الحدود ودقّة التفاصيل، جرّبنا جدولةً خطيّة للقيمة \(\lambda_t\) بحيث تبقى مساويةً لـ 1 للخطوات الأقل من \(pT\) ثم تتناقص خطيًّا إلى 0 عند \(T\). جرّبنا \(p\in\{0.1,0.25,0.5,0.75,0.9\}\) على إعدادٍ مكوَّن من \(T=100,\,j=r=40\). وجدنا أن \(p=0.5\) يُحقِّق توازنًا جيّدًا بين وفاءِ الهدف والتدرّج الطبيعي للحدود، مع إبقاء مخرجاتٍ ذات صحّةٍ دلاليّة عالية.

أوضاعُ الفشل

عند \(p>0.5\) يزيد "إبداع" المُولِّد لكن قد يَنتج عن ذلك مخرجاتٌ غير مرغوبة أو مُتحيِّزة انعكاسًا لبيانات تدريب DDPM (مثل الميل إلى توليد كلاب). للتخفيف، يُنصَح بإنتاج أكثر من مرشَّحٍ لكل مشهد–هدف، واستخدام طرائقِ اصطفاء/تقييم مُدرَّبة على بياناتٍ أكثر تنوُّعًا.

خطوطُ الأنابيب النهائيّة

بناءً على التجارب، نُوصي بالإعداد التالي: \(T=200,\,j=r=40\)، مع قناعٍ مُتدرِّج و/أو مخزنٍ مؤقّت، وجدولةٍ لـ \(\lambda_t\) بحيث \(\lambda_t=1\) عندما \(t\le0.5T\) ثم تنخفض خطّيًا إلى الصفر بعد ذلك.

الخلاصة والشكر

الخطواتُ اللاحقة

المساراتُ المستقبلية تشمل:

الخُلاصَة

في هذه الدراسة، سعينا لتعزيز التحكُّم في عمليةِ ترميمِ الصور عبر توجيهِ النموذج بصورةِ هدفٍ محدَّدة بدلًا من التوجيهات النصّية العامة. باعتماد نهجٍ قائمٍ على الانتشار وتعديلاتٍ مختلفةٍ للقناع والجدولة، أظهرنا قدرةَ الخطّ الجديد على توليد صورٍ مُرمَّمة تبدو طبيعية وتحتفظ بالصحّة الدلاليّة مع إدراج الأجسام المرغوبة.

الشكرُ والتقدير

نشكُر فريقَ مادة CSE 493G على الدعم والإرشاد، ونُقدِّر ورقةَ RePaint ومؤلِّفيها الذين كانوا مصدرَ إلهامٍ لعملِنا.