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_point | JSON | معلومات مجموعة نقاط التحكم |
هيكل بيانات نقاط التحكم
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 | الوصف |
---|---|---|
الصين | 4490 | CGCS2000 الجغرافي |
الصين | 4547-4554 | إسقاط Gauss CGCS2000 |
عالمي | 32601-32660 | UTM نصف الكرة الشمالي |
عالمي | 32701-32760 | UTM نصف الكرة الجنوبي |
تقييم الجودة
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. عملية القياس
- تحميل الصور في عارض نتائج التثليث الجوي
- العثور على الميزات المقابلة لنقاط التحكم
- تحديد مواقع البيكسل بدقة
- فحص الاتساق متعدد الرؤية
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. استخدام النتائج المحسنة للإعمار ثلاثي الأبعاد
# ...
الخطوات التالية
- استخدم نتائج التثليث الجوي المحسنة لـ Reconstruct3D
- تعلم عن معالجة تجزيء البيانات واسعة النطاق
- تحقق من المفاهيم الأساسية لفهم استخدام نقاط التحكم
نصيحة: نقاط التحكم هي مفتاح ضمان دقة رسم الخرائط. الوضع المناسب لنقاط التحكم والقياس الدقيق هما أساس الحصول على نتائج عالية الدقة.