Witam.
Piszę z zapytaniem odnośnie pewnej implementacji algorytmu.
Otóż mam za zadanie zaimplementować algorytm do detekcji sęków wg artykułu:
https://www.researchgate.net/publication/220665710_Automated_visual_inspection_system_for_wood_defect_classification_using_computational_intelligence_techniques
Zdjęcia testowe w moim przypadku mają rozmiar 480x480.
Do tej pory zaimplementowałem proces selekcji ziaren(punkt 2.1 artykułu), zapisujący się do klasy "Input" zawierający współrzędne x,y(znormalizowane do postaci [0,1]) oraz wartości RGB dla poszczególnego ziarna(punkt 2.2 artykułu).
W tym momencie utknąłem na punkcie 2.3 i tworzeniu hyperbox'ów.
Nie do końca jestem pewien tego co mam zrobić z danymi wzorami, gdy na zdjęciu mam np. 2 sęki oddalone od siebie i chce je rozdzielić na 2 różne hyperbox'y.. Wiem tyle, że Bj jest hyperboxem określonym punktami min i max.
Pytanie moje dotyczy bardziej tego jak mam obliczyć to bj(Xh,Vj,Wj), bo w teorii mogę określić 1 hyperbox z punktami min-max w którym zawarte są wszystkie piksele z Input pattern z punktu 2.2 ale wtedy obliczając bj dla każdego puntu ze zbioru punktów ziaren względem tych punktów min-max otrzymuję wartość 1 dla bj. Nie wiem czy źle pojmuję ten punkt i dlatego kieruję moje pytanie tutaj.
Byłbym bardzo wdzięczny gdyby ktoś mógł zerknąć na artykuł i podpowiedzieć co zrobić krok po kroku do punktu 2.3.1 (3) bo ja powoli zaczynam tracić wiarę w to co znajduje się w tym artykule.
Kod:
https://pastebin.com/Q1s4Vzmi
Do linii 170 następuje proces tworzenia macierzy z punktu 2.2
Reszta kodu są to moje rozkminy co do dalszej części.
Dorzucam też przykładowy plik csv z danymi jakie uzyskuje i wykorzystuje oraz zdjęcie na jakim operuję i zaznaczonymi pikselami.
Z góry dziękuję za pomoc.
- seed select.jpg (592 KB) - ściągnięć: 80
- 4.png (385 KB) - ściągnięć: 73
- 4_XY.csv (2 MB) - ściągnięć: 155