Package: pyrack
This is a python package to analyze detections conducted across different types of documents. In the current version, it supports only objects detected in images.This version is compatible with object detection performed byImageAIusing the pre-trained weights ofResNet50.Download and place the aforementioned pre-trained weights in your local folder.All the implementations and testing were performed using random samples from theMS COCO 2017dataset. Do look into the notebooks in theDemofolder to conduct some experiments on your custom data.InstallationInstall this package with the following command:pip install --upgrade pyrackIn order to detect objects and perform some analysis on them, import the package with the following command:from pyrack import object as objFunctionalitiesThe following functions can be implemented with the current version\Reading an imageThis function reads and stores an image in the RGB color-space in the form of numpy arrays.img = obj.img(image_path)Displaying the imageThis loads the image that was read in the previous step.obj.display_original_image(img)Defining the model pathHere we need to mention the path where we have stored the pre-trained model weights meant for object detection.model_path = obj.model_weights(os.path.join(path, 'resnet50_coco_best_v2.0.1.h5'))Detecting objects in the imageWith the help of the pre-trained weights loaded above, we perform object detections on the image loaded in step 1.detections = obj.detections(img)Get all detected objectsHere we print a list of all the objects that were detected in the previous step.detected_objects = obj.detected_objects(img, detections)
print(detected_objects)Getting the bounding-box(bbox) coordinates for all the detected objectsHere we extract the bbox co-ordinates for each detected object.bbox = obj.bbox(detections)Getting the regions of interest(roi)From the bbox extracted above, we can draw roi's around the detected images on which we can perform further actions.roi = obj.roi(img, detections)Resizing the roi'sHere we resize each roi to a dimension of (100,100,3). Objects that are too small will be padded with black pixels before being resized.resized_roi = obj.resized_roi(img, roi)Number of detectionsHere we print the total number of detections performed on the loaded image.obj.number_of_detections(img, detections)Unique items detectedThis function returns all the unique items detected in the image.obj.unique_items_detected(img, detected_objects)Count of each unique objectHere we get to see the count per unique object detected in the image.obj.count_per_unique_item(img, detected_objects)Shape of each detected objectHere we get to see the 3-dimensional shape of each detected object.obj.detected_objects_shape(img, detected_objects, roi)Display all detected objectsHere we display each detected object from the image individually.obj.display_all_objects(img, detected_objects, roi)Display specific objectsHere we give an option to display only specific objects detected in the image.obj.display_specific_image(img, detected_objects, roi)Display all resized objectsHere, all the resized roi's will be concatenated and displayed as one image of all the detected objects.obj.display_all_resized_objects(img, detected_objects, resized_roi)Grouping objects by classHere we display all detected objects grouped by their respective classes.obj.group_objects_by_class(img, detected_objects, resized_roi)