$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
I dati utilizzati in questo studio provengono da un database pubblico di ricerca con immagini microscopiche di sedimenti di urina. Durante lo studio, non sono state utilizzate informazioni personali che identificassero il paziente. Gli elementi commercialmente disponibili associati a questo protocollo sono elencati nella Tabella dei Materiali.
Acquisire e preparare il dataset
Sono state ottenute immagini microscopiche di sedimenti urinici comprendenti globuli rossi, globuli bianco, cellule epiteliali, cristalli, calchi, batteri e lievito. Tutte le immagini venivano salvate in formato PNG o JPEG utilizzando convenzioni di denominazione coerenti. Sono state eliminate immagini sfocate o di scarsa qualità contenenti artefatti sedimentari incompleti. Il software di annotazione delle scatole delimitate veniva utilizzato per l'annotazione a livello di oggetto delle particelle di sedimenti di urina. A ogni tipo di sedimento è stato assegnato un numero di classe e le annotazioni sono state esportate in formato YOLO contenente l'identificatore di classe, le coordinate centrali normalizzate, la larghezza della scatola di delimitazione e l'altezza della scatola di delimitazione. La qualità dell'annotazione veniva convalidata manualmente selezionando casualmente immagini annotate.
Il dataset è stato suddiviso casualmente in tre sottoinsiemi composti dal 70% dai dati di addestramento, dal 15% dai dati dalla validazione e dal 15% dai dati dei test. Abbiamo utilizzato la funzione Python Scikit-learn train_test_split() con campionamento stratificato per dividere il dataset. Ogni sottoinsieme manteneva la rappresentazione proporzionale di tutte le classi di sedimenti. La suddivisione casuale stratificata è stata impiegata per minimizzare la disparità di classe tra le partizioni del dataset. La distribuzione per classe delle immagini alle categorie di sedimenti urinari è illustrata nella Tabella 1.
Tutte le immagini microscopiche sono state ridimensionate a 640 × 640 pixel utilizzando interpolazione bilineare con OpenCV. I valori di intensità dei pixel sono stati normalizzati all'intervallo [0,1]. L'aumento dei dati è stato eseguito utilizzando flipping orizzontale, verticale, rotazione casuale (±15°), regolazione della luminosità e regolazione del contrasto durante l'addestramento. Le immagini preprocessate venivano salvate in cartelle separate per addestramento, validazione e test.
Configurazione del sistema
L'ambiente sperimentale è stato configurato per l'analisi dei sedimenti urinari basata su deep learning. Sono stati installati Python versione 3.10, il framework di deep learning PyTorch e CUDA Toolkit versione 12.1 per l'accelerazione GPU. Sono stati installati ulteriori pacchetti Python tra cui OpenCV, NumPy, Pandas, Matplotlib e Scikit-learn. Il repository per l'implementazione di YOLOv10 è stato scaricato e configurato prima della sperimentazione. Il calcolo deterministico per GPU è stato abilitato dove possibile, e tutte le versioni del package utilizzate durante la sperimentazione sono state registrate per supportare la riproducibilità.
Rilevamento dei sedimenti urinari basato su YOLOv10
Un diagramma schematico di YOLOv10 è mostrato nella Figura 1. Sono stati caricati pesi YOLOv10 pre-addestrati sul dataset COCO. Lo strato finale di rilevamento è stato sostituito da uno strato di output personalizzato sostituendo il conteggio predefinito delle classi COCO con quello delle classi di sedimenti delle urine. È stata implementata una configurazione di rilevamento senza ancora basata sulla struttura YOLOv10.
Gli iperparametri di addestramento sono stati inizializzati con un tasso di apprendimento di 0,001, dimensione del lotto di 16.300 epoche, ottimizzatore AdamW e decadimento del peso di 0,0005. È stata applicata la programmazione del tasso di apprendimento con annealing coseno e durante l'addestramento è stata abilitata una fermata anticipata con un valore di pazienza di 20.
Il dataset di addestramento veniva inserito nella rete YOLOv10 per generare previsioni di bounding box e probabilità di classe. Durante l'addestramento venivano calcolate perdite di localizzazione, perdita di classificazione, perdita di fiducia e perdita totale. I pesi dei modelli sono stati aggiornati utilizzando la retropropagazione e l'ottimizzazione della discesa del gradiente. La validazione veniva eseguita dopo ogni epoca utilizzando il dataset di validazione.

