Installation

Programmbibliotheken

Die Installation besteht aus insgesamt vier Programmbibliotheken, die im Apache Tomcat bzw. in Goobi erreichbar sein müssen:

Konfigurationsdateien

Neben diesen Programmdateien werden zwei Konfigurationsdateien benötigt, eine für das Goobi-Plugin, und eine für die zugrundeliegende LayoutWizzard-Programmbibliothek.

Plugin-Konfiguration

Die Konfigurationsdatei des Plugins plugin_LayoutWizzardPlugin.xml muss im Konfigurationsverzeichnis config innerhalb des Goobi-Arbeitsverzeichnisses liegen. Üblicherweise handelt es sich hierbei um diesen Pfad zur Datei:

/opt/digiverso/goobi/config/plugin_LayoutWizzardPlugin.xml

Innerhalb dieser Konfigurationsdatei wird der Pfad zur eigentlichen zentralen Konfiguration des LayoutWizzards angegeben. Der Aufbau dieser Datei sieht dabei folgendermaßen aus:

<!-- Goobi Plugin configuration file -->
<config_plugin>
	<config>
		<!-- which projects to use for (can be more then one, otherwise use *) -->
        <project>*</project>
        <!-- which steps to use for (can be more then one, otherwise use *) -->
        <step>*</step>
        
        <!-- The absolute path to the layoutwizzard_config.xml to use -->
	    <layout-wizzard-config-path>
	        /opt/digiverso/LayoutWizzard/layoutwizzard_config.xml
	    </layout-wizzard-config-path>
	    
	    <!-- The initial view of the LayoutWizzard Plugin. Can be one of
	    	* PREVIEW: The preview page of the plugin, displaying all pages in a vertical list
	    	* SINGLEVIEW: The single view page of the plugin, displaying all settings and the first page
	    	* SIMPLECROP: A zoomable cropping view for processes with few large images. Does not support spne cropping-->
	    <startPage>PREVIEW</startPage>
	    
	    <!-- The initial viewing mode if the PREVIEW view. One of 
	    	* ALTERNATING to see only left/right images per page
	        * DOUBLE_PAGE to see opposite pages next to each other -->
	    <previewMode>ALTERNATING</previewMode>
	    
	    <!-- Config for appearance of single/large image -->
		<singleImage>
			<!-- Config for frame around the crop area -->
			<cropFrame>
				<!-- Thickness of frame -->
				<linewidth>2</linewidth>
				<!-- Color of frame -->
				<linecolor>#00fa9a</linecolor>
				<!-- Radius around the frame in which the frame can be selected for drag/resize -->
				<clickradius>20</clickradius>
				<!-- The color filling the area outside the crop frame in the Save View -->
				<fillcolor>#ffffff</fillcolor>
			</cropFrame>
			<!-- Config for line marking the spine position -->
			<spineMarker>
				<!-- Thickness of line -->
				<linewidth>2</linewidth>
				<!-- Color of line -->
				<linecolor>#ff0000</linecolor>
				<!-- Radius around the line in which the line can be selected for dragging -->
				<clickradius>20</clickradius>
			</spineMarker>
		</singleImage>
	    <!-- Config for appearance of images in preview mode -->
		<preview>
			<!-- Config for frame around the crop area -->
			<cropFrame>
				<!-- Thickness of frame -->
				<linewidth>2</linewidth>
				<!-- Color of frame -->
				<linecolor>#00fa9a</linecolor>
				<!-- Radius around the frame in which the frame can be selected for drag/resize -->
				<clickradius>20</clickradius>
				<!-- The color filling the area outside the crop frame in the Save View -->
				<fillcolor>#f1f2f3</fillcolor>
			</cropFrame>
			<!-- Config for line marking the spine position -->
			<spineMarker>
				<!-- Thickness of line -->
				<linewidth>2</linewidth>
				<!-- Color of line -->
				<linecolor>#ff0000</linecolor>
				<!-- Radius around the line in which the line can be selected for dragging -->
				<clickradius>20</clickradius>
			</spineMarker>
		</preview>
		
		<!-- Display cropping control elements in preview mode -->
	    <previewCroppingOptions>
	        <show>true</show>
	    </previewCroppingOptions>
	    
	    <!-- Display the option to select page orientation in preview mode (may be prone to errors) -->
	    <previewOrientationSelect>
	        <show>false</show>
	    </previewOrientationSelect>
	    
	    <!-- Options for Global cropping options  -->
	    <globalCroppingOptions>
	    	<!-- Display Global cropping options in single page mode -->
	        <show>true</show>
	        <!-- Unit to display crop frame coordinates in. One of
	        	* μm
	        	* mm
	        	* cm
	        	* in -->
	        <unit>mm</unit>
	        <!-- Settings for keyboard controls of crop frame. set use="true" to allow changing crop frame using keyboard shortcuts -->
	        <keyboardControls use="true">
	        	<!-- Key(s) to keep pressed when moving the frame. Can be SHIFT, CTRL or ALT -->
	            <moveMaskKey>SHIFT</moveMaskKey>
	            <moveMaskKey>CTRL</moveMaskKey>
	        	<!-- Key(s) to keep pressed when resizing the frame. Can be SHIFT, CTRL or ALT -->
	            <resizeMaskKey>SHIFT</resizeMaskKey>
	            <!-- Amount of units (see above) to move the frame for each key press event -->
	            <stepSize>0.1</stepSize>
	        </keyboardControls>
	    </globalCroppingOptions>
	    
	    <!-- Display information about the the cropping/deskewing value of the current step -->
	    <info show="true">
	    	<!-- Display format for spine location. {f} is a floating number, {u} the appropriate unit -->
	        <spine>
	            <format>Falz: {f}{u}</format>
	        </spine>
	    </info>
    </config>
