VisioForge

OCR en el dispositivo para flujos de video en .NET

Reconozca texto en flujos de cámaras RTSP, webcams y archivos de video desde C#. El OCR funciona como un bloque del pipeline de Media Blocks SDK .NET: en el dispositivo, junto a la vista previa, la grabación y el streaming.

El OCR de video no es OCR de imágenes en un bucle

Una biblioteca de OCR de imágenes recibe un solo bitmap. Para leer texto de una cámara o de una grabación con ella, aún tiene que decodificar el flujo, elegir fotogramas, convertirlos, llamar a la biblioteca y registrar cuándo se mostró cada fotograma. En los SDK de VisioForge, el OCR es un bloque del pipeline de video: el SDK decodifica la fuente, OcrBlock lee los fotogramas a medida que pasan y esos mismos fotogramas continúan hacia la pantalla, un archivo o un flujo de red.

Biblioteca de OCR de imágenes frente a OCR en el pipeline de video

Biblioteca típica de OCR de imágenesOcrBlock en un pipeline de VisioForge
EntradaUn bitmap que pasa su códigoFotogramas decodificados de cualquier fuente del SDK: archivo, webcam, cámara RTSP
Decodificación del videoSu código, con un decodificador o capturador de fotogramas aparteLa hace el pipeline
Qué fotogramas se leenUsted los elige y los convierteFramesToSkip; los fotogramas que llegan mientras el OCR está ocupado se omiten y se cuentan
Cuándo apareció el textoLo registra usted mismoMarca de tiempo en cada evento OnTextDetected
Grabación o streaming al mismo tiempoUn pipeline de video aparteEl mismo pipeline: la salida de OcrBlock continúa hacia un codificador, un archivo o un flujo
Recuadros y texto en el videoLos dibuja ustedDrawResults

Qué aporta el OCR dentro del pipeline

OcrBlock se incluye en el paquete VisioForge.DotNet.Core.AI. Tiene una entrada y una salida de video y ejecuta los modelos PP-OCR sobre los fotogramas que recibe.

  • La decodificación ya está hecha: cualquier fuente que abra el SDK — archivos de video, webcams, cámaras IP RTSP — alimenta OcrBlock directamente
  • Texto con momento y posición: cada evento OnTextDetected incluye el Timestamp del fotograma y, para cada línea, su Text, Confidence y BoundingBox
  • OCR junto a la grabación y el streaming: los fotogramas salen de OcrBlock sin cambios o con el texto dibujado y continúan hacia un codificador, un archivo o una salida de red en el mismo pipeline
  • En el dispositivo: modelos PP-OCR sobre ONNX Runtime con el proveedor CPU, CUDA, DirectML o CoreML — sin API en la nube, sin pago por llamada, el video no sale de la máquina
  • Más de 100 idiomas: apunte RecognitionModelPath y CharacterDictionaryPath al modelo PP-OCR y al diccionario de su idioma; los ejemplos incluyen el modelo latino
  • Multiplataforma: Windows, macOS, Linux, Android e iOS desde una sola base de código C#; el ejemplo de OCR también existe para .NET MAUI
  • Coste bajo control en video en vivo: FramesToSkip = N ejecuta el OCR en uno de cada N + 1 fotogramas; cada ajuste y su valor por defecto están en la guía de OCR

Dónde se utiliza

Grabaciones con búsqueda

Extraiga el texto de clases, webinars y grabaciones de pantalla con la marca de tiempo de cada línea e indéxelo.

Supervisión de emisiones y señalización digital

Compruebe que los rótulos, los tickers y la señalización digital muestran el texto esperado, en directo o en una grabación.

Líneas de producción

Lea números de serie, códigos de lote y etiquetas impresas desde una cámara fija mientras el mismo flujo se graba para la trazabilidad.

Cámaras IP en comercios y almacenes

Lea etiquetas de estantería y de producto desde cámaras RTSP en el propio local, sin enviar video a un servicio de OCR en la nube.

Ejemplos de código

Basados en la OCR Text Recognition Demo; la rama de grabación conecta el codificador H.264 y el sink MP4 como lo hacen los ejemplos de Media Blocks.

Extraer el texto de un archivo de video con marcas de tiempo

C#

Leer texto de una cámara RTSP y grabarlo en MP4

C#

Pipeline

En el ejemplo RTSP, OcrBlock se sitúa entre la cámara y el codificador. El texto reconocido sale por el evento OnTextDetected; los fotogramas continúan hacia el codificador H.264 y el archivo MP4.

RTSPSourceBlock
OcrBlock
H264EncoderBlock
MP4SinkBlock

Preguntas frecuentes

¿El video sale de la máquina?▼
No. OcrBlock ejecuta los modelos PP-OCR con ONNX Runtime dentro de su proceso. No hay servicio en la nube ni clave de API; los fotogramas y el texto reconocido permanecen en el dispositivo. Los modelos son archivos que usted distribuye con su aplicación.
¿En qué se diferencia de una biblioteca de OCR de imágenes?▼
Una biblioteca de OCR de imágenes espera que usted decodifique el video, elija fotogramas y la llame por cada bitmap. OcrBlock forma parte del pipeline que decodifica la fuente: recibe fotogramas decodificados, los omite según FramesToSkip, informa de cada región con la marca de tiempo del fotograma y pasa los fotogramas a la reproducción, la codificación o el streaming.
¿Puedo reconocer texto y grabar el flujo al mismo tiempo?▼
Sí. Conecte la salida de OcrBlock a un codificador y a un sink de archivo, como en el ejemplo RTSP de arriba. DrawResults decide si los recuadros y el texto quedan grabados en el video.
¿Qué SDK necesito?▼
OcrBlock está en el paquete VisioForge.DotNet.Core.AI. Úselo en un pipeline de Media Blocks SDK .NET cuando construya el pipeline usted mismo, o añádalo con Video_Processing_AddBlock a VideoCaptureCoreX en Video Capture SDK .NET o a MediaPlayerCoreX en Media Player SDK .NET cuando su aplicación ya esté construida sobre uno de esos motores.
¿Puedo distribuir los modelos de OCR en un producto comercial?▼
El SDK ejecuta modelos ONNX de terceros y no incluye los pesos de los modelos en el paquete NuGet. Los modelos PP-OCRv5 mobile que acompañan a los ejemplos tienen licencia Apache-2.0. La licencia de un modelo depende de su origen, así que compruebe la licencia de cualquier otro modelo, de sus pesos y de sus datos de entrenamiento antes de distribuirlo.
¿Puedo combinar el OCR con otros bloques de IA?▼
Sí. LicensePlateRecognizerBlock, YOLOObjectDetectorBlock y PIIRedactionBlock tienen la misma entrada y salida de video que OcrBlock, así que se conectan uno tras otro en el mismo pipeline. Para ocultar el texto en pantalla en lugar de leerlo, PIIRedactionBlock difumina o pixela las regiones de texto encontradas con los modelos PaddleOCR.