To niezwykle trudny problem. Należałem do zespołu, który pracował nad nim przez kilka lat, a po opracowaniu i wsparciu innych takich aplikacji mogę powiedzieć, że wykrywanie wgnieceń jest szczególnie trudnym problemem i znacznie trudniejszym niż się wydaje.
Algorytm działa w warunkach laboratoryjnych lub na znanych obrazach to jedno; opracowanie systemu, który byłby dokładny i niezawodny dla „naturalnych” obrazów, takich jak samochody widoczne na parkingu, prawdopodobnie wymagałby zespołu pracującego przez kilka lat. Oprócz podstawowego problemu związanego z tworzeniem algorytmu istnieje wiele innych trudności inżynierskich.
Przykładowy kod, który przetestowałeś, nie jest złym początkiem. Jeśli możesz znaleźć krawędzie wokół ciemnej prawej strony wgniecenia, możesz porównać mapę krawędzi samochodu z dingiem do mapy krawędzi znanego dobrego samochodu obrazowanego pod tym samym kątem z tym samym oświetleniem. Kontrolowanie oświetlenia bardzo pomoże.
Problemy do rozważenia obejmują:
- Oświetlenie (znacznie trudniejsze niż mogłoby się początkowo wydawać)
- Oczekiwana powierzchnia 3D zmontowanego panelu zewnętrznego (np. Z danych CAD)
- Kryteria charakteryzujące wgniecenie: powierzchnia, głębokość, profil itp.
- Kryteria dla fałszywych negatywów i fałszywych trafień
- Środki do zapisywania danych wgnieceń i / lub wgnieceń map na modelu samochodu (lub układzie motyla)
- Metodologia i urządzenie do pomiaru „prawdziwych” cech wgnieceń: głębokość, powierzchnia itp.
- Obszerna baza danych wgnieceń z losowego próbkowania pojazdów
- Radzenie sobie z różnymi kolorami farb i wykończeniami
1. Oświetlenie
Jak prawidłowo zauważył powyżej Martin B, prawidłowe oświetlenie ma zasadnicze znaczenie dla tego problemu. Nawet przy dobrym oświetleniu strukturalnym będziesz miał trudności z wykryciem małych wgnieceń w pobliżu linii charakterystycznych, szczelin między panelami, uchwytami i tak dalej.
Wpis w Wikipedii dotyczący oświetlenia strukturalnego jest nieco cienki, ale jest to początek zrozumienia zasady:
http://en.wikipedia.org/wiki/Structured_light
Za pomocą jasnych pasków można wykryć wgniecenia (wgniecenia) i wydruki (pryszcze). Aby zobaczyć ding, potrzebujesz względnego ruchu między źródłem światła a samochodem. Albo światło + kamera poruszają się razem w stosunku do samochodu, albo samochód porusza się obok światła + kamery.
Chociaż wpusty i wypusty mają charakterystyczny wygląd na brzegu jasnego paska, wykrywalność danego wgniecenia zależy od wielkości i głębokości wgniecenia w stosunku do szerokości jasnego paska. Krzywizna samochodu jest złożona, więc dość trudno jest przedstawić spójny pasek świetlny w kamerze. Gdy pasek świetlny porusza się po karoserii samochodu, krzywizna, a nawet intensywność paska świetlnego będą się różnić.
Jednym z częściowych rozwiązań jest zapewnienie, że kamera i pasek świetlny będą zawsze pod stałym kątem w stosunku do normalnej (3D prostopadłej) części kontrolowanej powierzchni. W praktyce wymagany byłby robot, aby dokładnie przesunąć kamerę względem powierzchni ciała. Dokładne poruszanie robotem wymaga znajomości pozy (pozycji i kątów 3D) karoserii, co samo w sobie jest paskudnym problemem.
W przypadku każdej kontroli aplikacji motoryzacyjnych należy całkowicie kontrolować oświetlenie. Oznacza to nie tylko umieszczanie wybranych świateł w znanych miejscach, ale także blokowanie wszystkich innych świateł. Będzie to oznaczać dość dużą obudowę. Ponieważ panele samochodu są zakrzywione na zewnątrz (prawie jak sferyczna powierzchnia), odbijają światło ze źródeł wokół nich. Aby znacznie uprościć ten problem, można zastosować słupek fluorescencyjny wysokiej częstotliwości wewnątrz obudowy osłoniętej czarnym aksamitem. Dość często konieczne jest zastosowanie takich skrajności w aplikacjach kontrolnych.
2. Powierzchnia 3D
Zewnętrzna powierzchnia samochodu składa się ze skomplikowanych krzywych. Aby wiedzieć, czy podejrzane miejsce to ding, musisz porównać to miejsce ze znanymi cechami samochodu. Oznacza to, że musisz dopasować obraz 2D z kamery do modelu 3D oglądanego pod pewnym kątem. Nie jest to problem rozwiązany szybko i na tyle trudno jest zrobić dobrze, że niektóre firmy się w nim specjalizują.
3. Charakterystyka defektów
W przypadku badań akademickich lub testów laboratoryjnych może być wystarczające opracowanie algorytmu, który pokazuje obiecującą lub ulepszoną wersję istniejącej metody. Aby właściwie rozwiązać ten problem do rzeczywistego zastosowania komercyjnego lub przemysłowego, musisz mieć bardzo szczegółową specyfikację dla wielkości wgnieceń, które chcesz wykryć.
Kiedy rozwiązaliśmy ten problem, nie było żadnych uzasadnionych norm branżowych ani krajowych dotyczących wgnieceń (deformacje 3D). Oznacza to, że nie było uzgodnionej techniki charakteryzującej wgniecenie na podstawie jego powierzchni, głębokości i kształtu. Właśnie mieliśmy próbki, które zdaniem ekspertów branżowych były złe, niezbyt złe i marginalne pod względem dotkliwości. Określenie „głębokości” dinga jest również trudne, ponieważ ding jest wcięciem 3D w (zwykle) powierzchni 3D zakrzywionej na zewnątrz.
Większe wgniecenia są łatwiejsze do wykrycia, ale są również mniej powszechne. Doświadczony robotnik samochodowy może szybko zeskanować nadwozie samochodu - znacznie szybciej niż nieprzeszkolony obserwator - i szybko znaleźć płytkie wgniecenia wielkości małego palca. Aby uzasadnić koszt zautomatyzowanego systemu, prawdopodobnie będziesz musiał dopasować umiejętności doświadczonego obserwatora.
4. Kryteria błędów wykrywania
Na początku powinieneś ustalić kryteria dla dopuszczalnych fałszywych negatywów i fałszywych trafień. Nawet jeśli studiujesz ten problem jako projekt badawczo-rozwojowy i nie zamierzasz opracowywać produktu, spróbuj zdefiniować kryteria wykrywania.
fałszywie ujemny: wgniecenie obecne, ale nie wykryte fałszywie dodatnie: nieskalany obszar zidentyfikowany jako wgniecenie
Zazwyczaj występuje kompromis: zwiększ czułość, a znajdziesz więcej dingów (zmniejsz liczbę fałszywych negatywów), ale znajdziesz także więcej dingów, których nie ma (zwiększ fałszywych trafień). Łatwo jest przekonać się, że algorytm działa lepiej niż w rzeczywistości: naszą naturalną tendencją jest zauważenie defektów wykrytych przez algorytm i wyjaśnienie tych, których nie wykrył. Przeprowadzaj ślepe, zautomatyzowane testy. Jeśli to możliwe, poproś kogoś innego, aby zmierzył głębokość i przypisał dotkliwość, abyś nie wiedział, jakie są prawdziwe pomiary.
5. Zapisz dane i / lub
mapuj Wgłębienie charakteryzuje się ciężkością i umiejscowieniem na karoserii samochodu. Aby poznać jego lokalizację, musisz rozwiązać wyżej wspomniany problem korespondencji 2D-3D.
6. Określenie „prawdziwego” kształtu wgnieceń
Wgniecenia są trudne do zmierzenia. Ostre wgniecenie i zaokrąglone wgniecenie o tej samej powierzchni i głębokości będą wyglądać inaczej. Pomiar wgnieceń metodami mechanicznymi prowadzi do subiektywnych osądów, a używanie mierników głębokości, linijek itp. Jest dość żmudne, gdy prawdopodobnie będziesz musiał zmierzyć dziesiątki, jeśli nie więcej.
Jest to jeden z trudniejszych problemów inżynieryjnych do rozwiązania w przypadku każdego projektu wykrywania defektów w produkcji: jak można zmierzyć defekt i go scharakteryzować? jeśli istnieje taki standard, czy norma dobrze koreluje z czymś, co mierzy system kontroli? jeśli system kontroli nie znajdzie dinga, „powinien” go znaleźć, kogo winić?
To powiedziawszy, jeśli system inspekcji działa wystarczająco dobrze dla próbki znanych defektów, użytkownicy mogą w końcu zaufać mu, a sam system staje się standardem w definiowaniu dotkliwości defektów.
7. Rozbudowana baza danych wgnieceń
Idealnie byłoby mieć setki, jeśli nie tysiące przykładowych zdjęć wgnieceń o różnym stopniu nasilenia w różnych lokalizacjach w pojazdach od trudnych producentów. Jeśli chcesz znaleźć wgniecenia spowodowane wypadkami podczas procesu montażu, zebranie tego rodzaju danych może zająć dużo czasu. Wgniecenia powstałe podczas montażu nie są powszechne.
Jeśli chcesz tylko znaleźć wgniecenia spowodowane wypadkami lub szkodami dla środowiska, to inna sprawa. Rodzaje wgnieceń będą się różnić od tych spowodowanych przypadkowymi uderzeniami w zakładzie montażu samochodów.
8. Radzenie sobie z różnymi kolorami farb
To prawda, że detektory krawędzi mogą być dość solidne w wykrywaniu krawędzi na obrazach o różnym poziomie kontrastu, ale może być dość rozczarowujące, aby zobaczyć, co „różne poziomy kontrastu” naprawdę oznaczają dla różnych farb i wykończeń samochodowych . Jasny pasek, który świetnie wygląda na błyszczącym czarnym samochodzie, był ledwo wykrywalny na białym samochodzie ze starą farbą.
Większość aparatów ma stosunkowo ograniczony zakres dynamiki, więc uzyskanie dobrego kontrastu zarówno dla czarnych błyszczących powierzchni, jak i białych matowych powierzchni jest trudne. Jest całkiem prawdopodobne, że będziesz musiał automatycznie kontrolować intensywność oświetlenia. To też jest trudne.