Az AutoSplitter fejlődése
Megjelent: 2026. október 27.
2012 – Sarkok felismerése
Amikor elkezdtem dolgozni az AutoSplitteren, nem volt valódi viszonyítási alapom. A síkágyas szkennerem gyártója által biztosított alapszintű szkennelőszoftver volt az egyetlen, amit kipróbáltam, és meglehetősen hiányosnak bizonyult.
Szerettem volna valami jobbat készíteni, a teszteléshez pedig csak a saját szkennerem és a saját családi fotóim álltak rendelkezésemre. Ezek a képek nem egy megsárgult fotóalbumba voltak ragasztva; egyszerűen egy kartondobozban hevertek.
Ezért azt feltételeztem, hogy szinte mindenki számára a síkágyas szkenner fehéres háttere előtti fotószkennelés lesz az egyetlen használati eset.
Ez adta az ötletet a fotófelismerő algoritmusom első változatához. A feladat egyértelműnek tűnt: egy több fotót tartalmazó beszkennelt képen úgy kell megtalálni a fotókat, hogy megállapítjuk, mely képpontok tartoznak egy fotóhoz, és melyek a szkenner üvegéhez. Minden fotó téglalap alakú, és (többnyire) éles sarkai vannak. Egy fotó sarka körül a szomszédos képpontok 25%-a a fotóhoz, 75%-a pedig a háttérhez tartozik. A háttér általában csaknem fehér, míg a fotó tartalma többnyire messze áll a fehértől.
Ha e logika szerint értékeljük a képpontcsoportokat, többnyire megtalálhatjuk a sarkokat. Néhány találat téves pozitív (valójában nem sarok), mások téves negatív eredmények (fel nem ismert sarkok). A felismert sarkok könnyen besorolhatók bal felső, jobb felső, bal alsó vagy jobb alsó sarokként attól függően, hogy a sarok képpontja körüli területek közül melyek tűnnek háttérnek, és melyek a fotó részének.
Két vagy három sarok is elég lehet a fotó helyének meglehetősen pontos meghatározásához. Ez a megközelítés jól működött a fotógyűjteményeimnél. Néhány fel nem ismert sarok problémákat okozott, például több fotó téves összevonását, de az eredmény így is sokkal jobb volt, mint a szkennerhez kapott gyári szoftveré.
Mellékesen: a képélek felismerése szintén jó módszer a téglalap alakú formák megtalálására. Nem állíthatom, hogy soha nem játszott szerepet az algoritmusaimban, de csak másodlagos segítségként használtam a fotófelismerések értékeléséhez. Soha nem ez volt a fő módszer.
2019 – Négyzetek és blokkok… és sarkok

2019 őszén, miután éveken át újra és újra megpróbáltam javítani az automatikus felismerő algoritmust, még mindig nem sokat haladtam. A sarokfelismerési módszer finomhangolásával sikerült némi javulást elérnem, de ezek sosem voltak forradalmiak. Több szűrési réteget adtam a sarokfelismerő algoritmushoz, hogy akkor is működjön, ha a felhasználók nem fehér háttér előtt szkennelnek. Ez sokat segített, de nem eleget.
A következő nagy fejlesztés a „négyzetmódszer” volt. Informatikai szakkifejezéssel ezt összefüggő komponensek címkézésének és konvex burok illesztésének nevezik. Az ötlet meglehetősen egyszerű: különböző szűrőkkel a bemeneti kép minden képpontját háttérként vagy fotóként címkézzük, majd megkeressük azokat a képpontcsoportokat, amelyek mindegyike egy fotó részének tűnik. A szomszédos négyzeteket csoportokba rendezzük; mindegyik csoport nagyjából körvonalaz egy felismert fotót.
Ez egyenetlen hátterekkel is jól működött. Sokkal szigorúbbá tettem a sarokfelismerő algoritmust, hogy csak az egyértelmű fotókat ismerje fel. A négyzetmódszer ezután feldolgozta a megmaradt, fel nem ismert területeket, hogy megtalálja a többi fotót. Sajnos nem sikerült rájönnöm, hogyan lehet pontosan felismerni a fotók elforgatási szögét, ezért a rendszer mindig elforgatás nélkül (0 fokban) ismerte fel őket. Ez így is nagy előrelépés volt a kizárólag sarkokra épülő módszerhez képest.
2026 nyara – A négyzetek végre elfordulnak
Miután számos kísérletet tettem az automatikus felismerési módszereim további javítására, végre sikerült meghatároznom a felismert négyzetcsoportok elforgatási szögét. Emiatt felhagytam a négyzetfelismeréssel, mivel ez okozta a sok téves pozitív találatot és az összevont felismeréseket. Ismét nem sikerült azonban tovább javítanom az eredményeken.
2026 kora ősze – Mélytanulás
Nem maradt más út. A négyzetekkel és a sarkokkal nem lehetett jobb eredményt elérni. Bárhogyan finomhangoltam az algoritmust, egy megkerülhetetlen tény továbbra is fennállt: téglalap alakú objektumokat találni egy képen KÖNNYŰ. Annak kiderítése, hogy mely képpontok tartoznak a fotókhoz, nehéz – NAGYON nehéz. Minden az egyes képpontok egyszerű bináris besorolásától függ. Mit sem ér a téglalapfelismerési módszer tökéletes hangolása, ha nem lehet pontosan megállapítani, mely képpontok tartoznak a téglalaphoz, igaz?
A mélytanulás neurális hálózatokat használ: olyan algoritmusokat, amelyek bizonyos mértékig utánozzák az emberi agyat. A neurális hálózatok betanításához sok példára (és a hozzájuk tartozó helyes válaszokra) van szükség a hálózat tanításához és értékeléséhez. Nem könnyű beszkennelt képekhez fotófelismerő rendszert tanítani. Nem lehet teherautónyi beszkennelt fotót találni az interneten. Az ügyfeleimtől sem szerezhettem ilyeneket, mivel a szoftver SOHA nem töltött fel beszkennelt képeket, az ügyfelek pedig biztosan nem hagytak volna jóvá egy ilyen folyamatot.
A mélytanulás választ ad a mindennél fontosabb kérdésre: EZ A KÉPPONT EGY FOTÓ RÉSZE VAGY SEM? Ha erre megbízhatóan lehet válaszolni, egy egyszerű összefüggőkomponens-címkéző algoritmus (amit én szívesen „négyzeteknek” nevezek) nagyon megbízhatóan képes felismerni a fotókat.
Találtam egy módszert arra, hogy elegendő mintát szerezzek a neurális hálózat betanításához anélkül, hogy bárki magánszférája sérülne. Ennek eredményeként az AutoSplitter az 1.16.1-es verzió óta nagyon megbízhatóan ismeri fel a fotókat.
A jövő
Egyelőre nem tudom, mi következik. Az automatikus felismerés további javításához valószínűleg finomítani kell a tanítóadatokat. Az eredmények még biztosan nem 100%-osak, és valószínűleg soha nem is lesznek azok. Mindenesetre, ha látok lehetőséget a javításukra, megpróbálom.