Strona główna AI i ML Wizualny detektor defektów — linia inspekcji jakości CNN

🏭 Wizualny detektor defektów — linia inspekcji jakości CNN

Obserwuj, jak sieć konwolucyjna skanuje części poruszające się po symulowanej linii inspekcyjnej, w czasie rzeczywistym podświetlając zarysowania, wgniecenia i niewspółosiowość, z bieżącym wskaźnikiem przejść/odrzuceń.

AI i ML3DZaawansowany60 FPS
ai-manufacturing-quality-control ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O tej symulacji

Ta symulacja pokazuje sieć konwolucyjną wykonującą pracę wizyjnego inspektora jakości na linii fabrycznej. Metalowe części, każda reprezentowana jako siatka 40×40 intensywności pikseli z teksturą bazową szczotkowanego metalu, poruszają się po symulowanej taśmie transportowej. Gdy każda część przechodzi przez linię inspekcyjną, dwa stałe jądra 3×3 — para gradientowa Sobela i Laplasjan — są w czasie rzeczywistym splatane z siatką pikseli, produkując prawdziwe mapy aktywacji. Progowanie tych map i grupowanie ocalałych pikseli w spójne składowe daje prawdziwe ramki ograniczające, prawdziwy werdykt przejścia/odrzucenia oraz prawdziwy wynik pewności, wszystko wyprowadzone z rzeczywistego wyniku konwolucji, a nie ze zaskryptowanej animacji. Trzy klasy defektów są modelowane z odrębnymi sygnaturami na poziomie pikseli: zarysowania (cienkie, przyciemnione artefakty liniowe z drżącą ścieżką), wgniecenia (kołowe gaussowskie zapadnięcia intensywności z rozjaśnioną obwódką) oraz niewspółosiowość (twarda nieciągłość krawędzi przesunięta od miejsca, w którym oczekiwana jest granica części). Dostosuj, jak często wstrzykiwany jest każdy defekt, przeciągnij próg czułości detekcji, przełączaj między jądrami wykrywania tylko-Sobel, tylko-Laplasjan i połączonym, i obserwuj, jak macierz pomyłek oraz wskaźnik przejść reagują na żywo podczas działania linii inspekcyjnej.

Najczęściej zadawane pytania

Jakie jądra konwolucji symulacja faktycznie uruchamia na każdej części?

Każda część jest reprezentowana jako siatka 40×40 intensywności pikseli w skali szarości. Dwa stałe jądra 3×3 są splatane z tą siatką w każdym pikselu: para gradientowa Sobela (Gx i Gy), której wielkość √(Gx²+Gy²) reaguje na ostre krawędzie intensywności — sygnaturę zarysowania lub przesuniętej krawędzi — oraz dyskretny Laplasjan [[0,1,0],[1,–4,1],[0,1,0]], którego wartość bezwzględna reaguje na zlokalizowane wypukłości i wgłębienia, sygnaturę wgniecenia. Obie są prawdziwymi konwolucjami 2D obliczanymi piksel po pikselu na rzeczywistych danych obrazu wygenerowanych dla tej części, a nie zaskryptowaną animacją.

Dlaczego łączy się jądro krawędziowe z jądrem plamkowym zamiast używać tylko jednego?

Pojedynczy typ jądra pomija całe klasy defektów. Mapa krawędzi Sobela jasno rozświetla się na zarysowaniach i przesuniętych krawędziach (niewspółosiowość), ale ledwie reaguje na gładkie kołowe wgniecenie, ponieważ wgniecenie ma łagodny gradient bez ostrej linii krawędziowej. Laplasjan robi odwrotnie: silnie reaguje na krzywiznę w środku wgniecenia, ale tylko słabo na cienką prostą linię zarysowania. Wzięcie maksimum piksel po pikselu z obu znormalizowanych map (fuzja przez maksimum kanałowe) sprawia, że połączona mapa aktywacji wychwytuje wszystkie trzy typy defektów, co odzwierciedla, dlaczego prawdziwe CNN nakładają wiele filtrów na warstwę zamiast polegać na jednym wyuczonym jądrze.

Jak suwak czułości tworzy prawdziwy kompromis detekcji?

Mapa aktywacji jest normalizowana do zakresu w przybliżeniu 0–1, a każdy piksel powyżej progu czułości jest oznaczany jako kandydat na piksel defektu. Obniżenie progu flaguje więcej pikseli, wychwytując słabsze zarysowania i płytsze wgniecenia (wyższy wskaźnik prawdziwie pozytywnych), ale również flagując zwykły szum tekstury szczotkowanego metalu jako fałszywy alarm (niższy wskaźnik prawdziwie negatywnych). Podniesienie progu robi odwrotnie. Macierz pomyłek w panelu bocznym aktualizuje się na żywo podczas przeciągania suwaka, ponieważ surowa mapa aktywacji każdej części jest zapisywana raz i natychmiast progowana ponownie — dokładnie jak kompromis czułość/swoistość stojący za każdym prawdziwym detektorem anomalii.

