Author: Florian Linsel

Contributors: Rebecca Gnau, Naira Khachatryan, Hubert Mara

Description

Drawing and annotating artifacts in 3D are a central parts in archaeological interpretation and research. One of the central goals is creating data, so called “ground truths”, for evaluating and comparing the new methods to segment and analyse artifacts with existing interpretations of experts. In the following, a workflow for manually segment lithic artifacts gets presented. Like every other method, the approach is not limited to lithic artifacts, but need to be adjusted for other artifact categories.

The goal of this approach is marking ridges on the surface of a 3D model, in this case an artifact from the open access Grotta di Fumane dataset (Falcucci & Peresani, 2022), which was adjusted in a later data publication of our working group (Linsel et al., 2023).

In (Linsel et al., 2023), we used MeshLab to manually segment the area of all scar. We adjusted the workflow to Blender allowing a ridge segmentation. This color-based segmentation allows a line selection with a width of vertices. Hence, the precision of the ridges is quite high.

The end product of the segmentation can be transferred to connected component either with GigaMesh (Mara & Krömker, 2013; Mara et al., 2010) or the Color-labeling tool of MorseMesh (Bullenkamp et al., 2023).

Introduction

Software version:

Datasets and directories included in this upload:

Drawing_the_line_in_3D_Blender_v.0.7.zip
├── example_10350
│   ├── 10350_GMCF_c_gt_labels.txt
│   ├── 10350_GMCF_c.ply
│   ├── 10350_GMCF_c.blend
├── script
│   ├── color_to_label.py
│   ├── __init__.py
│   ├── README.txt
├── learning_artifacts
│   ├── 1401_GMOCF.ply
│   ├── 1401_GMOCF_r1.00_n4_v256.volume.ply
│   ├── 1424_GMOCF.ply
│   ├── 1424_GMOCF_r1.00_n4_v256.volume.ply
│   ├── 1463_GMOCF.ply
│   ├── 1463_GMOCF_r1.00_n4_v256.volume.ply
│   ├── 1464_GMCF.ply
│   ├── 1464_GMOCF_r1.00_n4_v256.volume.ply
└── Template.blend

Description:

Remarks:

Prepare own Project with Template

Data Import

Annotation

Preparing Annotation

Creating the Annotation

Continue with all other Scars

Baking Textures to Vertex Colors

Data Export

Export Meshes as * + "_c.ply"

Export Menu

Blender **4.0** export

Blender **3.0** export

Postprocessing GigaMesh Renderings

GigaMesh Renderings

The artifact can be depicted in GigaMesh using the baked color. For using the color as label, an additional step for a color calibration is partly needed using Blender (version 4.0).

Color Annotation to Binary Label

One of the problems using Blender is that the UV mapping results in vertex colors with gray scaled values. To convert the grey-scaled vertex to label the the vertex colors use the script "color_to_label.py" to create a binary label (ridge = label 1, scar = label 2). For using this step use the following code in the command-line:

To import the label file follow the instruction:

Ridge Label Scar Label
Ridge Label
Scar Label

References

  1. Falcucci, A., & Peresani, M. (2022). The Open Aurignacian Project. Volume 1: Fumane Cave in northeastern Italy (Version 1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.6362150
  2. Linsel, F., Bullenkamp, J. P., & Mara, H. (2023). 3D Data Derivatives of Grotta di Fumane: GigaMesh- processed, Annotations and Segmentations (Version 1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.8288967
  3. Mara, H., & Krömker, S. (2013). Vectorization of 3D-Characters by Integral Invariant Filtering of High-Resolution Triangular Meshes. 2013 12th International Conference on Document Analysis and Recognition, 62–66. https://doi.org/10.1109/ICDAR.2013.21
  4. Mara, H., Krömker, S., Jakob, S., & Breuckmann, B. (2010). GigaMesh and gilgamesh: –3D multiscale integral invariant cuneiform character extraction. Proceedings of the 11th International Conference on Virtual Reality, Archaeology and Cultural Heritage, 131–138.
  5. Bullenkamp, J. P., Häberle, T., & Mara, H. (2023). MorseMesh (Version v0.1). Zenodo. https://doi.org/10.5281/zenodo.8297368
  6. Dawson-Haggerty, M., & others. (2024). trimesh. Python Library.