(
paper_panels,
panel_model_params,
figure_model_params,
poster_width=1200,
poster_height=800,
shrink_margin=0
)
| 617 | |
| 618 | |
| 619 | def main_inference( |
| 620 | paper_panels, |
| 621 | panel_model_params, |
| 622 | figure_model_params, |
| 623 | poster_width=1200, |
| 624 | poster_height=800, |
| 625 | shrink_margin=0 |
| 626 | ): |
| 627 | for p in paper_panels: |
| 628 | sp, rp = infer_panel_attrs(panel_model_params, p["tp"], p["gp"]) |
| 629 | p["sp"] = sp |
| 630 | p["rp"] = rp |
| 631 | |
| 632 | layout_loss, panel_arrangement = generate_constrained_layout(paper_panels, poster_width, poster_height, title_height_ratio=0.1) |
| 633 | print("Panel layout cost:", layout_loss) |
| 634 | for p in panel_arrangement: |
| 635 | print("Panel:", p) |
| 636 | |
| 637 | panel_map = {} |
| 638 | for p in paper_panels: |
| 639 | panel_map[p["panel_id"]] = p |
| 640 | |
| 641 | final_panels = [] |
| 642 | for pa in panel_arrangement: |
| 643 | # Merge bounding box with the original sp,rp data |
| 644 | pid = pa["panel_id"] |
| 645 | merged_panel = { |
| 646 | "panel_id": pid, |
| 647 | "panel_name": pa['panel_name'], |
| 648 | "x": pa["x"] + shrink_margin, |
| 649 | "y": pa["y"] + shrink_margin, |
| 650 | "width": pa["width"] - 2 * shrink_margin, |
| 651 | "height": pa["height"] - 2 * shrink_margin, |
| 652 | "sp": panel_map[pid]["sp"], |
| 653 | "rp": panel_map[pid]["rp"], |
| 654 | "text_len": panel_map[pid]["text_len"], |
| 655 | "figure_size": panel_map[pid]["figure_size"], |
| 656 | "figure_aspect": panel_map[pid]["figure_aspect"] |
| 657 | } |
| 658 | final_panels.append(merged_panel) |
| 659 | |
| 660 | text_arrangement = [] |
| 661 | figure_arrangement = [] |
| 662 | |
| 663 | for p in final_panels: |
| 664 | text_boxes, fig_boxes = place_text_and_figures_exact(p, figure_model_params) |
| 665 | text_arrangement.extend(text_boxes) # text arrangement |
| 666 | figure_arrangement.extend(fig_boxes) # figure arrangement |
| 667 | |
| 668 | return panel_arrangement, figure_arrangement, text_arrangement |
| 669 | |
| 670 | def visualize_complete_layout( |
| 671 | panels, text_boxes, figure_boxes, poster_width, poster_height |
no test coverage detected