انتقل إلى المحتوى الرئيسي

OptimizeAT - تحسين التثليث الجوي المقيد بنقاط التحكم

نظرة عامة

تُستخدم واجهة OptimizeAT لتحسين نتائج التثليث الجوي باستخدام نقاط التحكم. يتم استدعاء هذه الواجهة بعد إكمال قياس نقاط الربط، مما يحسن الدقة المطلقة للتثليث الجوي من خلال إدخال نقاط التحكم الأرضية (GCP).

حالات الاستخدام
  • مشاريع المسح التي تتطلب دقة مطلقة عالية
  • المشاريع التي تحتوي على بيانات نقاط التحكم الأرضية
  • الحاجة إلى التحقق من دقة التثليث الجوي وتحسينها
  • المسح الهندسي ورسم الخرائط المهنية

سير العمل

استدعاء الواجهة

استدعاء سطر الأوامر

reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_config.json

وصف المعاملات

  • reconstruct_type: ثابت كـ 3 (يشير إلى OptimizeAT)
  • task_json: مسار ملف التكوين

معاملات التكوين

تستخدم OptimizeAT نفس معاملات ReconstructAT، مع معاملات نقاط التحكم الإضافية:

المعاملات المطلوبة

جميع المعاملات المطلوبة من ReconstructAT، بالإضافة إلى:

المعاملالنوعالوصف
control_pointJSONمعلومات مجموعة نقاط التحكم

هيكل بيانات نقاط التحكم

ControlPointGroup

{
"coordinate_system": { // نظام إحداثيات نقاط التحكم
"type": 3, // عادة نظام الإحداثيات المسقط
"epsg_code": 32650 // مثل، UTM Zone 50N
},
"points": [ // قائمة نقاط التحكم
// مصفوفة من كائنات ControlPoint
]
}

ControlPoint

{
"id": "GCP001", // اسم نقطة التحكم
"coordinate": [x, y, z], // إحداثيات نقطة التحكم
"usage": 0, // 0=نقطة تحكم، 1=نقطة فحص، 2=معطلة
"observations": [ // ملاحظات الصورة
{
"id": 1, // معرف الصورة
"uv": [1234.5, 2345.6] // إحداثيات البكسل
}
]
}

أمثلة التكوين الكاملة

تحسين نقاط التحكم الأساسي

{
"license_id": 9200,
"working_dir": "C:/Projects/AT_Optimize",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [...], // نفس ReconstructAT
"image_meta_data": [...], // نفس ReconstructAT
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 32650 // UTM Zone 50N
},
"points": [
{
"id": "GCP001",
"coordinate": [500123.456, 2500123.456, 123.456],
"usage": 0,
"observations": [
{
"id": 1,
"uv": [2736.5, 1824.3]
},
{
"id": 5,
"uv": [1892.7, 2104.8]
}
]
},
{
"id": "GCP002",
"coordinate": [500223.456, 2500223.456, 125.678],
"usage": 0,
"observations": [
{
"id": 3,
"uv": [3104.2, 1567.9]
},
{
"id": 7,
"uv": [2345.6, 1890.2]
}
]
},
{
"id": "CHECK001",
"coordinate": [500323.456, 2500323.456, 127.890],
"usage": 1, // نقطة فحص
"observations": [
{
"id": 2,
"uv": [1567.8, 2345.6]
}
]
}
]
}
}

تكوين مشروع المسح عالي الدقة

{
"license_id": 9200,
"working_dir": "C:/Projects/HighPrecision_AT",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [...],
"image_meta_data": [
{
"id": 1,
"path": "IMG_0001.JPG",
"meta_data": {
"pos": [114.123, 22.123, 150.0],
"pos_sigma": [0.05, 0.05, 0.10], // RTK دقة عالية
"position_constant": false // السماح بالتحسين
}
}
],
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 4978 // ECEF للدقة العالية
},
"points": [
// عدة نقاط تحكم موزعة بالتساوي
{
"id": "GCP_NW",
"coordinate": [...],
"usage": 0,
"observations": [...]
},
{
"id": "GCP_NE",
"coordinate": [...],
"usage": 0,
"observations": [...]
},
{
"id": "GCP_SW",
"coordinate": [...],
"usage": 0,
"observations": [...]
},
{
"id": "GCP_SE",
"coordinate": [...],
"usage": 0,
"observations": [...]
},
{
"id": "GCP_CENTER",
"coordinate": [...],
"usage": 0,
"observations": [...]
}
]
}
}

مبادئ وضع نقاط التحكم

1. متطلبات الكمية

  • الحد الأدنى: 3 نقاط تحكم (مطلوبة للحل)
  • موصى به: 5-8 نقاط تحكم + 2-3 نقاط فحص
  • منطقة كبيرة: على الأقل نقطة تحكم واحدة لكل 50-100 صورة

2. متطلبات التوزيع

توزيع مثالي لنقاط التحكم:

