RT-DETR
RT-DETR Layout Analysis¶
Here we use RT-DETR to detect analyze, its a example, and how it will ideally run.
In [9]:
Copied!
from omnidocs.tasks.layout_analysis.extractors.rtdetr import RTDETRLayoutDetector
from omnidocs.tasks.layout_analysis.extractors.rtdetr import RTDETRLayoutDetector
In [10]:
Copied!
detector = RTDETRLayoutDetector(show_log=True)
image_path = "assets/news_paper.png"
annotated_image, layout_output = detector.detect(image_path)
print(f"Detected {len(layout_output.bboxes)} elements")
detector = RTDETRLayoutDetector(show_log=True)
image_path = "assets/news_paper.png"
annotated_image, layout_output = detector.detect(image_path)
print(f"Detected {len(layout_output.bboxes)} elements")
INFO [timestamp]2025-07-29 20:13:59[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:67[/] | [info]Initializing RTDETRLayoutDetector[/]
INFO [timestamp]2025-07-29 20:13:59[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:67[/] | [info]Initializing RTDETRLayoutDetector[/]
INFO [timestamp]2025-07-29 20:13:59[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:80[/] | [info]Forced CPU usage due to use_cpu_only flag[/]
INFO [timestamp]2025-07-29 20:13:59[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:80[/] | [info]Forced CPU usage due to use_cpu_only flag[/]
INFO [timestamp]2025-07-29 20:13:59[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:102[/] | [info]Set CPU threads to 4[/]
INFO [timestamp]2025-07-29 20:13:59[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:102[/] | [info]Set CPU threads to 4[/]
INFO [timestamp]2025-07-29 20:13:59[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:192[/] | [info]Loading RT-DETR model from local path...[/]
INFO [timestamp]2025-07-29 20:13:59[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:192[/] | [info]Loading RT-DETR model from local path...[/]
SUCCESS [timestamp]2025-07-29 20:14:00[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]logging.py:196[/] | [success]RT-DETR model loaded successfully[/]
SUCCESS [timestamp]2025-07-29 20:14:00[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]logging.py:196[/] | [success]RT-DETR model loaded successfully[/]
INFO [timestamp]2025-07-29 20:14:00[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:209[/] | [info]Model ready on device: cpu[/]
INFO [timestamp]2025-07-29 20:14:00[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]rtdetr.py:209[/] | [info]Model ready on device: cpu[/]
SUCCESS [timestamp]2025-07-29 20:14:00[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]logging.py:196[/] | [success]Model initialized successfully[/]
SUCCESS [timestamp]2025-07-29 20:14:00[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]logging.py:196[/] | [success]Model initialized successfully[/]
INFO [timestamp]2025-07-29 20:14:02[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]logging.py:150[/] | [info]detect completed in 1.94s[/]
INFO [timestamp]2025-07-29 20:14:02[/] | [logger.name]omnidocs.tasks.layout_analysis.extractors.rtdetr[/] | [function]logging.py:150[/] | [info]detect completed in 1.94s[/]
Detected 98 elements
In [ ]:
Copied!
output_path = "output/rtdetr_result.png"
detector.visualize((annotated_image, layout_output), output_path)
print(f"Saved visualization and json to {output_path}")
output_path = "output/rtdetr_result.png"
detector.visualize((annotated_image, layout_output), output_path)
print(f"Saved visualization and json to {output_path}")
Saved visualization to output/rtdetr_result.png
In [13]:
Copied!
from IPython.display import Image, display
# Display in notebook
display(Image(output_path))
from IPython.display import Image, display
# Display in notebook
display(Image(output_path))
In [ ]:
Copied!