Budżet: 27000 UAH Termin: 30 dni
Mogę wykonać to zadanie, pisz na PW ....
Mam doświadczenie w pracy z CUDA
Podsumowanie
Zbuduj minimalne, ale skalowalne SDK dla niestandardowej kamery stereo, która zapewnia:
interfejs rozbieżności do podłączenia (algorytmy: SGBM, LightStereo, CREStereo; MVP: LightStereo CPU + LightStereo CUDA),
prosty widok (stereo + głębokość), oraz
Dostarcz MVP w 3 tygodnie, gotową do produkcji strukturę, jasne punkty rozszerzeń i CI. SDK musi być zaprojektowane tak, aby stało się wieloplatformowe i niezależne od języka (przyszłe powiązania dla Pythona, Rusta, Javy).
Zakres docelowego MVP (3 tygodnie)
Platformy (MVP)
Główne dev/test: Linux x86_64 (Ubuntu 22.04 lub 24.04).
Opcjonalne (mile widziane, jeśli czas pozwoli): Windows 11.
GPU: NVIDIA CUDA (12.x) dla wariantu LightStereo CUDA (jeśli GPU jest obecne). Wymagany tylko CPU.
Główne moduły
Abstrakcja silnika rozbieżności
Implementacje MVP:
LightStereoCPU (brak GPU)
LightStereoCUDA (CUDA 12.x)
Tylko stuby (brak implementacji) dla SGBM i CREStereo w celu zademonstrowania punktów rozszerzeń (zwróć „nie zaimplementowano”, ale skompiluj).
Widok (prosty)
Minimalny interfejs użytkownika
Panele:
Widok stereo na żywo (lewy/prawy skorygowany).
Widok głębokości: kolorowana głębokość, z suwakiem zakresu dynamicznego + kliknij, aby zbadać piksel, aby pokazać głębokość (m) i rozbieżność.
Nakładka FPS + opóźnienia.
Wybór źródła (Dummy folder / placeholder API kamery).
Wybór algorytmu (LightStereo CPU/CUDA).
Nagrywanie/Odtwarzanie:
Opcjonalne, jeśli czas pozwoli: zapisz/odczytaj prosty format zestawu danych (pngs + znaczniki czasu + json).
Publiczne API C (dla przyszłych powiązań językowych)
Zapewnij cienką warstwę C na szczycie rdzenia C++
Demonstracyjne powiązanie Pythona za pomocą pybind11 wokół API C. To udowadnia wielojęzyczną wykonalność teraz; Rust/Java zostaną dodane później, używając tego samego ABI C.
Cele, które nie są celem (MVP)
Pełna parytet wieloplatformowy (macOS, ARM) — tylko zaprojektuj to.
Integracja sterownika kamery klasy produkcyjnej — użyjemy teraz czystego interfejsu i źródła zastępczego.
Zaawansowane funkcje UI (narzędzia ROI, chmura punktów 3D) — mogą być przyszłą pracą.
Stos technologiczny
Język: C++20 dla rdzenia; ABI C dla FFI; minimalne opakowania C.
Budowanie: CMake (eksportowane cele, find_package gotowe).
Wizja komputerowa: OpenCV 4.8+.
GPU: CUDA 12.x (opcjonalnie w czasie wykonywania).
UI: Dear ImGui + GLFW (lub Qt 6, jeśli wykonawca woli, ale musi zachować czystość warstw).
Powiązania: pybind11 (demonstracja MVP).
Testowanie: GoogleTest + testy oparte na danych; clang-format/clang-tidy.
CI: GitHub Actions (budowa Linux + testy jednostkowe; opcjonalnie Windows).
Wyniki
Repozytorium kodu źródłowego.
Skrypty budowania (CMake) i README z:
wymagania wstępne, budowanie, uruchamianie i przykładowe polecenia,
jak wywołać API C i powiązanie Pythona.
Narzędzia CLI
stereo_viewer (uruchom widok; wybierz algorytm; pokaż stereo+głębokość).
stereo_benchmark (opcjonalnie: mierzy FPS/opóźnienie na przykładowych danych).
Demonstracja Pythona
Minimalny przykład examples/python/run_lightstereo.py ładujący dwa obrazy + kalibrację (hardcodowaną) i zwracający głębokość.
Testy jednostkowe
Spójność prostokątów.
Testy dymne API rozbieżności dla wariantów CPU/CUDA.
Pipeline CI (budowa Linux + testy).
Dokumentacja
Referencja API (pliki doxygen lub md).
Diagram przeglądu architektury.
Przewodnik po rozszerzeniach: „Jak dodać nową implementację IDisparity”.
Artefakty wydania
libstereo_sdk.so (lub .dll), narzędzia CLI i koło Pythona dla Linux (cp310+).
Harmonogram i kamienie milowe (3 tygodnie)
Tydzień 1
Szkielet repozytorium, CMake, typy rdzeniowe, szkielet API C.
Tydzień 2
Interfejs IDisparity + implementacja LightStereoCPU.
Widok (stereo + głębokość; wybór; nakładka FPS).
Powiązanie Pythona (ścieżka uruchomienia), wstępne testy, CI.
Tydzień 3
Implementacja LightStereoCUDA i wybór w czasie wykonywania.
Stabilizacja API C; dokumenty; przykłady.
Przegląd wydajności; testy jednostkowe; pakowanie i dostawa.
Kwalifikacje wykonawcy
Silne umiejętności w C++ (C++17/20) i CMake.
Doświadczenie z OpenCV.
Doświadczenie z modelami głębokimi/rozbieżności (LightStereo/CREStereo/SGBM) oraz jądrami CUDA lub wdrożeniem.
Znajomość FFI i budowania ABI C dla powiązań Pythona/Rusta/Javy.
Komfort w Dear ImGui (lub Qt) do szybkich widoków.
Bonus: pakowanie (koła Pythona), budowy Windows, architektury wtyczek.
Budżet: 27000 UAH Termin: 30 dni
Mogę wykonać to zadanie, pisz na PW ....
Mam doświadczenie w pracy z CUDA
Budżet: 27000 UAH Termin: 4 dni
Witaj! Jestem gotów zrealizować ten projekt, mam duże doświadczenie w tworzeniu różnych aplikacji.