siftrics / coalbox

Bounding box coalescence algorithms. Coalesce word-level bounding boxes into sentences, paragraphs, tables, and more.

Home Page:https://siftrics.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

coalbox — coalesce boxes.

The Sight API is a text recognition service. It provides word-level bounding boxes in response to uploaded PDF documents and images.

This repository provides a Go library of bounding box coalescence algorithms: it is a toolkit of functions which take word-level bounding boxes as input and return coalesced — e.g., sentence-level or paragraph-level — bounding boxes.

Take, for example, this image:

Here is the same image with word-level bounding boxes drawn on top:

After coalescing at the sentence-level...

import "github.com/siftrics/coalbox"

...

sentences := coalbox.ToSentences(boundingBoxes)

...the bounding boxes are much easier to work with:

Import:

import "github.com/siftrics/coalbox"

The function you will use:

func ToSentences(bbs []BoundingBox) []BoundingBox

The BoundingBox type:

type BoundingBox struct {
	Text                                                 string
	TopLeftX, TopLeftY, TopRightX, TopRightY             int
	BottomLeftX, BottomLeftY, BottomRightX, BottomRightY int
	Confidence                                           float64
}

If you're working with image.Rectangle, two functions are exposed to help:

func BoxFromRectangle(r image.Rectangle) BoundingBox
func BoxesFromRectangles(rs []image.Rectangle) []BoundingBox

In the resulting sentence-level bounding boxes, the Text field is creating by joining word-level bounding boxes with the space character, " ". The confidence field is the simple average of the word-level confidences.

This repository is licensed under the Apache License, Version 2.0. You can view the full text of the license in the file named "LICENSE".

About

Bounding box coalescence algorithms. Coalesce word-level bounding boxes into sentences, paragraphs, tables, and more.

https://siftrics.com/

License:Apache License 2.0


Languages

Language:Go 100.0%