$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Questo studio non ha coinvolto soggetti umani, animali vertebrati o tessuti regolati; Pertanto, non era richiesta alcuna approvazione etica o approvazione del comitato di revisione istituzionale. Il dataset utilizzato in questo studio è stato ottenuto dalla Longyan Tobacco Industry Co., Ltd. Sono state raccolte immagini da cinque lotti di produzione indipendenti in un periodo di tre mesi. Il campionamento è stato effettuato casualmente in diversi momenti del giorno (mattina, pomeriggio e notte) per catturare variazioni naturali nelle condizioni di produzione. Il dataset include campioni che coprono un intervallo di umidità del tabacco dal 12%al 18%, velocità di taglio di 1,5, 2,0 e 2,5 m/s, e pressioni pneumatiche di trasporto di 0,4, 0,5 e 0,6 MPa, garantendo così la copertura delle condizioni tipiche di produzione.
Acquisizione e Configurazione dei Dataset
Configurazione hardware
Il sistema di acquisizione dell'immagine era configurato per soddisfare i requisiti per rilevare l'ordine del tabacco tagliato nelle sigarette che non bruciano a caldo. Consisteva principalmente in una telecamera industriale, una lente industriale, una sorgente luminosa per la visione e un'unità di controllo industriale. Il sistema utilizzava una fotocamera industriale MV-CH120-10GC abbinata a un obiettivo industriale MVL-KF0818M-12MP per catturare immagini ad alta definizione della regione del tabacco tagliato sulla superficie di bacchette di sigaretta sezionate. La telecamera era posizionata a una distanza di lavoro di 150 mm dalla superficie della bacchetta della sigaretta. La sorgente luminosa a striscia LED era montata coassialmente con la telecamera a una distanza di 80 mm dal bersaglio, con un angolo di incidenza di 45°. L'imaging veniva eseguito all'interno di un involucro nero opaco per eliminare l'interferenza con la luce ambientale. L'involucro è un cappuccio in alluminio dipinto nero opaco con dimensioni interne di 400 mm (larghezza) × 350 mm (profondità) × 300 mm (altezza), e superfici interne rivestite con vernice nera opaca (riflettanza < 5% a 550 nm) per minimizzare i riflessi interni e garantire condizioni di illuminazione costanti. Per garantire la qualità e la coerenza dell'immagine, è stata utilizzata una sorgente luminosa MV-LRDS-H-95-30-W per stabilire un ambiente di illuminazione stabile, minimizzando l'impatto delle variazioni della luce ambientale sull'estrazione dei contorni dei fili di tabacco e sul riconoscimento dell'orientamento. Le immagini acquisite venivano ricevute, elaborate e memorizzate da un computer industriale PC1010-AX360, che eseguiva anche algoritmi di riconoscimento successivi, calcolo dei risultati e output di interfaccia. Non è stata effettuata alcuna calibrazione esplicita o correzione della distorsione della fotocamera, poiché la combinazione industriale di fotocamera e obiettivo mostrava una distorsione radiale trascurabile (meno dello 0,5% ai bordi dell'immagine) nel campo visivo di 896 × 1600 pixel. La fotocamera e la sorgente luminosa erano montate rigidamente su un fotogramma fisso per garantire la stabilità posizionale durante l'acquisizione dell'immagine. L'intensità della sorgente luminosa è stata mantenuta a un livello costante durante l'acquisizione dell'immagine. Il campo visivo fu configurato per coprire completamente la regione del tabacco tagliato esposto all'interno della struttura di supporto in acciaio.
Impostazione dei parametri della fotocamera
L'acquisizione dell'immagine veniva attivata e le immagini venivano catturate dopo che il campione di sigaretta era stato posizionato e sezionato, e poi salvato in formato JPG. Per garantire la coerenza delle immagini acquisite, i parametri di acquisizione venivano impostati manualmente. In particolare, la risoluzione dell'immagine era impostata a 896 × 1600. Il tempo di esposizione era inizialmente impostato a 4000 μs e poteva essere finemente regolato in un intervallo da 3000 a 6000 μs in base alla luminosità in loco. Tutta la regolazione dei parametri veniva eseguita con il campione inserito all'interno dell'involucro nero opaco descritto sopra, in condizioni di illuminazione completamente controllate. Durante la sintonia non era presente luce ambientale esterna, poiché il sistema di imaging operava in un ambiente completamente chiuso con le luci della stanza spente. Il guadagno era inizialmente impostato a 2 dB e controllato in un intervallo da 0 a 6 dB in base ai livelli di rumore. Il valore gamma fu impostato a 0,8 e il bilanciamento del bianco fu configurato con parametri fissi. I parametri finali di acquisizione sono stati impostati come segue: tempo di esposizione = 4000 μs, guadagno = 2 dB, gamma = 0,8, modalità bilanciamento del bianco = fissa, risoluzione immagine = 896 × 1600 pixel e formato immagine = JPG. Per il bilanciamento del bianco, veniva utilizzata la modalità a parametro fisso. La calibrazione veniva eseguita utilizzando una scheda di riferimento bianca standard (X-Rite ColorChecker) posizionata nella posizione campione. I guadagni dei canali rossi e blu venivano regolati fino a quando i valori RGB della scheda bianca venivano equalizzati con una deviazione del ±2%. Dopo la calibrazione, i parametri del bilanciamento del bianco sono stati fissati come segue: guadagno rosso = 1,2, guadagno verde = 1,0 (fisso) e guadagno blu = 1,5. La calibrazione veniva eseguita una volta dopo ogni avvio del sistema o ogni volta che la sorgente luminosa mostrava segni di invecchiamento che potevano causare una deriva della temperatura del colore. Queste impostazioni hanno contribuito a garantire confini chiari tra il tabacco tagliato e una distribuzione stabile della luminosità, soddisfacendo al contempo i requisiti di elaborazione per la successiva segmentazione dei filamenti di tabacco, il calcolo dell'orientamento e l'analisi dell'ordine.
Collezione di immagini
L'acquisizione dell'immagine ha preso di mira l'area del tabacco tagliato esposta sulla superficie delle aste di sigaretta che non si accendono a caldo dopo la sezione. Durante la rilevazione, il campione di sigaretta veniva prima consegnato alla stazione di ispezione, dove la sua postura e posizione venivano regolate e fissate dal meccanismo di posizionamento del campione. Il meccanismo di posizionamento consiste in una pinza pneumatica con guide di allineamento a V. Il sistema raggiunge una ripetibilità posizionale di ±0,5 mm su 1000 cicli consecutivi, come verificato dalle misurazioni del sensore di spostamento laser. Successivamente, il materiale di avvolgimento esterno veniva sezionato stabilmente dal meccanismo di taglio, esponendo completamente il tabacco tagliato superficialmente nel campo visivo del sistema di visione. Veniva utilizzata una lama circolare rotante (diametro 50 mm, spessore 0,3 mm, materiale acciaio ad alta velocità). La profondità di taglio fu impostata a 1,5 mm con una velocità di rotazione di 300 giri/min. La consistenza del taglio veniva monitorata tramite feedback lineare dell'encoder, mantenendo una variazione dello spessore entro ±0,05 mm. Una volta stabile la posizione del campione e la regione di imaging chiaramente definita, l'acquisizione dell'immagine veniva effettuata utilizzando la telecamera industriale sotto un'illuminazione stabile fornita dalla sorgente luminosa. Furono raccolte in totale 634 immagini; immagini tipiche sono mostrate nella Figura 1. Il dataset include tre livelli di densità di tabacco (basso, medio, alto; circa 180, 220 e 260 mg/cm 3), orientamenti dei fili che vanno da −180° a 180°, e condizioni di illuminazione che vanno da una luce normale a condizioni di margine a scarsa luminosità. L'illuminanza è stata misurata utilizzando un luxmetro digitale calibrato (TA8133, precisione ±3%) con il sensore posizionato nella posizione della superficie del campione. La gamma di illuminazione normale misurata è di 200–800 lux, fornita dalla sorgente luminosa a striscia LED all'interno della cappa chiusa, senza perdite di luce ambientale. Il valore di fascia bassa (circa 200 lux) rappresenta una condizione di caso limite creata dall'oscurazione della sorgente luminosa per valutare la robustezza del modello. Inoltre, in circa il 30% delle immagini è presente un'occlusione parziale dei filamenti di tabacco (che varia dal 10% al 50%). Queste variazioni riflettono una reale diversità delle linee di produzione.

