Skocz do zawartości

Prośba o opinie: mapowanie przestrzeni 3d


mariotti

Pomocna odpowiedź

Jedyne, co mi przychodzi do głowy, to stereowizja, czyli dwie kamery przemieszczone nieco względem siebie. Obie mogą rozpoznawać cechy charakterystyczne danego obiektu i porównywać jego położenie na każdym z obrazów - znając odległość między kamerami, będziesz mógł w jakimś stopniu określić jego rzeczywiste położenie...

Link do komentarza
Share on other sites

Jedyne, co mi przychodzi do głowy, to stereowizja, czyli dwie kamery przemieszczone nieco względem siebie. Obie mogą rozpoznawać cechy charakterystyczne danego obiektu i porównywać jego położenie na każdym z obrazów - znając odległość między kamerami, będziesz mógł w jakimś stopniu określić jego rzeczywiste położenie...

Nom można się domyślać, że w jakimś stopniu da się określić położenie. Tak ogólnie niby wiem.

Natomiast nie mam nawet bladego pojęcia o szczegółach... Na pewno dwie kamery da się

zastąpić jedną, ale wraz ze zdjęciem będzie konieczna informacja o położeniu i kącie obiektywu.

Może zapytam inaczej, czy roboty wykorzystują dalmierze poza kamerami? Czy są jakieś

zaawansowane roboty oparte tylko na kamerach? Wiadomo, chodzi o roboty w których

poruszanie się i omijanie przeszkód jest ważnym elementem.

Pozdrawiam

Link do komentarza
Share on other sites

wraz ze zdjęciem będzie konieczna informacja o położeniu i kącie obiektywu

Z dwiema kamerami eliminujesz ten problem

http://alexandria.nu/ai/blog/entry.asp?E=32

Poza tym myślę, że ten artykuł może Cię zainteresować:

http://www.roboken.esys.tsukuba.ac.jp/~ohya/pdf/iros97-oya.pdf

Jeśli chodzi o roboty do bardziej profesjonalnych zastosowań, to raczej nikt nie bazuje całkowicie na kamerach, bo soft do wizji bywa zawodny, poza tym wprowadza dość duże opóźnienia. Oprócz kamery stosujemy w projektach najczęściej skanery laserowe (np. Hokuyo URG-04LX), w niskobudżetowych zamówieniach zwykłe dalmierze ultradźwiękowe, a czasami zdarzają się nawet oba rodzaje czujników równocześnie. W ten sposób jest gwarancja, że robot nie wpakuje się w np. przesuniętą paletę towaru w magazynie albo drzewo w parku...

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Radzę zainteresować się Kinectem, microsoft udostępnia pod windowsa całe API pozwalajace w prosty sposób wyciągnąć z informacji przesyłanej przez niego głębię (czyli właśnie odległość do poszczególnych punktów). Sprawa mocno się upraszcza, bo cała brudna robota związana z przetwarzaniem obrazów odwalana jest w samym Kinectcie lub pod przykrywką API.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Radzę zainteresować się Kinectem, microsoft udostępnia pod windowsa całe API pozwalajace w prosty sposób wyciągnąć z informacji przesyłanej przez niego głębię (czyli właśnie odległość do poszczególnych punktów). Sprawa mocno się upraszcza, bo cała brudna robota związana z przetwarzaniem obrazów odwalana jest w samym Kinectcie lub pod przykrywką API.

Nie mogę użyć gotowego oprogramowania, więc odpada.

Jakich algorytmów używa ten Kinect?

Pozdrawiam

Link do komentarza
Share on other sites

Mając do dyspozycji jedną kamerę i nic więcej da się stworzyć przestrzeń 3D, ale wymagana jest solidna moc obliczeniowa oraz wiele ujęć z różnych miejsc. Polecam obejrzenie np. http://www.123dapp.com/catch czy http://www.hypr3d.com/

Jeśli chodzi o ocenę odległości w aktualnym punkcie bez analizy innych obrazów, to można użyć lasera umocowanego równolegle z osią kamery i liczyć odległość punktu od środka. Prosta trygonometria da dobrą dokładność.

http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A874774&xg_source=activity&page=3

W komentarzach widać próbę zastosowania filtra by nie rzucać jednego punktu, ale siatkę. Większe pokrycie obszaru ale cięższe obliczenia do otrzymania informacji o odległości od przeszkód.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Problem z którym walczą inżynierowie od lat. Szkoda że kolega nie sprecyzował co konkretnie chce uzyskać przez mapowanie 3D, chodzi mi o zastosowanie i lub przeznaczenie.

