البداية السريعة
سيساعدك هذا الدليل على البدء بسرعة مع MipMapEngine SDK. نحن نوفر نصوص أمثلة كاملة تسمح لك بتشغيل أول مهمة إعادة بناء ثلاثية الأبعاد في دقائق.
📋 المتطلبات الأساسية
قبل البدء، يرجى التأكد من:
- ✅ تثبيت SDK (انظر دليل التثبيت)
- ✅ تفعيل الترخيص الخاص بك
🚀 التجربة السريعة: استخدام نصوص أمثلة SDK
يوفر SDK أمثلة كاملة ونصوص تشغيل بنقرة واحدة في دليل example:
example/
├── 1_reconstruct_full_basic.json # مثال الإعادة البناء الأساسي
├── 2_group_cameras.json # مثال مجموعة الكاميرات المتعددة
├── 3_custom_image_pos.json # مثال الموضع المخصص
├── sample-images/ # صور العينة
├── Step1_Hardware_Check_EN.bat
├── Step2_License_Manager_EN.bat
├── Step3_Run_Example1_Basic_Drone_Reconstruction_EN.bat
├── Step4_Run_Example2_Multi_Camera_Groups_EN.bat
└── Step5_Custom_Image_Positions_EN.bat
تشغيل أول إعادة بناء
Step3_Run_Example1_Basic_Drone_Reconstruction_EN.bat
سيقوم النص تلقائيًا بـ:
- استخدام صور العينة من
sample-images - إنشاء دليل المخرجات
- بدء عملية إعادة البناء ثلاثية الأبعاد
- توليد النتائج بتنسيقات متعددة
🎯 تفاصيل الأمثلة
المثال 1: إعادة البناء الأساسية للطائرة بدون طيار
هذه هي أبسط طريقة للاستخدام، مناسبة لصور الطائرات بدون طيار الجوية القياسية.
الميزات:
- ✅ تكوين أدنى، جاهز للاستخدام مباشرة، مناسب لمعظم التطبيقات
- ✅ متوافق بسلاسة مع طائرات DJI المسحية السائدة
ملف التكوين (1_reconstruct_full_basic.json):
{
"working_dir": "./output/reconstruct_full_basic",
"gdal_folder": "../gdal_data",
"input_image_type": 1,
"resolution_level": 3,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
"image_meta_data": [
{
"id": 1,
"path": "../sample-images/DJI_20250507103417_0124_V.JPG"
},
{
"id": 2,
"path": "../sample-images/DJI_20250507103421_0125_V.JPG"
}
// ... المزيد من الصور
],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_las": true,
"generate_obj": true,
"generate_geotiff": true
}
التشغيل اليدوي:
reconstruct_full_engine.exe -reconstruct_type 0 -task_json 1_reconstruct_full_basic.json
المثال 2: إعادة بناء مجموعة الكاميرات المتعددة
مناسب لكاميرات مائلة متعددة العدسات أو عمليات التعاون متعددة الطائرات بدون طيار.
Step4_Run_Example2_Multi_Camera_Groups_EN.bat
سيناريوهات التطبيق:
- 🔸 أنظمة الكاميرا المائلة خماسية العدسات
- 🔸 عمليات التعاون متعددة الطائرات بدون طيار
- 🔸 مجموعات كاميرات ذات أطوال بؤرية مختلفة
- 🔸 جمع مشترك أرضي + جوي
التكوين الرئيسي:
{
"image_meta_data": [
{
"id": 1,
"path": "image1.jpg",
"group": "camera_1" // تجميع الكاميرا
},
{
"id": 2,
"path": "image2.jpg",
"group": "camera_2" // مجموعة كاميرا مختلفة
}
]
}
المثال 3: مواضع الصور المخصصة
مناسب لتحديد المواقع عالي الدقة أو السيناريوهات بدون GPS.
Step5_Custom_Image_Positions_EN.bat
سيناريوهات التطبيق:
- 📍 بيانات تحديد المواقع عالية الدقة PPK/RTK
- 📍 البيئات الداخلية أو ذات إشارة GPS ضعيفة
- 📍 الحاجة إلى تخصيص أوزان دقة الموضع
التكوين الرئيسي:
{
"image_meta_data": [
{
"id": 1,
"path": "image.jpg",
"meta_data": {
"width": 4000,
"height": 3000,
"pos": [114.123456, 22.123456, 100.5], // [خط الطول، خط العرض، الارتفاع]
"pos_sigma": [0.03, 0.03, 0.06] // [دقة X، دقة Y، دقة Z] بالأمتار
}
}
]
}
مرجع الدقة:
| طريقة تحديد الموقع | دقة X/Y (م) | دقة Z (م) | سيناريو التطبيق |
|---|---|---|---|
| RTK/PPK حل ثابت | 0.02-0.05 | 0.05-0.10 | مسح عالي الدقة |
| GPS عادي | 2-5 | 3-8 | التطبيقات العامة |
📊 عرض نتائج المخرجات
بعد اكتمال إعادة البناء، سيحتوي دليل المخرجات على:
- 📁
3D/- نماذج ثلاثية الأبعادmodel-b3dm/- 3D Tiles (Cesium)model-osgb/- تنسيق OSGBmodel-obj/- تنسيق OBJpoint-las/- سحابة نقاط LAS
- 📁
2D/- منتجات ثنائية الأبعادdom_tiles/- بلاطات الصور الجوية المصححةdsm_tiles/- بلاطات نموذج السطح الرقميgeotiffs/- تنسيق GeoTIFF
- 📁
AT/- نتائج AT - 📁
report/- تقرير الجودة - 📁
logs/log.txt- سجل المعالجة
🛠️ مولد التكوين التفاعلي
إذا كنت لا تريد كتابة ملفات تكوين JSON يدويًا، يمكنك استخدام أداتنا التفاعلية لإنشائها بسرعة:
🔧 منشئ التكوين التفاعلي
استخدم النموذج أدناه لإنشاء ملف التكوين الخاص بك:
الإعدادات الأساسية
معلمات المعالجة
إعدادات نظام الإحداثيات
تنسيقات الإخراج
نموذج ثلاثي الأبعاد
سحابة نقاط
صورة أرثوفوتو ثنائية الأبعاد
تنسيقات أخرى
خيارات متقدمة
خيارات 3D Tiles
خيارات 2D Tiles
نقاط التحكم الأرضية (GCP)
نظام الإحداثيات للإخراج (اختياري)
ملف التكوين الناتج
احفظ الملف JSON التالي كـ task.json:
{
"license_id": 9200,
"working_dir": "C:/Projects/MyProject",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"coordinate_system": {
"type": 2,
"type_name": "Geographic",
"label": "WGS 84",
"epsg_code": 4326
},
"generate_obj": false,
"generate_ply": false,
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_fbx": false,
"generate_las": false,
"generate_pc_ply": false,
"generate_pc_osgb": false,
"generate_pc_pnts": false,
"generate_gs_ply": false,
"generate_gs_splats": false,
"generate_geotiff": true,
"generate_tile_2D": true,
"generate_2D_from_3D_model": false,
"generate_dsm_tile": false,
"fast_mode": false,
"use_image_position_constraint": true,
"min_avali_memory_size": 16,
"output_block_change_xml": false,
"output_tie_point_las": false,
"keep_undistort_images": false,
"use_draco_compression": true,
"tex_image_type_3dtiles": 0,
"use_gcj02": false,
"image_meta_data": [
{
"id": 1,
"path": "path/to/image1.jpg"
},
{
"id": 2,
"path": "path/to/image2.jpg"
}
]
}
تحقق وشغّل
1. تحقق أولاً من ملف التكوين:
task_json_check.exe -task_json task.json
2. بعد التحقق، قم بتشغيل عملية إعادة البناء:
reconstruct_full_engine.exe -reconstruct_type 0 -task_json task.json
🎯 تخصيص مشروعك الأول
بناءً على الأمثلة، قم بإنشاء ملف التكوين الخاص بك:
1. نسخ تكوين المثال
copy 1_reconstruct_full_basic.json my_project.json
2. تعديل مسارات الصور
قم بتحرير my_project.json وتغيير مسارات الصور إلى صورك:
{
"image_meta_data": [
{
"id": 1,
"path": "C:/MyImages/DJI_0001.JPG"
},
{
"id": 2,
"path": "C:/MyImages/DJI_0002.JPG"
}
// ... أضف جميع الصور
]
}
3. التحقق من ملف التكوين
قبل تشغيل إعادة البناء، استخدم أداة task_json_check.exe للتحقق من ملف التكوين:
task_json_check.exe my_project.json
إذا كانت هناك أخطاء في ملف التكوين، ستعرض الأداة رسائل خطأ محددة. الأخطاء الشائعة تشمل:
- مسار الصورة غير موجود
- خطأ في معلمة نظام الإحداثيات
- حقول مطلوبة مفقودة
4. تشغيل إعادة البناء
بعد اجتياز ملف التكوين للتحقق، قم بتنفيذ مهمة إعادة البناء:
reconstruct_full_engine.exe -reconstruct_type 0 -task_json my_project.json
📊 مراقبة التقدم
مخرجات وحدة التحكم
تعرض خطوات المعالجة ونسبة التقدم.
ملف السجل
output/logs/log.txt يحتوي على معلومات معالجة مفصلة.
نص مراقبة التقدم
import re
import time
def monitor_progress(log_file):
with open(log_file, 'r') as f:
while True:
line = f.readline()
if '[PROGRESS]' in line:
match = re.search(r'\[PROGRESS\] (\d+)%', line)
if match:
print(f"التقدم الحالي: {match.group(1)}%")
time.sleep(1)
monitor_progress("output/logs/log.txt")
❓ المشاكل الشائعة
س: فشلت إعادة البناء مع "عدد غير كافٍ من الصور"
ج: تأكد من:
- توفير 5 صور على الأقل
- تداخل كافٍ بين الصور (يُوصى بأكثر من 60%)
- احتواء الصور على معلومات GPS أو توفير المواضع يدويًا
س: كيف يمكن تحسين جودة إعادة البناء؟
ج: اضبط مستوى الدقة:
"resolution_level": 1 // استخدم أعلى دقة
س: إعادة البناء بطيئة جدًا؟
ج: استراتيجيات التحسين:
- استخدم
resolution_level: 3للمعاينة السريعة - تفعيل
fast_mode: true - النظر في استخدام معالجة الكتل
💡 نصائح عملية
توليد التكوين الدفعي
للحصول على عدد كبير من الصور، استخدم النصوص لإنشاء التكوينات تلقائيًا:
import json
import os
from glob import glob
def create_task_json(image_folder, output_file):
images = glob(os.path.join(image_folder, "*.JPG"))
task_config = {
"working_dir": "./output/my_project",
"gdal_folder": "../gdal_data",
"input_image_type": 1,
"resolution_level": 2,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
"image_meta_data": []
}
for idx, img_path in enumerate(images, 1):
task_config["image_meta_data"].append({
"id": idx,
"path": img_path.replace("\\", "/")
})
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(task_config, f, indent=2, ensure_ascii=False)
print(f"تم إنشاء ملف التكوين: {output_file}")
print(f"يحتوي على {len(images)} صورة")
# الاستخدام
create_task_json("C:/MyImages", "batch_task.json")
🚀 الخطوات التالية
تهانينا! لقد أتقنت الاستخدام الأساسي لـ MipMapEngine SDK. بعد ذلك يمكنك:
- 📚 تعلم المفاهيم الأساسية - فهم عميق لمبادئ إعادة البناء ثلاثية الأبعاد
- 🔧 التحقق من مرجع API - استكشاف المزيد من الميزات المتقدمة
- 💡 مراجعة المفاهيم الأساسية - فهم عميق لمبادئ إعادة البناء ثلاثية الأبعاد
- 🎯 تجربة معالجة المشاهد الخاصة - السيناريوهات الصعبة مثل النسيج الضعيف، معدل التداخل المنخفض
تحتاج إلى مساعدة؟ تحقق من دليل استكشاف الأخطاء وإصلاحها أو اتصل بالدعم الفني.