This project demonstrates real-time Optical Character Recognition (OCR) on the NVIDIA Jetson ORIN Nano platform, using the Transcend ECM300 embedded camera module. It is designed to capture live video, detect text regions, and recognize characters efficiently using the PaddleOCR framework.
- Hardware Requirements
- Install NVIDIA Jetson Nano OS
- Download Virtual Environment
- Connect the ECM300 Camera
- Set Up Virtual Environment
- Command Usage
- Third-Party Licenses
-
Supported Platforms
- NVIDIA Jetson ORIN Nano
-
Supported Cameras
-
Recommended SD Card
- A microSD card with at least 128 GB capacity and UHS-1 speed class.
- Download the Jetson Nano Developer Kit SD Card Image from https://s3.ap-northeast-1.amazonaws.com/test.storejetcloud.com/ECM300+Image/ecm_jetpack.zip
- Write the image to the target microSD card using a graphical tool such as Balena Etcher.
- Once the image has been written, insert the microSD card into the Jetson’s native slot and power on the device.
- The default login username and password are both “user”.
- Download the Virtual Environment from https://s3.ap-northeast-1.amazonaws.com/test.storejetcloud.com/ECM300+Image/demo_venv.zip
- Unzip the downloaded ZIP file.
- Copy the extracted demo_venv folder to the desktop.
- Insert the camera module as follows:
- ECM300, insert into the CAM1 port.
-
Open a terminal and run:
cd /opt/nvidia/jetson-io sudo python jetson-io.py -
In the configuration menu, select the following options in order:
- “Configure Jetson 24pin CSI Connector”
- “Configure for compatible hardware”
- Select “Camera IMX675-C”
- “Save pin changes”
- “Save and reboot to recognize pins”
-
After rebooting, verify that the camera is connected:
ls /dev/video* -
If /dev/video0 appears, the ECM300 has been successfully connected.
cd Desktop
source demo_venv/bin/activateTo deactivate the virtual environment:
deactivateNote: Please make sure the Jetson device is connected to the Internet before running the following commands.
Display live video from the ECM300 / ECM100 camera.
Option -o controls image rotation:
0 = no rotation, 1 = 90°, 2 = 180°, 3 = 270°.
python ocr_jetson.py view -o 0During Live View, you can enter the following commands in the terminal:
-
Capture — Save a snapshot of the current frame:
capture pic.jpg
-
View Detect — Detect text regions in the live feed, draw red bounding boxes, and export coordinates to an XML file:
view_detect output.xml
Note: Live View pauses during detection. Enter the
viewcommand to resume. -
View Recognize — Perform OCR on captured images and display recognized text on both the terminal and the live view:
view_recognize
Detect text from a static image, draw bounding boxes, and export the coordinates to an XML file.
python ocr_jetson.py image_detect -i pic.jpg -x output.xmlRecognize text from a static image and print the results in the terminal.
python ocr_jetson.py image_recognize -i pic.jpgThis project uses PaddleOCR, which is licensed under the Apache License 2.0. You may freely use PaddleOCR for research, personal, and commercial purposes, provided that you retain the original license and copyright notice. No modifications were made to the original PaddleOCR source code.
