You are on page 1of 8

Wydział Mechaniczny

Politechniki Białostockiej
Katedra Robotyki i Mechatroniki

Instrukcja do zajęć laboratoryjnych z przedmiotu:

SYSTEMY WIZYJNE

Ćwiczenie nr: 2

Kontrola kształtu

Kod przedmiotu: MK2S22005

Instrukcję opracował: dr inż. Jakub Augustyniak

Białystok 2022
Cel ćwiczenia
Celem ćwiczenia jest zapoznanie się z podstawowymi technikami przetwarzania obrazów oraz
stworzenie kompletnego algorytmu pozwalającego na wykrywanie złożonych kształtów, ich
identyfikację oraz określenie parametrów fizycznych takich jak pole czy linia brzegowa.

1. Wprowadzenie
Wykrywanie obiektów jest ważnym zadaniem z zakresu pracy systemów wizyjnych [1].
Przeprowadzenie przetwarzania obrazu za pomocą algorytmów komputerowych na obrazach
cyfrowych, zwanego DIP (digital image processing) koncentruje się na dwóch głównych
zadaniach: poprawie informacji obrazowych oraz przechowywaniu, transmisji i reprezentacji
danych dla autonomicznej percepcji maszyny. Ponadto DIP to praktyczna technologia
klasyfikacji, wyodrębniania cech, wieloskalowej analizy sygnału, rozpoznawania wzorców (PR-
pattern recognition) i projekcji.

Wykrywanie obiektów na obrazach można przeprowadzić za pomocą kilku technik


przetwarzania:

a) obraz w odcieniach szarości


Obrazy w odcieniach szarości zawierają wartości pikseli w zakresie od 0 do 255 na pojedynczej
matrycy. Różne obiekty zawierają różne wartości pikseli. W ten sposób można je wyodrębnić
z obrazów.

b) thresholding (progowanie)
To rodzaj segmentacji obrazu, w którym zmieniamy piksele obrazu, aby obraz był łatwiejszy
do analizy. W progowaniu konwertujemy obraz z koloru lub skali szarości na obraz binarny, tj.
taki, który jest po prostu czarno-biały. Jednym ze sposobów określenia wartości progowania
jest spojrzenie na histogram w skali szarości obrazu i próba określenia, jakie zakresy skali
szarości odpowiadają kształtom na obrazie lub w tle.

c) analiza histogramu
Histogram obrazu zapewnia ogólny opis jego wyglądu. Przedstawia względną częstotliwość
występowania różnych poziomów szarości na obrazie.

d) wykrywanie krawędzi
Krawędzie obiektów są reprezentowane za pomocą linii granicznych. Wykrywanie krawędzi na
obrazie zmniejsza znacząco liczbę danych i filtruje informacje, które mogą być postrzegane
jako mniej znaczące, zachowując ważne własności struktur znajdujących się na obrazie.

Klasyfikację lub rozpoznanie wykrytych obiektów można przeprowadzić za pomocą


następujących podejść:

a) rozpoznawanie oparte na wyglądzie takie jak dopasowanie szablonów, krawędzi,


oparte na kolorach, dopasowywanie gradientu itp.

2
b) rozpoznawanie oparte na funkcjach takich jak drzewa interpretacji, hipotezy i testy,
spójność pozy, grupowanie póz, niezmienność, mieszanie geometryczne itp.

Jedną z technik rozpoznawania obiektów jest wyznaczanie wartości okrągłości obiektu.


Okrągłość jest miarą tego, jak bardzo kształt obiektu zbliża się do matematycznie idealnego
koła. Okrągłość jest zdominowana przez ogólne cechy kształtu, a nie przez określenie jego
krawędzi i naroży lub chropowatość powierzchni wytwarzanego przedmiotu. Gładka elipsa
może mieć małą kolistość, jeśli jej mimośród jest duży. Wielokąty foremne zwiększają swoją
kolistość wraz ze wzrostem liczby boków, mimo że nadal są ostre.

Definicja okrągłości według ISO jest stosunkiem promieni okręgów wpisanych i opisanych na
obiekcie, tj. maksymalnych i minimalnych rozmiarów okręgów, które są wystarczające, aby
zmieścić się w środku i objąć kształt [2].

