Métrica de reconocimiento de tablas
- La biblioteca se utiliza para calcular el índice TEDS, que se utiliza para evaluar el efecto del algoritmo de reconocimiento de tablas. Se puede utilizar junto con el equipo de prueba de reconocimiento de mesa mágica .
- Código de referencia de cálculo TEDS: PaddleOCR y DAVAR-Lab-OCR
Instrucciones de uso:
- Instalar paquete por pypi.
pip install table_recognition_metric
- Ejecutar por línea de comando.
- Uso:
$ table_recognition_metric -h usage: table_recognition_metric [-h] [-gt GT_HTML] [-pred PRED_HTML] optional arguments: -h, --help show this help message and exit -gt GT_HTML, --gt_html GT_HTML -pred PRED_HTML, --pred_html PRED_HTM
- Ejemplo:
$ table_recognition_metric -gt '<html><body><table><tr><td>购买方</td><td colspan="5">纳税人识别号地址、电记开户行及账号</td><td>密码区</td><td colspan="4"></td></tr><tr><td colspan="2">货物或应税劳务、服务名称理肤泉清痘旅行装控油祛痘调节水油平衡理肤泉特安舒缓修护乳40ml合计</td><td>规格型号</td><td>单位</td><td>11</td><td colspan="3"></td><td></td><td>税率17%17%</td><td></td></tr><tr><td colspan="2">价税合计(大写)</td><td colspan="9"></td></tr><tr><td>销售方</td><td colspan="5">纳税人识别号地址、电话开户行及账号</td><td>备注</td><td colspan="4"></td></tr></table></body></html>' -pred '' # 0.0
- Uso:
- Ejecutar por secuencia de comandos.
from table_recognition_metric import TEDS teds = TEDS() gt_html = '<html><body><table><tr><td>购买方</td><td colspan="5">纳税人识别号地址、电记开户行及账号</td><td>密码区</td><td colspan="4"></td></tr><tr><td colspan="2">货物或应税劳务、服务名称理肤泉清痘旅行装控油祛痘调节水油平衡理肤泉特安舒缓修护乳40ml合计</td><td>规格型号</td><td>单位</td><td>11</td><td colspan="3"></td><td></td><td>税率17%17%</td><td></td></tr><tr><td colspan="2">价税合计(大写)</td><td colspan="9"></td></tr><tr><td>销售方</td><td colspan="5">纳税人识别号地址、电话开户行及账号</td><td>备注</td><td colspan="4"></td></tr></table></body></html>' pred_html = '<html><body><table><tr><td>购买方</td><td colspan="5">纳税人识别号地址、电记开户行及账号</td><td>密码区</td><td colspan="4"></td></tr><tr><td colspan="2">货物或应税劳务、服务名称理肤泉清痘旅行装控油祛痘调节水油平衡理肤泉特安舒缓修护乳40ml合计</td><td>规格型号</td><td>单位</td><td>11</td><td colspan="3"></td><td></td><td>税率17%17%</td><td></td></tr><tr><td colspan="2">价税合计(大写)</td><td colspan="9"></td></tr><tr><td>销售方</td><td colspan="5">纳税人识别号地址、电话开户行及账号</td><td>备注</td><td colspan="4"></td></tr></table></body></html>' score = teds(gt_html, pred_html) print(score)
Evaluación en el conjunto de datos
- Aquí está el código de evaluación en
rapid-table
el conjunto de datos tabulares liekkas/table_recognition , y puede usar la misma analogía. - Instalar los paquetes necesarios
pip install modelscope==1.5.2 pip install rapid_table
- ejecutar prueba
from modelscope.msdatasets import MsDataset from rapid_table import RapidTable from table_recognition_metric import TEDS test_data = MsDataset.load( "table_recognition", namespace="liekkas", subset_name="default", split="test", ) table_engine = RapidTable() teds = TEDS() content = [] for one_data in test_data: img_path = one_data.get("image:FILE") gt = one_data.get("label") pred_str, _ = table_engine(img_path) scores = teds(gt, pred_str) content.append(scores) print(f"{ img_path}\t{ scores:.5f}") avg = sum(content) / len(content) print(avg) # 0.5847187558587787
Tree-EditDistance-based Similitud (TEDS)
-
TEDS fue propuesto por IBM en el documento " Reconocimiento de tablas basado en imágenes: datos, modelo y evaluación ".
-
El algoritmo de evaluación propuesto anteriormente consiste principalmente en aplanar la suma de una tabla
ground truth
enrecognition result
una lista de relaciones de adyacencia entre dos celdas no vacías. A continuación, se calculan la precisión, la recuperación y la puntuación F1 comparando las dos listas. Hay dos problemas obvios con esta métrica:- Dado que solo verifica las adyacencias directas entre celdas que no están vacías, no puede detectar errores causados por celdas vacías y desalineación de celdas más allá de los vecinos inmediatos;
- Dado que verifica las relaciones mediante coincidencias exactas, no tiene ningún mecanismo para medir el rendimiento del reconocimiento de contenido de celda de grano fino.
-
En vista de los problemas anteriores, TEDS los resuelve a través de los siguientes métodos:
- Resuelva el problema 1 anterior verificando los resultados del reconocimiento en el nivel de estructura de árbol global, lo que le permite reconocer todos los tipos de errores estructurales que reconoce;
- Cuando la operación de edición de árbol es el reemplazo de nodos, calcule la distancia de edición de cadena correspondiente para resolver el problema anterior 2.
-
Fórmula de cálculo:
TEDS ( T un , T segundo ) = 1 − E dit D ist ( T un , T segundo ) max ( ∣ T un ∣ , ∣ T segundo ∣ ) TEDS(T_{a}, T_{b}) = 1 - \ frac{EditarDist(T_{a}, T_{b})}{max(|T_{a}|, |T_{b}|)}TE D S ( Tun,Tsegundo)=1−máx ( ∣ T _un∣ ,∣ Tsegundo∣ )E d i t a D i s t ( Tun,Tsegundo)
Entre ellos, Edit D ist EditDistE d i t D i s t se refiere ala distancia de edición del árbol,∣ T ∣ |T|∣ T ∣ se refiere alTTEl número de nodos en T. El efecto de reconocimiento de un algoritmo de restauración de tablas en una serie de conjuntos de prueba se puede definir como: todas las muestras en el conjunto de prueba calculan los TEDS entre surealidad básicaypredicen el resultadouno por uno, y finalmente promedian los TEDS de todas las muestras para obtener el puntuación final.