Figura 1. Immagini rappresentative grezze del tabacco tagliato acquisite dal sistema visivo. (a–h) Esempi rappresentativi di immagini grezze di tabacco tagliato catturate in condizioni di campo industriale utilizzando il sistema di acquisizione delle immagini. Le immagini sono state ottenute a una risoluzione di 896 × 1600 pixel sotto illuminazione controllata utilizzando una sorgente di luce a striscia per garantire una luminosità uniforme e minimizzare le interferenze ambientali. Queste immagini illustrano variazioni nella distribuzione, densità e orientamento dei filamenti di tabacco prima dell'elaborazione del modello. Clicca qui per visualizzare una versione più grande di questa figura.
Annotazione delle immagini
Utilizzando lo strumento open source LabelImg, le scatole delimitanti venivano disegnate attorno a elementi di supporto visibili di tabacco tagliato e acciaio. L'angolo corretto veniva assegnato come etichetta per ogni riquadro di delimitazione. L'asse orizzontale (0°) era definito come la direzione verso destra parallela al bordo inferiore dell'immagine. Per ogni filo di tabacco, la funzione di misurazione dell'angolo dello strumento di annotazione veniva utilizzata per tracciare una linea lungo l'asse maggiore del filo. L'angolo veniva registrato come l'angolo tra questo asse e il riferimento orizzontale (raggio: −180° a 180°). Le annotazioni venivano salvate nel formato standard di rilevamento a singolo stadio, con un file TXT corrispondente a ogni immagine. Ogni file .txt contiene righe formattate come: class_id x_center y_center larghezza dell'altezza. Le coordinate sono normalizzate a [0,1] rispetto alle dimensioni dell'immagine. Classe 0 = filo di tabacco, classe 1 = supporto in acciaio. L'etichetta angolare è memorizzata come sesta colonna nel file di .txt annotazioni, aggiunta dopo i cinque campi standard YOLO. Il formato esatto per riga è: class_id x_center y_center angolo di larghezza. Il valore dell'angolo è memorizzato in gradi come numero in virgola mobile che varia da −180,0 a 180,0, con due decimali (ad esempio, 45,75). Riga di esempio: 0 0,5230 0,4170 0,0850 0,0620 38,25.
Controllo qualità
Un secondo annotatore ha esaminato casualmente il 20% delle immagini annotate. La selezione casuale è stata eseguita utilizzando la funzione random.sample() dalla libreria random di Python con un seed casuale fisso del 2024. È stato generato un elenco di tutti i nomi dei file immagine e il 20% delle immagini è stato campionato senza sostituzione utilizzando questo generatore di numeri casuali seeded, garantendo una selezione riproducibile attraverso procedure ripetute di controllo qualità. Eventuali discrepanze venivano discusse e risolte, garantendo la coerenza delle etichette. L'accordo tra annotatori è stato valutato utilizzando la deviazione angolare: la differenza assoluta media tra le etichette angolari dei due annotatori era di 2,8° (deviazione standard = 1,5°). Le annotazioni con deviazione >5° sono state riesaminate e riconciliate.
Modello di regressione a singolo stadio per il rilevamento dell'ordine del tabacco tagliato
Il rilevamento dell'allineamento del tabacco tagliato è fondamentale per migliorare sia il processo produttivo sia la qualità finale del prodotto nella produzione di sigarette. Tuttavia, questo compito di ispezione affronta diverse sfide, tra cui la sovrapposizione del tabacco tagliato, dimensioni ridotte dei bersagli e illuminazione irregolare, tutte cose che compromettono la precisione e la robustezza della rilevazione. Un modello di regressione a singolo stadio migliorato basato su YOLOv11n viene utilizzato per il rilevamento online dell'ordine del tabacco tagliato. Il quadro proposto identifica con precisione le caratteristiche morfologiche del tabacco tagliato durante la formazione delle bacchette, consentendo una rilevazione affidabile della regolarità dell'allineamento migliorando al contempo accuratezza, robustezza e capacità di elaborazione in tempo reale. La configurazione complessiva del quadro di regressione a singolo stadio proposto è mostrata nella Figura 2.

