Change Detection
يقارن اكتشاف التغييرات صورًا للمشهد نفسه التُقطت في أوقات مختلفة، لتحديد ما ظهر أو اختفى أو تحرك، بدءًا من الأقمار الصناعية وصولًا إلى المصانع.
كشف التغيّرات هو مهمة العثور على الاختلافات المهمة بين صور للمشهد نفسه التُقطت في أوقات مختلفة. يقارن رصدين أو أكثر ويحدد مواضع التغيّر، إما على هيئة خريطة تغيّر ثنائية، أو فئات «من-إلى» مثل التحول من غابة إلى أرض زراعية، أو قائمة بالكائنات التي ظهرت أو اختفت أو تحركت. يقارن كشف التغيّرات ثنائي الزمن تاريخين، بينما تحلل الأساليب متعددة الأزمنة سلسلة زمنية كاملة للتمييز بين التغيّر الدائم والدورات الموسمية والضوضاء العابرة. وتُعد المهمة محورية في الاستشعار عن بُعد وتحليل صور الأقمار الصناعية، كما تقود الأفكار نفسها إلى طرح الخلفية في كاميرات الأمن الثابتة وإجراء المقارنات المرجعية في الفحص الصناعي.
آلية عمل اكتشاف التغيّر#
لا يمكن مقارنة صورتين على نحو سليم إلا بعد أن تمثل البكسلات المتناظرة الموقع نفسه على الأرض. وتُحاذيهما مطابقة الصور، إذ يؤدي انزياح بمقدار بكسل واحد إلى تغيّر زائف على امتداد كل حافة، فيما تزيل التسوية الإشعاعية الاختلافات الناجمة عن زاوية الشمس والتعريض والضباب واستجابة المستشعر. ثم تنتج خطوة المقارنة مقياس اختلاف لكل بكسل أو منطقة، ويفصل عتبة التغيّر عن الضوضاء، وتزيل المعالجة اللاحقة البكسلات المنعزلة وتدمج البقية في مناطق.
أبسط طرق المقارنة هي طرح الصور. يقارن هذا المثال إطارين لموقف سيارات صُوّرا من الأعلى بفاصل 2.7 ثانية، ويترك لطريقة Otsu اختيار العتبة:
import cv2
import numpy as np
# Two frames of a parking lot filmed from above, 81 frames (2.7 seconds) apart
cap = cv2.VideoCapture("https://github.com/ultralytics/assets/releases/download/v0.0.0/solution_ci_parking_demo.mp4")
_, before = cap.read()
cap.set(cv2.CAP_PROP_POS_FRAMES, 81)
_, after = cap.read()
# Convert to grayscale and blur to suppress noise, then difference pixel by pixel
before = cv2.GaussianBlur(cv2.cvtColor(before, cv2.COLOR_BGR2GRAY), (5, 5), 0)
after = cv2.GaussianBlur(cv2.cvtColor(after, cv2.COLOR_BGR2GRAY), (5, 5), 0)
diff = cv2.absdiff(before, after)
# Otsu's method picks the change threshold, and an opening removes isolated noisy pixels
_, change_map = cv2.threshold(diff, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
change_map = cv2.morphologyEx(change_map, cv2.MORPH_OPEN, np.ones((5, 5), np.uint8))
print(f"{100 * (change_map > 0).mean():.1f}% of pixels changed")
cv2.imwrite("change_map.png", change_map)يطبع 5.2% of pixels changed. وتحدد الخريطة المحفوظة السيارة الزرقاء التي تدخل موقفًا، وموضعي الشاحنة البيضاء التي تعبر الموقف، والسيارة التي تغادر الحافة اليسرى للإطار، بينما تظل السيارات المتوقفة والخطوط المرسومة والرصف سوداء.
الأساليب القائمة على البكسل والكائنات والتعلّم#
ينجح طرح البكسلات عندما تأتي الصورتان من المستشعر نفسه وفي ظروف إضاءة متشابهة. وتحل النسب محل الفروق في صور الرادار، لأن ضوضاء البقع فيها مضاعِفة، بينما يعامل تحليل متجه التغيّر كل بكسل متعدد الأطياف متجهًا، يكون لتغيّره مقدار واتجاه. أما المقارنة بعد التصنيف، فتصنّف كل تاريخ على حدة وتقارن التصنيفات، ما ينتج فئات «من-إلى» ويتحمّل اختلاف المستشعرات، لكنه يراكم أخطاء كلا التصنيفين.
تمرر أساليب التعلّم العميق الصورتين عبر شبكة عصبية التفافية سيامية ذات أوزان مشتركة، ثم تفك ترميز الفرق بين خرائط الميزات لإنتاج خريطة تغيّر؛ وقد ذاع هذا التصميم بفضل الشبكات السيامية الالتفافية بالكامل التي قدمها Daudt وزملاؤه عام 2018، وأضافت النماذج اللاحقة آليات الانتباه والمحوّلات. ومن مجموعات القياس المرجعية واسعة الاستخدام LEVIR-CD، التي أصدرها Hao Chen وZhenwei Shi عام 2020، وتضم 637 زوجًا من صور Google Earth بدقة 1,024×1,024 بكسل، وبدقة مكانية تبلغ 0.5 متر لكل بكسل، مع 31,333 تغيّرًا في المباني محددًا.
يقارن كشف التغيّرات على مستوى الكائنات الاكتشافات بدلًا من البكسلات، متجاهلًا بذلك الظلال والتحولات الموسمية في الألوان. ويعيد نموذج الصناديق المحيطة الموجّهة من Ultralytics YOLO26، المدرّب مسبقًا على الصور الجوية لمجموعة DOTA، صناديق مدوّرة للطائرات والسفن وخزانات التخزين والمركبات؛ لذا تكشف مطابقة نتائج كشف الكائنات بين تاريخين ما وصل وما غادر.
كشف التغيّرات ومهام ذات صلة#
- كشف الحالات الشاذة يحدّد الرصود التي تنحرف عن مفهوم متعلّم لما هو طبيعي، وغالبًا ما يستند إلى صورة واحدة. أما كشف التغيّرات فيحتاج إلى رصد مرجعي، ويكون التغيّر، مثل إنشاء مبنى جديد، متوقعًا عادةً.
- يتتبّع تتبّع الكائنات والتدفق البصري الحركة بين إطارات الفيديو المتعاقبة. أما كشف التغيّرات فيقارن حالة المشهد في نقطتين زمنيتين، يفصل بينهما غالبًا أشهر أو سنوات.
- يصف انحراف البيانات تحولًا بمرور الوقت في التوزيع الإحصائي للمدخلات التي يتلقاها النموذج المنشور، ما يؤدي إلى تراجع دقته.
تطبيقات عملية#
- مراقبة إزالة الغابات والغطاء الأرضي: تشكّل خرائط الفقد السنوي للغطاء الشجري المستمدة من صور Landsat بدقة 30 مترًا، التي تنشرها University of Maryland منذ 2013، أساس Global Forest Watch.
- تقييم أضرار الكوارث: تكشف مقارنة صور الأقمار الصناعية أو الطائرات المسيّرة قبل الحدث وبعده الأراضي المغمورة والمناطق المحترقة والمباني المنهارة، ويصنّف مستودع بيانات xBD أضرار المباني على مقياس من أربع درجات باستخدام أزواج صور قبل الحدث وبعده.
- الفحص الصناعي: تقارن كاميرا ثابتة كل قطعة مجمّعة بصورة مرجعية لقطعة سليمة لاكتشاف البراغي المفقودة أو المكونات في غير مواضعها أو الأجسام الغريبة.
- الأمن والمراقبة: تطرح إزالة الخلفية، وهي شكل كشف التغيّرات المستخدم في الفيديو، المشهد الثابت عند كل بكسل، وتعامل الانحراف عنه بوصفه مقدمة متحركة؛ وهذا ما يطلق تنبيهات الحركة في الكاميرات الثابتة.










