SpaceOS

nowy poziom doświadczenia AR

Zobacz video

W xBerry od dawna rozumiemy, że przyszłość jest teraz. Kiedy klient poprosił nas o połączenie zaawansowanych technologii z najlepszym sprzętem, aby stworzyć innowacyjne podejście do rzeczywistości rozszerzonej (AR), wiedzieliśmy, że ten projekt idealnie pasuje do naszej wiedzy i umiejętności. W xBerry przyczyniamy się do transformacji technologicznej naszej rzeczywistości – sprawdźcie, jak wykorzystaliśmy nasze doświadczenie do realizacji tego nowatorskiego projektu.

Scroll pageg icon

Wyzwanie

Szwedzki startup szukał sposobu, aby wnieść rozszerzoną rzeczywistość na wyższy poziom.

 

Pomysł był złożony – nasz klient potrzebował praktycznego, lecz wręcz futurystycznego systemu, który umożliwiłby użytkownikom interakcję z interfejsami i obiektami wyświetlanymi w AR za pomocą gestów rąk.

 

W xBerry zawsze poszukujemy najlepszych rozwiązań nawet dla najbardziej skomplikowanych zadań. Projekt SpaceOS wyjątkowo przypał nam do gustu – jego złożoność niosła bowiem za sobą wiele technologicznych wyzwań.

 

Aby zaprojektować odpowiedni system, musieliśmy rozwiązać wiele problemów – począwszy od mapowania środowiska w czasie rzeczywistym, aż po kompatybilność ze sprzętem innych producentów i zaawansowany system wykrywania ruchów rąk.

 

Wyposażeni w naszą wiedzę i unikatowe doświadczenie, zakasaliśmy rękawy i stworzyliśmy najlepiej dopasowane rozwiązanie SpaceOS.

Cele

Przede wszystkim musieliśmy zadbać, aby nasz system zdolny był do śledzenia środowiska w czasie rzeczywistym, wykorzystując mapowanie z użyciem wielu kamer.

Aby umożliwić kompatybilność zewnętrznego sprzętu z naszym rozwiązaniem, dokonaliśmy modyfikacji jądra Linux oraz biblioteki libinput. Aplikacja musiała być kompatybilna ze wszystkimi aplikacjami dla Linuxa, które obsługują protokół Wayland.

 

Następnie połączyliśmy stereoskopową kamerę z kamerą głębi opartą na podczerwieni. Stereoskopowa kamera wyodrębniała cechy wizualne obiektu, podczas gdy kamera głębi dostarczała wysokiej rozdzielczości i precyzyjne dane przestrzenne.

 

Aby uzyskać dokładne wyniki, potrzebowaliśmy dostosowanego sprzętu. Kamery musiały rejestrować cały obraz jednocześnie, zachowując pełną synchronizację z zewnętrznymi samowyzwalaczami. Sprzęt został zamówiony w Indiach.

 

System rozpoznawania gestów dostępny w momencie rozwoju projektu był zdolny do śledzenia ręki użytkownika z predefiniowanego punktu. Musieliśmy znaleźć rozwiązanie, które umożliwiłoby wykrywanie ręki użytkownika i interpretowanie dynamicznych gestów, takich jak przesunięcie w górę, w dół, w lewo, w prawo, bloom i kliknięcie.

