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.
Aktualne zlecenia dla freelancerów w kategorii C i C++
Rozwój oprogramowania dla Arduino (moduły RF 3–7,5 GHz, automatyczne skanowanie częstotliwości)Należy opracować system na Arduino do automatycznego wyszukiwania aktywnego analogowego sygnału wideo oraz automatycznego dostosowywania nadajnika do wykrytej częstotliwości.Planowane jest wykorzystanie trzech oddzielnych modułów odbiorczo-nadajnych: 3000–4200 MHz; 4900–6000… C i C++, Systemy wbudowane i mikrokontrolery ∙ 12 godzin 35 minut temu ∙ 4 oferty |
Czarna Ukraina (projekt RP na bazie MTA)
4237 PLN
|
Inżynier infrastruktury proxy mieszkalnychBudujemy sieć proxy dla użytkowników od podstaw — w pełni własną, bez dostawców zewnętrznych. Potrzebujemy jednego wyjątkowego inżyniera sieci, który zbuduje całą podstawę techniczną. Co zbudujesz: - SDK w tle dla Androida, które kieruje ruch proxy przez urządzenia użytkowników… C i C++, DevOps ∙ 6 dni 8 godzin temu ∙ 13 ofert |
Dobrobka w istniejącej wersji 1c detalicznego bloku dla RC (centrum dystrybucji)Ogólnie wyjaśnię, co mamy za bazę - jest ogólny serwer, gdzie znajduje się baza Detal (gdzie rejestrowane są wszystkie przychody) - baza UTP, do której przelewają się wszystkie sprzedaże - liczy się marża, stany magazynowe - małe bazy detalicznych sklepów. W przypadku wymian,… C i C++, C# ∙ 6 dni 23 godziny temu ∙ 6 ofert |
Mistrzowska program «KONSTRUCTOR»
15 253 PLN
Szukamy bardzo doświadczonego programisty C++ do modernizacji istniejącego oprogramowania (programu głównego). Program odpowiada za tworzenie pochodnego oprogramowania reprezentującego sesje audiowizualnej korekcji psychologicznej. Obecna wersja jest napisana w czystym WinAPI… C i C++, Aplikacje desktopowe ∙ 12 dni 2 godziny temu ∙ 20 ofert |