Робочий процес Site Capture
Обробка фотографій з дронів та фотозйомки об’єктів у 3D-середовища.
Огляд робочого процесу
Зйомка об’єкта
Фотографії з дрона
Наземні фотографії
360-фотографії
Завантаження RAPS
Створення фотосцени
Завантаження зображень
Обробка RC
Аерорежим
Генерація хмари точок
Реконструкція меша
Результати
Ортофото
3D-меш
Хмара точок
DSM/DTM
Підхід CLI
Крок 1: Створення аерофотосцени
# Create site capture photoscene
SCENE=$(raps rc photoscene create \
--name "Site Survey $(date +%Y-%m-%d)" \
--type "aerial" \
--output json)
SCENE_ID=$(echo "$SCENE" | jq -r '.id')
echo "Created photoscene: $SCENE_ID"
Крок 2: Завантаження фотографій з дрона
# Batch upload drone photos
find ./drone-photos -name "*.jpg" | while read photo; do
raps rc photoscene upload "$SCENE_ID" "$photo"
echo "Uploaded: $(basename "$photo")"
done
# Or with parallel upload
find ./drone-photos -name "*.jpg" -print0 | \
xargs -0 -P 4 -I {} raps rc photoscene upload "$SCENE_ID" {}
Крок 3: Обробка з аеро-налаштуваннями
# Start processing with high quality
raps rc photoscene process "$SCENE_ID" --quality high
# For large sites, use draft first
# raps rc photoscene process "$SCENE_ID" --quality draft
Крок 4: Моніторинг прогресу
while true; do
RESPONSE=$(raps rc photoscene status "$SCENE_ID" --output json)
STATUS=$(echo "$RESPONSE" | jq -r '.status')
PROGRESS=$(echo "$RESPONSE" | jq -r '.progress // 0')
echo "Status: $STATUS - Progress: $PROGRESS%"
[ "$STATUS" = "done" ] && break
[ "$STATUS" = "failed" ] && { echo "Processing failed"; exit 1; }
sleep 60
done
Крок 5: Завантаження всіх результатів
mkdir -p ./site-output
# Download orthophoto
raps rc photoscene download "$SCENE_ID" --format ortho --output ./site-output/
# Download 3D mesh
raps rc photoscene download "$SCENE_ID" --format obj --output ./site-output/
# Download point cloud
raps rc photoscene download "$SCENE_ID" --format rcm --output ./site-output/
# List all available formats
raps rc photoscene download "$SCENE_ID" --list
Конвеєр CI/CD
# .github/workflows/site-capture.yml
name: Site Capture Processing
on:
workflow_dispatch:
inputs:
site_name:
description: 'Site name for the survey'
required: true
photos_path:
description: 'Path to drone photos'
required: true
quality:
description: 'Processing quality'
default: 'high'
type: choice
options:
- draft
- medium
- high
jobs:
process-site:
runs-on: ubuntu-latest
timeout-minutes: 180
steps:
- uses: actions/checkout@v4
- name: Install RAPS
run: cargo install raps
- name: Create photoscene
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
SCENE=$(raps rc photoscene create \
--name "${{ inputs.site_name }}" \
--type "aerial" \
--output json)
SCENE_ID=$(echo "$SCENE" | jq -r '.id')
echo "SCENE_ID=$SCENE_ID" >> $GITHUB_ENV
- name: Upload photos
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
COUNT=0
for photo in ${{ inputs.photos_path }}/*.{jpg,jpeg,JPG,JPEG}; do
[ -f "$photo" ] || continue
raps rc photoscene upload "$SCENE_ID" "$photo"
COUNT=$((COUNT + 1))
echo "Uploaded: $COUNT"
done
echo "Total photos: $COUNT"
- name: Process photoscene
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
raps rc photoscene process "$SCENE_ID" --quality ${{ inputs.quality }}
- name: Wait for completion
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
MAX_WAIT=10800 # 3 hours
ELAPSED=0
while [ $ELAPSED -lt $MAX_WAIT ]; do
STATUS=$(raps rc photoscene status "$SCENE_ID" --output json | jq -r '.status')
PROGRESS=$(raps rc photoscene status "$SCENE_ID" --output json | jq -r '.progress // 0')
echo "Status: $STATUS ($PROGRESS%)"
[ "$STATUS" = "done" ] && break
[ "$STATUS" = "failed" ] && exit 1
sleep 120
ELAPSED=$((ELAPSED + 120))
done
- name: Download results
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
mkdir -p ./site-capture-output
# Download all formats
raps rc photoscene download "$SCENE_ID" --format ortho --output ./site-capture-output/
raps rc photoscene download "$SCENE_ID" --format obj --output ./site-capture-output/
raps rc photoscene download "$SCENE_ID" --format rcm --output ./site-capture-output/
- name: Upload results
uses: actions/upload-artifact@v4
with:
name: site-capture-${{ inputs.site_name }}
path: ./site-capture-output/
Потік конвеєра
Ручний запуск
site_name + photos_path
→
Налаштування
Створення аерофотосцени
→
Завантаження
Завантаження фотографій з дрона
→
Обробка
Запуск RC-обробки
Очікування завершення
→
Завантаження
Ортофото
3D-меш
Хмара точок
Інтеграція MCP
Обробка зйомки об’єкта
User: "Process the drone photos from today's site survey"
Користувач
AI-асистент
RAPS MCP
Reality Capture
Користувач→AIОбробити фотографії з дрона
AI→MCPaps_rc_photoscene_create(name, type=“aerial”)
MCP→RCСтворення фотосцени
RC←MCPScene ID
AI→AIПошук фотографій з дрона
loopAI→MCPaps_rc_photoscene_upload(scene_id, photo)
loopMCP→RCЗавантаження
AI→Користувач245 фотографій завантажено
AI→MCPaps_rc_photoscene_process(scene_id, quality=“high”)
MCP→RCЗапуск обробки
AI→КористувачОбробку розпочато (прибл. 45 хв)
Відповідь AI:
Обробка зйомки об’єкта з фотографій дрона:
Фотосцена: Site Survey 2024-02-15 Фотографій: 245 завантажено Площа покриття: ~2.5 акри Якість: Висока
Статус: Обробка Прогрес: 23% Приблизний час: 35 хвилин залишилось
Я повідомлю вас, коли буде завершено.
Перевірка результатів
User: "Is the site capture done? What outputs do we have?"
Відповідь AI:
Обробку Site Survey 2024-02-15 завершено!
Згенеровані результати:
Результат Формат Розмір Роздільність Ортофото GeoTIFF 156 MB 2.5 см/пікс 3D-меш OBJ 89 MB 1.2M полігонів Хмара точок RCM 234 MB 4.5M точок Метрики якості:
- Вирівнювання фото: 243/245 (99%)
- Покриття: 100%
- Якість реконструкції: Відмінна
Готово до завантаження. Куди зберегти файли?
Найкращі практики
Планування польоту дрона
For best results:
- 70-80% front overlap
- 60-70% side overlap
- Consistent altitude (100-400 ft typical)
- Include oblique shots around edges
- Fly on overcast days (consistent lighting)
Вимоги до фотографій
# Minimum recommended:
# - 50+ photos for small sites
# - 100-300 for medium sites
# - 300+ for large sites
# Check photo count before processing
PHOTO_COUNT=$(find ./drone-photos -name "*.jpg" | wc -l)
echo "Photo count: $PHOTO_COUNT"
if [ "$PHOTO_COUNT" -lt 50 ]; then
echo "Warning: Low photo count may affect quality"
fi
Компроміс між якістю та швидкістю
# Draft: Quick preview (10-15 min)
raps rc photoscene process "$SCENE_ID" --quality draft
# Medium: Balanced (30-45 min)
raps rc photoscene process "$SCENE_ID" --quality medium
# High: Best quality (60+ min)
raps rc photoscene process "$SCENE_ID" --quality high