blog

L’evoluzione di AutoSplitter

Pubblicato: 27 ottobre 2026

L’evoluzione di AutoSplitter

2012 – Rilevare gli angoli

Quando ho iniziato a lavorare su AutoSplitter, non avevo un vero termine di paragone. L’unico software che avevo provato era quello di base fornito dal produttore del mio scanner piano, ed era davvero carente.

Volevo creare qualcosa di meglio e il mio unico banco di prova era il mio scanner con le mie foto di famiglia. Queste foto non erano incollate in un album ingiallito: erano semplicemente un mucchio di foto in una scatola di cartone.

Ho quindi supposto che, per quasi tutti, l’unico caso d’uso fosse scansionare le foto sullo sfondo biancastro di uno scanner piano.

Questo ha ispirato la prima versione del mio algoritmo di rilevamento delle foto. Il compito sembrava ovvio: data un’immagine scansionata contenente più foto, trovarle identificando quali pixel appartengono a una foto e quali al piano dello scanner. Tutte le foto sono rettangolari, con angoli perlopiù netti. Nei pressi dell’angolo di una foto, il 25% dei pixel vicini fa parte della foto e il 75% dello sfondo. Di solito lo sfondo è quasi bianco, mentre il contenuto della foto è generalmente ben lontano dal bianco.

Valutando gruppi di pixel secondo questa logica si possono individuare gli angoli… la maggior parte delle volte. Alcuni rilevamenti sono falsi positivi (non sono davvero angoli), altri falsi negativi (angoli non rilevati). Gli angoli rilevati possono essere classificati facilmente come in alto a sinistra, in alto a destra, in basso a sinistra o in basso a destra, a seconda di quali segmenti attorno al pixel dell’angolo sembrano sfondo e quali sembrano parte di una foto.

Due o tre angoli possono bastare per determinare con una buona precisione la posizione di una foto. Questo approccio funzionava piuttosto bene con le mie raccolte di foto. Alcuni angoli non rilevati causavano problemi, per esempio quando più foto venivano unite per errore, ma il risultato era comunque molto migliore del software di fabbrica fornito con il mio scanner.

Come nota a margine, il rilevamento dei bordi è un altro buon metodo per trovare forme rettangolari in un’immagine. Non posso dire che non abbia mai avuto un ruolo nei miei algoritmi, ma è stato usato solo come aiuto secondario per valutare il rilevamento delle foto. Non è mai stato il metodo principale.


2019 – Quadrati e blocchi… e angoli

Quadrati adiacenti rilevati dall’algoritmo di rilevamento delle foto di AutoSplitter – vista di debug

Nell’autunno del 2019, dopo anni di tentativi ripetuti per migliorare l’algoritmo di rilevamento automatico, non avevo ancora fatto molti progressi. Avevo ottenuto qualche risultato perfezionando il metodo di rilevamento degli angoli, ma i miglioramenti non erano mai stati rivoluzionari. Avevo aggiunto diversi livelli di filtri all’algoritmo di rilevamento degli angoli, così che funzionasse anche quando gli utenti non scansionavano su uno sfondo bianco. Questo aiutava parecchio, ma non abbastanza.

Il successivo grande sviluppo fu il «metodo dei quadrati». In informatica si chiama etichettatura delle componenti connesse e adattamento dell’inviluppo convesso. L’idea è abbastanza semplice: classificare tutti i pixel dell’immagine di input come sfondo o foto usando filtri diversi, quindi trovare gruppi di pixel che sembrano tutti parte di una foto. I quadrati adiacenti vengono uniti in gruppi; ciascun gruppo delinea approssimativamente una foto rilevata.

Questo funzionava piuttosto bene con sfondi irregolari. Ho reso molto più rigoroso l’algoritmo di rilevamento degli angoli, in modo che individuasse solo le foto più evidenti. Il metodo dei quadrati elaborava poi le aree rimanenti, non rilevate, per trovare le altre foto. Purtroppo non sono riuscito a capire come rilevare con precisione gli angoli di rotazione delle foto, quindi venivano sempre rilevate senza rotazione (a 0 gradi). Era comunque un grande miglioramento rispetto all’approccio basato solo sugli angoli.


Estate 2026 – Finalmente i quadrati ruotano

Dopo molti tentativi falliti di migliorare ulteriormente i miei metodi di rilevamento automatico, sono finalmente riuscito a determinare gli angoli di rotazione dei gruppi di quadrati rilevati. Questo mi ha spinto ad abbandonare il rilevamento dei quadrati, poiché era la causa principale di molti falsi positivi e rilevamenti uniti. Ancora una volta, però, non sono riuscito a migliorare ulteriormente i risultati.


Inizio autunno 2026 – Apprendimento profondo

Quadrati adiacenti rilevati dall’algoritmo di rilevamento delle foto di AutoSplitter – vista di debug

Non c’erano altre strade da percorrere. Quadrati e angoli non potevano offrire risultati migliori. Per quanto perfezionassi l’algoritmo, restava un fatto inevitabile: trovare oggetti rettangolari in un’immagine è FACILE. Capire quali pixel appartengono alle foto è difficile—MOLTO difficile. Tutto dipende da questa semplice classificazione binaria di ogni pixel. Non importa quanto sia ben regolato il metodo di rilevamento dei rettangoli, se non riesci a identificare con precisione i pixel che appartengono al rettangolo, giusto?

L’apprendimento profondo usa reti neurali, algoritmi che in una certa misura imitano il cervello umano. Per addestrare le reti neurali servono molti dati di esempio (e le relative risposte) per insegnare alla rete e valutarla. Addestrare un sistema di rilevamento delle foto per immagini scansionate non è facile. Su Internet non si trova un camion pieno di foto scansionate. Non potevo nemmeno ottenerle dai miei clienti, perché il software non caricava MAI immagini scansionate e i clienti non avrebbero certo approvato una procedura del genere.

L’apprendimento profondo offre la risposta alla domanda fondamentale: QUESTO PIXEL FA PARTE DI UNA FOTO O NO? Se si riesce a rispondere in modo affidabile, un semplice algoritmo di etichettatura delle componenti connesse (che mi piace chiamare «quadrati») può rilevare le foto con grande affidabilità.

Ho trovato un modo per ottenere abbastanza dati di esempio da addestrare la rete neurale senza compromettere la privacy di nessuno. Di conseguenza, AutoSplitter è in grado di rilevare le foto con grande affidabilità dalla versione 1.16.1.


Il futuro

Al momento non so quale sarà il prossimo passo. Probabilmente i dati di addestramento dovranno essere perfezionati per migliorare ulteriormente il rilevamento automatico. I risultati non sono ancora accurati al 100% e probabilmente non lo saranno mai. In ogni caso, se vedrò un modo per migliorarli, ci proverò.