Przykłady klasyfikacji obiektów na podstawie wartości okrągłości:

Obwód 2
• wzór ogólny na okrągłość: C =
4    Pole
• wartość teoretyczna dla koła to: 1
( 4d )
2
4
• wartość teoretyczna kwadratu to: = 1.273 =
4 d  2

• wartość teoretyczna dla trójkąta równoramiennego to:


( 3d )
2
9
= = 1.6539
4  0.5  d  sin( 60 )
2
4  0.5  sin( 60 )

gdzie d jest średnicą okręgu opisanego na obiekcie.

2. Opis stanowiska pomiarowego

a) Kamery KINECT

Kamera Kinect (Rys. 1) to seria urządzeń wejściowych wyprodukowanych przez firmę


Microsoft i wydanych po raz pierwszy w 2010 roku. Urządzenia te zawierają kamery RGB oraz
projektory i detektory podczerwieni, które mapują głębię obrazu za pomocą obliczeń światła
strukturalnego lub czasu lotu. Zebrane dzięki nim informacje mogą być wykorzystywane do
np. rozpoznawanie gestów i wykrywanie szkieletu ciała w czasie rzeczywistym. Kamera Kinect
zawiera również mikrofony, których można używać do rozpoznawania mowy i sterowania
głosowego.

3
Rys. 1 Wygląd kamery Kinect: a) Kinect v1; b) Kinect v2

Technologia wykrywania głębi i ruchu stanowiąca podstawę sensora Kinect jest dostępna
dzięki czujnikowi głębi. Oryginalny sensor Kinect v1 (Rys. 2) wykorzystuje w tym celu światło
strukturalne: urządzenie używa wzoru w bliskiej podczerwieni wyświetlanego w przestrzeni
przed sensorem Kinect, podczas gdy czujnik podczerwieni wychwytuje wzór odbitego światła.
Wzór światła jest zniekształcony przez względną głębokość obiektów znajdujących się przed
nim, a do oszacowania tej głębokości można użyć zależności matematycznych związanych
z układem sprzętowym sensora Kinect. Kinect v2 (Rys. 3) używa pomiarów czasu lotu.
Projektor podczerwieni w sensorze Kinect wysyła modulowane światło podczerwone, które
jest następnie przechwytywane przez czujnik. Światło podczerwone odbijające się od bliższych
obiektów będzie miało krótszy czas lotu niż to odbite od elementów bardziej odległych. Czujnik
podczerwieni rejestruje, jak bardzo wzór modulacji został zdeformowany w zależności od
czasu lotu, piksel po pikselu. Pomiary głębokości w czasie lotu mogą być dokładniejsze
i obliczone w krótszym czasie, co pozwala na wykrycie większej liczby klatek na sekundę [3].

Tabela 1. Porównanie parametrów kamery Kinect v1 oraz Kinect v2

Parametr/Kamera Kinect v1 Kinect v2


Rozdzielczość (kolor) + fps 640×480 30fps 1920×1080 30fps
Rozdzielność (głębia) 320x240 512x424
Czujnik Światło strukturalne Czas lotu
Zdefiniowane stawy
20 26
szkieletowe
Poziome pole widzenia 57° 70°
Pionowe pole widzenia 43° 60°

4
Rys. 2 Budowa kamery Kinect v1

Rys. 3 Budowa kamery Kinect v2

b) Stanowisko laboratoryjne MPS 500 – FMS

Jest modułowym stanowiskiem związanym z elastycznym systemem produkcyjnym


ukazującym zachodzące procesy technologiczne szczególnie w przemyśle spożywczym lub
farmaceutycznym (Rys. 4). Poniżej przedstawione stanowisko składa się z następujących
komponentów:

1) Stanowisko napełniania i indeksowania butelek


2) Stanowisko pakowania
3) Stanowisko transportowe
4) Stanowisko rozpakowywania
5) Stanowisko odsysania i mycia
6) Stanowisko buforowania

5
7) Stanowisko dystrybucji
8) Stanowisko podawania
9) Stanowisko magazynowania
10) Stanowisko sortowania (wydania towaru).

Rys. 4 Stanowisko MPS 500 FMS z wyszczególnionymi modułami