Warto zainteresować się sztucznymi sieciami neuronowymi, każde profesjonalne rozwiązanie właściwie na nich się opiera. Przykład londyńskie metro, jest monitorowane, przez sztuczna siec neuronową, konkretnie oblicza ona tłok w metrze (liczy ludzi na obrazach z kamer) i wspiera dyspozytorów ruchu.

Podobnie systemy, przeszukiwania bagażu, w poszukiwania bomb,ładunków niebezpiecznych, na lotniskach korzystają, z sztucznych sieci neuronowych, do analizy obrazu.

Link do komentarza
Share on other sites

Problem z którym walczą inżynierowie od lat.

Czy mogę poprosić o jakieś (naprawdę jakiekolwiek, byle ważne) przykłady osiągnięć inżynierów?

Szkoda że kolega nie sprecyzował co konkretnie chce uzyskać przez mapowanie 3D, chodzi mi o zastosowanie i lub przeznaczenie.

Chcę wiedzieć gdzie znajdują się obiekty 3d w zamkniętym pomieszczeniu lub na

otwartej przestrzeni o ograniczonym promieniu.

Weźmy np. typowy pokój w kształcie prostopadłościanu. W pokoju mogą być szafki, może

stać łóżko, komputer, gdzieś może leżeć sterta książek, jakiś fotel, itd. Mapujemy pokój do

np. stu punktów w wysokości, szerokości i długości, daje to 100^3=1mln punktów - jak na

nowoczesne komputery to nie jest zbyt dużo. Teraz o każdym punkcie chcę wiedzieć czy jest

on wewnątrz jakiegoś przedmiotu (np. wewnątrz zamkniętej szafy, albo wewnątrz obudowy

komputera) czy jest na zewnątrz.

Warto zainteresować się sztucznymi sieciami neuronowymi

Interesuję się nimi od wielu lat 🙂

każde profesjonalne rozwiązanie właściwie na nich się opiera.

Zdecydowanie się nie zgadzam z tym zdaniem. Sztuczne sieci neuronowe to ostatnia

ostateczność i używa się ich jako rozwiązania rozpaczy gdy naprawdę nie można danego

zadania rozwiązać inaczej. Niewykluczone że w problemie o którym piszę SSN będą

również taką ostatecznością. Niemniej na pewno nie można powiedzieć że każde

profesjonalne rozwiązanie opiera się na SSN. Raczej jest odwrotnie.

Przykład londyńskie metro, jest monitorowane, przez sztuczna siec neuronową, konkretnie oblicza ona tłok w metrze (liczy ludzi na obrazach z kamer) i wspiera dyspozytorów ruchu.

Podobnie systemy, przeszukiwania bagażu, w poszukiwania bomb,ładunków niebezpiecznych, na lotniskach korzystają, z sztucznych sieci neuronowych, do analizy obrazu.

Owszem są zastosowania sztucznych sieci neuronowych z powodzeniem. Z reguły przy takich

okazjach autorzy tylko się chwalą jak to profesjonalnie rozwiązali przy pomocy SSN. Rzadko

kto podaje rzetelnie wady i zalety takich systemów. Chciałbym zobaczyć ile w praktyce mieli

problemów, jak długo się męczyli i ile włożyli w rozwiązanie wysiłku i jaka jest rzeczywista

skuteczność 🙂

Pozdrawiam

Link do komentarza
Share on other sites

Również nie zgodzę się z BlackJack, że do mapowania używa się SSN.

We wspomnianym przykładzie londyńskiego metra sam wspominasz, że SSN są używane do rozpoznawania twarzy (ludzi) i pewnie do niczego więcej. Jest to więc narzędzie pośrednie i nie ma bezpośredniego związku z procesem monitorowania tłoku.

SSN są dobre od rozpoznawania fragmentów sygnału mających wspólne cechy. I gdyby w tym mapowaniu 3D chcielibyśmy rozpoznać "to jest szafa", "to jest lampa" to były by dobrym rozwiązaniem. Jeśli natomiast chcemy mieć tylko chmurę punktów powierzchni bez informacji jakiego typu jest ta powierzchnia, to nie widzę tu zastosowania dla SSN.

mariotti, zainteresuj się różnymi rozwiązaniami w kategorii LIDAR

Link do komentarza
Share on other sites

Również nie zgodzę się z BlackJack, że do mapowania używa się SSN.

Czy się używa, czy nie do mapowania przestrzeni to ja nie wiem - dopiero zacząłem się

