Ця сторінка ще не перекладена українською. Показано англійську версію. Переглянути англійською

Робочий процес 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 завершено!

Згенеровані результати:

РезультатФорматРозмірРоздільність
ОртофотоGeoTIFF156 MB2.5 см/пікс
3D-мешOBJ89 MB1.2M полігонів
Хмара точокRCM234 MB4.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

Пов’язане