Wszystkie moduły stanowiska wyposażone są w sterownik PLC S7-300, na który został


zaimplementowany program sterujący pracą każdego modułu. Połączenie pomiędzy nimi jest
realizowane za pomocą sieci Ethernet, która umożliwia wzajemną wymianę danych.

3. Przebieg ćwiczenia
Ćwiczenie należy rozpocząć od prawidłowego skalibrowania wybranej kamery Kinect oraz
uruchomienia podglądu obrazu na żywo w programie Matlab.

6
Kolejne etapy to:
1) Określenie podstawowych parametrów obrazu takich jak: ilość kolumn, ilość wierszy,
określenie liczby kanałów barw;
2) Przekształcenie obrazu monochromatycznego na kolorowy (obraz w skali szarości
pozostawić bez zmian);
3) Binaryzacja obrazu (dobranie odpowiedniego progu);
4) Usunięcie z obrazu małych obszarów stanowiących szum i zakłócenia w obrazie;
5) Oznaczyć połączone komponenty w obrazie binarnym 2D;
[labeledImage, numberOfObjects] = bwlabel(binaryImage);

6) Zmierzyć właściwości regionów obrazu;


blobMeasurements =
regionprops(labeledImage,'Perimeter','Area','FilledArea', 'Solidity',
'Centroid');

7) Zapisać indywidualnie właściwości regionów do tablic (obwód, pole, wypełnione


obszary, solidity - ułamek powierzchni regionu w porównaniu do jego wypukłego
kadłuba)
8) Obliczyć okrągłość obiektów
Obwód 2
Cr =
4  Pole
9) Wypisać wartości w Command Window
fprintf('#, Perimeter, Area, Filled Area, Solidity,
Circularity\n');
for blobNumber = 1 : numberOfObjects
fprintf('%d, %9.3f, %11.3f, %11.3f, %8.3f, %11.3f\n', ...
blobNumber, perimeters(blobNumber), areas(blobNumber),…
filledAreas(blobNumber), solidities(blobNumber),
circularities(blobNumber));
end
10) Przedstawić zarys obiektu
for blobNumber = 1 : numberOfObjects
thisBoundary = boundaries{blobNumber};
hold on;
for k = 1 : blobNumber-1
thisBoundary = boundaries{k};
plot(thisBoundary(:,2), thisBoundary(:,1), 'b',
'LineWidth', 3);
end
11) Określić kształt. UWAGA! Na podstawie proporcji okrągłości kwadratu lub trójkąta.

4. Opracowanie wyników
Na podstawie przeprowadzonej kalibracji kamery Kinect przedstawić graficznie poszczególne
etapy pozwalające wykryć wtrącenia na taśmociągu przemysłowym. Należy przedstawić ich
rozmiary oraz położenie w odniesieniu do pozycji kamery. Uzyskane wyniki porównać
z wymiarami zmierzonymi suwmiarką.

7
Sprawozdanie powinno zawierać:

1. Temat ćwiczenia.
2. Datę wykonania ćwiczenia.
3. Przebieg realizacji ćwiczenia.
4. Wyniki pomiarów i identyfikacji obiektów.
5. Porównanie wyników z pomiarami dokonanymi suwmiarką analogową.
Określenie błędów pomiarów.
6. Wnioski.

5. Pytania kontrolne
1) Co to jest okrągłość – wzór i definicja
2) Wymienić oraz opisać techniki przetwarzania obrazów w celu wykrycia obiektów.
3) Przedstawić przykłady klasyfikacji obiektów na podstawie wartości okrągłości.
4) Opisać techniki klasyfikacji lub rozpoznania wykrytych obiektów.

6. Literatura
[1] C. Hemalatha, S. Muruganand, R. Maheswaran, “A Survey on Real Time Object Detection,
Tracking and Recognition in Image Processing”, International Journal of Computer
Applications (0975 – 8887), Vol. 91 No. 16, 2014.
[2] A guide to the Measurement of Roundness". Taylor-Hobson Precision. Diameter is not the
same as roundness, 2013.
[3] Z. Cai, J. Han, Li Liu, Ling Shao, RGB-D datasets using microsoft kinect or similarsensors: a
survey, Multimed Tools Appl, 76:4313–4355, 2017.

You might also like