interesować zagadnieniem. Nie zgadzam się tylko co do tego, że takie rozwiązania (poza

nielicznymi wyjątkami) zasługują na miano profesjonalnych.

Z sztucznymi sieciami neuronowym w praktyce są naprawdę ogromne problemy, nie sposób je

wymienić w jednym poście. W literaturze zwykle sztuczne sieci neuronowe są przestawiane

tylko od tej lepszej strony, z porównywaniem do sztucznej inteligencji włącznie - a tymczasem

sztuczny neuron nie ma nic wspólnego z biologicznym odpowiednikiem, a co dopiero ze sztuczną

inteligencją....

Niemniej są wyjątki do których sieci neuronowe się nadają idobrze tam pełnią swoją rolę. Są

też sytuacje w których nie sposób podać rozwiązanie algorytmiczne - wtedy lepiej podać kiepskie

rozwiązanie bazujące na SSN niż żadne...

SSN są dobre od rozpoznawania fragmentów sygnału mających wspólne cechy. I gdyby w tym mapowaniu 3D chcielibyśmy rozpoznać "to jest szafa", "to jest lampa" to były by dobrym rozwiązaniem. Jeśli natomiast chcemy mieć tylko chmurę punktów powierzchni bez informacji jakiego typu jest ta powierzchnia, to nie widzę tu zastosowania dla SSN.

Ja widzę tutaj możliwość zastosowania SSN, ale obawiam się typowych problemów

związanych z stosowaniem. Zresztą takie same problemy mogą się pojawić w

każdej innej technice tzw sztucznej inteligencji. Może moje obawy nie są uzasadnione, ale

na pewno są poparte doświadczeniem z innych prób zastosowań SSN. Problemy o których

mówię to:

1) wymóg ogromnej ilości danych uczących

2) wymóg ogromnego czasu uczenia

3) problemy z doborem architektury, dobór automatyczny jeszcze wydłuża czas uczenia

4) problem przeuczenia, nie wiadomo w jakim momencie przerwać uczenie

5) problem z zebraniem reprezentatywnych danych uczących

6) konieczny dodatkowy pracownik który sprawdza czy sieć nie odwaliła czegoś głupiego i nie wymaga korekty...

mariotti, zainteresuj się różnymi rozwiązaniami w kategorii LIDAR

Być może nie będzie wyjścia i to okaże się jednym rozwiązaniem. Jednak zanim się

poddam chciałbym spróbować rozwiązania na samej kamerze (albo na dwóch kamerach).

Pozdrawiam

Link do komentarza
Share on other sites

Może zapytam inaczej, czy roboty wykorzystują dalmierze poza kamerami? Czy są jakieś

zaawansowane roboty oparte tylko na kamerach? Wiadomo, chodzi o roboty w których

poruszanie się i omijanie przeszkód jest ważnym elementem.

Zakładam, że chodzi o właśnie takie zastosowanie. Gdyby chodziło o śledzenie obiektów lub liczenie/porównywanie cech, to pojedyncza kamera w zupełności by wystarczyła.

Moim zdaniem do zadania będą potrzebne duże możliwości obliczeniowe, ale nie aż takie, żeby obsłużyć poważną sieć neuronową... Przecież to wszystko da się zrobić na algorytmach, z pojedynczą kamerą będzie po prostu trudniej. Żeby ocenić odległość od obiektu, robot będzie musiał się odrobinę przemieścić, napisał o tym z resztą Marooned.

Link do komentarza
Share on other sites

Żeby ocenić odległość od obiektu, robot będzie musiał się odrobinę przemieścić, napisał o tym z resztą Marooned.

Zgoda, ale pozostaje problem lokalizacji obiektów na widoku z przed przemieszczenia i

po przemieszczeniu. Załóżmy że faktycznie chodzi o robota. Powiedzmy że robot jedzie sobie

po podłodze i napotyka... co tam... stertę książek. Jeśli ją napotkał to ma zrobione zdjęcie. Teraz

wykonuje manewr i robi drugie zdjęcie. Pomijamy sytuacje (która jest ważna!) gdy na zdjęciu

po manewrze nie ma już tych książek. Aby obliczyć odległość (tak na zasadzie dalmierza optycznego)

to robot musi zlokalizować książki z dość dużą dokładnością na obu zdjęciach. Czyli mam do czynienia z

problemem rozpoznawania obrazu który zdaje się jest ciągle w powijakach.

Pozdrawiam

Link do komentarza
Share on other sites

Ja pisząc o SSN miałem raczej na myśli system mieszany, tzn. połączenie klasycznych rozwiązań z mikroprocesorem, plus kooproceserem opartym o SSN na FPGA.

