Wykrywanie wypełnionego szklanego obiektu

10

Wysłano mnie tutaj z tego pytania w przepełnieniu stosu , przepraszam, jeśli pytanie jest zbyt szczegółowe i nie ma tu manier :)

Zadanie polega na znalezieniu szklanki z określonym płynem. Pokażę ci zdjęcia, a następnie opiszę to, co próbuję osiągnąć, i jak starałem się osiągnąć w opisie poniżej zdjęć.

Zdjęcia : (wydaje się, że potrzebuję co najmniej 10 reputacji, aby publikować zdjęcia i linki, więc linki będą musiały zrobić :( w przeciwnym razie możesz spojrzeć na pytanie o przepełnienie stosu)

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Szczegółowy opis : Próbowałem zaimplementować algorytm, który wykryłby szkło o określonym kształcie w opencv (szkło może zostać przekształcone przez inny kąt strzału kamery / odległość). Będą też inne okulary o innych kształtach. Szkło, którego szukam, będzie również wypełnione kolorową cieczą, która odróżni go od szklanek zawierających inne kolory.

Do tej pory próbowałem użyć ekstraktora funkcji SIFT, aby znaleźć niektóre funkcje w szkle, a następnie dopasować je do innych zdjęć z umieszczoną w nim szkłem.

To podejście działało tylko w bardzo specyficznych warunkach, w których miałbym szkło w bardzo konkretnej pozycji, a tło przypominałoby obrazy edukacyjne. Problem polega również na tym, że szkło jest obiektem 3d i nie wiem, jak z niego wydobyć cechy (może kilka zdjęć pod różnymi kątami jest jakoś połączonych?).

Teraz nie wiem, jakiego innego podejścia mogę użyć. Znalazłem kilka wskazówek na ten temat (tutaj /programming/10168686/algorithm-improvement-for-coca-cola-can-shape-recognition#answer-10219338 ), ale linki wydają się być zepsute.

Innym problemem byłoby wykrycie różnych „poziomów pustki” w takim szkle, ale nawet nie byłem w stanie prawidłowo znaleźć samego szkła.

Jakie byłyby twoje zalecenia dotyczące podejścia do tego zadania? Czy lepiej byłoby użyć innego sposobu znalezienia funkcji lokalnego obiektu 3D? Czy może lepiej byłoby zastosować inne podejście? Słyszałem o algorytmach „uczących się” obiektu z zestawu wielu zdjęć, ale nigdy nie widziałem tego w praktyce.

Wszelkie porady będą mile widziane

użytkownik1916182
źródło
jakieś ostateczne rozwiązanie z pełną próbką kodu źródłowego w C #?
Kiquenet
wow, to dość specyficzna prośba. problem nie ma jeszcze rozwiązania i nie będę poświęcać więcej czasu na jego rozwiązanie. sądzę, sądząc po wspomnianym tutaj artykule, że podstawy naukowe wkrótce nie będą miały rozwiązania, ponieważ sugerowany algorytm miał bardzo słabą precyzję. w każdym razie, ponieważ ten projekt był do mojej pracy, skończyło się na kłótni o kompromis z klientem, ponieważ zadanie jest nierealne do wykonania w dzisiejszych czasach. użyłem zwykłych detektorów przypominających haar do „wszystkiego, co wygląda jak kubek”, a następnie wybrałem żółte odcienie do wykrycia piwa. nie oryginalne zadanie
1916182

Odpowiedzi:

0

Może ten artykuł może ci pomóc: http://ai.stanford.edu/~ang/papers/iros09-ScalableLearningObjectDetectionGPU.pdf

Mimo że używają aktywnego systemu stereo oprócz obrazów 2D w celu uzyskania obrazów głębi, interesujące jest to, w jaki sposób wykorzystują funkcje oparte na łatkach, konstruują słownik obiektu z wieloma małymi fragmentami, a następnie uczą klasyfikatora. Być może możesz dodać te funkcje, aby poprawić wskaźnik wykrywalności.

Giorgio Luigi Morales Luna
źródło
nie sądzę, że ta praca może być bardzo dobrze wykorzystana w dzikiej praktyce. robot opisany w artykule wymaga czujnika głębokości do wykrycia informacji o głębokości ... nie jest zbyt praktyczne noszenie kinekta podczas robienia losowych zdjęć na telefonie komórkowym lub czymś ... ale tak, funkcje oparte na łatce są bardzo interesującym podejściem!
user1916182
-1

Dużo pracy wykonano w tym zakresie, jeśli chodzi o oprogramowanie do rozpoznawania twarzy. Na przykład, jeśli zauważysz na Facebooku, kiedy tagujesz zdjęcia, lokalizacja twarzy zostanie umieszczona w ramce i zasugerowana.

Widziałem dużo literatury na temat rozpoznawania twarzy na obrazach za pomocą sieci neuronowych, a szybkie wyszukiwanie w Google bez wątpienia wyświetli ogromną ilość informacji na ten temat. Sieci te przyjmują piksele obrazu jako dane wejściowe. W twoim przypadku sposób, w jaki zmiany zmętnienia / światło odbijają się od szyby, może być dobrą cechą identyfikującą, której nauczy się sieć.

Jednym z problemów może być liczba zdjęć, które musisz wykorzystać jako dane szkoleniowe i ich wstępne przetwarzanie (tj. Samodzielne zidentyfikowanie twarzy). Jeśli nie jest to możliwe, aby zrobić wystarczająco dużo obrazów, aby wystarczająco dobrze wyszkolić sieć, będziesz musiał poszukać skrótów na etapie uczenia się. Ten artykuł dotyczy tego, co chcesz zrobić: http://www.ll.mit.edu/publications/journal/pdf/vol04_no2/4.2.5.neuralnetwork.pdf

Na szczęście jest to bardzo aktywne pole i duża część kodu potrzebnego do tego typu problemów jest łatwo dostępna online.

Po zidentyfikowaniu okularów na obrazach możesz przeprowadzić dalszą analizę.

rwolst
źródło
jest to całkowicie nieistotne
1916182
Ciekawe, że powinieneś to powiedzieć. W każdym razie tutaj jest link do algorytmów wykrywania wykorzystywanych przez Facebooka w oparciu o sieci neuronowe. Powodzenia, github.com/facebookresearch/Detectron .
rwolst