Rozwiązanie

  • 1. Opieraliśmy się na bibliotece OpenGL, odpowiedzialnej za interakcję z jednostką przetwarzającą grafikę, aby osiągnąć przyspieszenie sprzętowe renderowania. 2. Wykorzystaliśmy bibliotekę PCL (Point Cloud Library) do przetwarzania chmur punktów oraz do przetwarzania geometrii 3D, rekonstrukcji powierzchni, rejestracji 3D, dopasowywania modeli i segmentacji. 3. Aby zapewnić stabilność i precyzję systemu, wykorzystaliśmy technologię mapowania z użyciem wielu kamer oraz ogólną technologię ORBSLAM. 4. Wybraliśmy bibliotekę Libinput do przeniesienia interakcji z jądrem systemu operacyjnego do świata cyfrowego.
  • 5. Wykorzystaliśmy język C++ ze względów wydajnościowych - aby móc przetwarzać dużą ilość obliczeń i obrazów w czasie rzeczywistym. 6. W celu zapewnienia płynnego wykrywania rąk i mapowania otoczenia, użyliśmy dostosowanego sprzętu, w tym kamer stereoskopowych i kamer głębi opartych na podczerwieni. Zastosowaliśmy również zaawansowane rozwiązania oparte na sztucznej inteligencji do rozpoznawania i interpretacji dynamicznych gestów. 7. Korzystaliśmy z biblioteki OpenCV, związanej ze wszystkimi narzędziami, które wykorzystujemy do przetwarzania obrazu w czasie rzeczywistym, w tym zbierania i modyfikacji zbiorów danych, wykrywania gestów oraz operacji na obrazach.
  • 8. Aby umożliwić umieszczanie okien w trzech wymiarach, reagowanie na powiadomienia dotyczące gestów i przekazywanie aktywnej aplikacji informacji o tym, jak na nie zareagować (np. gdy chcemy uchwycić okno i przenieść je gdzieś indziej), polegaliśmy na menedżerze okien Wayland. Zapewnia on również pełną kompatybilność z wszystkimi aplikacjami w systemie Linux. 9. Wykorzystaliśmy Konwolucyjne Sieci Neuronowe, trenowane na różnorodnych zestawach danych - 10 000 danych niskiej jakości i 700 danych wysokiej jakości w celu wykrywania ręki w dowolnym punkcie na ekranie. Do interpretacji gestów usera oraz 500 sekwencji gestów wykorzystaliśmy algorytm Random Forest.

Jak działa SLAM?

Wykorzystaliśmy technologię SLAM (Simultaneous Localization and Mapping), aby śledzić położenie użytkownika w pomieszczeniu na podstawie obrazu z szerokokątnej stereoskopowej kamery zamocowanej na zestawie SpaceOS. Technologia ta jednocześnie tworzy mapę punktów, które służą do nawigacji oraz rekonstrukcji geometrii otoczenia (np. kształtu okna, położenia ściany czy wielkości stołu).

Rezultat

Zaprojektowaliśmy i wdrożyliśmy kompleksowy system, który jest kompatybilny z szerokim zakresem aplikacji.

 

System nie tylko rozpoznaje i przetwarza gesty rąk w czasie rzeczywistym, ale jest również dość uniwersalny, by być szybko dostosowany do praktycznie dowolnego sprzętu. Dzięki temu może znaleźć zastosowanie w różnych dziedzinach, od architektury po inżynierię, marketing i wiele innych.

 

System rzeczywistości mieszanej (Mixed Reality System) to nowoczesne rozwiązanie, które buduje na już futurystycznej funkcjonalności rzeczywistości rozszerzonej (AR), dodając do tego element, którego dotąd brakowało: możliwość kontrolowania interfejsu AR i obiektów za pomocą gestów Twoich rąk.

Tech Stack

C++
SLAM
WAYLAND WINDOW MANAGER
CONVOLUTIONAL NEURAL NETWORKS
OPENCV / IMAGE PROCESSING
PCL
OPENGL
ORBSLAM
RANDOM FOREST
LIBINPUT

Opinia klienta

Gorąco polecam xBerry ze względu na ich profesjonalizm i niezawodność w zakresie tworzenia oprogramowania. Wierzę, że nasza współpraca była wzorem przejrzystości, wysokiej jakości i zaangażowania. Celem projektu było rozwiązanie bardzo trudnego problemu na granicy uczenia maszynowego, rzeczywistości rozszerzonej i przetwarzania obrazów. Nasz projekt wymagał badań, innowacyjnej technologii i doskonałych umiejętności programistycznych. Jestem zadziwiony, jak płynnie przebiegł nasz projekt, pomimo jego trudności i ograniczeń czasowych.

Pazar3.mk

Planujesz nowy projekt?

Porozmawiajmy Arrow icon