ReconstructAT - المثلثة الجوية
نظرة عامة
واجهة ReconstructAT تستخدم لأداء المثلثة الجوية (Aerotriangulation)، وهي الواجهة المفضلة للمستخدمين المحترفين الذين يحتاجون إلى تحكم دقيق. توفر هذه الواجهة إعدادات تفصيلية للمعاملات وتدعم ميزات متقدمة مثل تجميع الكاميرات، واستيراد POS، واستيراد نقاط التحكم.
السيناريوهات المناسبة
- تحتاج إلى تحكم دقيق في معاملات المثلثة الجوية
- تحتاج إلى فحص وتحسين نتائج المثلثة الجوية
- إعادة بناء نظام متعدد الكاميرات
- تحتاج إلى دمج نقاط التحكم
استخدام الواجهة
استخدام سطر الأوامر
reconstruct_full_engine.exe -reconstruct_type 1 -task_json at_config.json
وصف المعاملات
reconstruct_type
: ثابت كـ1
(يشير إلى ReconstructAT)task_json
: مسار ملف التكوين
معاملات التكوين
المعاملات المطلوبة
المعامل | النوع | الوصف |
---|---|---|
license_id | int | رمز ترخيص SDK، موحد كـ 9200 |
working_dir | string | دليل العمل للملفات الوسطية والنتائج النهائية |
gdal_folder | string | مسار بيانات GDAL (مجلد البيانات الخارجية لـ SDK) |
coordinate_system | JSON | نظام الإحداثيات لمواقع الصور المدخلة |
image_meta_data | JSON Array | معلومات البيانات الوصفية للصور المدخلة |
camera_meta_data | JSON Array | معلومات البيانات الوصفية للكاميرا |
المعاملات الاختيارية
المعامل | النوع | الافتراضي | الوصف |
---|---|---|---|
input_image_type | int | 1 | نوع الصورة: 1=RGB، 2=متعدد الأطياف، 3=الأشعة تحت الحمراء |
remove_small_part | bool | false | ما إذا كان سيتم إزالة المكونات المتصلة الصغيرة من نتائج AT |
output_tie_point_las | bool | false | ما إذا كان سيتم إخراج نقاط الربط بصيغة LAS |
output_block_change_xml | bool | true | ما إذا كان سيتم إخراج نتائج AT بصيغة ContextCapture XML |
coordinate_system_AT | JSON | - | نظام الإحداثيات لنتائج AT بصيغة XML الإخراج |
fast_mode | bool | false | الوضع السريع، مناسب للبيانات مع GPS |
use_image_position_constraint | bool | true | ما إذا كان سيتم استخدام معلومات موقع الصورة كقيود |
use_voc_index | bool | true | ما إذا كان سيتم استخدام استرجاع الصور للبحث عن أزواج المطابقة |
use_spatial_index | bool | true | ما إذا كان سيتم استخدام مسافة GPS للبحث عن أزواج المطابقة |
وصف هيكل البيانات
البيانات الوصفية للصور
{
"id": 1, // معرف فريد للصورة
"path": "path/to/image.jpg", // مسار الصورة المطلق
"group": "camera_1", // معرف مجموعة الكاميرا (اختياري)
"meta_data": { // معلومات الصورة (مطلوب)
"width": 6000, // عرض الصورة (بكسل)
"height": 4000, // ارتفاع الصورة (بكسل)
"camera_id": 1, // معرف الكاميرا المقابل (اختياري، إذا تم توفير معامل 'pre_calib_param' فسيتم استبداله ببيانات وصف الكاميرا)
"pos": [lon, lat, alt], // الموقع [خط الطول، خط العرض، الارتفاع]
"pos_sigma": [1.0, 1.0, 2.0], // دقة الموقع (أمتار)
"orientation": [...], // مصفوفة الدوران (9 قيم، اختياري)
"position_constant": false, // ما إذا كان سيتم تثبيت الموقع
"relative_altitude": 100.0, // ارتفاع الطيران النسبي (اختياري)
"focal_length_in_35mm": 24, // البعد البؤري المعادل لـ 35 مم
"pre_calib_param": [...], // معاملات المعايرة المسبقة (اختياري، إذا تم توفير معامل 'focal_length_in_35mm' فسيتم استبداله)
"dewarp_flag": false // علامة تصحيح التشويه (اختياري، من بيانات DJI XMP)
}
}
البيانات الوصفية للكاميرا
{
"id": 1, // معرف فريد للكاميرا
"meta_data": {
"camera_name": "DJI FC6310", // اسم الكاميرا
"width": 6000, // عرض المستشعر (بكسل)
"height": 4000, // ارتفاع المستشعر (بكسل)
"parameters": [ // خصائص الكاميرا الداخلية (اختياري، مصفوفة من 10 عناصر، placeholder_param هو معامل نائب حاليًا)
// fx, fy, cx, cy, k1, k2, p1, p2, k3,placeholder_param
]
}
}
نظام الإحداثيات
{
"type": 2, // 0=LocalENU، 1=Local، 2=Geographic، 3=Projected، 4=ECEF
"epsg_code": 4326, // رمز EPSG (مطلوب لـ Geographic/Projected/ECEF)
"wkt": "...", // سلسلة WKT (يمكن أن تحل محل epsg_code)
"origin_point": [lon, lat, alt], // أصل LocalENU (مطلوب فقط لـ type=0)
"offset": [0, 0, 0] // الإزاحة بالنسبة لأصل نظام الإحداثيات
}
أمثلة تكوين كاملة
تكوين المثلثة الجوية الأساسية
{
"license_id": 9200,
"working_dir": "C:/Projects/AT_Task",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "DJI FC6310",
"width": 5472,
"height": 3648
}
}
],
"image_meta_data": [
{
"id": 1,
"path": "C:/Images/DJI_0001.JPG",
"meta_data": {
"width": 5472,
"height": 3648,
"camera_id": 1,
"pos": [114.123456, 22.123456, 100.5],
"pos_sigma": [2.0, 2.0, 3.0]
}
},
{
"id": 2,
"path": "C:/Images/DJI_0002.JPG",
"meta_data": {
"width": 5472,
"height": 3648,
"camera_id": 1,
"pos": [114.123556, 22.123456, 100.8],
"pos_sigma": [2.0, 2.0, 3.0]
}
}
],
"output_tie_point_las": true,
"output_block_change_xml": true
}
تكوين مجموعة متعددة الكاميرات
{
"license_id": 9200,
"working_dir": "C:/Projects/MultiCamera_AT",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "Camera_Nadir",
"width": 6000,
"height": 4000
}
},
{
"id": 2,
"meta_data": {
"camera_name": "Camera_Oblique",
"width": 6000,
"height": 4000
}
}
],
"image_meta_data": [
{
"id": 1,
"path": "nadir/IMG_0001.JPG",
"group": "nadir",
"meta_data": {
"width": 6000,
"height": 4000,
"camera_id": 1,
"pos": [114.123456, 22.123456, 200.0],
"pos_sigma": [0.05, 0.05, 0.10]
}
},
{
"id": 2,
"path": "oblique/IMG_0001.JPG",
"group": "oblique_forward",
"meta_data": {
"width": 6000,
"height": 4000,
"camera_id": 2,
"pos": [114.123456, 22.123456, 200.0],
"pos_sigma": [0.05, 0.05, 0.10]
}
}
],
"fast_mode": true
}
تكوين RTK/PPK عالي الدقة
{
"license_id": 9200,
"working_dir": "C:/Projects/RTK_AT",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "DJI P1",
"width": 8192,
"height": 5460,
"parameters": [8839.5, 8839.5, 4096, 2730, 0, 0, 0, 0, 0, 0]
}
}
],
"image_meta_data": [
{
"id": 1,
"path": "C:/RTK_Images/IMG_0001.JPG",
"meta_data": {
"width": 8192,
"height": 5460,
"camera_id": 1,
"pos": [114.12345678, 22.12345678, 150.123],
"pos_sigma": [0.02, 0.02, 0.05], // RTK عالي الدقة
"orientation": [
// مصفوفة دوران 3x3 (إذا كانت بيانات IMU متاحة)
]
}
}
],
"use_image_position_constraint": true
}
نتائج الإخراج
بعد اكتمال المثلثة الجوية، سيتم إنشاء التالي في دليل العمل:
1. دليل النتائج الوسطية (milestones/
)
mvs.xml
- نتائج المثلثة الجوية بالصيغة الداخليةmvs_undistort.xml
- نتائج المثلثة الجوية غير المشوهةroi.json
- منطقة الاهتمام المحسوبة تلقائياًcs.json
- معلومات نظام الإحداثياتtie_points.las
- سحابة نقاط الربط (إذا تم تمكينها)
2. نتائج التصدير (products/AT/
)
block_exchange.xml
- نتائج المثلثة الجوية بصيغة ContextCapture (إذا تم تمكينها)
3. ملفات السجل (log/
)
log.txt
- سجل المعالجة التفصيلي
وصف استخدام ROI
roi.json
المُنشأ بعد المثلثة الجوية يحتوي على ثلاثة أنواع من ROI:
{
"rois": [
{
"type": "Smart", // محسوب بذكاء بناءً على النقاط المتناثرة
"roi": {
"boundary": [...], // رؤوس الحدود ثنائية الأبعاد
"min_z": 100.0, // الحد الأدنى للارتفاع
"max_z": 200.0 // الحد الأقصى للارتفاع
}
},
{
"type": "Maximal", // بناءً على مواقع الصور والنقاط المتناثرة
"roi": {...}
},
{
"type": "Frustum", // بناءً على مخاريط الصور
"roi": {...}
}
]
}
أفضل الممارسات
1. إعداد الصور
- تأكد من أن EXIF للصور يحتوي على معلومات GPS كاملة
- التداخل الموصى به للصور >60%
- تجنب الصور الضبابية أو المفرطة التعرض
2. تحسين المعاملات
- GPS القياسي: استخدم
pos_sigma
الافتراضي [2.0, 2.0, 3.0] - RTK/PPK: قم بتعيين
pos_sigma
أصغر مثل [0.05, 0.05, 0.10] - الوضع السريع: مكّن
fast_mode
عندما يكون GPS متاحاً
3. معالجة متعددة الكاميرات
- استخدم معامل
group
لتحديد كاميرات مختلفة - استخدم
camera_id
مستقل لكل مجموعة كاميرا - تأكد من دقة معاملات الكاميرا
4. تحسين مجموعة البيانات الكبيرة
- مكّن
fast_mode
لتسريع المعالجة - فكر في استخدام
remove_small_part
لتنظيف النتائج - قم بتعيين حدود استخدام ذاكرة معقولة
الأسئلة الشائعة
س: فشلت المثلثة الجوية مع "عدم كفاية مطابقة الصور"
ج: تحقق من:
- هل تداخل الصور كافٍ (>60%)
- هل معلومات GPS دقيقة
- هل جودة الصور جيدة
س: كيفية تحسين دقة المثلثة الجوية؟
ج:
- استخدم بيانات POS عالية الدقة (RTK/PPK)
- قم بتعيين قيم
pos_sigma
مناسبة - استخدم OptimizeAT لإضافة نقاط التحكم
س: كيفية إعداد أنظمة متعددة الكاميرات؟
ج:
- أنشئ
camera_meta_data
مستقل لكل كاميرا - استخدم معامل
group
لتمييز الصور من كاميرات مختلفة - تأكد من دقة خصائص الكاميرا الداخلية
الخطوات التالية
- استخدم OptimizeAT لتحسين نتائج المثلثة الجوية
- استخدم Reconstruct3D لإعادة البناء ثلاثي الأبعاد
- تحقق من المفاهيم الأساسية لفهم سير العمل الكامل
ملاحظة: ReconstructAT توفر أقصى مرونة، ولكنها تتطلب أيضاً إعدادات معاملات أكثر. إذا كنت تحتاج فقط إلى إعادة بناء سريعة، نوصي باستخدام ReconstructFull.