Skip to main content
The ocr_service sample application enables a service that provides the Optical Character Recognition (OCR) function. It captures the image topic from the ROS system and publishes the result with the ocr_topic.

Pipeline flow for ocr_service

This figure shows the basic messages and data transfer channels, with the relevant client/server and ROS node. pipeline

Figure : The ocr_service pipeline

ROS nodes used in the ocr_service pipeline

ROS topics used in the ocr_service pipeline

ROS topicMessage typePublished/Subscribed byDescription
/image_topic_name<sensor_msgs.msg.Image>Subscribe to images from other nodesThe image to be processed.
/ocr_image_topic_name<std_msgs.msg.String>Published by ocr-rosnodePublishes the OCR result.

Prerequisites

You have Set up the device according to Set up the environment for running sample applications.

Run out-of-the-box ocr_service

  1. Start three terminals, and run the following commands in each terminal to set up QIR SDK and ROS2 environment on the device. Value range of ROS_DOMAIN_ID: [0, 232]
  2. In terminal 1, launch ocr_server.
  3. In terminal 2, push an image to the device and run the ocr_testnode.
  4. In terminal 3, run the ocr_client.
    You will see the following log: result

Build and run ocr_service

  1. Build ocr_msg and ocr_service provided by the QIR SDK on the host.
  2. Push ocr_msg and ocr_service to the device.
  3. Run ocr_service on the device with the steps in Run out-of-the-box ocr_service.