Wpis z mikrobloga

Mirki potrzebuję Waszej pomocy, sytuacja jest następująca:
Mam do zrobienia system z przetwarzania obrazu. Obraz ma być czytany z kamery 1024x256 pikseli, w odcieniach szarości. Będzie trzeba na nim rozpoznawać jasne kółko na ciemnym tle oraz ciemne punkty w tym jasnym kółku. Kółko powinno mieć zwykle średnicę około 200 px. Może się zdarzać, że będzie tylko częściowo widoczne kółko i właśnie cała zabawa na tym polega, żeby wiedzieć gdzie jest środek tego kółka i podawać jego współrzędne do sterownika silników, aby je śledzić.

W życiu nie bawiłem się przetwarzaniem sygnałów w systemach wbudowanych. Nieco ogarniam mikroklocki, sporo na FPGA pisałem. Teraz zastanawiam się jak podejść do sprawy. Na takim FPGA przykładowo nie wiem jak miałbym taki system testować mając przykładowy obraz takiego kółka.

Na pewno są tutaj osoby, które siedzą w tego typu sprawach. Byłby ktoś chętny trochę pomóc, podpowiedzieć co robić na początek, w którą technologię się ładować?

#mikrokontrolery #fpga #embedded
  • 5
@navry: technologia to w tym przypadku najmniejszy problem. Ja bym raczej skupił się na algorytmie i ewentualnie samym schemacie działania aplikacji a dopiero później martwił o technologię. Pytanie podstawowe dlaczego chcesz to robić na fpga? To ma pracować w czasie rzeczywistym? Może lepiej byłoby pobawić się z logiką rozmytą? Algorytmy rozpoznawania krawędzi i te sprawy...
@adam-bojarski: FPGA tylko z tego względu, że do tej pory więcej kodu napisałem w VHDL'u niż C. Ale jeśli miałby to być uC, to nie ma problemu, tylko w tej chwili jeszcze nie wiem jak mógłbym taką pracę zacząć, jak właśnie rozgryzać algorytmy. Matlab w takiej sytuacji się sprawdza? Czy lepiej od np. w C na PC kombinować? Matlab to pewnie w przypadku FPGA.
Po prostu do tej pory moja robota
@adam-bojarski: ale mnie zaciekawiłeś tą logiką rozproszoną. Tylko czy starczy mi czasu na ogarnięcie tego. Znasz jakieś przykłady wprowadzające do tego od razu związane z przetwarzaniem obrazów? Python, Matlab, C, cokolwiek...
Miałem coś takiego na studiach na przedmiocie podstawy automatyki i robotyki. Robiliśmy jakieś proste przykłady w matlabie. Ogólnie matlabie jest fajny żeby sobie przetestować jakiś algorytm na szybko, a implementację lepiej napisać np w c które będzie o niebo wydajniejsze.
@navry: problem wygląda dość prosto a jeżeli analiza ma się wyrabiać w sekundę to w ogóle bajka :) zrobisz to bez trudu na jakimś raspberrypi, słabym smartfonie a na stacjonarnym/przemysłowym PC będzie działać 3 rzędy wielkości za szybko ;-)

Tak jak pisze @adam-bojarski, najpierw zrób i przetestuj algorytm a potem go zaimplementuj docelowo. Więc tak:

1) zbierz dane, bez tego nie ruszysz, najlepiej jeżeli będą to dane (obrazki) z rzeczywistego