Figura 2. Architettura complessiva del modello di regressione a singolo stadio proposto. Il diagramma illustra l'intera struttura della rete, inclusi la colonna dorsale, il collo e la testa di rilevamento. La backbone estrae caratteristiche multiscala, incorporando moduli interattivi multifrequenza per il downsampling (MFID) per preservare le informazioni sulle caratteristiche. Il manico integra caratteristiche utilizzando la strategia della fusione tripla complementare (TCF) per una rappresentazione multilivello migliorata. La testa di rilevamento adotta il modulo DynamicHead, che integra meccanismi di attenzione consapevoli della scala (πL), consapevoli dello spazio (πS) e attenti al compito (πC) per migliorare le prestazioni di localizzazione e classificazione. Clicca qui per visualizzare una versione più grande di questa figura.
Modulo di Downsampling delle Informazioni Multifrequenza (MFID)
Nella rete backbone di YOLOv11, l'operazione convoluzionale con un passo di 2 esegue il downsampling saltando i pixel. Questo processo scarta direttamente metà delle informazioni spaziali, causando la perdita di dettagli ad alta frequenza (ad esempio, bordi e texture di piccoli oggetti) e una significativa perdita di informazioni per piccoli bersagli. Inoltre, le operazioni di max-pooling e middle-pooling nella backbone scartano anche informazioni dettagliate all'interno delle regioni degli oggetti, le caratteristiche fluide e introducono rumore, tutti elementi che influiscono negativamente sull'apprendimento delle caratteristiche.
Per affrontare questi problemi, viene introdotto un modulo MFID, ispirato al concetto di decomposizione gerarchicawavelet 15,16. Questo modulo scompone innanzitutto le caratteristiche in due parti complementari usando la trasformata wavelet di Haar: informazioni di fondo a bassa frequenza, che migliorano la classificazione, e dettagli ad alta frequenza ricchi di bordi e texture, che migliorano la rilevazione di piccoli bersagli. Per rafforzare ulteriormente la percezione di piccoli bersagli, il modulo MFID incorpora due rami aggiuntivi: un ramo max-pooling che sfrutta l'invarianza di traslazione per preservare le caratteristiche fini dei piccoli bersagli, e un ramo a convoluzione strided-convolution che utilizza parametri apprendibili per ottenere una maggiore capacità rappresentativa e una composizione informativa più ricca. Attraverso questa struttura multiramo, il modulo MFID conserva informazioni spaziali e di frequenza più complete durante il downsampling. L'architettura del modulo MFID è illustrata nella Figura 3.

Figura 3. Struttura del modulo MFID. Il modulo MFID separa le caratteristiche di ingresso in componenti a bassa frequenza e alte frequenze utilizzando una trasformata a wavelet di Haar per preservare le informazioni strutturali critiche durante il downsampling. HLL indica la componente di approssimazione a bassa frequenza, mentre HLH, HHL e HHH rappresentano componenti di dettaglio ad alta frequenza rispettivamente in direzione orizzontale, verticale e diagonale. Il simbolo 2↓ indica il doppio downsampling. Le feature map di più rami vengono fuse tramite meccanismi di concatenazione e gating per migliorare la rappresentazione delle feature. Clicca qui per visualizzare una versione più grande di questa figura.
Durante il downsampling, l'immagine viene decomposta utilizzando la trasformata wavelet di Haar, adottata per la sua semplicità ed efficienza nella decomposizione di caratteristiche a bassa e alta frequenza, rendendola adatta a compiti di rilevamento in tempo reale. HL e HH indicano rispettivamente i filtri di decomposizione passa-basso e passa-alto e vengono impiegati per estrarre informazioni a bassa e alta frequenza dall'immagine. La funzione base wavelet e la funzione di scala per una trasformata di Haar unidimensionale e a un livello sono definite usando l'Equazione 1 come segue:
(1)
La funzione di base di Haar è definita usando l'Equazione 2 come segue:
(2)
Qui, i parametri j e k indicano rispettivamente il coefficiente di scala e la quantità di traslazione della funzione base di Haar. In particolare, la funzione base di Haar di ordine zero è definita usando l'Equazione 3 come segue:
(3)
Nella Figura 3, il simbolo 2↓ indica il doppio downsampling. Una decomposizione a due livelli delle wavelet di Haar produce quattro componenti: l'approssimazione a bassa frequenza (HLL) e le componenti di dettaglio ad alta frequenza nelle direzioni orizzontale (HLH), verticale (HHL) e diagonale (HHH). Il componente HLL trasporta informazioni di contorno, sfondo e globali, mentre i componenti ad alta frequenza (HLH, HHL e HHH) catturano caratteristiche di bordo, texture e granule fine.
Le componenti ad alta frequenza HLH, HHL e HHH ottenute dopo il doppio downsampling vengono concatenate dall'operazione Concat, integrando così le informazioni dettagliate multidirezionali per generare le informazioni
integrate di dettaglio ad alta frequenza , come mostrato nell'Equazione 4.
(4)
Successivamente, la fusione secondaria delle informazioni viene effettuata sul ramo max-pooling per integrare le caratteristiche dettagliate con le caratteristiche globali, generando così informazioni
ricostruite , come mostrato nell'Equazione 5, che incorpora un insieme più ampio di caratteristiche salienti e riutilizza informazioni dettagliate ad alta frequenza per una rappresentazione delle caratteristiche migliorata.
(5)
Successivamente, viene impiegato un meccanismo di gating per regolare dinamicamente il flusso di informazioni, e viene
sfruttato per guidare l'identificazione di piccole caratteristiche target all'interno del
, preservando le caratteristiche utili e sopprimendo interferenze ruotiche intrinseche e inutili. Il meccanismo di gating è definito come: gating(x) = Linear_2(ReLU(Linear_1(x))), dove Linear_1 riduce la dimensione del canale di un fattore di riduzione di 4 e Linear_2 la riporta alla dimensione originale del canale. L'uscita del meccanismo di gating viene passata attraverso un'attivazione Sigmoid per produrre pesi di modulazione nell'intervallo [0,1]. I parametri apprendibili includono le matrici di pesi e i termini di bias di entrambi i livelli lineari, che vengono inizializzati usando l'inizializzazione uniforme. Questo garantisce che le informazioni dettagliate e critiche sulle caratteristiche siano correttamente bilanciate e utilizzate, ottenendo la caratteristica
dettagliata finale come presentato nell'Equazione 6.
(6)
Infine, le informazioni sul downsampling tra stride-convolution, il vettore a bassa frequenza e la caratteristica dettagliata finale vengono concatenate tramite Concat per espandere l'interazione del downsampling delle feature su più dimensioni e bande di frequenza, come mostrato nell'Equazione 7.
(7)
Passaggi di implementazione
Definizione del modulo
Un modulo personalizzato di PyTorch chiamato MFID dovrebbe essere definito all'interno dei file di definizione del modello del progetto. L'implementazione di questo modulo consiste in quattro percorsi paralleli: (1) Trasformata a wavelet: una decomposizione a due livelli viene applicata alla mappa delle caratteristiche di ingresso usando filtri wavelet di Haar predefiniti, generando una componente approssimativa a bassa frequenza e componenti di dettaglio ad alta frequenza nelle direzioni orizzontale, verticale e diagonale, dopodiché le tre componenti ad alta frequenza vengono concatenate; (2) Max-pooling: il max-pooling viene applicato all'ingresso per preservare le caratteristiche salienti; (3) Convoluzione stridata: il downsampling standard viene eseguito attraverso uno strato convoluzionale con un passo di 2; (4) Ricostruzione e fusione delle caratteristiche: innanzitutto, le informazioni ad alta frequenza ottenute dalla trasformata wavelet vengono fuse con le caratteristiche del ramo di max-pooling; successivamente, viene impiegato un meccanismo di accesso guidato dalle informazioni a bassa frequenza per filtrare le caratteristiche a grana fine; Infine, le caratteristiche a grana fine elaborate, i componenti a bassa frequenza e l'uscita a convoluzione strided vengono concatenati per ottenere la mappa finale delle caratteristiche ridimensionate.
Modifica del file di configurazione
Il file di configurazione base del modello (config.yaml) dovrebbe essere aperto. Tutti i moduli standard di downsampling sia nella rete dorsale che in quella a neck dovrebbero essere identificati sistematicamente. Ogni entrata di modulo di downsampling identificata dovrebbe quindi essere sostituita dal modulo MFID.
Motivazione nel design
Il modulo MFID è progettato per mitigare la perdita di informazioni nelle operazioni standard di downcampionamento, particolarmente dannoso per il rilevamento di oggetti di piccole dimensioni. Il suo concetto centrale è ispirato alla decomposizione gerarchica delle wavelet. Separando esplicitamente le informazioni globali a bassa frequenza da quelle ad alta frequenza nell'immagine e elaborandole di conseguenza, il modulo garantisce che le caratteristiche critiche di texture e bordi vengano preservate durante il downsampling. L'incorporazione dei rami max-pooling e strided-convolution cattura e integra ulteriormente le caratteristiche da prospettive complementari—in particolare, invarianza di traduzione rispetto a rappresentazione apprendibile. Attraverso la fusione multiramo, il modulo fornisce ai livelli di rete successivi una rappresentazione delle caratteristiche multifrequenza più informativa e robusta. Tutti i parametri architettonici non specificati e le configurazioni dei livelli seguono le impostazioni predefinite di implementazione del framework YOLOv11n all'interno di PyTorch.
Modulo di Fusione a Tripla Caratteristica Incrociata (TCF)
Nella fase di fusione delle caratteristiche al collo dell'architettura di rete YOLOv11, una semplice operazione di concatenazione viene tipicamente utilizzata per unire mappe di caratteristiche della stessa scala. Tuttavia, questo approccio diretto presenta chiari limitazioni: innanzitutto, non tiene pienamente conto delle differenze semantiche tra le caratteristiche a diversi livelli; secondo, la mancanza di modellizzazione esplicita delle correlazioni inter-canali rende le caratteristiche a piccoli target soggette a diluizione o perdita durante la fusione, compromettendo così le prestazioni di rilevamento. Per affrontare questi problemi,viene introdotto un metodo di fusione più interattivo, chiamato modulo TCF. Questo metodo impiega una strategia di fusione progressiva multilivello che guida il flusso di informazioni verso il rilevamento di piccoli bersagli tramite trasmissione cross-layer. Incorpora inoltre ulteriori operazioni non lineari per esplorare informazioni a profondo livello su scala, migliorando così la fusione di caratteristiche multiscala. A differenza dei moduli convenzionali che si basano su semplice addizione o fusione media, il TCF adotta un approccio di fusione ponderata. Questo gli permette di apprendere in modo adattivo informazioni dettagliate a ogni livello, ottimizzare dinamicamente i percorsi di estrazione delle informazioni e concentrarsi sulle caratteristiche più discriminanti, migliorando così la precisione della rilevazione. L'architettura del modulo TCF è illustrata nella Figura 4.

