From 0c8c7273039f2a5a2384b79150892f12f604027a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Tue, 20 Feb 2024 11:56:43 +0100 Subject: [PATCH] Reading Order --- .../docstrum/DocstrumSegmentationService.java | 107 ++++++++++++- .../services/docstrum/model/AngleFilter.java | 46 ++---- .../services/docstrum/model/Character.java | 15 ++ .../services/docstrum/model/DisjointSets.java | 18 +-- .../services/docstrum/model/Line.java | 30 ++-- .../services/docstrum/model/Zone.java | 8 + .../BoundingBoxDistanceTuple.java | 30 ++++ .../readingorder/BoundingBoxZoneGroup.java | 57 ++----- .../docstrum/readingorder/DistElem.java | 115 -------------- .../docstrum/service/ReadingOrderService.java | 147 +++++++++++------- .../docstrum/service/ZoneBuilderService.java | 10 +- .../server/graph/ViewerDocumentTest.java | 4 +- .../files/Plenarprotokoll 20_24_Seite1.pdf | Bin 0 -> 142339 bytes 13 files changed, 294 insertions(+), 293 deletions(-) create mode 100644 layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/BoundingBoxDistanceTuple.java delete mode 100644 layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/DistElem.java create mode 100644 layoutparser-service/layoutparser-service-server/src/test/resources/files/Plenarprotokoll 20_24_Seite1.pdf diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/DocstrumSegmentationService.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/DocstrumSegmentationService.java index 4a21ff0..d243b06 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/DocstrumSegmentationService.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/DocstrumSegmentationService.java @@ -1,12 +1,17 @@ package com.knecon.fforesight.service.layoutparser.processor.services.docstrum; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; import org.springframework.stereotype.Service; import com.knecon.fforesight.service.layoutparser.processor.model.text.TextPositionSequence; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model.Character; +import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model.DisjointSets; +import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model.Line; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model.Zone; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.service.LineBuilderService; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.service.NearestNeighbourService; @@ -20,6 +25,8 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class DocstrumSegmentationService { + private static final double MAX_VERTICAL_MERGE_DIST = 0.5; + private final NearestNeighbourService nearestNeighbourService; private final SpacingService spacingService; private final LineBuilderService lineBuilderService; @@ -42,7 +49,105 @@ public class DocstrumSegmentationService { var zones = zoneBuilderService.buildZones(lines, characterSpacing, lineSpacing); - return readingOrderService.resolve(zones); + zones = mergeLines(zones, characterSpacing, Double.NEGATIVE_INFINITY, 0.0, 0.0, lineSpacing * MAX_VERTICAL_MERGE_DIST); + + return readingOrderService.resolve(zones, false); + } + +// private List mergeZones(List zones, double tolerance) { +// +// List bounds = new ArrayList(zones.size()); +// for (List zone : zones) { +// BxBoundsBuilder builder = new BxBoundsBuilder(); +// for (ComponentLine line : zone) { +// for (Component component : line.getComponents()) { +// builder.expand(component.getChunk().getBounds()); +// } +// } +// bounds.add(builder.getBounds()); +// } +// +// List> outputZones = new ArrayList>(); +// mainFor: +// for (int i = 0; i < zones.size(); i++) { +// for (int j = 0; j < zones.size(); j++) { +// if (i == j || bounds.get(j) == null || bounds.get(i) == null) { +// continue; +// } +// if (BxModelUtils.contains(bounds.get(j), bounds.get(i), tolerance)) { +// zones.get(j).addAll(zones.get(i)); +// bounds.set(i, null); +// continue mainFor; +// } +// } +// outputZones.add(zones.get(i)); +// } +// return outputZones; +// } + + + private List mergeLines(List zones, + double wordSpacing, + double minHorizontalDistance, + double maxHorizontalDistance, + double minVerticalDistance, + double maxVerticalDistance) { + + List outputZones = new ArrayList<>(zones.size()); + for (Zone zone : zones) { + outputZones.add(mergeLinesInZone(zone, wordSpacing, minHorizontalDistance, maxHorizontalDistance, minVerticalDistance, maxVerticalDistance)); + } + return outputZones; + } + + + private Zone mergeLinesInZone(Zone zone, + double wordSpacing, + double minHorizontalDistance, + double maxHorizontalDistance, + double minVerticalDistance, + double maxVerticalDistance) { + + DisjointSets sets = new DisjointSets<>(zone.getLines()); + for (int i = 0; i < zone.getLines().size(); i++) { + Line li = zone.getLines().get(i); + for (int j = i + 1; j < zone.getLines().size(); j++) { + Line lj = zone.getLines().get(j); + double hDist = li.horizontalDistance(lj); + double vDist = li.verticalDistance(lj); + if (minHorizontalDistance <= hDist && hDist <= maxHorizontalDistance && minVerticalDistance <= vDist && vDist <= maxVerticalDistance) { + sets.union(li, lj); + } else if (minVerticalDistance <= vDist && vDist <= maxVerticalDistance && Math.abs(hDist - Math.min(li.getLength(), lj.getLength())) < 0.1) { + boolean componentOverlap = false; + int overlappingCount = 0; + for (Character ci : li.getCharacters()) { + for (Character cj : lj.getCharacters()) { + double dist = ci.overlappingDistance(cj); + if (dist > 2) { + componentOverlap = true; + } + if (dist > 0) { + overlappingCount++; + } + } + } + if (!componentOverlap && overlappingCount <= 2) { + sets.union(li, lj); + } + } + } + } + List outputZone = new ArrayList<>(); + for (Set group : sets) { + List components = new ArrayList<>(); + for (Line line : group) { + components.addAll(line.getCharacters()); + } + components.sort(Comparator.comparingDouble(Character::getX)); + + outputZone.add(new Line(components, wordSpacing)); + } + return new Zone(outputZone); } } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/AngleFilter.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/AngleFilter.java index 5ecc891..fb0289e 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/AngleFilter.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/AngleFilter.java @@ -1,29 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model; -/** - * Filter class for neighbor objects that checks if the angle of the - * neighbor is within specified range. - */ public abstract class AngleFilter { - private final double lowerAngle; - private final double upperAngle; + protected double lowerAngle; + protected double upperAngle; - private AngleFilter(double lowerAngle, double upperAngle) { - - this.lowerAngle = lowerAngle; - this.upperAngle = upperAngle; - } + public abstract boolean matches(Neighbor neighbor); - /** - * Constructs new angle filter. - * - * @param lowerAngle minimum angle in range [-3*pi/2, pi/2) - * @param upperAngle maximum angle in range [-pi/2, 3*pi/2) - * @return newly constructed angle filter - */ public static AngleFilter newInstance(double lowerAngle, double upperAngle) { if (lowerAngle < -Math.PI / 2) { @@ -40,33 +25,19 @@ public abstract class AngleFilter { } - public double getLowerAngle() { - - return lowerAngle; - } - - - public double getUpperAngle() { - - return upperAngle; - } - - - public abstract boolean matches(Neighbor neighbor); - - public static final class AndFilter extends AngleFilter { private AndFilter(double lowerAngle, double upperAngle) { - super(lowerAngle, upperAngle); + this.lowerAngle = lowerAngle; + this.upperAngle = upperAngle; } @Override public boolean matches(Neighbor neighbor) { - return getLowerAngle() <= neighbor.getAngle() && neighbor.getAngle() < getUpperAngle(); + return lowerAngle <= neighbor.getAngle() && neighbor.getAngle() < upperAngle; } } @@ -75,14 +46,15 @@ public abstract class AngleFilter { private OrFilter(double lowerAngle, double upperAngle) { - super(lowerAngle, upperAngle); + this.lowerAngle = lowerAngle; + this.upperAngle = upperAngle; } @Override public boolean matches(Neighbor neighbor) { - return getLowerAngle() <= neighbor.getAngle() || neighbor.getAngle() < getUpperAngle(); + return lowerAngle <= neighbor.getAngle() || neighbor.getAngle() < upperAngle; } } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Character.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Character.java index 150a926..987665a 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Character.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Character.java @@ -1,6 +1,7 @@ package com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import com.knecon.fforesight.service.layoutparser.processor.model.text.RedTextPosition; @@ -51,6 +52,20 @@ public class Character { } + public double overlappingDistance(Character other) { + + double[] xs = new double[4]; + double s = Math.sin(-0), c = Math.cos(-0); + xs[0] = c * x - s * y; + xs[1] = c * (x + textPosition.getWidthDirAdj()) - s * (y + textPosition.getHeightDir()); + xs[2] = c * other.x - s * other.y; + xs[3] = c * (other.x + other.textPosition.getWidthDirAdj()) - s * (other.y + other.textPosition.getHeightDir()); + boolean overlapping = xs[1] >= xs[2] && xs[3] >= xs[0]; + Arrays.sort(xs); + return Math.abs(xs[2] - xs[1]) * (overlapping ? 1 : -1); + } + + public void setNeighbors(List neighbors) { this.neighbors = neighbors; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/DisjointSets.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/DisjointSets.java index e4cc563..447500b 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/DisjointSets.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/DisjointSets.java @@ -10,29 +10,17 @@ import java.util.Set; public class DisjointSets implements Iterable> { - private final Map> map = new HashMap>(); + private final Map> map = new HashMap<>(); - /** - * Constructs a new set of singletons. - * - * @param c elements of singleton sets - */ - public DisjointSets(Collection c) { + public DisjointSets(Collection collection) { - for (E element : c) { + for (E element : collection) { map.put(element, new Entry(element)); } } - /** - * Checks if elements are in the same subsets. - * - * @param e1 element from a subset - * @param e2 element from a subset - * @return true if elements are in the same subset; false otherwise - */ public boolean areTogether(E e1, E e2) { return map.get(e1).findRepresentative() == map.get(e2).findRepresentative(); diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Line.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Line.java index 892771d..5683c4a 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Line.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Line.java @@ -33,11 +33,11 @@ public class Line extends BoundingBox { if (characters.size() >= 2) { // Simple linear regression double sx = 0.0, sxx = 0.0, sxy = 0.0, sy = 0.0; - for (Character component : characters) { - sx += component.getX(); - sxx += component.getX() * component.getX(); - sxy += component.getX() * component.getY(); - sy += component.getY(); + for (Character character : characters) { + sx += character.getX(); + sxx += character.getX() * character.getX(); + sxy += character.getX() * character.getY(); + sy += character.getY(); } double b = (characters.size() * sxy - sx * sy) / (characters.size() * sxx - sx * sx); double a = (sy - b * sx) / characters.size(); @@ -47,13 +47,13 @@ public class Line extends BoundingBox { this.x1 = characters.get(characters.size() - 1).getX(); this.y1 = a + b * this.x1; } else if (!characters.isEmpty()) { - Character component = characters.get(0); - double dx = component.getTextPosition().getWidthDirAdj() / 3; + Character character = characters.get(0); + double dx = character.getTextPosition().getWidthDirAdj() / 3; double dy = dx * Math.tan(0); - this.x0 = component.getX() - dx; - this.x1 = component.getX() + dx; - this.y0 = component.getY() - dy; - this.y1 = component.getY() + dy; + this.x0 = character.getX() - dx; + this.x1 = character.getX() + dx; + this.y0 = character.getY() - dy; + this.y1 = character.getY() + dy; } else { throw new IllegalArgumentException("Component list must not be empty"); } @@ -155,5 +155,13 @@ public class Line extends BoundingBox { this.setBBox(new Rectangle2D.Double(minX, minY, maxX - minX, maxY - minY)); } + + public String toString() { + + StringBuilder sb = new StringBuilder(); + words.forEach(word -> sb.append(word.toString()).append(" ")); + return sb.toString().trim(); + } + } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Zone.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Zone.java index 7960f63..1d9a0dd 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Zone.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/model/Zone.java @@ -39,4 +39,12 @@ public class Zone extends BoundingBox { this.setBBox(new Rectangle2D.Double(minX, minY, maxX - minX, maxY - minY)); } + + public String toString() { + + StringBuilder sb = new StringBuilder(); + lines.forEach(line -> sb.append(line.toString()).append("\n")); + return sb.toString().trim(); + } + } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/BoundingBoxDistanceTuple.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/BoundingBoxDistanceTuple.java new file mode 100644 index 0000000..3f1b73b --- /dev/null +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/BoundingBoxDistanceTuple.java @@ -0,0 +1,30 @@ +package com.knecon.fforesight.service.layoutparser.processor.services.docstrum.readingorder; + +import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model.BoundingBox; +import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.utils.DoubleUtils; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class BoundingBoxDistanceTuple implements Comparable { + + private boolean c; + private double distance; + private BoundingBox zone1; + private BoundingBox zone2; + + + @Override + public int compareTo(BoundingBoxDistanceTuple compareObject) { + + double eps = 1E-3; + if (c == compareObject.c) { + return DoubleUtils.compareDouble(distance, compareObject.distance, eps); + } else { + return c ? -1 : 1; + } + } + +} diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/BoundingBoxZoneGroup.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/BoundingBoxZoneGroup.java index b03ce06..50d6717 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/BoundingBoxZoneGroup.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/BoundingBoxZoneGroup.java @@ -4,6 +4,9 @@ import java.awt.geom.Rectangle2D; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model.BoundingBox; +import lombok.Data; + +@Data public class BoundingBoxZoneGroup extends BoundingBox { private BoundingBox leftChild; @@ -14,51 +17,13 @@ public class BoundingBoxZoneGroup extends BoundingBox { this.leftChild = child1; this.rightChild = child2; - setBounds(Math.min(child1.getX(), child2.getX()), - Math.min(child1.getY(), child2.getY()), - Math.max(child1.getX() + child1.getWidth(), child2.getX() + child2.getWidth()), - Math.max(child1.getY() + child1.getHeight(), child2.getY() + child2.getHeight())); + + double minX = Math.min(leftChild.getX(), rightChild.getX()); + double minY = Math.min(leftChild.getY(), rightChild.getY()); + double maxX = Math.max(leftChild.getX() + leftChild.getWidth(), rightChild.getX() + rightChild.getWidth()); + double maxY = Math.max(leftChild.getY() + leftChild.getHeight(), rightChild.getY() + rightChild.getHeight()); + + this.setBBox(new Rectangle2D.Double(minX, minY, maxX - minX, maxY - minY)); } - - - public void setbBox(Rectangle2D bBox) { - - super.setBBox(bBox); - } - - - public BoundingBox getLeftChild() { - - return leftChild; - } - - - public BoundingBox getRightChild() { - - return rightChild; - } - - - public BoundingBoxZoneGroup setLeftChild(BoundingBox obj) { - - this.leftChild = obj; - return this; - } - - - public BoundingBoxZoneGroup setRightChild(BoundingBox obj) { - - this.rightChild = obj; - return this; - } - - - public BoundingBoxZoneGroup setBounds(double x0, double y0, double x1, double y1) { - - assert x1 >= x0; - assert y1 >= y0; - this.setBBox(new Rectangle2D.Double(x0, y0, x1 - x0, y1 - y0)); - return this; - } - + } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/DistElem.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/DistElem.java deleted file mode 100644 index 29ec401..0000000 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/readingorder/DistElem.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.knecon.fforesight.service.layoutparser.processor.services.docstrum.readingorder; - -import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.utils.DoubleUtils; - -public class DistElem implements Comparable> { - - @Override - public int hashCode() { - - final int prime = 31; - int result = 1; - result = prime * result + (c ? 1231 : 1237); - long temp; - temp = Double.doubleToLongBits(dist); - result = prime * result + (int) (temp ^ (temp >>> 32)); - result = prime * result + ((obj1 == null) ? 0 : obj1.hashCode()); - result = prime * result + ((obj2 == null) ? 0 : obj2.hashCode()); - return result; - } - - - @Override - public boolean equals(Object obj) { - - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - DistElem other = (DistElem) obj; - if (c != other.c) { - return false; - } - if (Double.doubleToLongBits(dist) != Double.doubleToLongBits(other.dist)) { - return false; - } - if (obj1 == null) { - if (other.obj1 != null) { - return false; - } - } else if (!obj1.equals(other.obj1)) { - return false; - } - if (obj2 == null) { - if (other.obj2 != null) { - return false; - } - } else if (!obj2.equals(other.obj2)) { - return false; - } - return true; - } - - - boolean c; - double dist; - E obj1; - E obj2; - - - public boolean isC() { - - return c; - } - - - public void setC(boolean c) { - - this.c = c; - } - - - public double getDist() { - - return dist; - } - - - public E getObj1() { - - return obj1; - } - - - public E getObj2() { - - return obj2; - } - - - public DistElem(boolean c, double dist, E obj1, E obj2) { - - this.c = c; - this.dist = dist; - this.obj1 = obj1; - this.obj2 = obj2; - } - - - @Override - public int compareTo(DistElem compareObject) { - - double eps = 1E-3; - if (c == compareObject.c) { - return DoubleUtils.compareDouble(dist, compareObject.dist, eps); - } else { - return c ? -1 : 1; - } - } - -} diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/service/ReadingOrderService.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/service/ReadingOrderService.java index 098b0ca..001d22e 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/service/ReadingOrderService.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/service/ReadingOrderService.java @@ -5,13 +5,14 @@ import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.ListIterator; import org.springframework.stereotype.Service; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model.BoundingBox; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.model.Zone; +import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.readingorder.BoundingBoxDistanceTuple; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.readingorder.BoundingBoxZoneGroup; -import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.readingorder.DistElem; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.readingorder.DocumentPlane; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.readingorder.TreeToListConverter; import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.utils.DoubleUtils; @@ -20,66 +21,96 @@ import com.knecon.fforesight.service.layoutparser.processor.services.docstrum.ut public class ReadingOrderService { static final int GRIDSIZE = 50; - static final double EPS = 0.01; - static final int MAX_ZONES = 1000; - static final Comparator Y_ASCENDING_ORDER = new Comparator() { + static final double THRESHOLD = 1; - @Override - public int compare(BoundingBox o1, BoundingBox o2) { - return DoubleUtils.compareDouble(o1.getY(), o2.getY(), EPS); + public List resolve(List zones, boolean yxOrder) { + + if (zones.isEmpty() || zones.size() == 1) { + return zones; } - }; - static final Comparator X_ASCENDING_ORDER = new Comparator() { - - @Override - public int compare(BoundingBox o1, BoundingBox o2) { - - return DoubleUtils.compareDouble(o1.getX(), o2.getX(), EPS); + if (yxOrder) { + zones.sort(Comparator.comparing(BoundingBox::getY, (o1, o2) -> DoubleUtils.compareDouble(o1, o2, THRESHOLD)) + .thenComparing(BoundingBox::getX, (o1, o2) -> DoubleUtils.compareDouble(o1, o2, THRESHOLD))); + return zones; } - }; - static final Comparator YX_ASCENDING_ORDER = new Comparator() { + return simpleOrder(zones); + } - @Override - public int compare(BoundingBox o1, BoundingBox o2) { - int yCompare = Y_ASCENDING_ORDER.compare(o1, o2); - return yCompare == 0 ? X_ASCENDING_ORDER.compare(o1, o2) : yCompare; + private List simpleOrder(List zones) { + + double minX = Double.POSITIVE_INFINITY; + double maxX = Double.NEGATIVE_INFINITY; + + for (Zone zone : zones) { + if (zone.getX() < minX) { + minX = zone.getX(); + } + if (zone.getX() + zone.getWidth() > maxX) { + maxX = zone.getX() + zone.getWidth(); + } } - }; + double midLineXCoordinate = (minX + maxX) / 2; - public List resolve(List zones) { - - List orderedZones; - if (zones.size() > MAX_ZONES) { - orderedZones = new ArrayList<>(zones); - Collections.sort(orderedZones, YX_ASCENDING_ORDER); - } else { - orderedZones = reorderZones(zones); + List leftOf = new ArrayList<>(); + List rightOf = new ArrayList<>(); + List middle = new ArrayList<>(); + for (Zone zone : zones) { + if (zone.getX() < midLineXCoordinate && zone.getX() + zone.getWidth() < midLineXCoordinate) { + leftOf.add(zone); + } else if (zone.getX() > midLineXCoordinate && zone.getX() + zone.getWidth() > midLineXCoordinate) { + rightOf.add(zone); + } else { + middle.add(zone); + } } - return orderedZones; + + leftOf.sort(Comparator.comparing(BoundingBox::getY, (o1, o2) -> DoubleUtils.compareDouble(o1, o2, THRESHOLD)) + .thenComparing(BoundingBox::getX, (o1, o2) -> DoubleUtils.compareDouble(o1, o2, THRESHOLD))); + + rightOf.sort(Comparator.comparing(BoundingBox::getY, (o1, o2) -> DoubleUtils.compareDouble(o1, o2, THRESHOLD)) + .thenComparing(BoundingBox::getX, (o1, o2) -> DoubleUtils.compareDouble(o1, o2, THRESHOLD))); + + middle.sort(Comparator.comparing(BoundingBox::getY, (o1, o2) -> DoubleUtils.compareDouble(o1, o2, THRESHOLD))); + + List sortedZones = new ArrayList<>(); + sortedZones.addAll(leftOf); + sortedZones.addAll(rightOf); + + ListIterator itty = middle.listIterator(); + + while (itty.hasNext()) { + Zone current = itty.next(); + + for (int i = 0; i < sortedZones.size(); i++) { + if (current.getY() < sortedZones.get(i).getY()) { + sortedZones.add(i, current); + itty.remove(); + break; + } + } + + } + + sortedZones.addAll(middle); + + return sortedZones; } private List reorderZones(List unorderedZones) { - if (unorderedZones.isEmpty()) { - return new ArrayList<>(); - } else if (unorderedZones.size() == 1) { - List ret = new ArrayList<>(1); - ret.add(unorderedZones.get(0)); - return ret; - } else { - BoundingBoxZoneGroup bxZonesTree = groupZonesHierarchically(unorderedZones); - sortGroupedZones(bxZonesTree); - TreeToListConverter treeConverter = new TreeToListConverter(); - List orderedZones = treeConverter.convertToList(bxZonesTree); - assert unorderedZones.size() == orderedZones.size(); - return orderedZones; - } + BoundingBoxZoneGroup bxZonesTree = groupZonesHierarchically(unorderedZones); + sortGroupedZones(bxZonesTree); + TreeToListConverter treeConverter = new TreeToListConverter(); + List orderedZones = treeConverter.convertToList(bxZonesTree); + assert unorderedZones.size() == orderedZones.size(); + return orderedZones; + } @@ -94,29 +125,29 @@ public class ReadingOrderService { /* * Distance tuples are stored sorted by ascending distance value */ - List> dists = new ArrayList>(zones.size() * zones.size() / 2); + List dists = new ArrayList<>(); for (int idx1 = 0; idx1 < zones.size(); ++idx1) { for (int idx2 = idx1 + 1; idx2 < zones.size(); ++idx2) { Zone zone1 = zones.get(idx1); Zone zone2 = zones.get(idx2); - dists.add(new DistElem(false, distance(zone1, zone2), zone1, zone2)); + dists.add(new BoundingBoxDistanceTuple(false, distance(zone1, zone2), zone1, zone2)); } } Collections.sort(dists); DocumentPlane plane = new DocumentPlane(zones, GRIDSIZE); while (!dists.isEmpty()) { - DistElem distElem = dists.get(0); + BoundingBoxDistanceTuple distElem = dists.get(0); dists.remove(0); - if (!distElem.isC() && plane.anyObjectsBetween(distElem.getObj1(), distElem.getObj2())) { - dists.add(new DistElem(true, distElem.getDist(), distElem.getObj1(), distElem.getObj2())); + if (!distElem.isC() && plane.anyObjectsBetween(distElem.getZone1(), distElem.getZone2())) { + dists.add(new BoundingBoxDistanceTuple(true, distElem.getDistance(), distElem.getZone1(), distElem.getZone2())); continue; } - BoundingBoxZoneGroup newGroup = new BoundingBoxZoneGroup(distElem.getObj1(), distElem.getObj2()); - plane.remove(distElem.getObj1()).remove(distElem.getObj2()); - dists = removeDistElementsContainingObject(dists, distElem.getObj1()); - dists = removeDistElementsContainingObject(dists, distElem.getObj2()); + BoundingBoxZoneGroup newGroup = new BoundingBoxZoneGroup(distElem.getZone1(), distElem.getZone2()); + plane.remove(distElem.getZone1()).remove(distElem.getZone2()); + dists = removeDistElementsContainingObject(dists, distElem.getZone1()); + dists = removeDistElementsContainingObject(dists, distElem.getZone2()); for (BoundingBox other : plane.getObjects()) { - dists.add(new DistElem(false, distance(other, newGroup), newGroup, other)); + dists.add(new BoundingBoxDistanceTuple(false, distance(other, newGroup), newGroup, other)); } Collections.sort(dists); plane.add(newGroup); @@ -130,11 +161,11 @@ public class ReadingOrderService { /** * Removes all distance tuples containing obj */ - private List> removeDistElementsContainingObject(Collection> list, BoundingBox obj) { + private List removeDistElementsContainingObject(Collection list, BoundingBox obj) { - List> ret = new ArrayList>(); - for (DistElem distElem : list) { - if (distElem.getObj1() != obj && distElem.getObj2() != obj) { + List ret = new ArrayList<>(); + for (BoundingBoxDistanceTuple distElem : list) { + if (distElem.getZone1() != obj && distElem.getZone2() != obj) { ret.add(distElem); } } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/service/ZoneBuilderService.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/service/ZoneBuilderService.java index ef2344c..4ee8de6 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/service/ZoneBuilderService.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/docstrum/service/ZoneBuilderService.java @@ -41,6 +41,7 @@ public class ZoneBuilderService { lines.forEach(outerLine -> // lines.forEach(innerLine -> { + double scale = Math.min(outerLine.getHeight(), innerLine.getHeight()) / meanHeight; scale = Math.max(MIN_LINE_SIZE_SCALE, Math.min(scale, MAX_LINE_SIZE_SCALE)); @@ -49,13 +50,8 @@ public class ZoneBuilderService { double horizontalDistance = outerLine.horizontalDistance(innerLine) / scale; double verticalDistance = outerLine.verticalDistance(innerLine) / scale; - // Line over or above - if (minHorizontalDistance <= horizontalDistance && verticalDistance <= maxVerticalDistance) { - sets.union(outerLine, innerLine); - } - - // Split line that needs later merging - else if (minHorizontalMergeDistance <= horizontalDistance && verticalDistance <= maxVerticalMergeDistance) { + if (minHorizontalDistance <= horizontalDistance && verticalDistance <= maxVerticalDistance // + || minHorizontalMergeDistance <= horizontalDistance && verticalDistance <= maxVerticalMergeDistance) { sets.union(outerLine, innerLine); } } diff --git a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/graph/ViewerDocumentTest.java b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/graph/ViewerDocumentTest.java index 56124e7..aaaecd6 100644 --- a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/graph/ViewerDocumentTest.java +++ b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/graph/ViewerDocumentTest.java @@ -25,9 +25,7 @@ public class ViewerDocumentTest extends BuildDocumentTest { @SneakyThrows public void testViewerDocument() { - System.out.println("<<<<<<<<<<" + Math.sin(-0) + "aaa " + Math.cos(0) + Math.tan(0)); - - String fileName = "files/Plenarprotokoll 1 (keine Druchsache!) (1).pdf"; + String fileName = "files/S-Metolachlor_RAR_01_Volume_1_2018-09-06.pdf"; String tmpFileName = "/tmp/" + Path.of(fileName).getFileName() + "_VIEWER.pdf"; var documentFile = new ClassPathResource(fileName).getFile(); diff --git a/layoutparser-service/layoutparser-service-server/src/test/resources/files/Plenarprotokoll 20_24_Seite1.pdf b/layoutparser-service/layoutparser-service-server/src/test/resources/files/Plenarprotokoll 20_24_Seite1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dbcd246d3d6ff07a201dcfe6df21da403026ba1c GIT binary patch literal 142339 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

N;9(fe%kuz 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 literal 0 HcmV?d00001