Hogyan működnek a gépfelismerő algoritmusok?
Ez így nem lesz jó.
MI-t kell írni rá, amely tanul és annak alapján azonosít.
Ha már mindenképpen így szeretnéd, akkor sem kell az összes pixelt vizsgálni, csak annak meghatározott hányadát. Ez a hányad attól függ milyen a vizsgálandó, de hogy max. a nyolcada, tizenhatoda, vagy inkább csak 128-ada a pixeleknek, az biztos, de legalábbis, több mint valószinű. Egy mátrix segít neked.
Megvalósítás-függő. Lehet úgy is, ahogy te írod.
Ezt a kártyalap felismerést elég egyszerű megoldani. Kevés azonosítási pont szükséges.
Ha rákeresel (Artificial Intelligence), fogsz kapni találatot. Valószinűleg magyar nyelven is.
"Nem kell ide semmiféle mesterséges intelligencia,"
"Kontúrkeresés/éldetektálás, binarizálás, transzformációk, maszkolás, hibaszámítás,"
Nem azért, de amiről te írsz, az is mesterséges intelligencia. Gondoltam, tudatom veled. Csak az eleje még alacsony szintű képfeldolgozással is meg van terhelve. Erre neki semmi szüksége. A képfeldolgozás nála abban is kimerülhet, hogy redukálja a színmélységet és azután már csak egy mátrix-os megfeleltetés szükséges.
Dehogy. A neurális háló az az MI egyik megvalósítása (a sok közül).
Én erre a problémára nem alkalmaznék neurális hálót, mert annak megvalósítása túl sokba kerülne a feladathoz képest.
Itt nem kell egyéb, mint a kitüntetett pontokat egyszer elődetektálni (mátrix), azokat bináris fában letárolni (52 db), és egy keresőrutint írni a megfeleltetésekhez, majd végiglépkedni a fán.
Ennyi a feladata. Persze előtte egy, vagy fél bájtosra redukálnám a 3 bájtos képet, hogy kisebb legyen a memófoglalás meg a prociterhelés.
Erről mi a vélemény? [link]
Eddig ez a legjobb amit találtam. OpenCV vel is probáltam méghozzá matchTemplate el. Van vele bajom. Ez a kodom a matchTemplate hez és működik is.
import cv2
import numpy as np
from matplotlib import pyplot as plt
img_rgb = cv2.imread('test.png')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('test_pattern.png',0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where( res >= threshold)
print(res)
for pt in zip(*loc[::-1]):
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (155,0,155), 2)
cv2.imwrite('res.png',img_rgb)
Ez előbbi módszert még elemzem.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!