Figura 4. Struttura del modulo TCF. Il modulo TCF esegue la fusione di caratteristiche multilivello tra strati superficiali, medi e profondi per migliorare la rappresentazione di piccoli bersagli. P rappresenta le mappe di input feature a diversi livelli. Conv indica operazioni di convoluzione, Upsampling indica il campionamento delle caratteristiche, e AdaptiveAvgPool rappresenta il pooling medio adattivo. Il modulo integra caratteristiche calibrate attraverso fusione ponderata e interazione tra strati per migliorare la complementarità semantica e spaziale. Clicca qui per visualizzare una versione più grande di questa figura.
Nel compito di rilevamento degli oggetti, le informazioni contenute nella caratteristica dello strato profondo Pi+1 e nella caratteristica dello strato superficiale Pi-1 differiscono significativamente. Per migliorare la fusione delle informazioni cross-layer, viene introdotto il livello intermedio Pi come ultimo layer di fusione delle caratteristiche per bilanciare le differenze tra le informazioni sulle feature a diversi livelli.
Per prima cosa, le informazioni di input degli strati superficiali, intermedi e profondi vengono elaborate utilizzando la funzione di attivazione Sigmoid per generare caratteristiche
ponderate ,
, e
, che servono a rafforzare le caratteristiche chiave e indebolire quelle ridondanti, come mostrato nell'Equazione 8.
(8)
In secondo luogo, le informazioni di input degli strati superficiali, intermedi e profondi vengono moltiplicate elemento per elemento per le caratteristiche ponderate mappate per generare caratteristiche
calibrate ,
, e
, come mostrato nell'Equazione 9. L'importanza delle caratteristiche viene regolata dinamicamente tramite il meccanismo di attenzione del peso, ottenendo così una selezione e ricalibrazione adattive delle caratteristiche.
(9)
Nella fase di fusione delle caratteristiche dello strato intermedio, due rami di peso inverso vengono utilizzati per fondersi rispettivamente con le caratteristiche calibrate dello strato superficiale e quello profondo, filtrando le false informazioni dettagliate indotte dal rumore nelle caratteristiche dello strato superficiale e le informazioni semantiche associate distorte nelle caratteristiche dello strato profondo. Successivamente, le informazioni multibranch vengono integrate e le caratteristiche originali, calibrate e interattive di questo livello, così come le caratteristiche calibrate dello strato poco profondo e del livello profondo, vengono fuse insieme. Questo consente la conservazione e la completazione delle informazioni sulle feature multiscala, mitiga i problemi di perdita di informazioni a piccoli target e errori di valutazione e infine produce caratteristiche
fuse a livello intermedio, che vengono formulate utilizzando l'Equazione 10 come segue:
(10)
Le associazioni tra lo strato poco profondo, lo strato profondo e lo strato medio sono stabilite separatamente, come mostrato nelle Equazioni 11 e 12.
(11)
(12)
Infine, gli output dei tre percorsi di fusione delle caratteristiche vengono concatenati tramite l'operazione Concat per preservare l'indipendenza dalle caratteristiche di ciascun percorso individuale. Le informazioni chiave di ogni percorso vengono apprese dinamicamente in base ai pesi α, β e γ, definiti come parametri scalari apprendibili inizializzati a 1.0 e ottimizzati tramite retropropagazione durante l'addestramento, permettendo un bilanciamento dinamico dei contributi da percorsi di caratteristiche superficiali, medie e profonde. Inoltre, vengono impiegate operazioni convoluzionali per aggregare informazioni contestuali, eliminare risposte incoerenti ai confini delle caratteristiche causate dalla concatenazione cross-layer e ottimizzare l'acquisizione e la rappresentazione raffinata di informazioni dettagliate su piccoli target. Il processo è formulato utilizzando l'Equazione 13 come segue:
(13)
Passaggi di implementazione
Definizione del modulo
Un modulo personalizzato di PyTorch chiamato TCF dovrebbe essere definito all'interno dei file di definizione del modello del progetto. Questo modulo prende in input le mappe di caratteristiche a strato superficiale, medio e profondo estratte da diversi stadi della rete backbonde. Il suo flusso interno di elaborazione consiste in tre fasi principali: (1) Calibrazione delle caratteristiche: la funzione Sigmoid viene applicata a ciascuno dei tre strati di input per generare mappe di peso, che vengono poi moltiplicate elemento per elemento con le feature map originali per migliorare le caratteristiche chiave sopprimendo però quelle ridondanti; (2) Fusione interattiva: nella fase di fusione delle caratteristiche del livello intermedio, vengono introdotti due rami di peso inverso che si fondono rispettivamente con le caratteristiche calibrate dello strato superficiale e quello profondo, filtrando le false informazioni dettagliate indotte dal rumore nelle caratteristiche dello strato superficiale e dalle informazioni semantiche associate distorte nelle caratteristiche dello strato profondo; (3) Aggregazione multipercorso: le caratteristiche originali, le caratteristiche calibrate, le caratteristiche interattive e le caratteristiche fuse con informazioni superficiali e profonde vengono integrate, dopodiché vengono applicate operazioni convoluzionali per eliminare risposte incoerenti ai confini delle caratteristiche causate dalla concatenazione cross-layer, generando infine caratteristiche fuse ricche di informazioni multiscala.
Modifica del file di configurazione
Il file di configurazione del modello (config.yaml) dovrebbe essere aperto. Le sezioni di fusione di caratteristiche nella rete neck—in particolare, gli strati in cui le caratteristiche provenienti da diversi stadi della rete dorsale sono fuse—dovrebbero essere localizzate. In queste posizioni, i livelli originali di operazioni di concatenazione semplice dovrebbero essere sostituiti con una chiamata al modulo TCF, assicurando che gli ingressi del modulo siano correttamente collegati alle corrispondenti caratteristiche superficiali, medie e profonde.
Motivazione nel design
La progettazione del modulo TCF è motivata dalle sfide legate alla disparità e alla perdita di informazioni durante la fusione delle caratteristiche. Le caratteristiche superficiali sono ricche di dettagli ma contengono un notevole rumore, mentre le caratteristiche profonde mostrano una semantica forte ma bassa risoluzione. Per affrontare questo problema, il modulo TCF introduce una caratteristica di livello intermedio come bilanciatore delle informazioni e incorpora percorsi di calibrazione, interazione e aggregazione accuratamente progettati per massimizzare i vantaggi complementari delle caratteristiche cross-level. La motivazione sottostante è stabilire un meccanismo di fusione più efficace, capace di valutare dinamicamente l'importanza delle caratteristiche a ogni livello e di integrare selettivamente le informazioni. Di conseguenza, genera una rappresentazione delle caratteristiche di alta qualità per la testa di rilevamento successiva, ricca sia di dettagli che di informazioni semantiche, rendendola particolarmente adatta al riconoscimento di oggetti di piccole dimensioni.
Modulo DynamicHead
Il componente della testa di rilevamento ha lo scopo fondamentale di eseguire il riconoscimento di oggetti multiscala su rappresentazioni di caratteristiche generate dalla backbone e dalle reti di fusione di caratteristiche. Questo processo consente una localizzazione spaziale accurata degli oggetti rilevati, l'assegnazione categorica e la stima dell'affidabilità delle previsioni delle scatole delimitanti. Date le notevoli variazioni di scala delle caratteristiche target nei dati visivi e la densa concentrazione di proposte di scatole delimitative in alcuni fotogrammi, l'identificazione precisa del tabacco tagliato richiede l'analisi di pattern multiscala. Per affrontare questo problema, il metodo adotta l'architetturaDynamicHead 18 come sostituto della testa di rilevamento nativa in YOLOv11n, stabilendo un framework di autoattenzione che integra meccanismi consapevoli della scala, dello spazio e del compito per migliorare sia la capacità di rilevamento che l'efficienza operativa. La configurazione strutturale del componente DynamicHead è illustrata nella Figura 5.