</config_plugin>

LayoutWizzard-Konfiguration

Die eigentliche Konfigurationsdatei gibt für den Vorgang der Layoutanalyse verschiedene Parameter vor. Diese Parameter sind beispielhaft in der folgenden Konfigurationsdatei aufgeführt. Sie befindet sich, wie in der Plugin-Konfigurationsdatei definiert, unter folgendem Pfad:

/opt/digiverso/intranda/LayoutWizzard/layoutwizzard_config.xml

Beispielhaft hat diese Konfigurationsdatei den folgenden Inhalt:

<!-- intranda Layout Wizzard configuration file -->
<config>
    <contentServerUrl>http://demo03.intranda.com/goobi/cs/cs</contentServerUrl>
    <defaultOutputFolderSuffix>media</defaultOutputFolderSuffix>
    <analysisImagesBasePath>/home/florian/LayoutWizzard/samples/</analysisImagesBasePath>
    <previews>
        <previewsPerPage>100</previewsPerPage>
        <maxPreviewsCached>10000</maxPreviewsCached>
        <previewWidth>700</previewWidth>
        <imageHeightLarge>800</imageHeightLarge>
    </previews>
    <outliers>
        <errorMultiplier>3.0</errorMultiplier>
        <weightExponent>2.0</weightExponent>
    </outliers>
    <saving>
        <defaultCompression quality="85">NONE</defaultCompression>
        <overwriteExistingImages>true</overwriteExistingImages>
    </saving>
    <analysis id="firstPageLeft">
        <firstPageOrientation>LEFT</firstPageOrientation>
    </analysis>
    <analysis id="firstPageRight">
        <firstPageOrientation>RIGHT</firstPageOrientation>
    </analysis>
    <analysis>
        <analysisStep name="PAGESKEW" type="edges" use="true">
            <saveAnalysisImages visibility="INVISIBLE" path="DESKEW">false</saveAnalysisImages>
            <deskewerMode visibility="VISIBLE">ALL_EDGES</deskewerMode>
            <lineFinderMode>CONTOURS</lineFinderMode>
            <lineGroupingMode>GROUP_BY_DISTANCE</lineGroupingMode>
            <featureSizeThreshold>10.0</featureSizeThreshold>
            <analysisImageSize>300</analysisImageSize>
            <lowerCannyThreshold>70</lowerCannyThreshold>
            <cannyRatio>2</cannyRatio>
            <distanceResolution>1</distanceResolution>
            <angleResolution>1</angleResolution>
            <minHoughLineLength>10</minHoughLineLength>
            <houghLineThreshold>50</houghLineThreshold>
            <maxHoughLineGapSize>2</maxHoughLineGapSize>
            <maxLineAngleDeviation>5</maxLineAngleDeviation>
            <maxLineDistance>7</maxLineDistance>
            <rimAreaToIgnoreLines>0.0</rimAreaToIgnoreLines>
        </analysisStep>
        <analysisStep name="CONTENTAREA" use="true">
            <analysisImageSize>0</analysisImageSize>
            <saveAnalysisImages visibility="INVISIBLE" path="edgeDetection">false</saveAnalysisImages>
            <bitonalThreshold>150</bitonalThreshold>
            <bitonalInvert>false</bitonalInvert>
            <featureSizeThreshold>10.0</featureSizeThreshold>
            <contentPadding visibility="VISIBLE">0</contentPadding>
        </analysisStep>
        <analysisStep name="BOOKSPINE" use="true">
            <analysisImageSize>400</analysisImageSize>
            <saveAnalysisImages visibility="INVISIBLE" path="spineDetection">false</saveAnalysisImages>
            <lineFinderMode>CONTOURS</lineFinderMode>
            <lineGroupingMode visibility="INVISIBLE">GROUP_BY_DISTANCE</lineGroupingMode>
            <croppingAggressiveness visibility="VISIBLE">BALANCED</croppingAggressiveness>
            <lowerCannyThreshold>40</lowerCannyThreshold>
            <cannyRatio>2</cannyRatio>
            <distanceResolution>1</distanceResolution>
            <angleResolution>1</angleResolution>
            <minHoughLineLength>20</minHoughLineLength>
            <houghLineThreshold>10</houghLineThreshold>
            <maxHoughLineGapSize>4</maxHoughLineGapSize>
            <maxLineAngleDeviation>5</maxLineAngleDeviation>
            <maxLineDistance>5</maxLineDistance>
            <featureSizeThreshold>0.1</featureSizeThreshold>
            <rimAreaToIgnoreLines>0.0125</rimAreaToIgnoreLines>
            <maxGroupAngleDeviation visibility="INVISIBLE">10</maxGroupAngleDeviation>
            <spineOffset visibility="VISIBLE">5</spineOffset>
        </analysisStep>
    </analysis>
</config>

Details über die Anpassung der Konfigurationen finden sich im Abschnitt zur Konfiguration.

Last updated