+-----+-----+-----+
| GCP | GCP | GCP |
+-----+-----+-----+
| GCP | CHK | GCP | GCP: نقطة التحكم
+-----+-----+-----+ CHK: نقطة الفحص
| GCP | GCP | GCP |
+-----+-----+-----+

3. توزيع الارتفاع

  • وضع نقاط التحكم على مستويات ارتفاع مختلفة
  • تجنب جميع نقاط التحكم على نفس المستوى
  • إيلاء اهتمام خاص لتغيرات الارتفاع في المشاريع الجبلية

متطلبات دقة القياس

دقة البيكسل

  • مثالي: < 1 بيكسل
  • مقبول: < 2 بيكسل
  • يحتاج تحسين: > 3 بيكسل

ملاحظات متعددة الرؤية

  • كل نقطة تحكم مرئية في على الأقل صورتين
  • مثالياً 3-5 صور
  • اختلاف زاوية العرض > 15°

اعتبارات نظام الإحداثيات

1. اتساق نظام الإحداثيات

{
// مواقع الصور عادة في WGS84
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},

// نقاط التحكم عادة في نظام الإحداثيات المسقط المحلي
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 32650 // اختر حسب موقع المشروع
}
}
}

2. أنظمة الإحداثيات الشائعة

المنطقةEPSGالوصف
الصين4490CGCS2000 الجغرافي
الصين4547-4554إسقاط Gauss CGCS2000
عالمي32601-32660UTM نصف الكرة الشمالي
عالمي32701-32760UTM نصف الكرة الجنوبي

تقييم الجودة

1. تفسير تقرير التحسين

بعد التحسين، تحقق من تقرير الدقة في السجلات:

[INFO] Control Point Residuals:
GCP001: 0.023m (X), 0.015m (Y), 0.041m (Z)
GCP002: 0.019m (X), 0.022m (Y), 0.038m (Z)

[INFO] Check Point Errors:
CHECK001: 0.045m (X), 0.052m (Y), 0.068m (Z)

[INFO] RMS Error: 0.048m

2. معايير الدقة

نوع المشروعالدقة الأفقيةالدقة الرأسية
رسم الخرائط الطبوغرافية< 0.05m< 0.10m
المسح الهندسي< 0.10m< 0.15m
التطبيقات العامة< 0.30m< 0.50m

أفضل الممارسات

1. جمع نقاط التحكم

  • استخدم معدات عالية الدقة مثل RTK/Total Station
  • اختر ميزات ثابتة وسهلة التعرف عليها
  • سجل أوصاف النقاط التفصيلية والصور

2. عملية القياس

  1. تحميل الصور في عارض نتائج التثليث الجوي
  2. العثور على الميزات المقابلة لنقاط التحكم
  3. تحديد مواقع البيكسل بدقة
  4. فحص الاتساق متعدد الرؤية

3. التحسين التكراري

# التحسين الأول
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v1.json

# فحص النتائج، تعديل النقاط الشاذة

# التحسين الثاني
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v2.json

4. التعامل مع المشاكل الشائعة

البقايا الكبيرة

  • فحص دقة القياس
  • التحقق من إحداثيات نقاط التحكم
  • النظر في تعيين النقطة كنقطة فحص

التحيز النظامي

  • فحص إعدادات نظام الإحداثيات
  • التحقق من نظام إحداثيات نقاط التحكم
  • النظر في مشاكل معايرة الكاميرا

نتائج الإخراج

يتم حفظ نتائج التثليث الجوي المحسنة في نفس الموقع:

  • milestones/mvs_optimized.xml - التنسيق الداخلي المحسن
  • products/AT/block_exchange_optimized.xml - تنسيق التبادل المحسن
  • log/optimization_report.txt - تقرير التحسين

مثال: سير العمل الكامل

import subprocess
import json

# 1. تنفيذ التثليث الجوي الأولي
at_config = {
"license_id": 9200,
"working_dir": "C:/Project",
# ... معاملات أخرى
}
with open("at_config.json", "w") as f:
json.dump(at_config, f)

subprocess.run(["reconstruct_full_engine.exe", "-reconstruct_type", "1", "-task_json", "at_config.json"])

# 2. إجراء قياس نقاط التحكم (عادة يتم في برنامج خارجي)

# 3. تحضير تكوين التحسين
optimize_config = at_config.copy()
optimize_config["control_point"] = {
"coordinate_system": {"type": 3, "epsg_code": 32650},
"points": [
# بيانات نقاط التحكم
]
}
with open("optimize_config.json", "w") as f:
json.dump(optimize_config, f)

# 4. تنفيذ التحسين
subprocess.run(["reconstruct_full_engine.exe", "-reconstruct_type", "3", "-task_json", "optimize_config.json"])

# 5. استخدام النتائج المحسنة للإعمار ثلاثي الأبعاد
# ...

الخطوات التالية


نصيحة: نقاط التحكم هي مفتاح ضمان دقة رسم الخرائط. الوضع المناسب لنقاط التحكم والقياس الدقيق هما أساس الحصول على نتائج عالية الدقة.