Figura 5. Struttura del modulo di rilevamento DynamicHead. Il modulo DynamicHead incorpora tre meccanismi di attenzione sequenziali: consapevoli della scala (πL), consapevoli dello spazio (πS) e consapevoli del compito (πC). Questi componenti aggiustano dinamicamente l'importanza delle caratteristiche attraverso scale, regioni spaziali e compiti di rilevamento. Questo design migliora sia la precisione della localizzazione sia le prestazioni di classificazione consentendo il raffinamento adattivo delle caratteristiche all'interno della testa di rilevamento. Clicca qui per visualizzare una versione più grande di questa figura.
Questa architettura comprende tre unità di attenzione specializzate: componenti consapevoli della scala (πL), consapevoli dello spazio (πS) e consapevoli del compito (πC). Il meccanismo di attenzione consapevole della scala (πL) media innanzitutto la mappa delle caratteristiche di input tra dimensioni spaziali e di canale. Il risultato viene passato attraverso uno strato di proiezione lineare seguito da un'attivazione sigmoide rigida per generare pesi di scala, che vengono poi moltiplicati elemento per elemento con la feature map originale. Il meccanismo di attenzione spaziale (πS) impiega una convoluzione deformabile con K = 9 punti di campionamento sparsamente selezionati. Predà vettori di offset Δpk e scalari di modulazione Δm k per ogni punto di campionamento, quindi aggrega le caratteristiche campionate per produrre pesi di attenzione spaziale. Il meccanismo di attenzione consapevole del compito (πC) applica una trasformazione lineare apprendibile a ciascun canale indipendentemente usando due insiemi di parametri (α1, β1 e α2, β2). Seleziona la risposta massima tra le due rappresentazioni trasformate per adattare dinamicamente le caratteristiche a compiti di classificazione e regressione. Infine, questi tre meccanismi di attenzione vengono applicati in sequenza alla mappa delle caratteristiche di input come F_out = πC(πS(πL(F) · F) · F) · F. Il meccanismo consapevole della scala impiega la pesatura delle caratteristiche trasversale per combinare in modo adattivo rappresentazioni multirisoluzioni, affinando così la sensibilità del modello alle variazioni dimensionali. La componente spazio-consapevole implementa una ponderazione di enfasi regionale all'interno delle mappe di caratteristiche, indirizzando il focus computazionale verso entità in primo piano mentre sopprime interferenze di fondo irrilevanti. Nel frattempo, il modulo consapevole del compito modula dinamicamente le rappresentazioni di output per obiettivi specifici, affinando sia i risultati di classificazione che quelli di regressione per rafforzare la precisione del modello e la robustezza operativa. La procedura computazionale è formalizzata nelle Equazioni 14–17.
(14)
(15)
(16)
(17)
Qui, WL(F) indica la rappresentazione delle caratteristiche arricchite dall'attenzione, mentre πL(F), πS(F) e πC(F) corrispondono rispettivamente a operazioni di attenzione orientate alla scala, spaziale e al compito. La trasformazione f rappresenta uno strato di proiezione lineare, σ(x) indica un processamento di attivazione sigmoid rigida, K specifica la quantità di punti spaziali sparsamente selezionati, pk+Δpk introduce aggiustamenti posizionali per enfatizzare aree discriminative, Δmk costituisce una misura di significatività addestrabile per il punto spaziale pk, e α(F) e β(F) sono funzioni parametriche apprendibili che governano le soglie di attivazione. Tra questi, K è impostato su 9 in tutti gli esperimenti, poiché questo valore fornisce una copertura spaziale sufficiente mantenendo l'efficienza computazionale.
Passaggi di implementazione
Definizione del modulo
Un modulo personalizzato di PyTorch chiamato DynamicHead dovrebbe essere definito all'interno dei file di definizione del modello del progetto. L'implementazione di questo modulo consiste in tre unità di attenzione applicate in sequenza: (1) Attenzione consapevole della scala: i layer di caratteristiche a scale diverse sono ponderati dinamicamente usando parametri imparabili; (2) Attenzione spaziale: basandosi sul concetto di convoluzione deformabile, questa unità si concentra su posizioni spaziali ma discriminative all'interno delle mappe di caratteristiche; (3) Attenzione consapevole del compito: le soglie di attivazione vengono apprese dinamicamente per ottimizzare le rappresentazioni delle caratteristiche rispettivamente per compiti di classificazione e regressione. Questi tre meccanismi di attenzione vengono applicati in modo sequenziale alla piramide delle caratteristiche di input, produendo infine caratteristiche per la previsione. Tutti i moduli sono stati implementati utilizzando operazioni standard di PyTorch, inclusi strati convoluzionali, livelli lineari, funzioni di attivazione e meccanismi di attenzione come descritto sopra.
Modifica del file di configurazione
Il file di configurazione del modello (config.yaml) dovrebbe essere aperto. La sezione che definisce la testa di rilevamento dovrebbe essere localizzata. La configurazione originale della testa di rilevamento, che tipicamente comprende una serie di strati convoluzionali per classificazione e regressione, dovrebbe essere sostituita con una chiamata al modulo DynamicHead, assicurando che il suo input sia collegato all'output della piramide di caratteristiche dalla rete del collo.
Motivazione nel design
Le teste di rilevamento tradizionali applicano tipicamente lo stesso insieme di parametri convoluzionali a tutti i livelli di caratteristiche, le posizioni spaziali e i compiti, mancando di adattabilità specifica per compito. L'introduzione del modulo DynamicHead è motivata dalla complessità dei compiti di rilevamento, con l'obiettivo di disaccoppiare e affrontare queste sfide attraverso un'architettura unificata basata sull'attenzione. La sua motivazione progettuale è triplice: (1) concentrarsi in modo adattivo su strati di caratteristiche corrispondenti a bersagli di dimensioni diverse tramite il modulo consapevole della scala; (2) concentrare le risorse computazionali sulle regioni target in primo piano piuttosto che sullo sfondo tramite il modulo di consapevolezza spaziale; e (3) ottimizzare dinamicamente le rappresentazioni delle caratteristiche per gli obiettivi distinti di classificazione e regressione tramite il modulo task-conscious. Questa combinazione di disaccoppiamento e ottimizzazione dinamica migliora la precisione di localizzazione e l'affidabilità della classificazione del modello per obiettivi densamente disposti e multiscala, come il tabacco tagliato.
Metodo di valutazione personalizzato per l'ordine del tabacco tagliato
Descrizione del modulo e principio di progettazione: La valutazione quantitativa dell'ordine dell'allineamento del tabacco tagliato è essenziale per valutare la stabilità del processo produttivo e prevedere la qualità finale del prodotto nella produzione di sigarette. I metodi di valutazione tradizionali si basano su ispezioni visive manuali, che sono soggettive, richiedono tempo e non riescono a fornire misurazioni quantitative coerenti. Per affrontare queste limitazioni, viene utilizzato un metodo personalizzato di previsione dell'angolo integrato con il rivelatore di regressione a singolo stadio migliorato. Il principio fondamentale di questo metodo è stabilire un quadro di riferimento spaziale utilizzando la struttura di supporto in acciaio all'interno dell'asta della sigaretta come punto di riferimento geometrico. Poiché il supporto in acciaio mantiene un'orientazione fissa durante la produzione, rappresenta una linea di riferimento ideale per calcolare l'orientamento relativo del tabacco tagliato singolarmente. Misurando gli angoli assoluti del tabacco tagliato rilevato e del supporto in acciaio rispetto alla linea di riferimento orizzontale e calcolando successivamente le loro differenze angolari relative, il metodo fornisce una valutazione quantitativa dell'ordine dell'allineamento. Un angolo relativo pari a zero indica un parallelismo perfetto tra un filo e il supporto, mentre l'aumento della deviazione angolare indica un allineamento più basso. L'asse di riferimento orizzontale è definito come la linea parallela al bordo inferiore dell'immagine, orientata da sinistra a destra. Questo asse corrisponde a 0°, con angoli positivi misurati in senso antiorario e angoli negativi misurati in senso orario da questo asse. La metrica finale di ordine si ottiene mediando gli angoli relativi di tutti i filamenti rilevati all'interno di un'immagine, consentendo una gradazione costante e oggettiva della qualità.
Passaggi di implementazione
Definizione del modulo di calcolo dell'angolo
Implementare un modulo di post-elaborazione che elabori gli output di rilevamento del modello di regressione a singolo stadio migliorato. Per ogni oggetto rilevato (tabacco tagliato e supporto in acciaio), estrarre le coordinate della scatola delimitatoria. Calcola le coordinate del punto centrale per ogni oggetto rilevato usando l'Equazione 18. Calcola le coordinate del punto centrale dell'immagine basandosi sulle dimensioni dell'immagine usando l'Equazione 19.

