Welcome, tech enthusiasts! Whether you’re looking to enhance your object detection capabilities or dive deep into instance segmentation, this blog will guide you through using the YOLO-Patch-Based-Inference library. With its SAHI-like inference approach, you can efficiently detect small objects in images. Let’s embark on this journey of insights and step-by-step instructions.
What is YOLO-Patch-Based-Inference?
This Python library simplifies inference for instance segmentation tasks, empowering users to detect both small and large objects within images. It supports a plethora of Ultralytics models, including YOLOv8, YOLOv9, and more. The beauty lies in its customizable visualization of inference results in both standard and unique patch-based variants.
Installation
To get started, you need to install the library. Use the following command:
pip install patched_yolo_infer
If you want CUDA support, ensure to pre-install PyTorch with CUDA before installing this library. Otherwise, it will default to the CPU version.
Getting Started: How to Perform Patch-Based Inference
In the realm of inference tasks, think of the process of detecting objects as a treasure hunt. We’ll break down the intricate steps to help you locate your treasures effectively:
Step 1: Crop Your Image
Begin by cropping the image using the MakeCropsDetectThem class. This class is your trusty map, detailing where to look for the objects:
from patched_yolo_infer import MakeCropsDetectThem
element_crops = MakeCropsDetectThem(
image=img,
model_path='yolov8m.pt',
segment=False,
shape_x=640,
shape_y=640,
overlap_x=50,
overlap_y=50,
conf=0.5,
iou=0.7
)
Here, the image is divided into overlapping patches, ensuring no sneaky objects evade detection.
Step 2: Combine Detections
Next, like a treasure chest, we need to gather all detected items:
from patched_yolo_infer import CombineDetections
result = CombineDetections(element_crops, nms_threshold=0.25)
After combining, you’ll get a treasure map detailing what was found, including bounding boxes, confidence levels, and more.
Step 3: Extract Results
Finally, as you understand the value of your findings, extract and utilize the results:
img = result.image
confidences = result.filtered_confidences
boxes = result.filtered_boxes
polygons = result.filtered_polygons
classes_ids = result.filtered_classes_id
classes_names = result.filtered_classes_names
This output allows you to analyze and visualize the detections effectively!
Troubleshooting Tips
While embarking on this treasure hunt, you might encounter hiccups. Here are solutions to common issues:
- Poor detection quality: Ensure that your crop size is larger than your largest object. Adjust the overlap settings as needed.
- Duplicate detections: If there are duplicate detections, consider tweaking the
nms_thresholdin theCombineDetectionsclass. - Memory issues: When using memory-intensive modes, check RAM availability or consider lowering resolution settings if necessary.
For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
Final Thoughts
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.
Now, go forth and conquer the world of object detection and segmentation! Happy coding!