Chciałbym zobaczyć ile w praktyce mieli

problemów, jak długo się męczyli i ile włożyli w rozwiązanie wysiłku i jaka jest rzeczywista

skuteczność

Jeżeli nakłady pracy, są elementem determinującym, to żadne rozwiązanie nie zda egzaminu, w takim przypadku, bo to z natury problem złożony.

Co do skuteczności to z tego co pamętam 99,9%, chyba że twórcy DISCAVERY kłamią w swoich programach.

Sadzę za taka siła napędową tego wątku był cykl OPENCV, na forboie, ale proste rozpoznawanie obrazów, a przetwarzanie przestrzeni 3D w czasie rzeczywistym, to raczej dwie różne bajki.

Prostego gotowca raczej nie znajdziesz.

Z twoich wymogów wynika, że chcesz aby robot (SI) widział jak terminator, czyli z obrazu rozpoznawał cechy obiektów i je klasyfikował, podejmując decyzje ominąć, czy przejść jak czołg.

Coś podobnego opracowało VOLVO. Z tego co pamiętam, to badali oni oko muchy czy komara (zasadniczo algorytm, wykrywania obiektów, i unikana kolizji z nimi), za pomocą kamery i komputera (nie wiem czy stosowali SSN), system monitoruje, obraz przed samochodem i kiedy zauważa człowieka, czy nawet wózek z dzieckiem, na kursie kolizyjnym (wtargnięcie pod auto) tak to nazwijmy to zatrzymuje samochód. Był o tym nawet film, jak do tego dochodzili, i robili test ze studentami którzy wskakiwali pod jadące auto z tym systemem.

http://www.jedz-bezpiecznie.pl/Technika,systemy_wspomagajace_bezpieczenstwo_na_drodze,Innowacja_Volvo_w_ochronie_pieszych,20100417.php

Coś w tym stylu, ale na pewno VOLVO pracuje nad system mapowania przestrzeni, opartym o zdolności owadów latajączych.

Link do komentarza
Share on other sites

Ja pisząc o SSN miałem raczej na myśli system mieszany, tzn. połączenie klasycznych rozwiązań z mikroprocesorem, plus kooproceserem opartym o SSN na FPGA.

Nie boję się używania sieci neuronowej w dowolnej postaci, boję

się jej uczenia 🙂

Weźmy 'malutką' sieć, niech składa się z 30 neuronów i 300

połączeń. Niech każde połączenie (czyli waga) ma ograniczoną

ilość wartości, powiedzmy niech połączenie przyjmuje jedną z 50

wartości. Jeśli się nie pomyliłem, daje to (30^2*300)^50 możliwych

sieci. Jest to liczba 270 cyfrowa - tyle jest możliwych sieci tylko

o tym konkretnym rozmiarze. Prawdopodobnie tylko jedna sieć z

całej tej ogromnej ilości jest najlepsza do danego zadania, jakim

sposobem ustalić która jest najlepsza? Ewolucja miała na to miliardy

lat czasu, działała równolegle na powierzchni całej planety, a tutaj

można użyć kilku komputerów w czasie kilku lat.

Wśród takiej ogromnej ilości sieci neuronowych potencjalnie są

niesamowite rozwiązania... być może są tam lekarstwa na nieuleczalne

choroby, wzory na super wytrzymałe materiały, optymalne konstrukcje

budynków, nie wspominając o rozpoznawaniu obiektów. Niestety

znalezienie tego w praktyce na ogól jest niemożliwe.

Jeżeli nakłady pracy, są elementem determinującym, to żadne rozwiązanie nie zda egzaminu, w takim przypadku, bo to z natury problem złożony.

Chodziło mi o to, że nie mam tryliona lat i tryliona komputerów na naukę sieci neuronowych 🙂

Kilka lat i kilka komputerów być może się znajdzie, ale nie więcej.

Co do skuteczności to z tego co pamętam 99,9%, chyba że twórcy DISCAVERY kłamią w swoich programach.

Czy w tym przypadku kłamali to nie wiem, w ogóle zdarza im się przekłamywać, albo przekolorować coś.

Sadzę za taka siła napędową tego wątku był cykl OPENCV, na forboie, ale proste rozpoznawanie obrazów, a przetwarzanie przestrzeni 3D w czasie rzeczywistym, to raczej dwie różne bajki.

Prostego gotowca raczej nie znajdziesz.

No ja nie wiem, dopiero poznaję zagadnienie 🙂

Pozdrawiam

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.