(18)

(19)
dove x₁, x₂, y₁, y₂ indicano le coordinate dei quattro angoli della scatola di delimitazione rilevata per un filo di tabacco o per il supporto in acciaio; cx e c y rappresentano le coordinate dei rispettivi punti centrali all'interno della regione di rilevamento; W e h indicano la larghezza e l'altezza dell'immagine della sigaretta; dx e d y definiscono le coordinate del punto centrale dell'immagine.
Calcolo dell'angolo assoluto
Per ogni filo di tabacco rilevato e il supporto in acciaio, calcola il vettore dal centro dell'immagine al centro dell'oggetto. Calcola l'angolo assoluto rispetto alla linea di riferimento orizzontale usando la funzione artangente, come formulato nell'Equazione 20. L'angolo viene calcolato usando atan2(d_y, d_x), dove atan2 è la funzione tangente inversa a quattro quadranti disponibile nella libreria matematica Python. Questa funzione restituisce valori nell'intervallo (−π, π] radiani, che vengono poi convertiti in gradi, ottenendo angoli di uscita nell'intervallo (−180°, 180°]. La gestione dei quadranti è automatica con atan2 in base ai segni di d_y e d_x. Questo produce unacciaio per il supporto d'acciaio e untaglio A per ogni filo di tabacco.
(20)
Calcolo dell'angolo relativo
Per ogni filamento di tabacco rilevato, si calcola l'angolo relativo sottraendo l'angolo assoluto del supporto d'acciaio dall'angolo assoluto del filotto, come mostrato nell'Equazione 21. Il valore assoluto garantisce misurazioni positive della deviazione angolare.
(21)
Generazione della metrica di ordine
Aggregare gli angoli relativi di tutti i filamenti rilevati all'interno di un'unica immagine. Calcola l'angolo relativo medio sommando tutti gli angoli relativi To e dividendo per il numero totale di filamenti rilevati n, come formulato nell'Equazione 22. Questo valore medio funge da misura quantitativa dell'ordine dell'allineamento per quell'immagine.
(22)
Implementazione della valutazione della qualità
Implementa una funzione di classificazione che mappa il valore calcolato a voti qualitativi basati su soglie predefinite, come definiti nell'Equazione 23. Le soglie di valutazione (0°–30° = Eccellente, 30°–60° = Buono, >60° = Scarso) sono state stabilite sulla base di consultazioni con tre esperti di controllo qualità della Longyan Tobacco Industry Co., Ltd. Questi esperti hanno valutato indipendentemente 200 immagini campioni e hanno correlato gli angoli relativi medi calcolati con la qualità dell'allineamento percepito, utilizzando una scala a tre categorie (Eccellente, Buono e Scarso). I confini di 30° e 60° sono stati scelti come soglie di consenso in cui l'accordo tra esperti superava il 90%. Questa valutazione consente un'interpretazione intuitiva dei risultati quantitativi per il personale di controllo qualità.
(23)
Modifica del file di configurazione
Il file di configurazione del modello (config.yaml o model.yaml) dovrebbe essere aperto. La sezione post-elaborazione o la parte delle impostazioni di inferenza della configurazione dovrebbero essere localizzate. Il modulo di calcolo dell'angolo personalizzato dovrebbe essere correttamente referenziato e abilitato. Le impostazioni di parsing di output dovrebbero essere verificate per estrarre correttamente le coordinate della scatola di delimitazione sia per il tabacco tagliato che per il supporto in acciaio. Non è necessaria l'inserimento di ulteriori strati per questo metodo di valutazione, poiché funziona come modulo di post-elaborazione dopo l'output della testina di rilevamento.
Motivazione nel design
La progettazione di questo metodo di valutazione personalizzato è motivata dalla necessità di trasformare l'ispezione visiva soggettiva in misurazioni quantitative oggettive e riproducibili. L'ispezione manuale tradizionale soffre di variabilità tra osservatori e non può fornire dati numerici continui per l'ottimizzazione del processo. Sfruttando il supporto in acciaio come riferimento geometrico naturale all'interno della barra della sigaretta, il metodo elimina la necessità di marcatori di calibrazione esterni e garantisce la coerenza delle misurazioni tra immagini e lotti di produzione. L'uso di vettori di punto centrale e calcoli di arco tangente fornisce un approccio matematicamente robusto ed efficiente dal punto di vista computazionale alla stima degli angoli, rendendolo adatto al dispiegamento in tempo reale. Questo calcolo vettoriale dal centro dell'immagine al centro dell'oggetto è progettato per essere invariante rispetto al campo visivo della telecamera e alla posizione della bacchetta di sigaretta all'interno dell'immagine, garantendo così robustezza in condizioni di cattura variabili. La strategia di media su più filamenti rilevati tiene conto delle variazioni naturali nell'orientamento dei filamenti e fornisce una metrica di ordine complessivo statisticamente affidabile. Un sistema di gradazione a tre livelli traduce le misurazioni numeriche continue in categorie di qualità pratiche, facilitando decisioni rapide nel controllo qualità della linea di produzione. Nel complesso, questo approccio integrato combina le capacità di rilevamento del modello di regressione a singolo stadio migliorato con calcoli geometrici precisi, consentendo una valutazione completa e automatizzata dell'ordine dell'allineamento del tabacco tagliato.
Addestramento con modello per il rilevamento dell'ordine nel tabacco tagliato
PyTorch 2.1.0, Compute Unified Device Architecture (CUDA) 12.1, e tutte le dipendenze devono essere installate correttamente. L'implementazione segue le pipeline standard PyTorch YOLO e può essere riprodotta in base alle descrizioni dettagliate dei moduli e ai passaggi di configurazione forniti.
Comando di addestramento
Prima del riaddestramento, devono essere preparati i file di dati di immagini partizionati e di annotazione nel formato standard di rilevamento a singolo stadio (ad esempio, formato YOLO con un file .txt per ogni immagine). Dovrebbe essere creato un file .yaml per la configurazione del dataset che specifichi i percorsi delle immagini, il numero di classi (supporto tabacco tagliato e acciaio) e i nomi delle classi. Sulla base dei miglioramenti del modello descritti in precedenza, il file di configurazione .yaml originale del rilevatore dovrebbe essere sostituito con il file .yaml del modello proposto, che incorpora i moduli MFID, TCF e DynamicHead. Lo script train.py dovrebbe essere scritto o modificato per importare il pacchetto rivelatore a singolo stadio, caricare il modello di addestramento e la configurazione del dataset, e impostare i seguenti parametri di addestramento: imgsz=640, epochs=100, batch=4, workers=0, device='0', ottimizzatore='SGD', close_mosaic=10, ecc. Il seed casuale è stato fissato a 42 e i pesi del modello sono stati inizializzati utilizzando la strategia di inizializzazione predefinita fornita dal framework di deep learning. La riproducibilità è stata garantita impostando torch.backends.cudnn.deterministic = Vero e torch.backends.cudnn.benchmark = Falso.
Iperparametri
I principali iperparametri configurati per l'addestramento sono i seguenti: risoluzione dell'immagine di input di 896 × 1600 pixel; dimensione del lotto di 4, vincolata dalla memoria GPU; tasso di apprendimento iniziale di 0,01 con uno scheduler per ricottura coseno per il decadimento graduale; ottimizzatore stocastico gradiente di discesa (SGD) con momento di 0,912 per accelerare la convergenza; e decadimento del peso di 0,0004 per la regolarizzazione. Le immagini sono state normalizzate usando media [0,485, 0,456, 0,406] e deviazione standard [0,229, 0,224, 0,225]. L'aumento includeva un cambio orizzontale casuale (50%), una regolazione casuale della luminosità (±20%) e una rotazione casuale (±15°). L'augmentazione mosaica è abilitata di default durante le prime epoche di addestramento per aumentare la robustezza del modello a scale e occlusioni di oggetti variabili. Viene disabilitato nelle ultime 10 epoche (close_mosaic = 10) per affinare la precisione del rilevamento.
Monitoraggio dell'addestramento
Durante la formazione, il framework fornisce metriche complete in ogni epoca. La funzione di perdita è una somma ponderata di tre componenti: perdita di classificazione (entropia binaria incrociata [BCE] con logiti), perdita di localizzazione (intersezione completa sulla perdita di unione [IoU]) e perdita di oggettività (BCE). I pesi totali di perdita furono fissati come λ_cls = 0,5, λ_box = 0,05 e λ_obj = 1,0. Le curve di perdita di addestramento e validazione devono essere monitorate per garantire una convergenza costante e per rilevare eventuali segni di sovrafitting. Il mAP con una soglia IoU di 0,5 (mAP@0,5) sul set di validazione viene utilizzato come principale indicatore di prestazione per il rilevamento dei filamenti di tabacco tagliati. Data la dimensione del dataset e la complessità del modello, l'addestramento per 100 epoche è tipicamente sufficiente per la convergenza. Il checkpoint del modello con le migliori prestazioni viene salvato automaticamente in base al mAP di validazione.
Valutazione e distribuzione del modello
Valutazione
Dopo il completamento dell'allenamento, i pesi ottimali del modello vengono salvati come runs/train/exp/weights/best.pt. Il modello addestrato dovrebbe essere valutato sul set di validazione dedicato usando il seguente comando: python val.py --data cigarette_dataset.yaml --weights runs/train/exp/weights/best.pt. Lo script di valutazione genera metriche chiave di prestazione, tra cui precisione, richiamo e mAP@0,5, per entrambe le classi di rilevamento (tabacco tagliato e supporto in acciaio). Il mAP deve essere verificato per soddisfare la soglia richiesta per l'impiego industriale (ad esempio, >95% per il rilevamento dei filamenti). La soglia di distribuzione (mAP >95% per il rilevamento dei filamenti) rappresenta un requisito interno di prestazioni per l'ambiente industriale target. Il risultato riportato riflette la performance su un set di test diversificato che include casi limite difficili. Il mAP del modello per condizioni di produzione di routine supera il 96% se valutato su un sottoinsieme filtrato per illuminazione ideale e occlusione minima. Il sottoinsieme di produzione di routine era definito dai seguenti criteri: illuminazione nell'intervallo di 500–800 lux (illuminazione ottimale), percentuale di occlusione inferiore al 10% (sovrapposizione minima) e nessuna riflessione speculare visibile. Questo sottoinsieme contiene 427 immagini, che rappresentano circa il 67% del set di test. Questo sottoinsieme corrisponde alle condizioni standard di produzione diurna sotto illuminazione normale e disposizione ben orientata dei fili.
Verifica dell'inferenza
Per validare visivamente le prestazioni di rilevamento del modello su immagini non viste, viene eseguita un'inferenza su immagini di test di esempio usando il seguente comando: python detect.py --weights runs/train/exp/weights/best.pt --source path/to/test/images --conf 0.5. Questo comando genera immagini annotate con riquadri delimitativi attorno ai supporti di tabacco e acciaio rilevati. La velocità di inferenza è stata misurata su una GPU NVIDIA GeForce RTX 3080 Ti (12 GB di VRAM) utilizzando CUDA 12.1 e PyTorch 2.1.0. I fotogrammi al secondo (FPS) riportati sono stati calcolati come la media di oltre 100 passaggi consecutivi in avanti dopo 50 iterazioni di riscaldamento. Inoltre, la velocità di inferenza (in frame per secondo) viene riportata per confermare la sua idoneità in tempo reale all'ambiente di distribuzione.
Distribuzione del modello
Per consentire il dispiegamento in tempo reale sul sistema di controllo industriale, il modello addestrato PyTorch (best.pt, circa 7–9 MB) dovrebbe essere esportato in un formato di inferenza ottimizzato, come TensorRT o Open Neural Network Exchange (ONNX). Questa conversione migliora la velocità di inferenza mantenendo la precisione della rilevazione. Per l'esportazione ONNX, usa: torch.onnx.export(model, dummy_input, "model.onnx", opset_version=11, input_names=["images"], output_names=["outputs"]). Per la conversione TensorRT, usa: trtexec --onnx=model.onnx --saveEngine=model.trt --fp16 --workspace=4096. La modalità di precisione FP16 veniva utilizzata per ottimizzare la velocità di inferenza. Il modello finale distribuito fornisce coordinate di delimitazione, etichette di classe (filo di tabacco tagliato o supporto in acciaio) e punteggi di fiducia per ogni oggetto rilevato, che fungono da input per il metodo personalizzato di valutazione angolare utilizzato per quantificare l'ordine del tabacco tagliato.