Figura 1: Architettura di YOLOv10. Rappresentazione schematica dell'architettura di rilevamento oggetti YOLOv10 utilizzata per l'analisi automatizzata dei sedimenti delle urine. La figura illustra la colonna vertebrale, il collo e i componenti della testa di rilevamento coinvolti nell'estrazione delle caratteristiche, nella fusione multiscala delle caratteristiche e nella rilevazione di oggetti senza ancora per particelle microscopiche di sedimenti urinari. Clicca qui per visualizzare una versione più grande di questa figura.
Ottimizzazione delle Elezioni dei Leader Scimpanzé (CLEO)
Un diagramma schematico di CLEO è mostrato nella Figura 2. Lo spazio di ricerca di ottimizzazione includeva tasso di apprendimento 0,0001–0,01, dimensione del lotto 8–32, quantità di movimento 0,8–0,99, decadimento del peso 0,0001–0,001 e soglia di confidenza 0,25–0,75. È stata generata una popolazione iniziale di scimpanzé contenente soluzioni candidate casuali. YOLOv10 è stato addestrato utilizzando iperparametri rappresentati da ciascun scimpanzé candidato, e le prestazioni del modello sono state valutate utilizzando la Precisione Media (mAP) di validazione. La funzione di fitness è stata definita come:

Qui,
, e
rappresentano i coefficienti di pesatura. Il candidato scimpanzé con il punteggio di fitness più alto veniva selezionato come leader. Le restanti soluzioni candidate sono state aggiornate secondo le regole di aggiornamento delle posizioni CLEO. I processi di esplorazione e sfruttamento venivano eseguiti iterativamente per identificare iperparametri ottimali. Il processo di ottimizzazione è stato ripetuto per 50 iterazioni o fino a quando il miglioramento della fitness < 0,001. I pesi assegnati erano
0,5,
0,25 e
0,25. Gli iperparametri ottimali generati da CLEO sono stati applicati al framework YOLOv10. La rete è stata riaddestrata utilizzando il dataset completo di addestramento, e i pesi del modello con le migliori prestazioni sono stati salvati in base alle prestazioni di validazione. Il flusso di lavoro del modello proposto è illustrato nella Figura 3.

Figura 2: Algoritmo di ottimizzazione delle elezioni dei leader degli scimpanzé. Flusso di lavoro dell'algoritmo di ottimizzazione CLEO che mostra l'inizializzazione delle soluzioni candidate, la valutazione della fitness, la selezione del leader, la strategia di aggiornamento esplorazione-sfruttamento e la convergenza iterativa per l'ottimizzazione degli iperparametri del framework YOLOv10. Clicca qui per visualizzare una versione più grande di questa figura.

Figura 3: Flusso di lavoro del modello proposto. Flusso di lavoro complessivo del framework proposto YOLOv10 + CLEO per l'analisi automatizzata dei sedimenti di urina, inclusa acquisizione di dataset, preprocessing delle immagini, annotazione, addestramento del modello, ottimizzazione degli iperparametri basata su CLEO, rilevamento e valutazione delle prestazioni. Clicca qui per visualizzare una versione più grande di questa figura.
Valutazione del modello
Il modello ottimizzato YOLOv10 + CLEO è stato testato utilizzando il dataset di test indipendente. Sono state calcolate metriche di valutazione delle prestazioni, tra cui accuratezza, precisione, richiamo, punteggio F1, mAP50 e mAP50-95. Per i calcoli venivano utilizzate funzioni di metriche scikit-learn. È stato anche registrato il tempo medio di inferenza per immagine. Le classi di sedimenti previste sono state confrontate con annotazioni di verità sul terreno per generare matrici di confusione per tutte le categorie di sedimenti. Particelle di sedimento frequentemente classificate erroneamente sono state identificate sulla base dei risultati della classificazione. Modelli di confronto tra cui YOLOv5, YOLOv8 e Faster R-CNN sono stati addestrati e valutati utilizzando il dataset UMID sotto configurazioni hardware identiche.