- 23 Oct, 2024 1 commit
-
-
myhloli authored
- Add new layout model option: DocLayout-YOLO - Implement model initialization and prediction for DocLayout-YOLO - Update configuration options to include new model- Modify existing code to support both LayoutLMv3 and DocLayout-YOLO models - Update Gradio app to support more Custom Switch
-
- 21 Oct, 2024 2 commits
-
-
myhloli authored
- Modified the condition to include List and Index block types- This change enhances the function's capability to process different paragraph types
-
myhloli authored
- Adjust the threshold for identifying index blocks from 3 lines to 2 lines - Add a new function __is_list_group to detect if a group of blocks is a list - Modify the paragraph merging logic to handle list groups differently
-
- 18 Oct, 2024 1 commit
-
-
myhloli authored
- Remove unused parameters parse_type and lang from various functions - Simplify function calls by removing unnecessary arguments - Update related files to reflect these changes
-
- 17 Oct, 2024 1 commit
-
-
myhloli authored
- Remove unused functions such as split_long_words, ocr_mk_mm_markdown_with_para, etc. - Simplify ocr_mk_markdown_with_para_core_v2 by removing unnecessary language detection and word splitting logic- Remove wordninja dependency from requirements - Update ocr_model_init to include additional parameters for OCR model configuration
-
- 15 Oct, 2024 4 commits
-
-
myhloli authored
- Update list block detection logic to require at least 2 numeric start lines - Ensure the number of numeric start lines matches the number of end lines - Remove detection of non-border starting lines for simplicity
-
myhloli authored
-
myhloli authored
Increased the threshold for filling spans in blocks from 0.3 to 0.5 to improve the accuracy of block formation. This change helps refine the grouping of spans into blocks, potentially enhancing the overall structure and readability of the PDF content.
-
myhloli authored
- Combine __is_list_block() and __is_index_block() into a single function __is_list_or_index_block() - Simplify block type determination logic - Remove redundant code and improve readability - Optimize block merging process
-
- 14 Oct, 2024 2 commits
-
-
myhloli authored
Add List and Index to the list of block types being processed in the draw_bbox.py file. This inclusion ensures that these block types are handled similarly to other text-containing blocks, improving the overall document processing accuracy and consistency.
-
myhloli authored
- Add detection for list and index blocks in OCR processing- Implement merging of list and index blocks across pages - Update block types to include list and index categories - Adjust text merging logic to handle new block types - Modify layout drawing to distinguish list and index blocks
-
- 10 Oct, 2024 2 commits
-
-
myhloli authored
-
myhloli authored
- Reintegrate para_split_v3 into the pdf_parse_union_core_v2 process - Add support for specifying page range in doc_analyze_by_custom_model - Implement garbage collection and memory cleaning after processing - Refine image loading from PDF, including handling out-of-range pages
-
- 08 Oct, 2024 5 commits
-
-
myhloli authored
- Add function to get local LayoutReader model directory- Check and use local model directory if available - Fall back to online model if local directory not found - Update model initialization to support local path - Refactor model loading in singleton class
-
icecraft authored
-
icecraft authored
-
myhloli authored
- Introduce a conditional memory cleanup step in the PDF extraction process - Assess available GPU memory before deciding to perform memory cleanup- Log the time taken for garbage collection when it occurs - This optimization helps to balance performance and resource utilization
-
myhloli authored
feat: add arXiv paper link to header and adjust PDF parsing logic- Add arXiv paper link to the header template for easy access to the latest research paper. - Modify the PDF parsing logic to handle edge cases more accurately, particularly in determining the number of lines in a block based on its height.
-
- 06 Oct, 2024 1 commit
-
-
myhloli authored
- Enhance timing output precision to two decimal places for better readability- Calculate and log document analysis speed in pages per second - Optimize logging for YOLO and table recognition processes - Remove unnecessary comments and improve code efficiency
-
- 30 Sep, 2024 1 commit
-
-
myhloli authored
-
- 29 Sep, 2024 2 commits
-
-
myhloli authored
- Insert lines into blocks based on median line height- Calculate block index using line indices median - Remove virtual line information for table and image blocks - Enhance line sorting algorithm for different block types - Add line height calculation function
-
myhloli authored
The clean_memory function has been removed from pdf_parse_union_core_v2.py due to it not being used. This change streamlines the code and prevents potential confusion regarding its purpose.
-
- 28 Sep, 2024 3 commits
-
-
myhloli authored
Update import statements in `pdf_parse_union_core_v2.py` to directly import `prepare_inputs`, `boxes2inputs`, and `parse_logits` from `magic_pdf.model.v3.helpers` instead of from `magic_pdf.model.v3`. This change streamlines the imports, making the code more readable and maintaining a cleaner approach to modular design.
-
myhloli authored
Adapt import statements in `pdf_parse_union_core_v2.py` to reflect the updated packagestructure, changing from the `magic_pdf.v3.helpers` module to the `magic_pdf.model.v3` module. This ensures compatibility with the revised directory layout.
-
myhloli authored
Blocks without lines are now correctly indexed even when they contain textual content rendered as images. The sorting logic has been updated to accommodate this scenario. Additionally, the LayoutLMv3 model initialization has been enhanced to utilize bfloat16 precision on devices that support it, offering potential performance benefits on supported hardware.
-
- 27 Sep, 2024 9 commits
-
-
myhloli authored
Removed redundant sorting of lines by model and optimized calculation of block indexes by using a single pass through the sorted lines. This change simplifies the code and potentially improves performance by reducing the number of sortingoperations and unnecessary iterations over blocks without lines.
-
myhloli authored
refactor(draw_bbox): remove commented-out code and streamline bbox drawingRemoved legacy commented-out code related to layout_bbox_list from draw_bbox.py, which was used for diagnostic purposes and was no longer necessary. This change streamlines the codebase and clarifies the drawing process of bounding boxes on PDF pages. The update also adjusts the order of operations slightly for improved readability without altering the functionality.
-
myhloli authored
refactor(pdf_parse_union_core_v2): implement model initialization within classRefactored model initialization to be handled by a singleton class to ensure that model instances are reused across calls, avoiding redundant initializations. Removed logger information that was commented out and ensured consistency in logging behavior.
-
myhloli authored
Refactor the draw bbox functions by removing unused imports and simplifying the code logic for drawing layout and line sorting bounding boxes. Adjust the debug configuration to enable content list dumping and disable markdown making mode.
-
myhloli authored
Introduce an additional argument `draw_bbox` in the `draw_bbox_with_number` function to enable toggling the drawing of bounding boxes on or off. When set to `False`, no bounding box will be drawn, allowing for situations where only text
-
myhloli authored
Remove debug code related to layout bbox visualization and adjust drawing functions to support optional line sorting bboxes. This change includes the removal of `draw_layout_bbox` function and updates to `draw_bbox_with_number` to support variable line width for bbox drawing.
-
myhloli authored
Add a new function `draw_line_sort_bbox` to visualize the sorting of lines on each page. This includes indexing lines and handling both text and non-text elements such as tables and images for better content organization. Also, comment out GPU-related code for flexibility and remove overlaps in bounding box detection, which improves the accuracy of layout splitting.
-
myhloli authored
refactor(pdf_parse_union): integrate LayoutLMv3 for block orderingReplace the heuristic-based block ordering algorithm with LayoutLMv3 model predictions toimprove the accuracy of block ordering on PDF pages. Additionally, refactor the span handling during block filling to ensure spans are correctly assigned. - Introduce LayoutLMv3ForTokenClassification from 'hantian/layoutreader' to predict block order. - Implement span replacement strategy to use pymu spans for non-OCR content. - Enhance cleanup process to free GPU memory more effectively after model use. - Adjust block ordering logic to use median line index for text, title, and interline equation blocks. - Refactor page parsing core logic for better maintainability. BREAKING CHANGE: The integration of LayoutLMv3 changes the internal block handling and ordering mechanism, which may affect downstream systems relying on the previous implementation. Ensure to test thoroughly before deployment.
-
myhloli authored
- Added CUDA cache clearing after layoutreader prediction to free up GPU memory. - Modified the bbox sorting logic to sort text and title blocks separately. - Adjusted drawing colors for better distinction in debug visualizations.
-
- 26 Sep, 2024 2 commits
-
-
myhloli authored
- Added CUDA cache clearing after layoutreader prediction to free up GPU memory. - Modified the bbox sorting logic to sort text and title blocks separately. - Adjusted drawing colors for better distinction in debug visualizations.
-
myhloli authored
Implement a new function `draw_layout_sort_bbox` in `draw_bbox.py` to visualize the layout sorting results using the `LayoutLMv3ForTokenClassification` model. This function predicts the order of layout elements and draws them in the sorted sequence on the PDF pages.
-
- 25 Sep, 2024 1 commit
-
-
myhloli authored
Implement a new function `draw_layout_sort_bbox` in `draw_bbox.py` to visualize the layout sorting results using the `LayoutLMv3ForTokenClassification` model. This function predicts the order of layout elements and draws them in the sorted sequence on the PDF pages.
-
- 20 Sep, 2024 1 commit
-
-
myhloli authored
-
- 19 Sep, 2024 2 commits