Rozpoznávání obrazu

Odpovědět
Uživatelský avatar
Pipik
Příspěvky: 850
Registrován: 9. 11. 2016, 3:32
Bydliště: České Budějovice

9. 10. 2021, 12:47

Zdravim

Tak mám zas jeden pitomej nápad :D
Hodil by se nějakej softík, co by byl schopen rozpoznat statické kruhové tvary z obrazu ze statické kamery a sdělit jejich umístění (středy kruhů) na obraze -> posléze by se dopočítaly x/y souřadnice. To celé v Linuxcnc, aby to následně mohlo posílat hlavu tam kam má.
Nezabýval se tu tím někdo?
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit :wink:
Uživatelský avatar
packa
Příspěvky: 6935
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

9. 10. 2021, 2:48

na kameru jsou do linuxcncn nějaké fičury třeba : https://forum.linuxcnc.org/plasmac/4005 ... f?start=50
Uživatelský avatar
Radhard
Příspěvky: 287
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

9. 10. 2021, 10:49

OpenCV
Detekoval jsem s tím kolečka v obraze.
Uživatelský avatar
Mr. MR
Příspěvky: 756
Registrován: 31. 5. 2020, 10:05

10. 10. 2021, 11:47

Ahoj. Mohl bys analyzovat i fotku nebo trvas na zivem obrazu z kamery? Chces najit stred na jednom kruhu s vysokou presnost, nebo to bude na "trideni podlozek"?
Připrav se, hrajem...
https://www.youtube.com/watch?v=HzjNAnEfvxc
Uživatelský avatar
Pipik
Příspěvky: 850
Registrován: 9. 11. 2016, 3:32
Bydliště: České Budějovice

10. 10. 2021, 8:06

Mrknu na OpenCV, díky.

No, obrázek by to taky asi mohl být, asi by nebyl problém vždycky před "akcí" udělat snímek z kamery, ty objekty se pohybovat nebudou (neměly by). Akorát by bylo dobrý, kdyby zvládl detekovat hromadu kruhů v jednom snímku a sdělit souřadnice všech, nebo aspoň jednoho, kterej mu přijde zrovna nejlíp pod ruku. Postupně by se ty objekty sbíraly a tak by kruhy ubývaly. Přesnost nijak zvlášť nehraje roli, uchopovač by se už udělal tak aby se počítalo s nějakou nepřesností míření.
Takže jo, v podstatě třídění podložek, až na to že jsou všechny stejný :D
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit :wink:
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

11. 10. 2021, 8:10

Ahoj,
docela zajímavé téma. Rozpoznat kolečko či čáru v opencv je program na 15 řádek, to asi problém nebude. Podstaně složitější otázku vidim v tom jak zkalibrovat rozměry z kamery na reálné souřadnice, případně synchronizovat pohyb napřiklad běžícího pásu, kde by ty "podložky" ujížděly. Ale koukám, že píšeš statický obraz, takže beru zpět. A pak je tu ještě jeden problém a to, jak výsledná data posílat do linuxcnc. Přemýšlel si o tom? Protože g-code je na prd, bude to chtít něco online. :)
Napadá mě použít analogové vstupy a programem je číst, ale to mi připadá dost krkolomné. rozumnější mi přijde použivat mdi přikazy přímo z nějaké vlastní pythonovské userspace komponenty, která v sobě bude mít i ten opencv. Ale vlastní zkušenosti mám pramalé. A pak je tu ještě jedno elegantní řešení a to použít sdílenou pamět a povídat si přes NML. Tak jak to dělá scanything. Elegnatní metoda, ale dost komplikovana a závislá na verzi LCNC a jeho vnitřní struktůře.
nejlepší cesta "cena výkon" mi přijdou ty mdi přikazy. A ještě jsem si vzpomněl, že před časem někdo napsal něco jako MDIpump. je to userspace komponenta, která čte ze souboru řádky a posílá je do LCNC. Přečte - pošle-počká že bylo dokončeno- pošle další.

Martin
Uživatelský avatar
Pipik
Příspěvky: 850
Registrován: 9. 11. 2016, 3:32
Bydliště: České Budějovice

11. 10. 2021, 9:39

Patřím do kategorie optimistů na zabití, a jelikož mi nikdo neřekl že to nejde, věřím že to jde :)
Popravdě to vidím přes příkazy do MDI, a nebo taková veselá vochcávka, udělat v Gkódu smyčku, která by stále dokola spouštěla subprogram, který by se po každém rozpoznání vygeneroval. Smyčka by vždy jen čekala na signál že je subprogram připraven a stroj je ve výchozí pozici.
Potažmo přes příkaz MDI spouštět tu subrutinu...
...což je mimochodem způsob jak importovat Gkód do běžícího LCNC.
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit :wink:
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“