Czy stoi za tym faktycznie wytrenowana sieć neuronowa, czy ręcznie dobrane wagi?

Wagi jąder są tu stałe i dobrane ręcznie, a nie wyuczone metodą spadku gradientu na etykietowanych danych defektów. To celowe uproszczenie. To, co symulacja wiernie odtwarza, to obliczenie przejścia w przód, jakie każda CNN wykonuje w chwili wnioskowania: konwolucja → progowanie map cech → grupowanie spójnych składowych w ramki ograniczające → decyzja przejścia/odrzucenia — ten sam potok, który uruchamia wytrenowana sieć wykrywania defektów, tylko z wagami dobranymi ręcznie zamiast wyuczonymi z tysięcy etykietowanych części.

Jak zarysowania, wgniecenia i niewspółosiowość są zamieniane na rzeczywiste dane pikselowe?

Każda część zaczyna się jako bazowa tekstura szczotkowanego metalu: szum kierunkowy plus słabe sinusoidalne ziarno. Zarysowanie jest rysowane jako cienka linia o losowym kącie, której piksele są przyciemnione wzdłuż drżącej ścieżki z miękkim zanikiem po obu stronach. Wgniecenie to kołowe gaussowskie zapadnięcie intensywności z lekko rozjaśnioną obwódką, naśladujące sposób, w jaki światło łapie uniesioną krawędź prawdziwego wgniecenia. Niewspółosiowość jest symulowana przez przesunięcie oczekiwanej granicy części do wewnątrz lub na zewnątrz po jednej stronie, tworząc twardą nieciągłość intensywności wewnątrz ramki, gdzie CNN jej nie oczekuje. Wszystkie trzy to rzeczywiste modyfikacje na poziomie pikseli siatki, na której faktycznie działa konwolucja.

Co przedstawiają ramki ograniczające na panelu inspekcyjnym?

Po progowaniu symulacja grupuje sąsiadujące oflagowane piksele w spójne składowe za pomocą wypełniania powodziowego o 4-łączności (ten sam podstawowy algorytm używany do etykietowania spójnych składowych w prawdziwych potokach wizji komputerowej). Składowe mniejsze niż minimalna liczba pikseli są odrzucane jako szum. Ramka ograniczająca każdej ocalałej składowej jest rysowana nad powiększonym widokiem części, a jej średnia aktywacja bezpośrednio zasila decyzję przejścia/odrzucenia oraz wynik pewności — więc każda ramka na ekranie odpowiada rzeczywistemu skupisku progowanego wyniku konwolucji, a nie dekoracyjnej nakładce.

Co dokładnie mierzy wskaźnik przejść/odrzuceń i macierz pomyłek?

Każda część jest generowana ze znaną prawdą podstawową (czy faktycznie wstrzyknięto zarysowanie, wgniecenie czy niewspółosiowość) oraz werdyktem CNN (przejście lub odrzucenie) wyprowadzonym czysto z progowanej mapy aktywacji. Porównanie obu daje macierz pomyłek na żywo: prawdziwie pozytywne (rzeczywisty defekt, poprawnie odrzucony), fałszywie pozytywne (czysta część, błędnie odrzucona), prawdziwie negatywne (czysta część, poprawnie przepuszczona) i fałszywie negatywne (rzeczywisty defekt, przeoczony). Wskaźnik przejść to po prostu przepuszczone/wszystkie w trwającej sesji. Obserwowanie, jak te liczby się zmieniają podczas przesuwania suwaka czułości, to to samo ćwiczenie, które wykonuje inżynier jakości dostrajając próg alarmu prawdziwej linii inspekcyjnej.

Dlaczego selektor jądra detekcji zmienia to, co zostaje wykryte?

Przełączanie jądra detekcji między tylko-Sobel, tylko-Laplasjan i połączoną fuzją przez maksimum zmienia, która mapa aktywacji faktycznie napędza decyzję przejścia/odrzucenia, a nie tylko to, co jest wyświetlane. Przy wybranym tylko-Sobel wgniecione części często przechodzą jako fałszywie negatywne, ponieważ gładkie zapadnięcie daje mały gradient; przy wybranym tylko-Laplasjan cienkie zarysowania są często przeoczane, ponieważ ich sygnał krzywizny jest słaby. Tylko połączona mapa niezawodnie wychwytuje wszystkie trzy klasy defektów przy jednym progu, co jest praktycznym powodem, dla którego prawdziwe CNN inspekcyjne używają wielu kanałów konwolucji zamiast jednego filtru, bez względu na to, jak dobrze jest dostrojony.

Podobne symulacje