Files
MastersThesis/thesis_output/plantilla_individual.htm

5956 lines
571 KiB
HTML
Raw Normal View History

2026-01-19 16:32:45 +01:00
<html xmlns="http://www.w3.org/TR/REC-html40" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<meta content="Word.Document" name="ProgId"/>
<meta content="Microsoft Word 15" name="Generator"/>
<meta content="Microsoft Word 15" name="Originator"/>
<link href="plantilla_individual_files/filelist.xml" rel="File-List"/>
<link href="plantilla_individual_files/editdata.mso" rel="Edit-Time-Data"/>
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>Conchi de Miguel</o:Author>
<o:LastAuthor>Sergio Jimenez</o:LastAuthor>
<o:Revision>2</o:Revision>
<o:TotalTime>75</o:TotalTime>
<o:LastPrinted>2019-08-05T13:11:00Z</o:LastPrinted>
<o:Created>2025-12-15T22:02:00Z</o:Created>
<o:LastSaved>2025-12-15T22:02:00Z</o:LastSaved>
<o:Pages>21</o:Pages>
<o:Words>3037</o:Words>
<o:Characters>17313</o:Characters>
<o:Company>Universidad Internacional de La Rioja Facultad de Educación</o:Company>
<o:Lines>144</o:Lines>
<o:Paragraphs>40</o:Paragraphs>
<o:CharactersWithSpaces>20310</o:CharactersWithSpaces>
<o:Version>16.00</o:Version>
</o:DocumentProperties>
<o:CustomDocumentProperties>
<o:ContentTypeId dt:dt="string">0x010100DF3D7C797EA12745A270EF30E38719B9</o:ContentTypeId>
<o:MediaServiceImageTags dt:dt="string"></o:MediaServiceImageTags>
<o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_Enabled dt:dt="string">true</o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_Enabled>
<o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_SetDate dt:dt="string">2025-12-15T20:34:56Z</o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_SetDate>
<o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_Method dt:dt="string">Standard</o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_Method>
<o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_Name dt:dt="string">defa4170-0d19-0005-0004-bc88714345d2</o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_Name>
<o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_SiteId dt:dt="string">d9ff98f8-1670-401f-bf78-0b33bbd90cfe</o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_SiteId>
<o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_ActionId dt:dt="string">7e5380b3-cad0-4ca2-b0ac-f3b167232e81</o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_ActionId>
<o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_ContentBits dt:dt="string">0</o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_ContentBits>
<o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_Tag dt:dt="string">10, 3, 0, 1</o:MSIP_Label_defa4170-0d19-0005-0004-bc88714345d2_Tag>
</o:CustomDocumentProperties>
</xml><![endif]-->
<link href="plantilla_individual_files/item0001.xml" rel="dataStoreItem" target="plantilla_individual_files/props002.xml"/>
<link href="plantilla_individual_files/item0003.xml" rel="dataStoreItem" target="plantilla_individual_files/props004.xml"/>
<link href="plantilla_individual_files/item0005.xml" rel="dataStoreItem" target="plantilla_individual_files/props006.xml"/>
<link href="plantilla_individual_files/item0007.xml" rel="dataStoreItem" target="plantilla_individual_files/props008.xml"/>
<link href="plantilla_individual_files/themedata.thmx" rel="themeData"/>
<link href="plantilla_individual_files/colorschememapping.xml" rel="colorSchemeMapping"/>
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>ES</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:StyleSortMethod>0</w:StyleSortMethod>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="&#45;-"/>
<m:smallFrac/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
QFormat="true" Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
QFormat="true" Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
QFormat="true" Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
QFormat="true" Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" Priority="0" SemiHidden="true"
UnhideWhenUsed="true" Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="59" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-536869121 1107305727 33554432 0 415 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-469750017 -1040178053 9 0 511 0;}
@font-face
{font-family:"Calibri Light";
panose-1:2 15 3 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-469750017 -1040178053 9 0 511 0;}
@font-face
{font-family:TimesNewRomanPSMT;
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-alt:"MS Mincho";
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-format:other;
mso-font-pitch:auto;
mso-font-signature:1 134676480 16 0 131073 0;}
@font-face
{font-family:"Wingdings 3";
panose-1:5 4 1 2 1 8 7 7 7 7;
mso-font-charset:2;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-520081665 -1073717157 41 0 66047 0;}
@font-face
{font-family:UnitOT-Light;
mso-font-alt:Calibri;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-2147483409 1342185595 40 0 1 0;}
@font-face
{font-family:"Open Sans";
panose-1:2 11 6 6 3 5 4 2 2 4;
mso-font-alt:Calibri;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-536870161 1073750107 40 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
h1
{mso-style-priority:9;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-link:"Heading 1 Char";
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:18.0pt;
text-align:justify;
text-indent:-18.0pt;
line-height:150%;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:1;
mso-list:l22 level1 lfo18;
font-size:18.0pt;
mso-bidi-font-size:16.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
color:#0098CD;
text-transform:uppercase;
mso-font-kerning:16.0pt;
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:normal;
mso-bidi-font-weight:bold;}
h2
{mso-style-priority:9;
mso-style-qformat:yes;
mso-style-link:"Heading 2 Char";
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:50.0pt;
text-align:justify;
text-indent:-21.6pt;
line-height:150%;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:2;
mso-list:l22 level2 lfo18;
font-size:14.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:Arial;
color:#0098CD;
text-transform:uppercase;
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:normal;
mso-bidi-font-weight:bold;
mso-bidi-font-style:italic;}
h3
{mso-style-priority:9;
mso-style-qformat:yes;
mso-style-link:"Heading 3 Char";
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:35.45pt;
text-align:justify;
text-indent:-35.45pt;
line-height:150%;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:3;
mso-list:l22 level3 lfo18;
font-size:12.0pt;
mso-bidi-font-size:13.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
h4
{mso-style-priority:9;
mso-style-qformat:yes;
mso-style-parent:"List Paragraph";
mso-style-link:"Heading 4 Char";
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:42.55pt;
mso-add-space:auto;
text-align:justify;
text-indent:-42.55pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:4;
mso-list:l22 level4 lfo18;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:normal;}
h4.CxSpFirst
{mso-style-priority:9;
mso-style-qformat:yes;
mso-style-parent:"List Paragraph";
mso-style-link:"Heading 4 Char";
mso-style-next:Normal;
mso-style-type:export-only;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.55pt;
mso-add-space:auto;
text-align:justify;
text-indent:-42.55pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:4;
mso-list:l22 level4 lfo18;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:normal;}
h4.CxSpMiddle
{mso-style-priority:9;
mso-style-qformat:yes;
mso-style-parent:"List Paragraph";
mso-style-link:"Heading 4 Char";
mso-style-next:Normal;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.55pt;
mso-add-space:auto;
text-align:justify;
text-indent:-42.55pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:4;
mso-list:l22 level4 lfo18;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:normal;}
h4.CxSpLast
{mso-style-priority:9;
mso-style-qformat:yes;
mso-style-parent:"List Paragraph";
mso-style-link:"Heading 4 Char";
mso-style-next:Normal;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:42.55pt;
mso-add-space:auto;
text-align:justify;
text-indent:-42.55pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:4;
mso-list:l22 level4 lfo18;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:normal;}
h5
{mso-style-noshow:yes;
mso-style-priority:9;
mso-style-link:"Heading 5 Char";
mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:85.8pt;
text-align:justify;
text-indent:-50.4pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:5;
mso-list:l9 level5 lfo8;
font-size:13.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;
font-style:italic;}
h6
{mso-style-noshow:yes;
mso-style-priority:9;
mso-style-qformat:yes;
mso-style-link:"Heading 6 Char";
mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:93.0pt;
text-align:justify;
text-indent:-57.6pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:6;
mso-list:l9 level6 lfo8;
font-size:12.0pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
{mso-style-noshow:yes;
mso-style-priority:9;
mso-style-qformat:yes;
mso-style-link:"Heading 7 Char";
mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:100.2pt;
text-align:justify;
text-indent:-64.8pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:7;
mso-list:l9 level7 lfo8;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
{mso-style-noshow:yes;
mso-style-priority:9;
mso-style-qformat:yes;
mso-style-link:"Heading 8 Char";
mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:107.4pt;
text-align:justify;
text-indent:-72.0pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:8;
mso-list:l9 level8 lfo8;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;
font-style:italic;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
{mso-style-noshow:yes;
mso-style-priority:9;
mso-style-qformat:yes;
mso-style-link:"Heading 9 Char";
mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:114.6pt;
text-align:justify;
text-indent:-79.2pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:9;
mso-list:l9 level9 lfo8;
font-size:12.0pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri Light",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:36.0pt;
text-align:justify;
text-indent:-18.0pt;
line-height:150%;
mso-pagination:widow-orphan;
mso-list:l19 level1 lfo9;
font-size:14.0pt;
mso-bidi-font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
text-transform:uppercase;
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:35.45pt;
text-align:justify;
text-indent:-35.45pt;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
text-transform:uppercase;
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:11.05pt;
text-align:justify;
text-indent:-11.05pt;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:11.05pt;
text-align:justify;
text-indent:-11.05pt;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;
font-style:italic;
mso-bidi-font-style:normal;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{mso-style-update:auto;
mso-style-priority:39;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{mso-style-update:auto;
mso-style-priority:39;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:11.05pt;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{mso-style-update:auto;
mso-style-priority:39;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:22.0pt;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoToc4, li.MsoToc4, div.MsoToc4
{mso-style-update:auto;
mso-style-priority:39;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:33.0pt;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoToc8, li.MsoToc8, div.MsoToc8
{mso-style-update:auto;
mso-style-noshow:yes;
mso-style-priority:39;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:77.0pt;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoToc9, li.MsoToc9, div.MsoToc9
{mso-style-update:auto;
mso-style-noshow:yes;
mso-style-priority:39;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:88.0pt;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
{mso-style-link:"Footnote Text Char";
margin:0cm;
text-align:justify;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
{mso-style-noshow:yes;
mso-style-priority:99;
mso-style-link:"Comment Text Char";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{mso-style-priority:99;
mso-style-link:"Header Char";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
tab-stops:center 212.6pt right 425.2pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{mso-style-priority:99;
mso-style-link:"Footer Char";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
tab-stops:center 212.6pt right 425.2pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoCaption, li.MsoCaption, div.MsoCaption
{mso-style-priority:35;
mso-style-qformat:yes;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:bold;}
p.MsoTof, li.MsoTof, div.MsoTof
{mso-style-priority:99;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
span.MsoFootnoteReference
{mso-style-noshow:yes;
mso-style-priority:99;
vertical-align:super;}
span.MsoCommentReference
{mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-ansi-font-size:8.0pt;
mso-bidi-font-size:8.0pt;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{mso-style-name:"Title\,Subtitulos 3er nivel";
mso-style-priority:10;
mso-style-unhide:no;
mso-style-link:"Title Char\,Subtitulos 3er nivel Char";
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
mso-outline-level:3;
font-size:12.0pt;
mso-bidi-font-size:16.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
mso-ansi-language:ES;
mso-fareast-language:ES;
mso-bidi-font-weight:bold;
font-style:italic;
mso-bidi-font-style:normal;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
mso-style-parent:"";
color:#0563C1;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-noshow:yes;
mso-style-priority:99;
color:#954F72;
mso-themecolor:followedhyperlink;
text-decoration:underline;
text-underline:single;}
p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
{mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"Comment Text";
mso-style-link:"Comment Subject Char";
mso-style-next:"Comment Text";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;
font-weight:bold;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-noshow:yes;
mso-style-priority:99;
mso-style-link:"Balloon Text Char";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:8.0pt;
font-family:"Tahoma",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:X-NONE;
mso-fareast-language:ES;}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
{mso-style-priority:1;
mso-style-unhide:no;
mso-style-parent:"";
mso-style-link:"No Spacing Char";
margin:0cm;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:EN-US;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:36.0pt;
mso-add-space:auto;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
mso-add-space:auto;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
mso-add-space:auto;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:36.0pt;
mso-add-space:auto;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoQuote, li.MsoQuote, div.MsoQuote
{mso-style-priority:29;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-link:"Quote Char";
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
color:#404040;
mso-ansi-language:ES;
mso-fareast-language:ES;
mso-bidi-font-style:italic;}
p.MsoBibliography, li.MsoBibliography, div.MsoBibliography
{mso-style-noshow:yes;
mso-style-priority:37;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
p.MsoTocHeading, li.MsoTocHeading, div.MsoTocHeading
{mso-style-name:"TOC Heading\,Tablas";
mso-style-priority:39;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
tab-stops:right dotted 453.0pt;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:Arial;
mso-ansi-language:ES;
mso-fareast-language:ES;
mso-no-proof:yes;}
span.NoSpacingChar
{mso-style-name:"No Spacing Char";
mso-style-priority:1;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"No Spacing";
mso-ansi-font-size:11.0pt;
mso-bidi-font-size:11.0pt;
font-family:"Times New Roman",serif;
mso-fareast-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:EN-US;
mso-bidi-language:AR-SA;}
span.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Balloon Text";
mso-ansi-font-size:8.0pt;
mso-bidi-font-size:8.0pt;
font-family:"Tahoma",sans-serif;
mso-ascii-font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Tahoma;
mso-bidi-font-family:Tahoma;
mso-fareast-language:ES;}
span.HeaderChar
{mso-style-name:"Header Char";
mso-style-priority:99;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:Header;
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman",serif;
mso-ascii-font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
span.FooterChar
{mso-style-name:"Footer Char";
mso-style-priority:99;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:Footer;
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman",serif;
mso-ascii-font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
span.Heading1Char
{mso-style-name:"Heading 1 Char";
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Heading 1";
mso-ansi-font-size:18.0pt;
mso-bidi-font-size:16.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
color:#0098CD;
text-transform:uppercase;
mso-font-kerning:16.0pt;
mso-bidi-font-weight:bold;}
span.Heading2Char
{mso-style-name:"Heading 2 Char";
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Heading 2";
mso-ansi-font-size:14.0pt;
mso-bidi-font-size:14.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:Arial;
color:#0098CD;
text-transform:uppercase;
mso-bidi-font-weight:bold;
mso-bidi-font-style:italic;}
span.Heading3Char
{mso-style-name:"Heading 3 Char";
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Heading 3";
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:13.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
font-weight:bold;}
span.TitleChar
{mso-style-name:"Title Char\,Subtitulos 3er nivel Char";
mso-style-priority:10;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Title\,Subtitulos 3er nivel";
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:16.0pt;
font-family:"Arial",sans-serif;
mso-ascii-font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
mso-bidi-font-weight:bold;
font-style:italic;
mso-bidi-font-style:normal;}
span.Heading4Char
{mso-style-name:"Heading 4 Char";
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Heading 4";
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
span.QuoteChar
{mso-style-name:"Quote Char";
mso-style-priority:29;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:Quote;
mso-ansi-font-size:11.0pt;
mso-bidi-font-size:12.0pt;
font-family:"Arial",sans-serif;
mso-ascii-font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Arial;
color:#404040;
mso-bidi-font-style:italic;}
span.Heading5Char
{mso-style-name:"Heading 5 Char";
mso-style-noshow:yes;
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Heading 5";
mso-ansi-font-size:13.0pt;
mso-bidi-font-size:13.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";
font-weight:bold;
font-style:italic;}
span.Heading6Char
{mso-style-name:"Heading 6 Char";
mso-style-noshow:yes;
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Heading 6";
mso-ansi-font-size:11.0pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";
font-weight:bold;}
span.Heading7Char
{mso-style-name:"Heading 7 Char";
mso-style-noshow:yes;
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Heading 7";
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
span.Heading8Char
{mso-style-name:"Heading 8 Char";
mso-style-noshow:yes;
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Heading 8";
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";
font-style:italic;}
span.Heading9Char
{mso-style-name:"Heading 9 Char";
mso-style-noshow:yes;
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Heading 9";
mso-ansi-font-size:11.0pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-bidi-font-family:"Times New Roman";}
span.CommentTextChar
{mso-style-name:"Comment Text Char";
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Comment Text";
font-family:"Arial",sans-serif;
mso-ascii-font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Arial;}
span.CommentSubjectChar
{mso-style-name:"Comment Subject Char";
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:"Comment Subject";
font-family:"Arial",sans-serif;
mso-ascii-font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Arial;
font-weight:bold;}
p.Figuras, li.Figuras, div.Figuras
{mso-style-name:Figuras;
mso-style-update:auto;
mso-style-unhide:no;
mso-style-link:"Figuras Car";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:center;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:Arial;
mso-ansi-language:ES;
mso-fareast-language:ES;
font-style:italic;
mso-bidi-font-style:normal;}
span.FigurasCar
{mso-style-name:"Figuras Car";
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"";
mso-style-link:Figuras;
mso-ansi-font-size:11.0pt;
mso-bidi-font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:Arial;
font-style:italic;
mso-bidi-font-style:normal;}
p.PiedepginaSecciones, li.PiedepginaSecciones, div.PiedepginaSecciones
{mso-style-name:"Pie de página_Secciones";
mso-style-priority:19;
mso-style-unhide:no;
mso-style-qformat:yes;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:5.0pt;
margin-left:0cm;
text-align:right;
mso-pagination:widow-orphan;
tab-stops:right 411.0pt;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:UnitOT-Light;
color:#0098CD;
mso-ansi-language:ES;
mso-fareast-language:ES;
mso-bidi-font-weight:bold;
mso-no-proof:yes;}
p.Ttulondices, li.Ttulondices, div.Ttulondices
{mso-style-name:"Título Índices";
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-link:"Título Índices Car";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
font-size:18.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:Arial;
color:#0098CD;
mso-ansi-language:ES;
mso-fareast-language:EN-US;}
p.Pgina, li.Pgina, div.Pgina
{mso-style-name:Página;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:Footer;
mso-style-link:"Página Car";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:right;
line-height:150%;
mso-pagination:widow-orphan;
tab-stops:center 212.6pt right 425.2pt;
font-size:12.0pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:Arial;
mso-ansi-language:ES;
mso-fareast-language:ES;}
span.TtulondicesCar
{mso-style-name:"Título Índices Car";
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"Título Índices";
mso-ansi-font-size:18.0pt;
mso-bidi-font-size:18.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:Arial;
color:#0098CD;
mso-fareast-language:EN-US;}
span.PginaCar
{mso-style-name:"Página Car";
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-parent:"Footer Char";
mso-style-link:Página;
mso-ansi-font-size:11.0pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:Arial;}
span.FootnoteTextChar
{mso-style-name:"Footnote Text Char";
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"Footnote Text";
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
p.Ttulo1sinnumerar, li.Ttulo1sinnumerar, div.Ttulo1sinnumerar
{mso-style-name:"Título 1 sin numerar";
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"Heading 1";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:1;
font-size:18.0pt;
mso-bidi-font-size:16.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
color:#0098CD;
mso-font-kerning:16.0pt;
mso-ansi-language:ES;
mso-fareast-language:ES;
mso-bidi-font-weight:bold;}
p.Referenciasbibliogrficas, li.Referenciasbibliogrficas, div.Referenciasbibliogrficas
{mso-style-name:"Referencias bibliográficas";
mso-style-unhide:no;
mso-style-qformat:yes;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:14.2pt;
text-align:justify;
text-indent:-14.2pt;
line-height:150%;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:EN-US;
mso-fareast-language:ES;}
p.Anexo, li.Anexo, div.Anexo
{mso-style-name:Anexo;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"Título 1 sin numerar";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:18.0pt;
text-align:justify;
text-indent:-18.0pt;
line-height:150%;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:1;
mso-list:l2 level1 lfo23;
font-size:18.0pt;
mso-bidi-font-size:16.0pt;
font-family:"Calibri Light",sans-serif;
mso-ascii-font-family:"Calibri Light";
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";
mso-hansi-font-family:"Calibri Light";
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
color:#0098CD;
mso-font-kerning:16.0pt;
mso-ansi-language:ES;
mso-fareast-language:ES;
mso-bidi-font-weight:bold;}
p.Piedefoto-tabla, li.Piedefoto-tabla, div.Piedefoto-tabla
{mso-style-name:"Pie de foto-tabla";
mso-style-priority:16;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-next:Normal;
margin-top:6.0pt;
margin-right:-10.75pt;
margin-bottom:0cm;
margin-left:-5.65pt;
text-align:center;
line-height:115%;
mso-pagination:widow-orphan;
font-size:9.5pt;
mso-bidi-font-size:9.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:UnitOT-Light;
color:#595959;
mso-themecolor:text1;
mso-themetint:166;
mso-ansi-language:EN-US;
mso-fareast-language:ES;
mso-bidi-font-style:italic;}
p.CuadroCmoestudiaryReferencias, li.CuadroCmoestudiaryReferencias, div.CuadroCmoestudiaryReferencias
{mso-style-name:"Cuadro «Cómo estudiar» y Referencias";
mso-style-priority:10;
mso-style-unhide:no;
mso-style-qformat:yes;
margin:0cm;
text-align:justify;
line-height:150%;
mso-pagination:widow-orphan;
tab-stops:2.0cm;
background:#E6F4F9;
border:none;
mso-border-top-alt:solid #0098CD .5pt;
mso-border-bottom-alt:solid #0098CD .5pt;
padding:0cm;
mso-padding-alt:4.0pt 0cm 1.0pt 0cm;
font-size:12.0pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:UnitOT-Light;
color:#333333;
letter-spacing:-.2pt;
mso-ansi-language:ES;
mso-fareast-language:ES;}
span.SpellE
{mso-style-name:"";
mso-spl-e:yes;}
span.GramE
{mso-style-name:"";
mso-gram-e:yes;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-size:10.0pt;
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-fareast-font-family:Calibri;
mso-hansi-font-family:Calibri;
mso-font-kerning:0pt;
mso-ligatures:none;
mso-ansi-language:ES;
mso-fareast-language:ES;}
/* Page Definitions */
@page
{mso-footnote-separator:url("plantilla_individual_files/header.htm") fs;
mso-footnote-continuation-separator:url("plantilla_individual_files/header.htm") fcs;
mso-endnote-separator:url("plantilla_individual_files/header.htm") es;
mso-endnote-continuation-separator:url("plantilla_individual_files/header.htm") ecs;}
@page WordSection1
{size:595.3pt 841.9pt;
margin:70.9pt 2.0cm 70.9pt 3.0cm;
mso-header-margin:35.45pt;
mso-footer-margin:35.45pt;
mso-page-numbers:roman-upper;
mso-title-page:yes;
mso-even-header:url("plantilla_individual_files/header.htm") eh1;
mso-header:url("plantilla_individual_files/header.htm") h1;
mso-even-footer:url("plantilla_individual_files/header.htm") ef1;
mso-footer:url("plantilla_individual_files/header.htm") f1;
mso-first-header:url("plantilla_individual_files/header.htm") fh1;
mso-first-footer:url("plantilla_individual_files/header.htm") ff1;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
@page WordSection2
{size:595.3pt 841.9pt;
margin:70.9pt 2.0cm 70.9pt 3.0cm;
mso-header-margin:35.45pt;
mso-footer-margin:35.45pt;
mso-page-numbers:1;
mso-even-header:url("plantilla_individual_files/header.htm") eh1;
mso-header:url("plantilla_individual_files/header.htm") h1;
mso-even-footer:url("plantilla_individual_files/header.htm") ef1;
mso-footer:url("plantilla_individual_files/header.htm") f1;
mso-first-header:url("plantilla_individual_files/header.htm") fh1;
mso-first-footer:url("plantilla_individual_files/header.htm") ff1;
mso-paper-source:0;}
div.WordSection2
{page:WordSection2;}
/* List Definitions */
@list l0
{mso-list-id:3169916;
mso-list-template-ids:201981983;}
@list l0:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l0:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:39.6pt;
text-indent:-21.6pt;}
@list l0:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:61.2pt;
text-indent:-25.2pt;}
@list l0:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:86.4pt;
text-indent:-32.4pt;}
@list l0:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:111.6pt;
text-indent:-39.6pt;}
@list l0:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:136.8pt;
text-indent:-46.8pt;}
@list l0:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-54.0pt;}
@list l0:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:187.2pt;
text-indent:-61.2pt;}
@list l0:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:216.0pt;
text-indent:-72.0pt;}
@list l1
{mso-list-id:58485289;
mso-list-template-ids:201981983;}
@list l1:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l1:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:39.6pt;
text-indent:-21.6pt;}
@list l1:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:61.2pt;
text-indent:-25.2pt;}
@list l1:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:86.4pt;
text-indent:-32.4pt;}
@list l1:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:111.6pt;
text-indent:-39.6pt;}
@list l1:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:136.8pt;
text-indent:-46.8pt;}
@list l1:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-54.0pt;}
@list l1:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:187.2pt;
text-indent:-61.2pt;}
@list l1:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:216.0pt;
text-indent:-72.0pt;}
@list l2
{mso-list-id:82385747;
mso-list-type:hybrid;
mso-list-template-ids:-328275098 -118447058 201981977 201981979 201981967 201981977 201981979 201981967 201981977 201981979;}
@list l2:level1
{mso-level-number-format:alpha-upper;
mso-level-style-link:Anexo;
mso-level-text:"Anexo %1\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l3
{mso-list-id:136457555;
mso-list-template-ids:1646178562;}
@list l3:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:39.6pt;
text-indent:-21.6pt;}
@list l3:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:61.2pt;
text-indent:-25.2pt;}
@list l3:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:86.4pt;
text-indent:-32.4pt;}
@list l3:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:111.6pt;
text-indent:-39.6pt;}
@list l3:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:136.8pt;
text-indent:-46.8pt;}
@list l3:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-54.0pt;}
@list l3:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:187.2pt;
text-indent:-61.2pt;}
@list l3:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:216.0pt;
text-indent:-72.0pt;}
@list l4
{mso-list-id:162010872;
mso-list-template-ids:201981983;}
@list l4:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l4:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:39.6pt;
text-indent:-21.6pt;}
@list l4:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:61.2pt;
text-indent:-25.2pt;}
@list l4:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:86.4pt;
text-indent:-32.4pt;}
@list l4:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:111.6pt;
text-indent:-39.6pt;}
@list l4:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:136.8pt;
text-indent:-46.8pt;}
@list l4:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-54.0pt;}
@list l4:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:187.2pt;
text-indent:-61.2pt;}
@list l4:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:216.0pt;
text-indent:-72.0pt;}
@list l5
{mso-list-id:276258992;
mso-list-template-ids:961845138;}
@list l5:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:22.5pt;
text-indent:-22.5pt;}
@list l5:level2
{mso-level-start-at:2;
mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l5:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l5:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-54.0pt;}
@list l5:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:198.0pt;
text-indent:-54.0pt;}
@list l5:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:252.0pt;
text-indent:-72.0pt;}
@list l5:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:306.0pt;
text-indent:-90.0pt;}
@list l5:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:342.0pt;
text-indent:-90.0pt;}
@list l5:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:396.0pt;
text-indent:-108.0pt;}
@list l6
{mso-list-id:369719730;
mso-list-type:hybrid;
mso-list-template-ids:-2008413238 1701370174 201981955 201981957 201981953 201981955 201981957 201981953 201981955 201981957;}
@list l6:level1
{mso-level-start-at:4;
mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:TimesNewRomanPSMT;}
@list l6:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l6:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l6:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l6:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l6:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l6:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l6:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l6:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l7
{mso-list-id:542060299;
mso-list-type:hybrid;
mso-list-template-ids:-358344564 201981967 201981977 201981979 201981967 201981977 201981979 201981967 201981977 201981979;}
@list l7:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l7:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l7:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l7:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l7:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l7:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l7:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l7:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l7:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l8
{mso-list-id:559170737;
mso-list-type:hybrid;
mso-list-template-ids:-175715902 -805530464 201981977 201981979 201981967 201981977 201981979 201981967 201981977 201981979;}
@list l8:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l8:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l8:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l8:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l8:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l8:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l8:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l8:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l8:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l9
{mso-list-id:891304042;
mso-list-template-ids:1926248762;}
@list l9:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l9:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:64.2pt;
text-indent:-28.8pt;}
@list l9:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:71.4pt;
text-indent:-36.0pt;}
@list l9:level4
{mso-level-text:"%1\.%2\.%3\.%4";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:78.6pt;
text-indent:-43.2pt;}
@list l9:level5
{mso-level-style-link:"Heading 5";
mso-level-text:"%1\.%2\.%3\.%4\.%5";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:85.8pt;
text-indent:-50.4pt;}
@list l9:level6
{mso-level-style-link:"Heading 6";
mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:93.0pt;
text-indent:-57.6pt;}
@list l9:level7
{mso-level-style-link:"Heading 7";
mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:100.2pt;
text-indent:-64.8pt;}
@list l9:level8
{mso-level-style-link:"Heading 8";
mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:107.4pt;
text-indent:-72.0pt;}
@list l9:level9
{mso-level-style-link:"Heading 9";
mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:114.6pt;
text-indent:-79.2pt;}
@list l10
{mso-list-id:972949491;
mso-list-template-ids:977045424;}
@list l10:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:22.5pt;
text-indent:-22.5pt;}
@list l10:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:64.35pt;
text-indent:-36.0pt;}
@list l10:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:92.7pt;
text-indent:-36.0pt;}
@list l10:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:139.05pt;
text-indent:-54.0pt;}
@list l10:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:167.4pt;
text-indent:-54.0pt;}
@list l10:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:213.75pt;
text-indent:-72.0pt;}
@list l10:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:260.1pt;
text-indent:-90.0pt;}
@list l10:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:288.45pt;
text-indent:-90.0pt;}
@list l10:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:334.8pt;
text-indent:-108.0pt;}
@list l11
{mso-list-id:1085763111;
mso-list-type:hybrid;
mso-list-template-ids:880841890 201981967 201981977 201981979 201981967 201981977 201981979 201981967 201981977 201981979;}
@list l11:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l11:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l11:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l12
{mso-list-id:1213037557;
mso-list-template-ids:201981983;}
@list l12:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:53.4pt;
text-indent:-18.0pt;}
@list l12:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:75.0pt;
text-indent:-21.6pt;}
@list l12:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:96.6pt;
text-indent:-25.2pt;}
@list l12:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:121.8pt;
text-indent:-32.4pt;}
@list l12:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:147.0pt;
text-indent:-39.6pt;}
@list l12:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:172.2pt;
text-indent:-46.8pt;}
@list l12:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:197.4pt;
text-indent:-54.0pt;}
@list l12:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:222.6pt;
text-indent:-61.2pt;}
@list l12:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:251.4pt;
text-indent:-72.0pt;}
@list l13
{mso-list-id:1244947729;
mso-list-template-ids:201981983;}
@list l13:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:53.4pt;
text-indent:-18.0pt;}
@list l13:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:75.0pt;
text-indent:-21.6pt;}
@list l13:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:96.6pt;
text-indent:-25.2pt;}
@list l13:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:121.8pt;
text-indent:-32.4pt;}
@list l13:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:147.0pt;
text-indent:-39.6pt;}
@list l13:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:172.2pt;
text-indent:-46.8pt;}
@list l13:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:197.4pt;
text-indent:-54.0pt;}
@list l13:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:222.6pt;
text-indent:-61.2pt;}
@list l13:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:251.4pt;
text-indent:-72.0pt;}
@list l14
{mso-list-id:1332025236;
mso-list-type:hybrid;
mso-list-template-ids:1890845550 1448217620 201981955 201981957 201981953 201981955 201981957 201981953 201981955 201981957;}
@list l14:level1
{mso-level-number-format:bullet;
mso-level-text:\F084;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:9.0pt;
font-family:"Wingdings 3";
color:#0098CD;}
@list l14:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l14:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l14:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l14:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l14:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l14:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l14:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l14:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l15
{mso-list-id:1415518150;
mso-list-type:hybrid;
mso-list-template-ids:1473178950 201981967 201981977 201981979 201981967 201981977 201981979 201981967 201981977 201981979;}
@list l15:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l15:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l15:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l15:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l15:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l15:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l15:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l15:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l15:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l16
{mso-list-id:1423918322;
mso-list-type:hybrid;
mso-list-template-ids:870194326 893313626 201981977 201981979 201981967 201981977 201981979 201981967 201981977 201981979;}
@list l16:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l16:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l16:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l16:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l16:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l16:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l16:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l16:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l16:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l17
{mso-list-id:1462453754;
mso-list-template-ids:-1283704032;
mso-list-style-priority:99;
mso-list-style-name:ViñetasUNIR;}
@list l17:level1
{mso-level-number-format:bullet;
mso-level-text:\F084;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:14.2pt;
text-indent:-14.2pt;
mso-ansi-font-size:9.0pt;
font-family:"Wingdings 3";
color:#0098CD;}
@list l17:level2
{mso-level-number-format:bullet;
mso-level-text:•;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:1.0cm;
text-indent:-14.15pt;
mso-ansi-font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-bidi-font-family:"Times New Roman";
color:#0098CD;}
@list l17:level3
{mso-level-number-format:bullet;
mso-level-text:\F0FA;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:42.55pt;
text-indent:-14.2pt;
mso-ansi-font-size:12.0pt;
font-family:Wingdings;
color:#0098CD;}
@list l17:level4
{mso-level-text:"\(%4\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:108.0pt;
text-indent:-18.0pt;}
@list l17:level5
{mso-level-number-format:alpha-lower;
mso-level-text:"\(%5\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:126.0pt;
text-indent:-18.0pt;}
@list l17:level6
{mso-level-number-format:roman-lower;
mso-level-text:"\(%6\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:144.0pt;
text-indent:-18.0pt;}
@list l17:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-18.0pt;}
@list l17:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:180.0pt;
text-indent:-18.0pt;}
@list l17:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:198.0pt;
text-indent:-18.0pt;}
@list l18
{mso-list-id:1516993573;
mso-list-type:hybrid;
mso-list-template-ids:-1025086560 201981953 201981955 201981957 201981953 201981955 201981957 201981953 201981955 201981957;}
@list l18:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l18:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l18:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l18:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l18:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l18:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l18:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l18:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l18:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l19
{mso-list-id:1686445378;
mso-list-type:hybrid;
mso-list-template-ids:1831490806 -537492352 201981977 201981979 201981967 201981977 201981979 201981967 201981977 201981979;}
@list l19:level1
{mso-level-style-link:"Index 1";
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l19:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l19:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l19:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l19:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l19:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l19:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l19:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l19:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l20
{mso-list-id:1765225137;
mso-list-template-ids:960247430;}
@list l20:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l20:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:39.6pt;
text-indent:-21.6pt;}
@list l20:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:61.2pt;
text-indent:-25.2pt;}
@list l20:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:86.4pt;
text-indent:-32.4pt;}
@list l20:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:111.6pt;
text-indent:-39.6pt;}
@list l20:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:136.8pt;
text-indent:-46.8pt;}
@list l20:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-54.0pt;}
@list l20:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:187.2pt;
text-indent:-61.2pt;}
@list l20:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:216.0pt;
text-indent:-72.0pt;}
@list l21
{mso-list-id:1830754499;
mso-list-template-ids:-1283704032;
mso-list-style-id:1462453754;}
@list l21:level1
{mso-level-number-format:bullet;
mso-level-text:\F084;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:14.2pt;
text-indent:-14.2pt;
mso-ansi-font-size:9.0pt;
font-family:"Wingdings 3";
color:#0098CD;}
@list l21:level2
{mso-level-number-format:bullet;
mso-level-text:•;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:1.0cm;
text-indent:-14.15pt;
mso-ansi-font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-bidi-font-family:"Times New Roman";
color:#0098CD;}
@list l21:level3
{mso-level-number-format:bullet;
mso-level-text:\F0FA;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:42.55pt;
text-indent:-14.2pt;
mso-ansi-font-size:12.0pt;
font-family:Wingdings;
color:#0098CD;}
@list l21:level4
{mso-level-text:"\(%4\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:108.0pt;
text-indent:-18.0pt;}
@list l21:level5
{mso-level-number-format:alpha-lower;
mso-level-text:"\(%5\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:126.0pt;
text-indent:-18.0pt;}
@list l21:level6
{mso-level-number-format:roman-lower;
mso-level-text:"\(%6\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:144.0pt;
text-indent:-18.0pt;}
@list l21:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-18.0pt;}
@list l21:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:180.0pt;
text-indent:-18.0pt;}
@list l21:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:198.0pt;
text-indent:-18.0pt;}
@list l22
{mso-list-id:1855220232;
mso-list-template-ids:-1863424668;}
@list l22:level1
{mso-level-style-link:"Heading 1";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l22:level2
{mso-level-style-link:"Heading 2";
mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:50.0pt;
text-indent:-21.6pt;}
@list l22:level3
{mso-level-style-link:"Heading 3";
mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:159.9pt;
text-indent:-25.2pt;}
@list l22:level4
{mso-level-style-link:"Heading 4";
mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:86.4pt;
text-indent:-32.4pt;}
@list l22:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:111.6pt;
text-indent:-39.6pt;}
@list l22:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:136.8pt;
text-indent:-46.8pt;}
@list l22:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-54.0pt;}
@list l22:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:187.2pt;
text-indent:-61.2pt;}
@list l22:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:216.0pt;
text-indent:-72.0pt;}
@list l23
{mso-list-id:1856726338;
mso-list-type:hybrid;
mso-list-template-ids:-482679882 201981967 201981977 201981979 201981967 201981977 201981979 201981967 201981977 201981979;}
@list l23:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l23:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l23:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l23:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l23:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l23:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l23:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l23:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l23:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l24
{mso-list-id:1955475359;
mso-list-template-ids:201981983;}
@list l24:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l24:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:39.6pt;
text-indent:-21.6pt;}
@list l24:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:61.2pt;
text-indent:-25.2pt;}
@list l24:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:86.4pt;
text-indent:-32.4pt;}
@list l24:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:111.6pt;
text-indent:-39.6pt;}
@list l24:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:136.8pt;
text-indent:-46.8pt;}
@list l24:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-54.0pt;}
@list l24:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:187.2pt;
text-indent:-61.2pt;}
@list l24:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:216.0pt;
text-indent:-72.0pt;}
@list l25
{mso-list-id:2098745596;
mso-list-type:hybrid;
mso-list-template-ids:428776536 201981953 201981955 201981957 201981953 201981955 201981957 201981953 201981955 201981957;}
@list l25:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l25:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l25:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l25:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l25:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l25:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l25:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l25:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l25:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l26
{mso-list-id:2102024374;
mso-list-template-ids:-526077812;}
@list l26:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l26:level2
{mso-level-text:"%1\.%2\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:39.6pt;
text-indent:-21.6pt;}
@list l26:level3
{mso-level-text:"%1\.%2\.%3\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:61.2pt;
text-indent:-25.2pt;}
@list l26:level4
{mso-level-text:"%1\.%2\.%3\.%4\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:86.4pt;
text-indent:-32.4pt;}
@list l26:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:111.6pt;
text-indent:-39.6pt;}
@list l26:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:136.8pt;
text-indent:-46.8pt;}
@list l26:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:162.0pt;
text-indent:-54.0pt;}
@list l26:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:187.2pt;
text-indent:-61.2pt;}
@list l26:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:216.0pt;
text-indent:-72.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
table.MsoTableGrid
{mso-style-name:"Table Grid";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-priority:59;
mso-style-unhide:no;
border:solid windowtext 1.0pt;
mso-border-alt:solid windowtext .5pt;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-border-insideh:.5pt solid windowtext;
mso-border-insidev:.5pt solid windowtext;
mso-para-margin:0cm;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
table.MsoTable15Grid4Accent1
{mso-style-name:"Grid Table 4 - Accent 1";
mso-tstyle-rowband-size:1;
mso-tstyle-colband-size:1;
mso-style-priority:49;
mso-style-unhide:no;
border:solid #9CC2E5 1.0pt;
mso-border-themecolor:accent1;
mso-border-themetint:153;
mso-border-alt:solid #9CC2E5 .5pt;
mso-border-themecolor:accent1;
mso-border-themetint:153;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-border-insideh:.5pt solid #9CC2E5;
mso-border-insideh-themecolor:accent1;
mso-border-insideh-themetint:153;
mso-border-insidev:.5pt solid #9CC2E5;
mso-border-insidev-themecolor:accent1;
mso-border-insidev-themetint:153;
mso-para-margin:0cm;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;
mso-fareast-language:ES;}
table.MsoTable15Grid4Accent1FirstRow
{mso-style-name:"Grid Table 4 - Accent 1";
mso-table-condition:first-row;
mso-style-priority:49;
mso-style-unhide:no;
mso-tstyle-shading:#5B9BD5;
mso-tstyle-shading-themecolor:accent1;
mso-tstyle-border-top:.5pt solid #5B9BD5;
mso-tstyle-border-top-themecolor:accent1;
mso-tstyle-border-left:.5pt solid #5B9BD5;
mso-tstyle-border-left-themecolor:accent1;
mso-tstyle-border-bottom:.5pt solid #5B9BD5;
mso-tstyle-border-bottom-themecolor:accent1;
mso-tstyle-border-right:.5pt solid #5B9BD5;
mso-tstyle-border-right-themecolor:accent1;
mso-tstyle-border-insideh:cell-none;
mso-tstyle-border-insidev:cell-none;
color:white;
mso-themecolor:background1;
mso-ansi-font-weight:bold;
mso-bidi-font-weight:bold;}
table.MsoTable15Grid4Accent1LastRow
{mso-style-name:"Grid Table 4 - Accent 1";
mso-table-condition:last-row;
mso-style-priority:49;
mso-style-unhide:no;
mso-tstyle-border-top:1.5pt double #5B9BD5;
mso-tstyle-border-top-themecolor:accent1;
mso-ansi-font-weight:bold;
mso-bidi-font-weight:bold;}
table.MsoTable15Grid4Accent1FirstCol
{mso-style-name:"Grid Table 4 - Accent 1";
mso-table-condition:first-column;
mso-style-priority:49;
mso-style-unhide:no;
mso-ansi-font-weight:bold;
mso-bidi-font-weight:bold;}
table.MsoTable15Grid4Accent1LastCol
{mso-style-name:"Grid Table 4 - Accent 1";
mso-table-condition:last-column;
mso-style-priority:49;
mso-style-unhide:no;
mso-ansi-font-weight:bold;
mso-bidi-font-weight:bold;}
table.MsoTable15Grid4Accent1OddColumn
{mso-style-name:"Grid Table 4 - Accent 1";
mso-table-condition:odd-column;
mso-style-priority:49;
mso-style-unhide:no;
mso-tstyle-shading:#DEEAF6;
mso-tstyle-shading-themecolor:accent1;
mso-tstyle-shading-themetint:51;}
table.MsoTable15Grid4Accent1OddRow
{mso-style-name:"Grid Table 4 - Accent 1";
mso-table-condition:odd-row;
mso-style-priority:49;
mso-style-unhide:no;
mso-tstyle-shading:#DEEAF6;
mso-tstyle-shading-themecolor:accent1;
mso-tstyle-shading-themetint:51;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="2"/>
</o:shapelayout></xml><![endif]-->
</head>
<body link="#0563C1" style="tab-interval:35.4pt;word-wrap:break-word" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p align="center" class="MsoNoSpacing" style="text-align:center;line-height:115%"><span lang="ES" style='font-size:24.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:"Open Sans";mso-fareast-language:
ES;mso-no-proof:yes'><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Imagen_x0020_5126" o:spid="_x0000_i1027" type="#_x0000_t75"
alt="Texto&#10;&#10;Descripción generada automáticamente" style='width:302.4pt;
height:68.4pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="plantilla_individual_files/image001.png" o:title="Texto&#10;&#10;Descripción generada automáticamente"/>
</v:shape><![endif]--><?if !vml?><img alt="Texto
Descripción generada automáticamente" height="91" src="plantilla_individual_files/image002.gif" v:shapes="Imagen_x0020_5126" width="403"/><?endif?></span><span lang="ES" style='font-size:24.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:"Open Sans"'><o:p></o:p></span></p>
<p align="center" class="MsoNoSpacing" style="text-align:center;line-height:115%"><span lang="ES" style='font-size:24.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:"Open Sans"'>Universidad
Internacional de La Rioja<o:p></o:p></span></p>
<p align="center" class="MsoNoSpacing" style="text-align:center;line-height:115%"><span lang="ES" style='font-size:20.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:"Open Sans"'>Escuela
Superior de Ingeniería y<o:p></o:p></span></p>
<p align="center" class="MsoNoSpacing" style="text-align:center;line-height:115%"><span lang="ES" style='font-size:20.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:"Open Sans"'>Tecnología<o:p></o:p></span></p>
<p align="center" class="MsoNoSpacing" style="text-align:center;line-height:115%"><span lang="ES" style="font-size:20.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:Tahoma"><o:p> </o:p></span></p>
<p align="center" class="MsoNoSpacing" style="text-align:center;line-height:115%"><span lang="ES" style="font-size:20.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:Tahoma"><o:p> </o:p></span></p>
<p align="center" class="MsoNoSpacing" style="text-align:center;line-height:115%"><span lang="ES" style="font-size:20.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:Tahoma"><o:p> </o:p></span></p>
<p align="center" class="MsoNoSpacing" style="text-align:center;line-height:115%"><span lang="ES" style="font-size:20.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:Tahoma"><o:p> </o:p></span></p>
<p align="center" class="MsoNoSpacing" style="text-align:center;line-height:115%"><span lang="ES" style='font-size:18.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Tahoma'>Máster Universitario
en Inteligencia artificial</span><span lang="ES" style="font-size:26.0pt;
mso-bidi-font-size:14.0pt;line-height:115%;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-hansi-font-family:Calibri;mso-hansi-theme-font:
minor-latin;mso-bidi-font-family:Tahoma;color:#0098CD"><o:p></o:p></span></p>
<p class="MsoNormal"><a name="_Hlk216726907"><span lang="ES" style="font-size:26.0pt;
mso-bidi-font-size:14.0pt;line-height:150%;mso-bidi-font-family:Tahoma;
color:#0098CD;mso-fareast-language:EN-US">Optimización de Hiperparámetros OCR
con Ray Tune para Documentos Académicos en </span></a><span class="GramE"><span style="mso-bookmark:_Hlk216726907"><span lang="ES" style="font-size:26.0pt;
mso-bidi-font-size:14.0pt;line-height:150%;mso-bidi-font-family:Tahoma;
color:#0098CD;mso-fareast-language:EN-US">Español</span></span></span><span style="mso-bookmark:_Hlk216726907"><span lang="ES" style="mso-fareast-language:
EN-US"><o:p></o:p></span></span></p>
<span style="mso-bookmark:_Hlk216726907"></span>
<p class="MsoNormal"><span lang="ES" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES" style="mso-fareast-language:EN-US"><span style="mso-tab-count:1">            </span><o:p></o:p></span></p>
<table align="left" border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none;mso-border-alt:solid #E7E6E6 .5pt;
mso-border-themecolor:background2;mso-yfti-tbllook:1184;mso-table-lspace:7.05pt;
margin-left:4.8pt;mso-table-rspace:7.05pt;margin-right:4.8pt;mso-table-anchor-vertical:
page;mso-table-anchor-horizontal:margin;mso-table-left:left;mso-table-top:
609.8pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-insideh:.5pt solid #E7E6E6;
mso-border-insideh-themecolor:background2;mso-border-insidev:.5pt solid #E7E6E6;
mso-border-insidev-themecolor:background2">
<tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes">
<td style="width:198.2pt;border:solid #E7E6E6 1.0pt;mso-border-themecolor:
background2;mso-border-alt:solid #E7E6E6 .5pt;mso-border-themecolor:background2;
padding:0cm 5.4pt 0cm 5.4pt" width="264">
<p class="MsoNoSpacing" style="line-height:115%;mso-element:frame;mso-element-frame-hspace:
7.05pt;mso-element-wrap:around;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:
margin;mso-element-top:609.8pt;mso-height-rule:exactly"><span lang="ES" style='font-size:12.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Tahoma'>Trabajo fin de
estudio presentado por:<o:p></o:p></span></p>
</td>
<td style="width:227.45pt;border:solid #E7E6E6 1.0pt;mso-border-themecolor:
background2;border-left:none;mso-border-left-alt:solid #E7E6E6 .5pt;
mso-border-left-themecolor:background2;mso-border-alt:solid #E7E6E6 .5pt;
mso-border-themecolor:background2;padding:0cm 5.4pt 0cm 5.4pt" width="303">
<p class="MsoNoSpacing" style="line-height:115%;mso-element:frame;mso-element-frame-hspace:
7.05pt;mso-element-wrap:around;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:
margin;mso-element-top:609.8pt;mso-height-rule:exactly"><span lang="ES" style='font-size:12.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Tahoma'>Sergio Jiménez <span class="SpellE">Jiménez</span><o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow:1">
<td style="width:198.2pt;border:solid #E7E6E6 1.0pt;mso-border-themecolor:
background2;border-top:none;mso-border-top-alt:solid #E7E6E6 .5pt;mso-border-top-themecolor:
background2;mso-border-alt:solid #E7E6E6 .5pt;mso-border-themecolor:background2;
padding:0cm 5.4pt 0cm 5.4pt" width="264">
<p class="MsoNoSpacing" style="line-height:115%;mso-element:frame;mso-element-frame-hspace:
7.05pt;mso-element-wrap:around;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:
margin;mso-element-top:609.8pt;mso-height-rule:exactly"><span lang="ES" style='font-size:12.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Tahoma'>Tipo de
trabajo:<o:p></o:p></span></p>
</td>
<td style="width:227.45pt;border-top:none;border-left:none;
border-bottom:solid #E7E6E6 1.0pt;mso-border-bottom-themecolor:background2;
border-right:solid #E7E6E6 1.0pt;mso-border-right-themecolor:background2;
mso-border-top-alt:solid #E7E6E6 .5pt;mso-border-top-themecolor:background2;
mso-border-left-alt:solid #E7E6E6 .5pt;mso-border-left-themecolor:background2;
mso-border-alt:solid #E7E6E6 .5pt;mso-border-themecolor:background2;
padding:0cm 5.4pt 0cm 5.4pt" width="303">
<p class="MsoNoSpacing" style="line-height:115%;mso-element:frame;mso-element-frame-hspace:
7.05pt;mso-element-wrap:around;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:
margin;mso-element-top:609.8pt;mso-height-rule:exactly"><span lang="ES" style='font-size:12.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Tahoma'>Desarrollo
Software<o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow:2">
<td style="width:198.2pt;border:solid #E7E6E6 1.0pt;mso-border-themecolor:
background2;border-top:none;mso-border-top-alt:solid #E7E6E6 .5pt;mso-border-top-themecolor:
background2;mso-border-alt:solid #E7E6E6 .5pt;mso-border-themecolor:background2;
padding:0cm 5.4pt 0cm 5.4pt" width="264">
<p class="MsoNoSpacing" style="line-height:115%;mso-element:frame;mso-element-frame-hspace:
7.05pt;mso-element-wrap:around;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:
margin;mso-element-top:609.8pt;mso-height-rule:exactly"><span lang="ES" style='font-size:12.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Tahoma'>Director/a:<o:p></o:p></span></p>
</td>
<td style="width:227.45pt;border-top:none;border-left:none;
border-bottom:solid #E7E6E6 1.0pt;mso-border-bottom-themecolor:background2;
border-right:solid #E7E6E6 1.0pt;mso-border-right-themecolor:background2;
mso-border-top-alt:solid #E7E6E6 .5pt;mso-border-top-themecolor:background2;
mso-border-left-alt:solid #E7E6E6 .5pt;mso-border-left-themecolor:background2;
mso-border-alt:solid #E7E6E6 .5pt;mso-border-themecolor:background2;
padding:0cm 5.4pt 0cm 5.4pt" width="303">
<p class="MsoNoSpacing" style="line-height:115%;mso-element:frame;mso-element-frame-hspace:
7.05pt;mso-element-wrap:around;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:
margin;mso-element-top:609.8pt;mso-height-rule:exactly"><span lang="ES" style='font-size:12.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Tahoma'>Javier Rodrigo
Villazón Terrazas<o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow:3;mso-yfti-lastrow:yes">
<td style="width:198.2pt;border:solid #E7E6E6 1.0pt;mso-border-themecolor:
background2;border-top:none;mso-border-top-alt:solid #E7E6E6 .5pt;mso-border-top-themecolor:
background2;mso-border-alt:solid #E7E6E6 .5pt;mso-border-themecolor:background2;
padding:0cm 5.4pt 0cm 5.4pt" width="264">
<p class="MsoNoSpacing" style="line-height:115%;mso-element:frame;mso-element-frame-hspace:
7.05pt;mso-element-wrap:around;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:
margin;mso-element-top:609.8pt;mso-height-rule:exactly"><span lang="ES" style='font-size:12.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Tahoma'>Fecha:<o:p></o:p></span></p>
</td>
<td style="width:227.45pt;border-top:none;border-left:none;
border-bottom:solid #E7E6E6 1.0pt;mso-border-bottom-themecolor:background2;
border-right:solid #E7E6E6 1.0pt;mso-border-right-themecolor:background2;
mso-border-top-alt:solid #E7E6E6 .5pt;mso-border-top-themecolor:background2;
mso-border-left-alt:solid #E7E6E6 .5pt;mso-border-left-themecolor:background2;
mso-border-alt:solid #E7E6E6 .5pt;mso-border-themecolor:background2;
padding:0cm 5.4pt 0cm 5.4pt" width="303">
<p class="MsoNoSpacing" style="line-height:115%;mso-element:frame;mso-element-frame-hspace:
7.05pt;mso-element-wrap:around;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:
margin;mso-element-top:609.8pt;mso-height-rule:exactly"><span lang="ES" style='font-size:12.0pt;mso-bidi-font-size:14.0pt;line-height:115%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Tahoma'>06.10.2025<o:p></o:p></span></p>
</td>
</tr>
</table>
<p class="MsoNormal"><span lang="ES" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<span lang="ES" style='font-size:18.0pt;mso-bidi-font-size:11.0pt;line-height:
150%;font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Times New Roman";mso-hansi-theme-font:major-latin;
mso-bidi-font-family:Arial;color:#0098CD;mso-ansi-language:ES;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'><br clear="all" style="page-break-before:always"/>
</span>
<p class="Ttulondices"><span lang="ES">Resumen </span></p><p class="MsoNormal"><span lang="ES">El presente Trabajo Fin de Máster aborda la optimización de sistemas de Reconocimiento Óptico de Caracteres (OCR) basados en inteligencia artificial para documentos en español, específicamente en un entorno con recursos computacionales limitados donde el fine-tuning de modelos no es viable. El objetivo principal es identificar la configuración óptima de hiperparámetros que maximice la precisión del reconocimiento de texto sin requerir entrenamiento adicional de los modelos.
Se realizó un estudio comparativo de tres soluciones OCR de código abierto: EasyOCR, PaddleOCR (PP-OCRv5) y DocTR, evaluando su rendimiento mediante las métricas estándar CER (Character Error Rate) y WER (Word Error Rate) sobre un corpus de documentos académicos en español. Tras identificar PaddleOCR como la solución más prometedora, se procedió a una optimización sistemática de hiperparámetros utilizando Ray Tune con el algoritmo de búsqueda Optuna, ejecutando 64 configuraciones diferentes.
Los resultados demuestran que la optimización de hiperparámetros logró una mejora significativa del rendimiento: el CER se redujo de 7.78% a 1.49% (mejora del 80.9% en reducción de errores), alcanzando una precisión de caracteres del 98.51%. El hallazgo más relevante fue que el parámetro `textline_orientation` (clasificación de orientación de línea de texto) tiene un impacto crítico, reduciendo el CER en un 69.7% cuando está habilitado. Adicionalmente, se identificó que el umbral de detección de píxeles (`text_det_thresh`) presenta una correlación negativa fuerte (-0.52) con el error, siendo el parámetro continuo más influyente.
Este trabajo demuestra que es posible obtener mejoras sustanciales en sistemas OCR mediante optimización de hiperparámetros, ofreciendo una alternativa práctica al fine-tuning cuando los recursos computacionales son limitados.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="ES">Palabras clave:</span></b><span lang="ES"> OCR, Reconocimiento Óptico de Caracteres, PaddleOCR, Optimización de Hiperparámetros, Ray Tune, Procesamiento de Documentos, Inteligencia Artificial</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="Ttulondices"><span style="mso-bookmark:_Toc437509152"><span class="SpellE"><span lang="ES">Abstract</span></span></span></p><p class="MsoNormal"><span lang="EN-US">This Master's Thesis addresses the optimization of Artificial Intelligence-based Optical Character Recognition (OCR) systems for Spanish documents, specifically in a resource-constrained environment where model fine-tuning is not feasible. The main objective is to identify the optimal hyperparameter configuration that maximizes text recognition accuracy without requiring additional model training.
A comparative study of three open-source OCR solutions was conducted: EasyOCR, PaddleOCR (PP-OCRv5), and DocTR, evaluating their performance using standard CER (Character Error Rate) and WER (Word Error Rate) metrics on a corpus of academic documents in Spanish. After identifying PaddleOCR as the most promising solution, systematic hyperparameter optimization was performed using Ray Tune with the Optuna search algorithm, executing 64 different configurations.
Results demonstrate that hyperparameter optimization achieved significant performance improvement: CER was reduced from 7.78% to 1.49% (80.9% error reduction), achieving 98.51% character accuracy. The most relevant finding was that the `textline_orientation` parameter (text line orientation classification) has a critical impact, reducing CER by 69.7% when enabled. Additionally, the pixel detection threshold (`text_det_thresh`) was found to have a strong negative correlation (-0.52) with error, being the most influential continuous parameter.
This work demonstrates that substantial improvements in OCR systems can be obtained through hyperparameter optimization, offering a practical alternative to fine-tuning when computational resources are limited.</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US">Keywords:</span></b><span lang="EN-US"> OCR, Optical Character Recognition, PaddleOCR, Hyperparameter Optimization, Ray Tune, Document Processing, Artificial Intelligence</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<span lang="ES" style='font-size:12.0pt;line-height:150%;font-family:"Calibri",sans-serif;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:"Times New Roman";
mso-hansi-theme-font:minor-latin;mso-bidi-font-family:"Times New Roman";
mso-ansi-language:ES;mso-fareast-language:ES;mso-bidi-language:AR-SA'><br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
</span>
<p class="MsoNormal"><span style="mso-bookmark:_Toc437509152"><span lang="ES"><o:p> </o:p></span></span></p>
<span style="mso-bookmark:_Toc437509152"></span>
<p class="Ttulondices"><span lang="ES">Índice de contenidos</span></p>
<p class="MsoToc1" style="tab-stops:22.0pt right dotted 453.05pt"><!--[if supportFields]><span
lang=ES style='font-size:11.0pt;mso-bidi-font-size:12.0pt;line-height:150%'><span
style='mso-element:field-begin'></span><span
style='mso-spacerun:yes'> </span>TOC \o &quot;1-3&quot; \h \z \u <span
style='mso-element:field-separator'></span></span><![endif]--><span lang="ES"><a href="#_Toc160619805"><span style="mso-no-proof:yes">1.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">    </span></span><span style="mso-no-proof:yes">Introducción</span><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619805 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">1<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800300035000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619806"><span style="mso-no-proof:yes">1.1.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Motivación</span><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619806 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">1<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800300036000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619807"><span style="mso-no-proof:yes">1.2.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Planteamiento
del trabajo</span><span style="color:windowtext;display:none;mso-hide:screen;
mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619807 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">3<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800300037000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619808"><span style="mso-no-proof:yes">1.3.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Estructura
del trabajo</span><span style="color:windowtext;display:none;mso-hide:screen;
mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619808 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">3<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800300038000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc1" style="tab-stops:22.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619809"><span style="mso-no-proof:yes">2.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">    </span></span><span style="mso-no-proof:yes">Contexto
y estado del arte</span><span style="color:windowtext;display:none;mso-hide:
screen;mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619809 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">4<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800300039000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619810"><span style="mso-no-proof:yes">2.1.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Contexto
del problema</span><span style="color:windowtext;display:none;mso-hide:screen;
mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619810 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">4<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310030000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619811"><span style="mso-no-proof:yes">2.2.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Estado
del arte</span><span style="color:windowtext;display:none;mso-hide:screen;
mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619811 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">4<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310031000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619812"><span style="mso-no-proof:yes">2.3.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Conclusiones</span><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619812 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">5<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310032000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc1" style="tab-stops:22.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619813"><span style="mso-no-proof:yes">3.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">    </span></span><span style="mso-no-proof:yes">Objetivos
concretos y metodología de trabajo</span><span style="color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619813 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">6<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310033000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619814"><span style="mso-no-proof:yes">3.1.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Objetivo
general</span><span style="color:windowtext;display:none;mso-hide:screen;
mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted"> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619814 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">6<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310034000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619815"><span style="mso-no-proof:yes">3.2.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Objetivos
específicos</span><span style="color:windowtext;display:none;mso-hide:screen;
mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619815 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">7<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310035000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619816"><span style="mso-no-proof:yes">3.3.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Metodología
del trabajo</span><span style="color:windowtext;display:none;mso-hide:screen;
mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619816 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">8<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310036000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc1" style="tab-stops:22.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619817"><span style='font-family:"Calibri Light",sans-serif;
mso-ascii-theme-font:major-latin;mso-hansi-theme-font:major-latin;mso-bidi-font-family:
"Times New Roman";mso-font-kerning:16.0pt;mso-bidi-font-weight:bold;mso-no-proof:
yes'>4.</span><span style='mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;color:windowtext;mso-font-kerning:1.0pt;
mso-ligatures:standardcontextual;mso-no-proof:yes;text-decoration:none;
text-underline:none'><span style="mso-tab-count:1">    </span></span><span style='font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:"Times New Roman";
text-transform:uppercase;mso-font-kerning:16.0pt;mso-bidi-font-weight:bold;
mso-no-proof:yes'>D</span><span style='font-family:"Calibri Light",sans-serif;
mso-ascii-theme-font:major-latin;mso-hansi-theme-font:major-latin;mso-bidi-font-family:
"Times New Roman";mso-font-kerning:16.0pt;mso-bidi-font-weight:bold;mso-no-proof:
yes'>esarrollo específico de la contribución</span><span style="color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619817 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">9<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310037000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc1" style="tab-stops:22.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619818"><span style="mso-no-proof:yes">5.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">    </span></span><span style="mso-no-proof:yes">Conclusiones
y trabajo futuro</span><span style="color:windowtext;display:none;mso-hide:
screen;mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619818 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">13<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310038000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619819"><span style="mso-no-proof:yes">5.1.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Conclusiones</span><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619819 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">13<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800310039000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc2" style="tab-stops:48.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619820"><span style="mso-no-proof:yes">5.2.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">      </span></span><span style="mso-no-proof:yes">Líneas
de trabajo futuro</span><span style="color:windowtext;display:none;mso-hide:
screen;mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619820 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">13<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800320030000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc1" style="tab-stops:right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619821"><span style="mso-no-proof:yes">Referencias bibliográficas</span><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted">. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619821 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">14<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800320031000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="MsoToc1" style="tab-stops:60.0pt right dotted 453.05pt"><span lang="ES"><a href="#_Toc160619822"><span style="mso-no-proof:yes">Anexo A.</span><span style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:minor-fareast;
mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
color:windowtext;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes;text-decoration:none;text-underline:none'><span style="mso-tab-count:1">     </span></span><span style="mso-no-proof:yes">Código
fuente y datos analizados</span><span style="color:windowtext;display:none;
mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:none"><span style="mso-tab-count:1 dotted"> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none'><span style='mso-element:field-begin'></span>
PAGEREF _Toc160619822 \h <span style='mso-element:field-separator'></span></span><![endif]--><span style="color:windowtext;display:none;mso-hide:screen;mso-no-proof:yes;
text-decoration:none;text-underline:none">15<!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100360030003600310039003800320032000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;mso-no-proof:yes;text-decoration:none;text-underline:
none'><span style='mso-element:field-end'></span></span><![endif]--></a></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="Ttulondices"><!--[if supportFields]><span lang=ES style='font-size:
11.0pt;mso-bidi-font-size:12.0pt;line-height:150%;font-family:"Calibri",sans-serif;
mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:
"Times New Roman";mso-fareast-language:ES'><span style='mso-element:field-end'></span></span><![endif]--><span lang="ES"><br clear="all" style="page-break-before:always"/>
Índice de figuras </span></p>
<p class="MsoTof" style="tab-stops:right dotted 453.05pt"><!--[if supportFields]><span
lang=ES style='mso-bidi-font-family:Arial;background:yellow;mso-highlight:yellow'><span
style='mso-element:field-begin'></span><span
style='mso-spacerun:yes'> </span>TOC \f c \h \z \t &quot;Título
9;1;Figuras;1&quot; \c &quot;Figura&quot; <span style='mso-element:field-separator'></span></span><![endif]--><span lang="ES"></span><span lang="ES" style='mso-fareast-font-family:"Times New Roman";mso-fareast-theme-font:
minor-fareast;mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;mso-no-proof:yes'><o:p></o:p></span></p>
<p class="Ttulondices"><!--[if supportFields]><span lang=ES style='background:
yellow;mso-highlight:yellow'><span style='mso-element:field-end'></span></span><![endif]--><span lang="ES"><br clear="all" style="page-break-before:always"/>
Índice de tablas</span></p>
<p class="MsoTof" style="tab-stops:right dotted 453.05pt"><!--[if supportFields]><b
style='mso-bidi-font-weight:normal'><span lang=ES><span style='mso-element:
field-begin'></span><span style='mso-spacerun:yes'> </span>TOC \h \z \t
&quot;Tablas;1&quot; \c &quot;Tabla&quot; <span style='mso-element:field-separator'></span></span></b><![endif]--><span lang="ES"></span><span lang="ES" style='font-size:11.0pt;line-height:150%;mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;mso-font-kerning:1.0pt;mso-ligatures:standardcontextual;
mso-no-proof:yes'><o:p></o:p></span></p>
<p class="Ttulondices"><!--[if supportFields]><b style='mso-bidi-font-weight:
normal'><span lang=ES style='mso-bidi-font-family:"Times New Roman"'><span
style='mso-element:field-end'></span></span></b><![endif]--><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:
"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
<p class="Ttulondices"><b style="mso-bidi-font-weight:normal"><span lang="ES" style='mso-bidi-font-family:"Times New Roman"'><o:p> </o:p></span></b></p>
</div>
<span lang="ES" style='font-size:18.0pt;line-height:150%;font-family:"Calibri Light",sans-serif;
mso-ascii-theme-font:major-latin;mso-fareast-font-family:"Times New Roman";
mso-hansi-theme-font:major-latin;mso-bidi-font-family:Arial;color:#0098CD;
mso-ansi-language:ES;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br clear="all" style="page-break-before:always;mso-break-type:section-break"/>
</span>
<div class="WordSection2">
<h1 style="mso-list:l22 level1 lfo18"><a name="_Toc437515557"></a><a name="_Toc14106979"></a><a name="_Toc147741191"></a><a name="_Toc160619805"><span style="mso-bookmark:_Toc147741191"><span style="mso-bookmark:_Toc14106979"><span style="mso-bookmark:_Toc437515557"><?if !supportLists?><span lang="ES" style='mso-fareast-font-family:"Calibri Light";mso-fareast-theme-font:major-latin;
mso-bidi-font-family:"Calibri Light";mso-bidi-theme-font:major-latin'><span style="mso-list:Ignore">1.<span style='font:7.0pt "Times New Roman"'>  
</span></span></span><?endif?><span lang="ES" style="text-transform:none">Introducción</span></span></span></span></a><span style="mso-bookmark:_Toc14106979"><span style="mso-bookmark:_Toc437515557"><span lang="ES" style="text-transform:none"> </span></span></span></h1><p class="MsoNormal"><span lang="ES">Este capítulo presenta la motivación del trabajo, identificando el problema a resolver y justificando su relevancia. Se plantea la pregunta de investigación central y se describe la estructura del documento.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Motivación</span></h2>
<p class="MsoNormal"><span lang="ES">El Reconocimiento Óptico de Caracteres (OCR) es una tecnología fundamental en la era de la digitalización documental. Su capacidad para convertir imágenes de texto en datos editables y procesables ha transformado sectores como la administración pública, el ámbito legal, la banca y la educación. Según estimaciones del sector, el mercado global de OCR alcanzó los 13.4 mil millones de dólares en 2023, con proyecciones de crecimiento continuo impulsado por la transformación digital empresarial (Grand View Research, 2023). Sin embargo, a pesar de los avances significativos impulsados por el aprendizaje profundo, la implementación práctica de sistemas OCR de alta precisión sigue presentando desafíos considerables.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">El contexto de la digitalización documental</span></h3>
<p class="MsoNormal"><span lang="ES">La digitalización de documentos ha pasado de ser una opción a una necesidad estratégica para organizaciones de todos los tamaños. Los beneficios son múltiples: reducción del espacio físico de almacenamiento, facilidad de búsqueda y recuperación, preservación del patrimonio documental, y habilitación de flujos de trabajo automatizados. Sin embargo, la mera conversión de papel a imagen digital no aprovecha plenamente estas ventajas; es necesario extraer el texto contenido en los documentos para permitir su indexación, análisis y procesamiento automatizado.</span></p>
<p class="MsoNormal"><span lang="ES">El OCR actúa como puente entre el mundo físico del documento impreso y el mundo digital del texto procesable. Su precisión determina directamente la calidad de los procesos downstream: un error de reconocimiento en un nombre propio puede invalidar una búsqueda; un dígito mal reconocido en una factura puede causar discrepancias contables; una palabra mal interpretada en un contrato puede alterar su significado legal.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Desafíos específicos del español</span></h3>
<p class="MsoNormal"><span lang="ES">El procesamiento de documentos en español presenta particularidades que complican el reconocimiento automático de texto. Los caracteres especiales propios del idioma (la letra ñ, las vocales acentuadas á, é, í, ó, ú, la diéresis ü, y los signos de puntuación invertidos ¿ y ¡) no están presentes en muchos conjuntos de entrenamiento internacionales, lo que puede degradar el rendimiento de modelos preentrenados predominantemente en inglés.</span></p>
<p class="MsoNormal"><span lang="ES">La Tabla 1 resume los principales desafíos lingüísticos del OCR en español:</span></p>
<a name="_Ref_Tab1"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->1<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Desafíos lingüísticos específicos del OCR en español.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Desafío</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Descripción</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Impacto en OCR</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Caracteres especiales</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">ñ, á, é, í, ó, ú, ü, ¿, ¡</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Confusión con caracteres similares (n/ñ, a/á)</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Palabras largas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Español permite compuestos largos</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Mayor probabilidad de error por carácter</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Abreviaturas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Dr., Sra., Ud., etc.</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Puntos internos confunden segmentación</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Nombres propios</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tildes en apellidos (García, Martínez)</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Bases de datos sin soporte Unicode</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">Además de los aspectos lingüísticos, los documentos académicos y administrativos en español presentan características tipográficas que complican el reconocimiento: variaciones en fuentes entre encabezados, cuerpo y notas al pie; presencia de tablas con bordes y celdas; logotipos institucionales; marcas de agua; y elementos gráficos como firmas o sellos. Estos elementos generan ruido que puede propagarse en aplicaciones downstream como la extracción de entidades nombradas o el análisis semántico.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">La brecha entre investigación y práctica</span></h3>
<p class="MsoNormal"><span lang="ES">Los modelos OCR basados en redes neuronales profundas, como los empleados en PaddleOCR, EasyOCR o DocTR, ofrecen un rendimiento impresionante en benchmarks estándar. PaddleOCR, por ejemplo, reporta tasas de precisión superiores al 97% en conjuntos de datos como ICDAR 2015 (Du et al., 2020). No obstante, estos resultados en condiciones controladas no siempre se trasladan a documentos del mundo real.</span></p>
<p class="MsoNormal"><span lang="ES">La adaptación de modelos preentrenados a dominios específicos típicamente requiere fine-tuning con datos etiquetados del dominio objetivo y recursos computacionales significativos. El fine-tuning de un modelo de reconocimiento de texto puede requerir decenas de miles de imágenes etiquetadas y días de entrenamiento en GPUs de alta capacidad. Esta barrera técnica y económica excluye a muchos investigadores y organizaciones de beneficiarse plenamente de estas tecnologías.</span></p>
<p class="MsoNormal"><span lang="ES">La Tabla 2 ilustra los requisitos típicos para diferentes estrategias de mejora de OCR:</span></p>
<a name="_Ref_Tab2"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->2<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Comparación de estrategias de mejora de modelos OCR.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Estrategia</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Datos requeridos</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Hardware</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tiempo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Expertise</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Fine-tuning completo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">&gt;10,000 imágenes etiquetadas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">GPU (≥16GB VRAM)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Días-Semanas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alto</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Fine-tuning parcial</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">&gt;1,000 imágenes etiquetadas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">GPU (≥8GB VRAM)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Horas-Días</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Medio-Alto</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Transfer learning</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">&gt;500 imágenes etiquetadas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">GPU (≥8GB VRAM)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Horas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Medio</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Optimización de hiperparámetros</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>&lt;100 imágenes de validación</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>CPU suficiente</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Horas</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Bajo-Med
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">La oportunidad: optimización sin fine-tuning</span></h3>
<p class="MsoNormal"><span lang="ES">La presente investigación surge de una necesidad práctica: optimizar un sistema OCR para documentos académicos en español sin disponer de recursos GPU para realizar fine-tuning. Esta restricción, lejos de ser una limitación excepcional, representa la realidad de muchos entornos académicos y empresariales donde el acceso a infraestructura de cómputo avanzada es limitado.</span></p>
<p class="MsoNormal"><span lang="ES">La hipótesis central de este trabajo es que los modelos OCR preentrenados contienen capacidades latentes que pueden activarse mediante la configuración adecuada de sus hiperparámetros de inferencia. Parámetros como los umbrales de detección de texto, las opciones de preprocesamiento de imagen, y los filtros de confianza de reconocimiento pueden tener un impacto significativo en el rendimiento final, y su optimización sistemática puede aproximarse a los beneficios del fine-tuning sin sus costes asociados.</span></p>
<p class="MsoNormal"><span lang="ES">Esta oportunidad se ve reforzada por la disponibilidad de frameworks modernos de optimización de hiperparámetros como Ray Tune (Liaw et al., 2018) y algoritmos de búsqueda eficientes como Optuna (Akiba et al., 2019), que permiten explorar espacios de configuración de manera sistemática y eficiente.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Planteamiento del trabajo</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Formulación del problema</span></h3>
<p class="MsoNormal"><span lang="ES">El problema central que aborda este trabajo puede formularse de la siguiente manera:</span></p>
<p class="MsoNormal" style="margin-left:2cm;margin-right:1cm"><i><span lang="ES">¿Es posible mejorar significativamente el rendimiento de modelos OCR preentrenados para documentos en español mediante la optimización sistemática de hiperparámetros, sin requerir fine-tuning ni recursos GPU?</span></i></p>
<p class="MsoNormal"><span lang="ES">Este planteamiento parte de una observación fundamental: los sistemas OCR modernos exponen múltiples parámetros configurables que afectan su comportamiento durante la inferencia. Estos parámetros incluyen umbrales de detección, opciones de preprocesamiento, y filtros de calidad. En la práctica habitual, estos parámetros se dejan en sus valores por defecto, asumiendo que fueron optimizados por los desarrolladores del modelo. Sin embargo, los valores por defecto representan compromisos generales que pueden no ser óptimos para dominios específicos.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Preguntas de investigación</span></h3>
<p class="MsoNormal"><span lang="ES">Este planteamiento se descompone en las siguientes cuestiones específicas:</span></p>
<p class="MsoNormal"><span lang="ES"><b>PI1. Selección de modelo base</b>: ¿Cuál de las soluciones OCR de código abierto disponibles (EasyOCR, PaddleOCR, DocTR) ofrece el mejor rendimiento base para documentos en español?</span></p>
<p class="MsoNormal"><span lang="ES">Esta pregunta es fundamental porque la elección del modelo base determinará el punto de partida para la optimización. Un modelo con mejor rendimiento inicial puede ofrecer mayor margen de mejora o, alternativamente, estar ya cerca de su límite de optimización.</span></p>
<p class="MsoNormal"><span lang="ES"><b>PI2. Impacto de hiperparámetros</b>: ¿Qué hiperparámetros del pipeline OCR tienen mayor influencia en las métricas de error (CER, WER)?</span></p>
<p class="MsoNormal"><span lang="ES">Identificar los parámetros más influyentes permite focalizar el esfuerzo de optimización y proporciona insights sobre el funcionamiento interno del sistema. Parámetros con alta correlación con las métricas de error son candidatos prioritarios para ajuste.</span></p>
<p class="MsoNormal"><span lang="ES"><b>PI3. Optimización automatizada</b>: ¿Puede un proceso de búsqueda automatizada de hiperparámetros (mediante Ray Tune/Optuna) encontrar configuraciones que superen significativamente los valores por defecto?</span></p>
<p class="MsoNormal"><span lang="ES">Esta pregunta evalúa la viabilidad práctica de la metodología propuesta. "Significativamente" se define operacionalmente como una reducción del CER de al menos 50% respecto al baseline, un umbral que representaría una mejora sustancial en la calidad del texto reconocido.</span></p>
<p class="MsoNormal"><span lang="ES"><b>PI4. Viabilidad práctica</b>: ¿Son los tiempos de inferencia y los recursos requeridos compatibles con un despliegue en entornos con recursos limitados?</span></p>
<p class="MsoNormal"><span lang="ES">Una solución técnicamente superior pero impracticable tiene valor limitado. Esta pregunta ancla la investigación en consideraciones del mundo real.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Alcance y delimitación</span></h3>
<p class="MsoNormal"><span lang="ES">Este trabajo se centra específicamente en:</span></p>
<a name="_Ref_Tab3"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->3<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Delimitación del alcance del trabajo.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Aspecto</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Dentro del alcance</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Fuera del alcance</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Tipo de documento</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Documentos académicos digitales (PDF)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Documentos escaneados, manuscritos</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Idioma</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Español</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Otros idiomas</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Modelos</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">EasyOCR, PaddleOCR, DocTR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Soluciones comerciales (Google Cloud Vision, AWS Textract)</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Método de mejora</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Optimización de hiperparámetros</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Fine-tuning, aumento de datos</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Hardware</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Ejecución en CPU</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Aceleración GPU</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Relevancia y beneficiarios</span></h3>
<p class="MsoNormal"><span lang="ES">La relevancia de este problema radica en su aplicabilidad inmediata. Una metodología reproducible para optimizar OCR sin fine-tuning beneficiaría a múltiples grupos:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Investigadores académicos</b>: Quienes procesan grandes volúmenes de documentos para análisis de contenido, revisiones sistemáticas de literatura, o estudios bibliométricos. Un OCR más preciso reduce el tiempo de corrección manual y mejora la calidad de los análisis downstream.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Instituciones educativas</b>: Universidades y centros de investigación que digitalizan archivos históricos, actas administrativas, o materiales docentes. La preservación del patrimonio documental requiere transcripciones precisas.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Pequeñas y medianas empresas</b>: Organizaciones que automatizan flujos documentales (facturas, contratos, correspondencia) sin presupuesto para soluciones enterprise o infraestructura GPU.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Desarrolladores de software</b>: Quienes integran OCR en aplicaciones con restricciones de recursos, como dispositivos móviles o servidores compartidos, y necesitan maximizar el rendimiento sin costes adicionales de hardware.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Estructura del trabajo</span></h2>
<p class="MsoNormal"><span lang="ES">El presente documento se organiza en los siguientes capítulos:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Capítulo 2 - Contexto y Estado del Arte</b>: Se presenta una revisión de las tecnologías OCR basadas en aprendizaje profundo, incluyendo las arquitecturas de detección y reconocimiento de texto, así como los trabajos previos en optimización de estos sistemas.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Capítulo 3 - Objetivos y Metodología</b>: Se definen los objetivos SMART del trabajo y se describe la metodología experimental seguida, incluyendo la preparación del dataset, las métricas de evaluación y el proceso de optimización con Ray Tune.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Capítulo 4 - Desarrollo Específico de la Contribución</b>: Este capítulo presenta el desarrollo completo del estudio comparativo y la optimización de hiperparámetros de sistemas OCR, estructurado en tres secciones: (4.1) planteamiento de la comparativa con la evaluación de EasyOCR, PaddleOCR y DocTR; (4.2) desarrollo de la comparativa con la optimización de hiperparámetros mediante Ray Tune; y (4.3) discusión y análisis de resultados.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Capítulo 5 - Conclusiones y Trabajo Futuro</b>: Se resumen las contribuciones del trabajo, se discute el grado de cumplimiento de los objetivos y se proponen líneas de trabajo futuro.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Anexos</b>: Se incluye el enlace al repositorio de código fuente y datos, así como tablas completas de resultados experimentales.</span></p><h1 style="mso-list:l22 level1 lfo18"><span style="mso-bookmark:_Toc14106979"><span style="mso-bookmark:_Toc437515557"><a name="_Toc147741195"></a><a name="_Toc160619809"><span style="mso-bookmark:_Toc147741195"><?if !supportLists?><span lang="ES" style='mso-fareast-font-family:"Calibri Light";mso-fareast-theme-font:
major-latin;mso-bidi-font-family:"Calibri Light";mso-bidi-theme-font:major-latin;
text-transform:none'><span style="mso-list:Ignore">2.<span style='font:7.0pt "Times New Roman"'>  
</span></span></span><?endif?><span lang="ES" style="text-transform:none">Contexto
y estado del arte</span></span></a></span></span><span style="mso-bookmark:
_Toc14106979"><span style="mso-bookmark:_Toc437515557"><span lang="ES" style="text-transform:none"><o:p></o:p></span></span></span></h1><p class="MsoNormal"><span lang="ES">Este capítulo presenta el marco teórico y tecnológico en el que se desarrolla el presente trabajo. Se revisan los fundamentos del Reconocimiento Óptico de Caracteres (OCR), la evolución de las técnicas basadas en aprendizaje profundo, las principales soluciones de código abierto disponibles y los trabajos previos relacionados con la optimización de sistemas OCR.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Contexto del problema</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Definición y Evolución Histórica del OCR</span></h3>
<p class="MsoNormal"><span lang="ES">El Reconocimiento Óptico de Caracteres (OCR) es el proceso de conversión de imágenes de texto manuscrito, mecanografiado o impreso en texto codificado digitalmente. Esta tecnología permite la digitalización masiva de documentos, facilitando su búsqueda, edición y almacenamiento electrónico. La tecnología OCR ha evolucionado significativamente desde sus orígenes en la década de 1950, atravesando cuatro generaciones claramente diferenciadas:</span></p>
<h4><span lang="ES">Primera Generación (1950-1970): Sistemas basados en plantillas</span></h4>
<p class="MsoNormal"><span lang="ES">Los primeros sistemas OCR surgieron en la década de 1950 con el objetivo de automatizar la lectura de documentos bancarios y postales. Estos sistemas utilizaban técnicas de correspondencia de plantillas (<i>template matching</i>), donde cada carácter de entrada se comparaba píxel a píxel con un conjunto predefinido de plantillas (Mori et al., 1992).</span></p>
<p class="MsoNormal"><span lang="ES">Las principales limitaciones de esta generación incluían:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Dependencia de fuentes tipográficas específicas (OCR-A, OCR-B)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Incapacidad para manejar variaciones en tamaño, rotación o estilo</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Alto coste computacional para la época</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Sensibilidad extrema al ruido y degradación de la imagen</span></p>
<p class="MsoNormal"><span lang="ES">A pesar de sus limitaciones, estos sistemas sentaron las bases para el desarrollo posterior del campo y demostraron la viabilidad comercial del reconocimiento automático de texto.</span></p>
<h4><span lang="ES">Segunda Generación (1970-1990): Extracción de características</span></h4>
<p class="MsoNormal"><span lang="ES">La segunda generación introdujo técnicas más sofisticadas basadas en la extracción de características geométricas y estructurales de los caracteres. En lugar de comparar imágenes completas, estos sistemas extraían propiedades como:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Número y posición de trazos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Proporciones geométricas (altura, anchura, relación de aspecto)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Momentos estadísticos de la distribución de píxeles</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Características topológicas (bucles, intersecciones, terminaciones)</span></p>
<p class="MsoNormal"><span lang="ES">Los clasificadores estadísticos, como el análisis discriminante lineal y los k-vecinos más cercanos (k-NN), se utilizaban para asignar cada vector de características a una clase de carácter (Trier et al., 1996). Esta aproximación permitió mayor robustez frente a variaciones tipográficas, aunque seguía requiriendo un diseño manual cuidadoso de las características a extraer.</span></p>
<h4><span lang="ES">Tercera Generación (1990-2010): Redes neuronales y modelos probabilísticos</span></h4>
<p class="MsoNormal"><span lang="ES">La tercera generación marcó la introducción de técnicas de aprendizaje automático más avanzadas. Los Modelos Ocultos de Markov (HMM) se convirtieron en el estándar para el reconocimiento de secuencias de caracteres, especialmente en el reconocimiento de escritura manuscrita (Plamondon &amp; Srihari, 2000).</span></p>
<p class="MsoNormal"><span lang="ES">Las Redes Neuronales Artificiales (ANN) también ganaron popularidad en esta época, con arquitecturas como el Perceptrón Multicapa (MLP) demostrando capacidades superiores de generalización. El trabajo seminal de LeCun et al. (1998) con las redes convolucionales (CNN) para el reconocimiento de dígitos manuscritos (dataset MNIST) estableció los fundamentos para la siguiente revolución.</span></p>
<p class="MsoNormal"><span lang="ES">Las características de esta generación incluían:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Aprendizaje automático de características discriminativas</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Modelado probabilístico de secuencias de caracteres</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Mayor robustez frente a ruido y degradación</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Capacidad de incorporar conocimiento lingüístico mediante modelos de lenguaje</span></p>
<h4><span lang="ES">Cuarta Generación (2010-presente): Aprendizaje profundo</span></h4>
<p class="MsoNormal"><span lang="ES">La cuarta y actual generación está dominada por arquitecturas de aprendizaje profundo que han superado ampliamente el rendimiento de los métodos tradicionales. Los avances clave incluyen:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Redes Convolucionales Profundas (Deep CNNs)</b>: Arquitecturas como VGGNet, ResNet e Inception permiten la extracción automática de características jerárquicas a múltiples escalas, eliminando la necesidad de diseño manual de características (Krizhevsky et al., 2012).</span></p>
<p class="MsoNormal"><span lang="ES"><b>Redes Recurrentes (RNN/LSTM)</b>: Las redes Long Short-Term Memory (LSTM) permiten modelar dependencias a largo plazo en secuencias de caracteres, siendo fundamentales para el reconocimiento de texto de longitud variable (Graves et al., 2009).</span></p>
<p class="MsoNormal"><span lang="ES"><b>Mecanismos de Atención y Transformers</b>: La arquitectura Transformer (Vaswani et al., 2017) y sus variantes han revolucionado el procesamiento de secuencias, permitiendo capturar relaciones globales sin las limitaciones de las RNN. Modelos como TrOCR (Li et al., 2023) representan el estado del arte actual.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Connectionist Temporal Classification (CTC)</b>: La función de pérdida CTC (Graves et al., 2006) permite entrenar modelos de reconocimiento de secuencias sin necesidad de alineamiento carácter por carácter, simplificando enormemente el proceso de entrenamiento.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Pipeline Moderno de OCR</span></h3>
<p class="MsoNormal"><span lang="ES">Los sistemas OCR modernos siguen típicamente un pipeline de dos etapas principales, precedidas opcionalmente por una fase de preprocesamiento:</span></p>
<a name="_Ref_Fig1"></a><p class="MsoCaption" style="text-align:center"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Figura <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Figura \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->1<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Pipeline de un sistema OCR moderno</span></i></p>
<p class="MsoNormal" style="text-align:center"><span lang="ES"><img alt="Pipeline de un sistema OCR moderno" src="figures/figura_1.png" style="width:12cm;max-width:100%"/></span></p>
<p class="Piedefoto-tabla" style="margin-left:0cm;text-align:center"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Etapa de Preprocesamiento</span></h4>
<p class="MsoNormal"><span lang="ES">Antes de la detección, muchos sistemas aplican técnicas de preprocesamiento para mejorar la calidad de la imagen de entrada:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Binarización</b>: Conversión a imagen binaria (blanco/negro) mediante técnicas como Otsu o Sauvola</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Corrección de inclinación (deskewing)</b>: Alineamiento horizontal del texto</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Eliminación de ruido</b>: Filtros morfológicos y de suavizado</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Normalización de contraste</b>: Mejora de la legibilidad mediante ecualización de histograma</span></p>
<h4><span lang="ES">Etapa 1: Detección de Texto (Text Detection)</span></h4>
<p class="MsoNormal"><span lang="ES">La detección de texto tiene como objetivo localizar todas las regiones de una imagen que contienen texto. Esta tarea es particularmente desafiante debido a la variabilidad en:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Tamaño y orientación del texto</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Fondos complejos y oclusiones parciales</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Texto curvo o deformado</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Múltiples idiomas y scripts en una misma imagen</span></p>
<p class="MsoNormal"><span lang="ES">Las arquitecturas más utilizadas para detección de texto incluyen:</span></p>
<p class="MsoNormal"><span lang="ES"><b>EAST (Efficient and Accurate Scene Text Detector)</b>: Propuesto por Zhou et al. (2017), EAST es un detector de una sola etapa que predice directamente cuadriláteros rotados o polígonos que encierran el texto. Su arquitectura FCN (Fully Convolutional Network) permite procesamiento eficiente de imágenes de alta resolución.</span></p>
<p class="MsoNormal"><span lang="ES"><b>CRAFT (Character Region Awareness for Text Detection)</b>: Desarrollado por Baek et al. (2019), CRAFT detecta regiones de caracteres individuales y las agrupa en palabras mediante el análisis de mapas de afinidad. Esta aproximación bottom-up es especialmente efectiva para texto con espaciado irregular.</span></p>
<p class="MsoNormal"><span lang="ES"><b>DB (Differentiable Binarization)</b>: Propuesto por Liao et al. (2020), DB introduce una operación de binarización diferenciable que permite entrenar end-to-end un detector de texto basado en segmentación. Esta arquitectura es la utilizada por PaddleOCR y destaca por su velocidad y precisión.</span></p>
<a name="_Ref_Tab4"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->4<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 1. Comparativa de arquitecturas de detección de texto.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Arquitectura</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tipo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Salida</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Fortalezas</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Limitaciones</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">EAST</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Single-shot</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Cuadriláteros rotados</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Rápido, simple</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Dificultad con texto curvo</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CRAFT</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Bottom-up</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Polígonos de palabra</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Robusto a espaciado</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Mayor coste computacional</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">DB</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Segmentación</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Polígonos arbitrarios</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Rápido, preciso</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sensible a parámetros</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Etapa 2: Reconocimiento de Texto (Text Recognition)</span></h4>
<p class="MsoNormal"><span lang="ES">Una vez detectadas las regiones de texto, la etapa de reconocimiento transcribe el contenido visual a texto digital. Las arquitecturas predominantes son:</span></p>
<p class="MsoNormal"><span lang="ES"><b>CRNN (Convolutional Recurrent Neural Network)</b>: Propuesta por Shi et al. (2016), CRNN combina una CNN para extracción de características visuales con una RNN bidireccional (típicamente LSTM) para modelado de secuencias, entrenada con pérdida CTC. Esta arquitectura estableció el paradigma encoder-decoder que domina el campo.</span></p>
<p class="MsoNormal"><span lang="ES">La arquitectura CRNN consta de tres componentes:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Capas convolucionales</b>: Extraen características visuales de la imagen de entrada</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span><b>Capas recurrentes</b>: Modelan las dependencias secuenciales entre características</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span><b>Capa de transcripción</b>: Convierte las predicciones de la RNN en secuencias de caracteres mediante CTC</span></p>
<p class="MsoNormal"><span lang="ES"><b>SVTR (Scene-Text Visual Transformer Recognition)</b>: Desarrollado por Du et al. (2022), SVTR aplica la arquitectura Transformer al reconocimiento de texto, utilizando parches de imagen como tokens de entrada. Esta aproximación elimina la necesidad de RNN y permite capturar dependencias globales de manera más eficiente.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Arquitecturas con Atención</b>: Los modelos encoder-decoder con mecanismos de atención (Bahdanau et al., 2015) permiten al decodificador "enfocarse" en diferentes partes de la imagen mientras genera cada carácter. Esto es especialmente útil para texto largo o con layouts complejos.</span></p>
<p class="MsoNormal"><span lang="ES"><b>TrOCR (Transformer-based OCR)</b>: Propuesto por Li et al. (2023), TrOCR utiliza un Vision Transformer (ViT) como encoder y un Transformer de lenguaje como decoder, logrando resultados estado del arte en múltiples benchmarks.</span></p>
<a name="_Ref_Tab5"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->5<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 2. Comparativa de arquitecturas de reconocimiento de texto.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Arquitectura</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Encoder</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Decoder</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Pérdida</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Características</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CRNN</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CNN</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">BiLSTM</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CTC</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Rápido, robusto</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">SVTR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">ViT</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Linear</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CTC</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sin recurrencia</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Attention-based</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CNN</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">LSTM+Attn</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Cross-entropy</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Flexible longitud</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">TrOCR</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">ViT</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Transformer</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Cross-entropy</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Estado del arte</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Métricas de Evaluación</span></h3>
<p class="MsoNormal"><span lang="ES">La evaluación rigurosa de sistemas OCR requiere métricas estandarizadas que permitan comparaciones objetivas. Las métricas fundamentales se basan en la distancia de edición de Levenshtein.</span></p>
<h4><span lang="ES">Distancia de Levenshtein</span></h4>
<p class="MsoNormal"><span lang="ES">La distancia de Levenshtein (Levenshtein, 1966) entre dos cadenas es el número mínimo de operaciones de edición (inserción, eliminación, sustitución) necesarias para transformar una cadena en otra. Formalmente, para dos cadenas <i>a</i> y <i>b</i>:</span></p>
<p class="MsoNormal"><span lang="ES">$$d(a,b) = \min(\text{inserciones} + \text{eliminaciones} + \text{sustituciones})$$</span></p>
<p class="MsoNormal"><span lang="ES">Esta métrica es fundamental para calcular tanto CER como WER.</span></p>
<h4><span lang="ES">Character Error Rate (CER)</span></h4>
<p class="MsoNormal"><span lang="ES">El CER mide el error a nivel de carácter y se calcula como:</span></p>
<p class="MsoNormal"><span lang="ES">$$CER = \frac{S + D + I}{N}$$</span></p>
<p class="MsoNormal"><span lang="ES">Donde:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">S = número de sustituciones de caracteres</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">D = número de eliminaciones de caracteres</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">I = número de inserciones de caracteres</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">N = número total de caracteres en el texto de referencia</span></p>
<p class="MsoNormal"><span lang="ES">Un CER del 1% indica que, en promedio, 1 de cada 100 caracteres contiene un error. Para aplicaciones críticas como:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Documentos financieros</b>: Se requiere CER &lt; 0.1%</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Documentos médicos</b>: Se requiere CER &lt; 0.5%</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Documentos académicos</b>: CER &lt; 2% es aceptable</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Búsqueda y archivo</b>: CER &lt; 5% puede ser suficiente</span></p>
<h4><span lang="ES">Word Error Rate (WER)</span></h4>
<p class="MsoNormal"><span lang="ES">El WER mide el error a nivel de palabra, utilizando la misma fórmula pero considerando palabras como unidades:</span></p>
<p class="MsoNormal"><span lang="ES">$$WER = \frac{S_w + D_w + I_w}{N_w}$$</span></p>
<p class="MsoNormal"><span lang="ES">El WER es generalmente mayor que el CER, ya que un solo error de carácter puede invalidar una palabra completa. La relación típica es WER ≈ 2-3 × CER para texto en español.</span></p>
<h4><span lang="ES">Otras Métricas Complementarias</span></h4>
<p class="MsoNormal"><span lang="ES"><b>Precision y Recall a nivel de palabra</b>: Útiles cuando se evalúa la capacidad del sistema para detectar palabras específicas.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Bag-of-Words Accuracy</b>: Mide la proporción de palabras correctamente reconocidas independientemente de su orden.</span></p>
<p class="MsoNormal"><span lang="ES"><b>BLEU Score</b>: Adaptado de traducción automática, mide la similitud entre el texto predicho y la referencia considerando n-gramas.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Particularidades del OCR para el Idioma Español</span></h3>
<p class="MsoNormal"><span lang="ES">El español, como lengua romance, presenta características específicas que impactan el rendimiento de los sistemas OCR:</span></p>
<h4><span lang="ES">Características Ortográficas</span></h4>
<p class="MsoNormal"><span lang="ES"><b>Caracteres especiales</b>: El español incluye caracteres no presentes en el alfabeto inglés básico:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">La letra eñe (ñ, Ñ)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Vocales acentuadas (á, é, í, ó, ú, Á, É, Í, Ó, Ú)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Diéresis sobre u (ü, Ü)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Signos de puntuación invertidos (¿, ¡)</span></p>
<p class="MsoNormal"><span lang="ES">Estos caracteres requieren que los modelos OCR incluyan dichos símbolos en su vocabulario de salida y que el entrenamiento incluya suficientes ejemplos de cada uno.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Diacríticos y acentos</b>: Los acentos gráficos del español son elementos pequeños que pueden confundirse fácilmente con ruido, artefactos de imagen o signos de puntuación. La distinción entre vocales acentuadas y no acentuadas es crucial para el significado (e.g., "él" vs "el", "más" vs "mas").</span></p>
<h4><span lang="ES">Características Lingüísticas</span></h4>
<p class="MsoNormal"><span lang="ES"><b>Longitud de palabras</b>: Las palabras en español tienden a ser más largas que en inglés debido a la morfología flexiva rica (conjugaciones verbales, géneros, plurales). Esto puede aumentar la probabilidad de error acumulativo.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Vocabulario</b>: El español tiene un vocabulario amplio con muchas variantes morfológicas de cada raíz. Los modelos de lenguaje utilizados para post-corrección deben contemplar esta diversidad.</span></p>
<h4><span lang="ES">Recursos y Datasets</span></h4>
<p class="MsoNormal"><span lang="ES">Los recursos disponibles para OCR en español son significativamente menores que para inglés o chino:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Menor cantidad de datasets etiquetados de gran escala</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Menos modelos preentrenados específicos para español</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Documentación y tutoriales predominantemente en inglés</span></p>
<p class="MsoNormal"><span lang="ES">Esta escasez de recursos específicos para español motiva la necesidad de técnicas de adaptación como la optimización de hiperparámetros explorada en este trabajo.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Estado del arte</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Soluciones OCR de Código Abierto</span></h3>
<p class="MsoNormal"><span lang="ES">En los últimos años han surgido varias soluciones OCR de código abierto que democratizan el acceso a esta tecnología. A continuación se analizan en detalle las tres principales alternativas evaluadas en este trabajo.</span></p>
<h4><span lang="ES">EasyOCR</span></h4>
<p class="MsoNormal"><span lang="ES">EasyOCR es una biblioteca de OCR desarrollada por Jaided AI (2020) con el objetivo de proporcionar una solución de fácil uso que soporte múltiples idiomas. Actualmente soporta más de 80 idiomas, incluyendo español.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Arquitectura técnica</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Detector</b>: CRAFT (Character Region Awareness for Text Detection)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Reconocedor</b>: CRNN con backbone ResNet/VGG + BiLSTM + CTC</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Modelos preentrenados</b>: Disponibles para descarga automática</span></p>
<p class="MsoNormal"><span lang="ES"><b>Características principales</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">API simple de una línea para casos de uso básicos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Soporte para GPU (CUDA) y CPU</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Reconocimiento de múltiples idiomas en una misma imagen</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Bajo consumo de memoria comparado con otras soluciones</span></p>
<p class="MsoNormal"><span lang="ES"><b>Limitaciones identificadas</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Opciones de configuración limitadas (pocos hiperparámetros ajustables)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Menor precisión en documentos con layouts complejos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Actualizaciones menos frecuentes que otras alternativas</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Documentación menos exhaustiva</span></p>
<p class="MsoNormal"><span lang="ES"><b>Caso de uso ideal</b>: Prototipado rápido, aplicaciones con restricciones de memoria, proyectos que requieren soporte multilingüe inmediato.</span></p>
<h4><span lang="ES">PaddleOCR</span></h4>
<p class="MsoNormal"><span lang="ES">PaddleOCR es el sistema OCR desarrollado por Baidu como parte del ecosistema PaddlePaddle (2024). Representa una de las soluciones más completas y activamente mantenidas en el ecosistema de código abierto. La versión PP-OCRv5, utilizada en este trabajo, incorpora los últimos avances en el campo.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Arquitectura técnica</b>:</span></p>
<p class="MsoNormal"><span lang="ES">El pipeline de PaddleOCR consta de tres módulos principales:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Detector de texto (DB - Differentiable Binarization)</b>:</span></p>
<p class="MsoNormal"><span lang="ES"> - Backbone: ResNet18/ResNet50 - Neck: FPN (Feature Pyramid Network) - Head: Segmentación con binarización diferenciable - Salida: Polígonos que encierran regiones de texto</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Clasificador de orientación</b>:</span></p>
<p class="MsoNormal"><span lang="ES"> - Determina si el texto está rotado 0° o 180° - Permite corrección automática de texto invertido - Opcional pero recomendado para documentos escaneados</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Reconocedor de texto (SVTR)</b>:</span></p>
<p class="MsoNormal"><span lang="ES"> - Encoder: Vision Transformer modificado - Decoder: CTC o Attention-based - Vocabulario: Configurable por idioma</span></p>
<p class="MsoNormal"><span lang="ES"><b>Hiperparámetros configurables</b>:</span></p>
<p class="MsoNormal"><span lang="ES">PaddleOCR expone numerosos hiperparámetros que permiten ajustar el comportamiento del sistema. Los más relevantes para este trabajo son:</span></p>
<a name="_Ref_Tab6"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->6<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 3. Hiperparámetros de detección de PaddleOCR.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Descripción</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Rango</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Defecto</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral de probabilidad para píxeles de texto</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[0.0, 1.0]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.3</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_box_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral de confianza para cajas detectadas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[0.0, 1.0]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.6</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Factor de expansión de cajas detectadas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[0.0, 3.0]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.5</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_limit_side_len</span></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tamaño máximo del lado de imagen</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[320, 2560]</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">960</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<a name="_Ref_Tab7"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->7<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 4. Hiperparámetros de reconocimiento de PaddleOCR.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Descripción</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Rango</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Defecto</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_rec_score_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral de confianza para resultados</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[0.0, 1.0]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.5</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_textline_orientation</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Activar clasificación de orientación de línea</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">{True, False}</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">rec_batch_size</span></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tamaño de batch para reconocimiento</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[1, 64]</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">6</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<a name="_Ref_Tab8"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->8<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 5. Hiperparámetros de preprocesamiento de PaddleOCR.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Descripción</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Impacto</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_orientation_classify</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Clasificación de orientación del documento</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alto para documentos escaneados</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_unwarping</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Corrección de deformación/curvatura</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alto para fotos de documentos</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_angle_cls</span></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Clasificador de ángulo 0°/180°</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Medio para documentos rotados</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Fortalezas de PaddleOCR</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Alta precisión en múltiples benchmarks</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Pipeline altamente configurable</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Modelos optimizados para servidor (mayor precisión) y móvil (mayor velocidad)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Documentación exhaustiva (aunque principalmente en chino)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Comunidad activa y actualizaciones frecuentes</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Soporte para entrenamiento personalizado (fine-tuning)</span></p>
<p class="MsoNormal"><span lang="ES"><b>Limitaciones</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Dependencia del framework PaddlePaddle (menos popular que PyTorch/TensorFlow)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Curva de aprendizaje más pronunciada</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Documentación en inglés menos completa que en chino</span></p>
<h4><span lang="ES">DocTR</span></h4>
<p class="MsoNormal"><span lang="ES">DocTR (Document Text Recognition) es una biblioteca desarrollada por Mindee (2021), empresa especializada en procesamiento inteligente de documentos. Está orientada a la comunidad de investigación y ofrece una API limpia basada en TensorFlow/PyTorch.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Arquitectura técnica</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Detectores disponibles</b>: DB (db_resnet50), LinkNet (linknet_resnet18)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Reconocedores disponibles</b>: CRNN (crnn_vgg16_bn), SAR (sar_resnet31), ViTSTR (vitstr_small)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Framework</b>: TensorFlow 2.x o PyTorch</span></p>
<p class="MsoNormal"><span lang="ES"><b>Características principales</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">API Pythonic bien diseñada</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Salida estructurada con información de confianza y geometría</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Integración nativa con Hugging Face Hub</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Documentación orientada a investigación</span></p>
<p class="MsoNormal"><span lang="ES"><b>Limitaciones identificadas</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Menor rendimiento en español comparado con PaddleOCR según pruebas preliminares</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Comunidad más pequeña</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Menos opciones de modelos preentrenados para idiomas no ingleses</span></p>
<h4><span lang="ES">Comparativa Detallada de Soluciones</span></h4>
<a name="_Ref_Tab9"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->9<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 6. Comparativa técnica de soluciones OCR de código abierto.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Aspecto</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">EasyOCR</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">PaddleOCR</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">DocTR</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Framework</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PyTorch</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddlePaddle</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">TF/PyTorch</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Detector</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CRAFT</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">DB</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">DB/LinkNet</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Reconocedor</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CRNN</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">SVTR/CRNN</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CRNN/SAR/ViTSTR</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Idiomas</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">80+</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">80+</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">9</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Configurabilidad</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Baja</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alta</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Media</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Documentación</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Media</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alta (CN)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alta (EN)</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Actividad</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Media</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<a name="_Ref_Tab10"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->10<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 7. Comparativa de facilidad de uso.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Aspecto</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">EasyOCR</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">PaddleOCR</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">DocTR</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Instalación</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">pip install</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">pip install</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">pip install</span></span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Líneas para OCR básico</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">6</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">GPU requerida</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Opcional</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Opcional</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Opcional</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Memoria mínima</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2 GB</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">4 GB</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">4 GB</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Optimización de Hiperparámetros</span></h3>
<h4><span lang="ES">Fundamentos Teóricos</span></h4>
<p class="MsoNormal"><span lang="ES">La optimización de hiperparámetros (HPO, <i>Hyperparameter Optimization</i>) es el proceso de encontrar la configuración óptima de los parámetros que controlan el proceso de aprendizaje o inferencia de un modelo, pero que no se aprenden directamente de los datos (Feurer &amp; Hutter, 2019).</span></p>
<p class="MsoNormal"><span lang="ES">A diferencia de los parámetros del modelo (como los pesos de una red neuronal), los hiperparámetros se establecen antes del entrenamiento e incluyen:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Tasa de aprendizaje, tamaño de batch, número de épocas</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Arquitectura del modelo (número de capas, unidades por capa)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Parámetros de regularización (dropout, weight decay)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Umbrales de decisión en tiempo de inferencia</b> (relevante para este trabajo)</span></p>
<p class="MsoNormal"><span lang="ES">El problema de HPO puede formalizarse como:</span></p>
<p class="MsoNormal"><span lang="ES">$$\lambda^* = \arg\min_{\lambda \in \Lambda} \mathcal{L}(M_\lambda, D_{val})$$</span></p>
<p class="MsoNormal"><span lang="ES">Donde:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">$\lambda$ es un vector de hiperparámetros</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">$\Lambda$ es el espacio de búsqueda</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">$M_\lambda$ es el modelo configurado con $\lambda$</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">$\mathcal{L}$ es la función de pérdida</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">$D_{val}$ es el conjunto de validación</span></p>
<h4><span lang="ES">Métodos de Optimización</span></h4>
<p class="MsoNormal"><span lang="ES"><b>Grid Search (Búsqueda en rejilla)</b>:</span></p>
<p class="MsoNormal"><span lang="ES">El método más simple consiste en evaluar todas las combinaciones posibles de valores discretizados de los hiperparámetros. Para $k$ hiperparámetros con $n$ valores cada uno, requiere $n^k$ evaluaciones.</span></p>
<p class="MsoNormal"><span lang="ES">Ventajas:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Exhaustivo y reproducible</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Fácil de paralelizar</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Garantiza encontrar el óptimo dentro de la rejilla</span></p>
<p class="MsoNormal"><span lang="ES">Desventajas:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Coste exponencial con el número de hiperparámetros</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Ineficiente si algunos hiperparámetros son más importantes que otros</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">No aprovecha información de evaluaciones previas</span></p>
<p class="MsoNormal"><span lang="ES"><b>Random Search (Búsqueda aleatoria)</b>:</span></p>
<p class="MsoNormal"><span lang="ES">Propuesto por Bergstra &amp; Bengio (2012), Random Search muestrea configuraciones aleatoriamente del espacio de búsqueda. Sorprendentemente, supera a Grid Search en muchos escenarios prácticos.</span></p>
<p class="MsoNormal"><span lang="ES">La intuición es que, cuando solo algunos hiperparámetros son importantes, Random Search explora más valores de estos parámetros críticos mientras Grid Search desperdicia evaluaciones variando parámetros irrelevantes.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Optimización Bayesiana</b>:</span></p>
<p class="MsoNormal"><span lang="ES">La optimización bayesiana modela la función objetivo mediante un modelo probabilístico sustituto (<i>surrogate model</i>) y utiliza una función de adquisición para decidir qué configuración evaluar a continuación (Bergstra et al., 2011).</span></p>
<p class="MsoNormal"><span lang="ES">El proceso iterativo es:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>Ajustar el modelo sustituto a las observaciones actuales</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span>Optimizar la función de adquisición para seleccionar el siguiente punto</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span>Evaluar la función objetivo en el punto seleccionado</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">4.<span style="font-size:7pt">   </span>Actualizar las observaciones y repetir</span></p>
<p class="MsoNormal"><span lang="ES">Los modelos sustitutos más comunes son:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Procesos Gaussianos (GP)</b>: Proporcionan incertidumbre bien calibrada pero escalan pobremente</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Random Forests</b>: Manejan bien espacios de alta dimensión y variables categóricas</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Tree-structured Parzen Estimator (TPE)</b>: Modela densidades en lugar de la función objetivo</span></p>
<h4><span lang="ES">Tree-structured Parzen Estimator (TPE)</span></h4>
<p class="MsoNormal"><span lang="ES">TPE, propuesto por Bergstra et al. (2011) e implementado en Optuna, es particularmente efectivo para HPO. En lugar de modelar $p(y|\lambda)$ directamente, TPE modela:</span></p>
<p class="MsoNormal"><span lang="ES">$$p(\lambda|y) = \begin{cases} l(\lambda) &amp; \text{si } y &lt; y^<i> \\ g(\lambda) &amp; \text{si } y \geq y^</i> \end{cases}$$</span></p>
<p class="MsoNormal"><span lang="ES">Donde $y^*$ es un umbral (típicamente el percentil 15-25 de las observaciones), $l(\lambda)$ es la densidad de hiperparámetros con buen rendimiento, y $g(\lambda)$ es la densidad de hiperparámetros con mal rendimiento.</span></p>
<p class="MsoNormal"><span lang="ES">La función de adquisición Expected Improvement se aproxima como:</span></p>
<p class="MsoNormal"><span lang="ES">$$EI(\lambda) \propto \frac{l(\lambda)}{g(\lambda)}$$</span></p>
<p class="MsoNormal"><span lang="ES">Configuraciones con alta probabilidad bajo $l$ y baja probabilidad bajo $g$ tienen mayor Expected Improvement.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Ventajas de TPE</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Maneja naturalmente espacios condicionales (hiperparámetros que dependen de otros)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Eficiente para espacios de alta dimensión</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">No requiere derivadas de la función objetivo</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Implementación eficiente en Optuna</span></p>
<h4><span lang="ES">Ray Tune</span></h4>
<p class="MsoNormal"><span lang="ES">Ray Tune (Liaw et al., 2018) es un framework de optimización de hiperparámetros escalable construido sobre Ray, un sistema de computación distribuida. Sus características principales incluyen:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Escalabilidad</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Ejecución paralela de múltiples trials</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Distribución automática en clusters</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Soporte para recursos heterogéneos (CPU/GPU)</span></p>
<p class="MsoNormal"><span lang="ES"><b>Flexibilidad</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Integración con múltiples algoritmos de búsqueda (Optuna, HyperOpt, Ax, etc.)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Schedulers avanzados (ASHA, PBT, BOHB)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Checkpointing y recuperación de fallos</span></p>
<p class="MsoNormal"><span lang="ES"><b>Early Stopping</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">ASHA (Asynchronous Successive Halving Algorithm): Termina trials poco prometedores</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">PBT (Population-Based Training): Evoluciona hiperparámetros durante el entrenamiento</span></p>
<p class="MsoNormal"><span lang="ES"><b>Integración con Optuna</b>:</span></p>
<p class="MsoNormal"><span lang="ES">La combinación de Ray Tune con OptunaSearch permite:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>Utilizar TPE como algoritmo de búsqueda</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span>Paralelizar la evaluación de trials</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span>Beneficiarse de la infraestructura de Ray para distribución</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">4.<span style="font-size:7pt">   </span>Acceder a las visualizaciones de Optuna</span></p>
<a name="_Ref_Fig2"></a><p class="MsoCaption" style="text-align:center"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Figura <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Figura \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->2<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Ciclo de optimización con Ray Tune y Optuna</span></i></p>
<p class="MsoNormal" style="text-align:center"><span lang="ES"><img alt="Ciclo de optimización con Ray Tune y Optuna" src="figures/figura_2.png" style="width:12cm;max-width:100%"/></span></p>
<p class="Piedefoto-tabla" style="margin-left:0cm;text-align:center"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">HPO en Sistemas OCR</span></h4>
<p class="MsoNormal"><span lang="ES">La aplicación de HPO a sistemas OCR ha sido explorada en varios contextos:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Optimización de preprocesamiento</b>:</span></p>
<p class="MsoNormal"><span lang="ES">Liang et al. (2005) propusieron optimizar parámetros de binarización adaptativa para mejorar el OCR de documentos degradados. Los parámetros optimizados incluían tamaño de ventana, factor de corrección y umbral local.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Optimización de arquitectura</b>:</span></p>
<p class="MsoNormal"><span lang="ES">Breuel (2013) exploró la selección automática de arquitecturas de red para reconocimiento de texto manuscrito, optimizando número de capas, unidades y tipo de activación.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Optimización de post-procesamiento</b>:</span></p>
<p class="MsoNormal"><span lang="ES">Schulz &amp; Kuhn (2017) optimizaron parámetros de modelos de lenguaje para corrección de errores OCR, incluyendo pesos de interpolación entre modelos de caracteres y palabras.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Vacío en la literatura</b>:</span></p>
<p class="MsoNormal"><span lang="ES">A pesar de estos trabajos, existe un vacío significativo respecto a la optimización sistemática de hiperparámetros de inferencia en pipelines OCR modernos como PaddleOCR. La mayoría de trabajos se centran en:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Entrenamiento de modelos (fine-tuning)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Preprocesamiento de imagen</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Post-procesamiento lingüístico</span></p>
<p class="MsoNormal"><span lang="ES">La optimización de umbrales de detección y reconocimiento en tiempo de inferencia ha recibido poca atención, especialmente para idiomas diferentes del inglés y chino.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Datasets y Benchmarks para Español</span></h3>
<h4><span lang="ES">Datasets Públicos</span></h4>
<p class="MsoNormal"><span lang="ES">Los principales recursos para evaluación de OCR en español incluyen:</span></p>
<p class="MsoNormal"><span lang="ES"><b>FUNSD-ES</b>: Versión en español del Form Understanding in Noisy Scanned Documents dataset. Contiene formularios escaneados con anotaciones de texto y estructura.</span></p>
<p class="MsoNormal"><span lang="ES"><b>MLT (ICDAR Multi-Language Text)</b>: Dataset multilingüe de las competiciones ICDAR que incluye muestras en español. Las ediciones 2017 y 2019 contienen texto en escenas naturales.</span></p>
<p class="MsoNormal"><span lang="ES"><b>XFUND</b>: Dataset de comprensión de formularios en múltiples idiomas, incluyendo español, con anotaciones de entidades y relaciones.</span></p>
<a name="_Ref_Tab11"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->11<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 8. Datasets públicos con contenido en español.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Dataset</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tipo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Idiomas</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tamaño</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Uso principal</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">FUNSD-ES</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Formularios</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">ES</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~200 docs</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Document understanding</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">MLT 2019</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Escenas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Multi (incl. ES)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">10K imgs</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Text detection</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">XFUND</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Formularios</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">7 (incl. ES)</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.4K docs</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Information extraction</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Limitaciones de Recursos para Español</span></h4>
<p class="MsoNormal"><span lang="ES">Comparado con inglés y chino, el español cuenta con:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Menor cantidad de datasets etiquetados de gran escala</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Menos benchmarks estandarizados</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Menor representación en competiciones internacionales (ICDAR)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Pocos modelos preentrenados específicos</span></p>
<p class="MsoNormal"><span lang="ES">Esta escasez de recursos específicos para español motivó la creación de un dataset propio basado en documentos académicos de UNIR para este trabajo.</span></p>
<h4><span lang="ES">Trabajos Previos en OCR para Español</span></h4>
<p class="MsoNormal"><span lang="ES">Los trabajos previos en OCR para español se han centrado principalmente en:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Digitalización de archivos históricos</b>: Múltiples proyectos han abordado el reconocimiento de manuscritos coloniales y documentos históricos en español, utilizando técnicas de HTR (Handwritten Text Recognition) adaptadas (Romero et al., 2013).</span></p>
<p class="MsoNormal"><span lang="ES"><b>Procesamiento de documentos de identidad</b>: Sistemas OCR especializados para DNI, pasaportes y documentos oficiales españoles y latinoamericanos (Bulatov et al., 2020).</span></p>
<p class="MsoNormal"><span lang="ES"><b>Reconocimiento de texto en escenas</b>: Participaciones en competiciones ICDAR para detección y reconocimiento de texto en español en imágenes naturales.</span></p>
<a name="_Ref_Tab12"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->12<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 9. Trabajos previos relevantes en OCR para español.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Trabajo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Enfoque</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Contribución</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Romero et al. (2013)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">HTR histórico</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Modelos HMM para manuscritos</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Bulatov et al. (2020)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Documentos ID</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Pipeline especializado</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Fischer et al. (2012)</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Multilingual</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Transferencia entre idiomas</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">La optimización de hiperparámetros para documentos académicos en español representa una contribución original de este trabajo, abordando un nicho no explorado en la literatura.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Conclusiones del capítulo</span></h2>
<p class="MsoNormal"><span lang="ES">Este capítulo ha presentado el marco teórico y tecnológico necesario para contextualizar la contribución del presente trabajo:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Evolución del OCR</b>: Se ha trazado la evolución desde los sistemas de plantillas hasta las arquitecturas de aprendizaje profundo actuales, destacando los avances clave en cada generación.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Pipeline moderno</b>: Se ha descrito el pipeline de dos etapas (detección + reconocimiento) utilizado por los sistemas OCR contemporáneos, detallando las arquitecturas más relevantes (DB, CRAFT, CRNN, SVTR, Transformer).</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Métricas de evaluación</b>: Se han definido formalmente las métricas CER y WER, estableciendo los umbrales de aceptabilidad para diferentes aplicaciones.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Particularidades del español</b>: Se han identificado los desafíos específicos del OCR para español, incluyendo caracteres especiales, diacríticos y escasez de recursos.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Soluciones de código abierto</b>: Se han analizado en profundidad EasyOCR, PaddleOCR y DocTR, justificando la selección de PaddleOCR para este trabajo por su alta configurabilidad.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Optimización de hiperparámetros</b>: Se han presentado los fundamentos teóricos de HPO, con énfasis en TPE (Optuna) y Ray Tune, identificando el vacío en la literatura respecto a la optimización de hiperparámetros de inferencia en OCR.</span></p>
<p class="MsoNormal"><span lang="ES">El estado del arte revela que, si bien existen soluciones OCR de alta calidad, su optimización para dominios específicos mediante ajuste de hiperparámetros (sin fine-tuning) ha recibido poca atención en la literatura. Este trabajo contribuye a llenar ese vacío proponiendo una metodología reproducible para la optimización de PaddleOCR en documentos académicos en español.</span></p><h1 style="mso-list:l22 level1 lfo18"><span style="mso-bookmark:_Toc14106979"><span style="mso-bookmark:_Toc437515557"><a name="_Toc147741196"></a><a name="_Toc160619813"><span style="mso-bookmark:_Toc147741196"><?if !supportLists?><span lang="ES" style='mso-fareast-font-family:"Calibri Light";mso-fareast-theme-font:
major-latin;mso-bidi-font-family:"Calibri Light";mso-bidi-theme-font:major-latin;
text-transform:none'><span style="mso-list:Ignore">3.<span style='font:7.0pt "Times New Roman"'>  
</span></span></span><?endif?><span lang="ES" style="text-transform:none">Objetivos
concretos y metodología de trabajo</span></span></a></span></span><span style="mso-bookmark:_Toc14106979"><span style="mso-bookmark:_Toc437515557"><span lang="ES" style="text-transform:none"><o:p></o:p></span></span></span></h1><p class="MsoNormal"><span lang="ES">Este capítulo establece los objetivos del trabajo siguiendo la metodología SMART (Doran, 1981) y describe la metodología experimental empleada para alcanzarlos. Se define un objetivo general y cinco objetivos específicos, todos ellos medibles y verificables.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Objetivo general</span></h2>
<p class="MsoNormal" style="margin-left:2cm;margin-right:1cm"><i><span lang="ES"><b>Optimizar el rendimiento de PaddleOCR para documentos académicos en español mediante ajuste de hiperparámetros, alcanzando un CER inferior al 2% sin requerir fine-tuning del modelo ni recursos GPU dedicados.</b></span></i></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Justificación SMART del Objetivo General</span></h3>
<a name="_Ref_Tab13"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->13<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 4. Justificación SMART del objetivo general.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Criterio</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Cumplimiento</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Específico (S)</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Se define claramente qué se quiere lograr: optimizar PaddleOCR mediante ajuste de hiperparámetros para documentos en español</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Medible (M)</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Se establece una métrica cuantificable: CER &lt; 2%</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Alcanzable (A)</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Es viable dado que: (1) PaddleOCR permite configuración de hiperparámetros, (2) Ray Tune posibilita búsqueda automatizada, (3) No se requiere GPU</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Relevante (R)</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">El impacto es demostrable: mejora la extracción de texto en documentos académicos sin costes adicionales de infraestructura</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Temporal (T)</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">El plazo es un cuatrimestre, correspondiente al TFM</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Objetivos específicos</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">OE1: Comparar soluciones OCR de código abierto</span></h3>
<p class="MsoNormal" style="margin-left:2cm;margin-right:1cm"><i><span lang="ES"><b>Evaluar el rendimiento base de EasyOCR, PaddleOCR y DocTR en documentos académicos en español, utilizando CER y WER como métricas, para seleccionar el modelo más prometedor.</b></span></i></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">OE2: Preparar un dataset de evaluación</span></h3>
<p class="MsoNormal" style="margin-left:2cm;margin-right:1cm"><i><span lang="ES"><b>Construir un dataset estructurado de imágenes de documentos académicos en español con su texto de referencia (ground truth) extraído del PDF original.</b></span></i></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">OE3: Identificar hiperparámetros críticos</span></h3>
<p class="MsoNormal" style="margin-left:2cm;margin-right:1cm"><i><span lang="ES"><b>Analizar la correlación entre los hiperparámetros de PaddleOCR y las métricas de error para identificar los parámetros con mayor impacto en el rendimiento.</b></span></i></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">OE4: Optimizar hiperparámetros con Ray Tune</span></h3>
<p class="MsoNormal" style="margin-left:2cm;margin-right:1cm"><i><span lang="ES"><b>Ejecutar una búsqueda automatizada de hiperparámetros utilizando Ray Tune con Optuna, evaluando al menos 50 configuraciones diferentes.</b></span></i></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">OE5: Validar la configuración optimizada</span></h3>
<p class="MsoNormal" style="margin-left:2cm;margin-right:1cm"><i><span lang="ES"><b>Comparar el rendimiento de la configuración baseline versus la configuración optimizada sobre el dataset completo, documentando la mejora obtenida.</b></span></i></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Metodología del trabajo</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Visión General</span></h3>
<a name="_Ref_Fig3"></a><p class="MsoCaption" style="text-align:center"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Figura <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Figura \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->3<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Fases de la metodología experimental</span></i></p>
<p class="MsoNormal" style="text-align:center"><span lang="ES"><img alt="Fases de la metodología experimental" src="figures/figura_3.png" style="width:12cm;max-width:100%"/></span></p>
<p class="Piedefoto-tabla" style="margin-left:0cm;text-align:center"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Descripción de las fases:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Fase 1 - Preparación del Dataset</b>: Conversión PDF a imágenes (300 DPI), extracción de ground truth con PyMuPDF</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Fase 2 - Benchmark Comparativo</b>: Evaluación de EasyOCR, PaddleOCR, DocTR con métricas CER/WER</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Fase 3 - Espacio de Búsqueda</b>: Identificación de hiperparámetros y configuración de Ray Tune + Optuna</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Fase 4 - Optimización</b>: Ejecución de 64 trials con paralelización (2 concurrentes)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Fase 5 - Validación</b>: Comparación baseline vs optimizado, análisis de correlaciones</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Fase 1: Preparación del Dataset</span></h3>
<h4><span lang="ES">Fuente de Datos</span></h4>
<p class="MsoNormal"><span lang="ES">Se utilizaron documentos PDF académicos de UNIR (Universidad Internacional de La Rioja), específicamente las instrucciones para la elaboración del TFE del Máster en Inteligencia Artificial.</span></p>
<h4><span lang="ES">Proceso de Conversión</span></h4>
<p class="MsoNormal"><span lang="ES">El script <span style="font-family:Consolas;font-size:10pt">prepare_dataset.ipynb</span> implementa:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Conversión PDF a imágenes</b>:</span></p>
<p class="MsoNormal"><span lang="ES"> - Biblioteca: PyMuPDF (fitz) - Resolución: 300 DPI - Formato de salida: PNG</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Extracción de texto de referencia</b>:</span></p>
<p class="MsoNormal"><span lang="ES"> - Método: <span style="font-family:Consolas;font-size:10pt">page.get_text("dict")</span> de PyMuPDF - Preservación de estructura de líneas - Tratamiento de texto vertical/marginal - Normalización de espacios y saltos de línea</span></p>
<h4><span lang="ES">Estructura del Dataset</span></h4>
<a name="_Ref_Fig4"></a><p class="MsoCaption" style="text-align:center"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Figura <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Figura \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->4<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Estructura del dataset de evaluación</span></i></p>
<p class="MsoNormal" style="text-align:center"><span lang="ES"><img alt="Estructura del dataset de evaluación" src="figures/figura_4.png" style="width:12cm;max-width:100%"/></span></p>
<p class="Piedefoto-tabla" style="margin-left:0cm;text-align:center"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Clase ImageTextDataset</span></h4>
<p class="MsoNormal"><span lang="ES">Se implementó una clase Python para cargar pares imagen-texto:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>class ImageTextDataset:
def __init__(self, root):
# Carga pares (imagen, texto) de carpetas pareadas
def __getitem__(self, idx):
# Retorna (PIL.Image, str)</pre></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Fase 2: Benchmark Comparativo</span></h3>
<h4><span lang="ES">Modelos Evaluados</span></h4>
<a name="_Ref_Tab14"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->14<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 5. Modelos OCR evaluados en el benchmark inicial.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Modelo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Versión</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Configuración</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">EasyOCR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Idiomas: ['es', 'en']</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddleOCR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PP-OCRv5</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Modelos server_det + server_rec</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">DocTR</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">db_resnet50 + sar_resnet31</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Métricas de Evaluación</span></h4>
<p class="MsoNormal"><span lang="ES">Se utilizó la biblioteca <span style="font-family:Consolas;font-size:10pt">jiwer</span> para calcular:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>from jiwer import wer, cer
def evaluate_text(reference, prediction):
return {
'WER': wer(reference, prediction),
'CER': cer(reference, prediction)
}</pre></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Fase 3: Espacio de Búsqueda</span></h3>
<h4><span lang="ES">Hiperparámetros Seleccionados</span></h4>
<a name="_Ref_Tab15"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->15<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 6. Hiperparámetros seleccionados para optimización.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tipo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Rango/Valores</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Descripción</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_orientation_classify</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Booleano</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[True, False]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Clasificación de orientación del documento</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_unwarping</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Booleano</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[True, False]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Corrección de deformación del documento</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">textline_orientation</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Booleano</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[True, False]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Clasificación de orientación de línea de texto</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Continuo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[0.0, 0.7]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral de detección de píxeles de texto</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_box_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Continuo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[0.0, 0.7]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral de caja de detección</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Configuración de Ray Tune</span></h4>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>from ray import tune
from ray.tune.search.optuna import OptunaSearch
search_space = {
"use_doc_orientation_classify": tune.choice([True, False]),
"use_doc_unwarping": tune.choice([True, False]),
"textline_orientation": tune.choice([True, False]),
"text_det_thresh": tune.uniform(0.0, 0.7),
"text_det_box_thresh": tune.uniform(0.0, 0.7),
"text_det_unclip_ratio": tune.choice([0.0]),
"text_rec_score_thresh": tune.uniform(0.0, 0.7),
}
tuner = tune.Tuner(
trainable_paddle_ocr,
tune_config=tune.TuneConfig(
metric="CER",
mode="min",
search_alg=OptunaSearch(),
num_samples=64,
max_concurrent_trials=2
)
)</pre></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Fase 4: Ejecución de Optimización</span></h3>
<h4><span lang="ES">Arquitectura de Ejecución</span></h4>
<p class="MsoNormal"><span lang="ES">Debido a incompatibilidades entre Ray y PaddleOCR en el mismo proceso, se implementó una arquitectura basada en subprocesos:</span></p>
<a name="_Ref_Fig5"></a><p class="MsoCaption" style="text-align:center"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Figura <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Figura \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->5<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Arquitectura de ejecución con subprocesos</span></i></p>
<p class="MsoNormal" style="text-align:center"><span lang="ES"><img alt="Arquitectura de ejecución con subprocesos" src="figures/figura_5.png" style="width:12cm;max-width:100%"/></span></p>
<p class="Piedefoto-tabla" style="margin-left:0cm;text-align:center"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Script de Evaluación (paddle_ocr_tuning.py)</span></h4>
<p class="MsoNormal"><span lang="ES">El script recibe hiperparámetros por línea de comandos:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>python paddle_ocr_tuning.py \
--pdf-folder ./dataset \
--textline-orientation True \
--text-det-box-thresh 0.5 \
--text-det-thresh 0.4 \
--text-rec-score-thresh 0.6</pre></span></p>
<p class="MsoNormal"><span lang="ES">Y retorna métricas en formato JSON:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>{
"CER": 0.0125,
"WER": 0.1040,
"TIME": 331.09,
"PAGES": 5,
"TIME_PER_PAGE": 66.12
}</pre></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Fase 5: Validación</span></h3>
<h4><span lang="ES">Protocolo de Validación</span></h4>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Baseline</b>: Ejecución con configuración por defecto de PaddleOCR</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span><b>Optimizado</b>: Ejecución con mejor configuración encontrada</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span><b>Comparación</b>: Evaluación sobre las 24 páginas del dataset completo</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">4.<span style="font-size:7pt">   </span><b>Métricas reportadas</b>: CER, WER, tiempo de procesamiento</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Entorno de Ejecución</span></h3>
<h4><span lang="ES">Hardware</span></h4>
<a name="_Ref_Tab16"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->16<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 7. Especificaciones de hardware del entorno de desarrollo.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Componente</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Especificación</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CPU</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">AMD Ryzen 7 5800H</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">RAM</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">16 GB DDR4</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">GPU</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">NVIDIA RTX 3060 Laptop (5.66 GB VRAM)</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Almacenamiento</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">SSD</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Software</span></h4>
<a name="_Ref_Tab17"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->17<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 8. Versiones de software utilizadas.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Componente</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Versión</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sistema Operativo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Ubuntu 24.04.3 LTS</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Python</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3.12.3</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddleOCR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3.3.2</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddlePaddle</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3.2.2</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Ray</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2.52.1</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Optuna</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">4.7.0</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Limitaciones Metodológicas</span></h3>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Tamaño del dataset</b>: El dataset contiene 24 páginas de un único tipo de documento. Resultados pueden no generalizar a otros formatos.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Ejecución en CPU</b>: Los tiempos de procesamiento (~70s/página) serían significativamente menores con GPU.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Ground truth imperfecto</b>: El texto de referencia extraído de PDF puede contener errores en documentos con layouts complejos.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Parámetro fijo</b>: <span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span> quedó fijado en 0.0 durante todo el experimento por decisión de diseño inicial.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Resumen del capítulo</span></h2>
<p class="MsoNormal"><span lang="ES">Este capítulo ha establecido:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>Un objetivo general SMART: alcanzar CER &lt; 2% mediante optimización de hiperparámetros</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span>Cinco objetivos específicos medibles y alcanzables</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span>Una metodología experimental en cinco fases claramente definidas</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">4.<span style="font-size:7pt">   </span>El espacio de búsqueda de hiperparámetros y la configuración de Ray Tune</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">5.<span style="font-size:7pt">   </span>Las limitaciones reconocidas del enfoque</span></p>
<p class="MsoNormal"><span lang="ES">El siguiente capítulo presenta el desarrollo específico de la contribución, incluyendo el benchmark comparativo de soluciones OCR, la optimización de hiperparámetros y el análisis de resultados.</span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;page-break-after:
avoid;mso-outline-level:1;mso-list:l22 level1 lfo18"><span style="mso-bookmark:
_Toc14106979"><span style="mso-bookmark:_Toc437515557"><a name="_Toc160619817"></a><a name="_Toc100036217"><span style="mso-bookmark:_Toc160619817"><?if !supportLists?><span lang="ES" style='font-size:18.0pt;mso-bidi-font-size:16.0pt;line-height:150%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"Calibri Light";mso-fareast-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-theme-font:major-latin;color:#0098CD;
mso-font-kerning:16.0pt;mso-bidi-font-weight:bold'><span style="mso-list:Ignore">4.<span style='font:7.0pt "Times New Roman"'>   </span></span></span><?endif?><span lang="ES" style='font-size:18.0pt;mso-bidi-font-size:16.0pt;line-height:150%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:"Times New Roman";
color:#0098CD;text-transform:uppercase;mso-font-kerning:16.0pt;mso-bidi-font-weight:
bold'>D</span></span></a></span></span><span style="mso-bookmark:_Toc14106979"><span style="mso-bookmark:_Toc437515557"><span style="mso-bookmark:_Toc100036217"><span style="mso-bookmark:_Toc160619817"><span lang="ES" style='font-size:18.0pt;
mso-bidi-font-size:16.0pt;line-height:150%;font-family:"Calibri Light",sans-serif;
mso-ascii-theme-font:major-latin;mso-hansi-theme-font:major-latin;mso-bidi-font-family:
"Times New Roman";color:#0098CD;mso-font-kerning:16.0pt;mso-bidi-font-weight:
bold'>es</span></span></span></span></span><span style="mso-bookmark:_Toc14106979"><span style="mso-bookmark:_Toc437515557"><span style="mso-bookmark:_Toc160619817"><span lang="ES" style='font-size:18.0pt;mso-bidi-font-size:16.0pt;line-height:150%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:"Times New Roman";
color:#0098CD;mso-font-kerning:16.0pt;mso-bidi-font-weight:bold'>arrollo
específico de la contribución</span></span></span></span><span style="mso-bookmark:_Toc14106979"><span style="mso-bookmark:_Toc437515557"><span lang="ES" style='font-size:18.0pt;mso-bidi-font-size:16.0pt;line-height:150%;
font-family:"Calibri Light",sans-serif;mso-ascii-theme-font:major-latin;
mso-hansi-theme-font:major-latin;mso-bidi-font-family:"Times New Roman";
color:#0098CD;mso-font-kerning:16.0pt;mso-bidi-font-weight:bold'><o:p></o:p></span></span></span></p><p class="MsoNormal"><span lang="ES">Este capítulo presenta el desarrollo completo del estudio comparativo y la optimización de hiperparámetros de sistemas OCR. Se estructura según el tipo de trabajo "Comparativa de soluciones" establecido por las instrucciones de UNIR: planteamiento de la comparativa, desarrollo de la comparativa, y discusión y análisis de resultados.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Planteamiento de la comparativa</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Introducción</span></h3>
<p class="MsoNormal"><span lang="ES">Esta sección presenta los resultados del estudio comparativo realizado entre tres soluciones OCR de código abierto: EasyOCR, PaddleOCR y DocTR. Los experimentos fueron documentados en el notebook <span style="font-family:Consolas;font-size:10pt">ocr_benchmark_notebook.ipynb</span> del repositorio. El objetivo es identificar el modelo base más prometedor para la posterior fase de optimización de hiperparámetros.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Identificación del Problema</span></h3>
<p class="MsoNormal"><span lang="ES">El reconocimiento óptico de caracteres (OCR) en documentos académicos en español presenta desafíos específicos que no han sido ampliamente abordados en la literatura:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Layouts complejos</b>: Los documentos académicos combinan texto corrido, tablas, listas numeradas, encabezados multinivel y notas al pie.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Caracteres específicos del español</b>: Acentos (á, é, í, ó, ú), eñe (ñ), diéresis (ü) y signos de puntuación invertidos (¿, ¡).</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Formato formal</b>: Tipografía profesional con múltiples fuentes, tamaños y estilos (negrita, cursiva).</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Calidad variable</b>: Documentos digitales de alta calidad pero con posibles artefactos de compresión PDF.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Alternativas Evaluadas</span></h3>
<p class="MsoNormal"><span lang="ES">Se seleccionaron tres soluciones OCR de código abierto representativas del estado del arte:</span></p>
<a name="_Ref_Tab18"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->18<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 10. Soluciones OCR evaluadas en el benchmark comparativo.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Solución</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Desarrollador</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Versión</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Justificación de selección</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">EasyOCR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Jaided AI</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Última estable</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Popularidad, facilidad de uso</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddleOCR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Baidu</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PP-OCRv5</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Estado del arte industrial</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">DocTR</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Mindee</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Última estable</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Orientación académica</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Imágenes Docker disponibles en el registro del proyecto:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">PaddleOCR: <span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/paddle-ocr-gpu</span>, <span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/paddle-ocr-cpu</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">EasyOCR: <span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/easyocr-gpu</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">DocTR: <span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/doctr-gpu</span></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Criterios de Éxito</span></h3>
<p class="MsoNormal"><span lang="ES">Los criterios establecidos para evaluar las soluciones fueron:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Precisión (CER &lt; 5%)</b>: Error de caracteres aceptable para documentos académicos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span><b>Configurabilidad</b>: Disponibilidad de hiperparámetros ajustables</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span><b>Soporte para español</b>: Modelos preentrenados que incluyan el idioma</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">4.<span style="font-size:7pt">   </span><b>Documentación</b>: Calidad de la documentación técnica</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">5.<span style="font-size:7pt">   </span><b>Mantenimiento activo</b>: Actualizaciones recientes y comunidad activa</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Configuración del Experimento</span></h3>
<h4><span lang="ES">Dataset de Evaluación</span></h4>
<p class="MsoNormal"><span lang="ES">Se utilizó el documento "Instrucciones para la redacción y elaboración del TFE" del Máster Universitario en Inteligencia Artificial de UNIR, ubicado en la carpeta <span style="font-family:Consolas;font-size:10pt">instructions/</span>.</span></p>
<a name="_Ref_Tab19"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->19<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 11. Características del dataset de evaluación inicial.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Característica</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Valor</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Documento fuente</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Instrucciones TFE UNIR</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Número de páginas evaluadas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5 (benchmark inicial)</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Formato</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PDF digital (no escaneado)</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Idioma principal</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Español</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Resolución de conversión</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">300 DPI</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Formato de imagen</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PNG</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Proceso de Conversión</span></h4>
<p class="MsoNormal"><span lang="ES">La conversión del PDF a imágenes se realizó mediante PyMuPDF (fitz):</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>import fitz # PyMuPDF
def pdf_to_images(pdf_path, output_dir, dpi=300):
doc = fitz.open(pdf_path)
for page_num, page in enumerate(doc):
# Matriz de transformación para 300 DPI
mat = fitz.Matrix(dpi/72, dpi/72)
pix = page.get_pixmap(matrix=mat)
pix.save(f"{output_dir}/page_{page_num:04d}.png")</pre></span></p>
<p class="MsoNormal"><span lang="ES">La resolución de 300 DPI fue seleccionada como estándar para OCR de documentos, proporcionando suficiente detalle para caracteres pequeños sin generar archivos excesivamente grandes.</span></p>
<h4><span lang="ES">Extracción del Ground Truth</span></h4>
<p class="MsoNormal"><span lang="ES">El texto de referencia se extrajo directamente del PDF mediante PyMuPDF:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>def extract_text(pdf_path):
doc = fitz.open(pdf_path)
text = ""
for page in doc:
blocks = page.get_text("dict")["blocks"]
for block in blocks:
if "lines" in block:
for line in block["lines"]:
for span in line["spans"]:
text += span["text"]
text += "\n"
return text</pre></span></p>
<p class="MsoNormal"><span lang="ES">Esta aproximación preserva la estructura de líneas del documento original, aunque puede introducir errores en layouts muy complejos (tablas anidadas, texto en columnas).</span></p>
<h4><span lang="ES">Configuración de los Modelos</span></h4>
<p class="MsoNormal"><span lang="ES">Según el código en <span style="font-family:Consolas;font-size:10pt">ocr_benchmark_notebook.ipynb</span>:</span></p>
<p class="MsoNormal"><span lang="ES"><b>EasyOCR</b>:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>import easyocr
easyocr_reader = easyocr.Reader(['es', 'en']) # Spanish and English
results = easyocr_reader.readtext(image_path)
text = ' '.join([r[1] for r in results])</pre></span></p>
<p class="MsoNormal"><span lang="ES">La configuración incluye soporte para español e inglés, permitiendo reconocer palabras en ambos idiomas que puedan aparecer en documentos académicos (referencias, términos técnicos).</span></p>
<p class="MsoNormal"><span lang="ES"><b>PaddleOCR (PP-OCRv5)</b>:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>from paddleocr import PaddleOCR
paddleocr_model = PaddleOCR(
text_detection_model_name="PP-OCRv5_server_det",
text_recognition_model_name="PP-OCRv5_server_rec",
use_doc_orientation_classify=False,
use_doc_unwarping=False,
use_textline_orientation=True,
)
result = paddleocr_model.predict(image_path)
text = '\n'.join([line['rec_texts'][0] for line in result[0]['rec_res']])</pre></span></p>
<p class="MsoNormal"><span lang="ES">Se utilizaron los modelos "server" que ofrecen mayor precisión a costa de mayor tiempo de inferencia. La versión utilizada fue PaddleOCR 3.2.0.</span></p>
<p class="MsoNormal"><span lang="ES"><b>DocTR</b>:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>from doctr.models import ocr_predictor
doctr_model = ocr_predictor(
det_arch="db_resnet50",
reco_arch="sar_resnet31",
pretrained=True
)
result = doctr_model([image])
text = result.render()</pre></span></p>
<p class="MsoNormal"><span lang="ES">Se seleccionaron las arquitecturas db_resnet50 para detección y sar_resnet31 para reconocimiento, representando una configuración de alta precisión.</span></p>
<h4><span lang="ES">Métricas de Evaluación</span></h4>
<p class="MsoNormal"><span lang="ES">Se utilizó la biblioteca <span style="font-family:Consolas;font-size:10pt">jiwer</span> para calcular CER y WER de manera estandarizada:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>from jiwer import wer, cer
def evaluate_text(reference, prediction):
"""
Calcula métricas de error entre texto de referencia y predicción.
Args:
reference: Texto ground truth
prediction: Texto predicho por el OCR
Returns:
dict con WER y CER
"""
# Normalización básica
ref_clean = reference.lower().strip()
pred_clean = prediction.lower().strip()
return {
'WER': wer(ref_clean, pred_clean),
'CER': cer(ref_clean, pred_clean)
}</pre></span></p>
<p class="MsoNormal"><span lang="ES">La normalización a minúsculas y eliminación de espacios extremos asegura una comparación justa que no penaliza diferencias de capitalización.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Resultados del Benchmark</span></h3>
<h4><span lang="ES">Resultados de PaddleOCR (Configuración Baseline)</span></h4>
<p class="MsoNormal"><span lang="ES">Durante el benchmark inicial se evaluó PaddleOCR con configuración por defecto en un subconjunto del dataset. Los resultados preliminares mostraron variabilidad significativa entre páginas, con CER entre 1.54% y 6.40% dependiendo de la complejidad del layout.</span></p>
<a name="_Ref_Tab20"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->20<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 12. Variabilidad del CER por tipo de contenido.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tipo de contenido</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER aproximado</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Observaciones</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Texto corrido</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~1.5-2%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Mejor rendimiento</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Texto con listas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~3-4%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Rendimiento medio</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tablas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~5-6%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Mayor dificultad</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Encabezados + notas</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~4-5%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Layouts mixtos</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Observaciones del benchmark inicial:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>Las páginas con tablas y layouts complejos presentaron mayor error debido a la dificultad de ordenar correctamente las líneas de texto.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>La página con texto corrido continuo obtuvo el mejor resultado (CER ~1.5%), demostrando la capacidad del modelo para texto estándar.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>El promedio general se situó en CER ~5-6%, superando el umbral de aceptabilidad para documentos académicos pero con margen de mejora.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>Los errores más frecuentes fueron: confusión de acentos, caracteres duplicados, y errores en signos de puntuación.</span></p>
<h4><span lang="ES">Comparativa de Modelos</span></h4>
<p class="MsoNormal"><span lang="ES">Los tres modelos evaluados representan diferentes paradigmas de OCR:</span></p>
<a name="_Ref_Tab21"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->21<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 13. Comparativa de arquitecturas OCR evaluadas.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Modelo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tipo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Componentes</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Fortalezas Clave</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>EasyOCR</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">End-to-end (det + rec)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CRAFT + CRNN/Transformer</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Ligero, fácil de usar, multilingüe</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>PaddleOCR</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">End-to-end (det + rec + cls)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">DB + SVTR/CRNN</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Soporte multilingüe robusto, pipeline configurable</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>DocTR</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">End-to-end (det + rec)</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">DB/LinkNet + CRNN/SAR/ViTSTR</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Orientado a investigación, API limpia</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Análisis Cualitativo de Errores</span></h4>
<p class="MsoNormal"><span lang="ES">Un análisis cualitativo de los errores producidos reveló patrones específicos:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Errores de acentuación:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">información</span><span style="font-family:Consolas;font-size:10pt">informacion</span> (pérdida de acento)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">más</span><span style="font-family:Consolas;font-size:10pt">mas</span> (cambio de significado)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">él</span><span style="font-family:Consolas;font-size:10pt">el</span> (cambio de significado)</span></p>
<p class="MsoNormal"><span lang="ES"><b>Errores de caracteres especiales:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">año</span><span style="font-family:Consolas;font-size:10pt">ano</span> (pérdida de eñe)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">¿Cómo</span><span style="font-family:Consolas;font-size:10pt">Como</span> (pérdida de signos invertidos)</span></p>
<p class="MsoNormal"><span lang="ES"><b>Errores de duplicación:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">titulación</span><span style="font-family:Consolas;font-size:10pt">titulacióon</span> (carácter duplicado)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">documento</span><span style="font-family:Consolas;font-size:10pt">doccumento</span> (consonante duplicada)</span></p>
<p class="MsoNormal"><span lang="ES"><b>Ejemplo de predicción de PaddleOCR para una página:</b></span></p>
<p class="MsoNormal" style="margin-left:2cm;margin-right:1cm"><i><span lang="ES">"Escribe siempre al menos un párrafo de introducción en cada capítulo o apartado, explicando de qué vas a tratar en esa sección. Evita que aparezcan dos encabezados de nivel consecutivos sin ningún texto entre medias. [...] En esta titulacióon se cita de acuerdo con la normativa Apa."</span></i></p>
<p class="MsoNormal"><span lang="ES"><b>Errores identificados en este ejemplo:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">titulacióon</span> en lugar de <span style="font-family:Consolas;font-size:10pt">titulación</span> (carácter duplicado)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">Apa</span> en lugar de <span style="font-family:Consolas;font-size:10pt">APA</span> (capitalización)</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Justificación de la Selección de PaddleOCR</span></h3>
<h4><span lang="ES">Criterios de Selección</span></h4>
<p class="MsoNormal"><span lang="ES">La selección de PaddleOCR para la fase de optimización se basó en los siguientes criterios:</span></p>
<a name="_Ref_Tab22"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->22<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 14. Evaluación de criterios de selección.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Criterio</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">EasyOCR</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">PaddleOCR</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">DocTR</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CER benchmark</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~6-8%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~5-6%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~7-9%</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Configurabilidad</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Baja (3 params)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Alta (&gt;10 params)</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Media (5 params)</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Soporte español</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Sí (dedicado)</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Limitado</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Documentación</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Media</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Alta</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alta</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Mantenimiento</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Medio</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Alto</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Medio</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Hiperparámetros Disponibles en PaddleOCR</span></h4>
<p class="MsoNormal"><span lang="ES">PaddleOCR expone múltiples hiperparámetros ajustables, clasificados por etapa del pipeline:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Detección:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_thresh</span>: Umbral de probabilidad para píxeles de texto</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_box_thresh</span>: Umbral de confianza para cajas detectadas</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span>: Factor de expansión de cajas</span></p>
<p class="MsoNormal"><span lang="ES"><b>Reconocimiento:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_rec_score_thresh</span>: Umbral de confianza para resultados</span></p>
<p class="MsoNormal"><span lang="ES"><b>Preprocesamiento:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_textline_orientation</span>: Clasificación de orientación de línea</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_orientation_classify</span>: Clasificación de orientación de documento</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_unwarping</span>: Corrección de deformación</span></p>
<p class="MsoNormal"><span lang="ES">Esta riqueza de configuración permite explorar sistemáticamente el espacio de hiperparámetros mediante técnicas de optimización automática.</span></p>
<h4><span lang="ES">Decisión Final</span></h4>
<p class="MsoNormal"><span lang="ES"><b>Se selecciona PaddleOCR (PP-OCRv5)</b> para la fase de optimización debido a:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Resultados iniciales prometedores</b>: CER ~5% en configuración por defecto, con potencial de mejora</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span><b>Alta configurabilidad</b>: Más de 10 hiperparámetros ajustables en tiempo de inferencia</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span><b>Pipeline modular</b>: Permite aislar el impacto de cada componente</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">4.<span style="font-size:7pt">   </span><b>Soporte activo para español</b>: Modelos específicos y actualizaciones frecuentes</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">5.<span style="font-size:7pt">   </span><b>Documentación técnica</b>: Descripción detallada de cada parámetro</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Limitaciones del Benchmark</span></h3>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Tamaño reducido</b>: Solo 5 páginas evaluadas en el benchmark comparativo inicial. Esto limita la generalización de las conclusiones.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Único tipo de documento</b>: Documentos académicos de UNIR únicamente. Otros tipos de documentos (facturas, formularios, contratos) podrían presentar resultados diferentes.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Ground truth automático</b>: El texto de referencia se extrajo programáticamente del PDF, lo cual puede introducir errores en layouts complejos donde el orden de lectura no es evidente.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Ejecución en CPU</b>: Todos los experimentos se realizaron en CPU, limitando la exploración de configuraciones que podrían beneficiarse de aceleración GPU.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Resumen de la Sección</span></h3>
<p class="MsoNormal"><span lang="ES">Esta sección ha presentado:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>La identificación del problema y los criterios de éxito establecidos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span>La configuración detallada del benchmark con tres soluciones OCR</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span>Los resultados cuantitativos y cualitativos obtenidos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">4.<span style="font-size:7pt">   </span>La justificación de la selección de PaddleOCR para optimización</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">5.<span style="font-size:7pt">   </span>Las limitaciones reconocidas del benchmark</span></p>
<p class="MsoNormal"><span lang="ES"><b>Fuentes de datos utilizadas:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">ocr_benchmark_notebook.ipynb</span>: Código del benchmark</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Documentación oficial de PaddleOCR</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Desarrollo de la comparativa: Optimización de hiperparámetros</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Introducción</span></h3>
<p class="MsoNormal"><span lang="ES">Esta sección describe el proceso de optimización de hiperparámetros de PaddleOCR utilizando Ray Tune con el algoritmo de búsqueda Optuna. Los experimentos fueron implementados en [<span style="font-family:Consolas;font-size:10pt">src/run_tuning.py</span>](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py) con la librería de utilidades [<span style="font-family:Consolas;font-size:10pt">src/raytune_ocr.py</span>](https://github.com/seryus/MastersThesis/blob/main/src/raytune_ocr.py), y los resultados se almacenaron en [<span style="font-family:Consolas;font-size:10pt">src/results/</span>](https://github.com/seryus/MastersThesis/tree/main/src/results).</span></p>
<p class="MsoNormal"><span lang="ES">La optimización de hiperparámetros representa una alternativa al fine-tuning tradicional que no requiere:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Acceso a GPU dedicada</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Dataset de entrenamiento etiquetado</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Modificación de los pesos del modelo</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Configuración del Experimento</span></h3>
<h4><span lang="ES">Entorno de Ejecución</span></h4>
<p class="MsoNormal"><span lang="ES">El experimento se ejecutó en el siguiente entorno:</span></p>
<a name="_Ref_Tab23"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->23<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 15. Entorno de ejecución del experimento.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Componente</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Versión/Especificación</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sistema operativo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Ubuntu 24.04.3 LTS</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Python</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3.12.3</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddlePaddle</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3.2.2</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddleOCR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3.3.2</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Ray</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2.52.1</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Optuna</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">4.7.0</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CPU</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">AMD Ryzen 7 5800H</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">RAM</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">16 GB DDR4</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">GPU</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">NVIDIA RTX 3060 Laptop (5.66 GB VRAM)</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Arquitectura de Ejecución</span></h4>
<p class="MsoNormal"><span lang="ES">Debido a incompatibilidades entre Ray y PaddleOCR cuando se ejecutan en el mismo proceso, se implementó una arquitectura basada en subprocesos:</span></p>
<a name="_Ref_Fig6"></a><p class="MsoCaption" style="text-align:center"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Figura <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Figura \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->6<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Arquitectura de ejecución con subprocesos</span></i></p>
<p class="MsoNormal" style="text-align:center"><span lang="ES"><img alt="Arquitectura de ejecución con subprocesos" src="figures/figura_6.png" style="width:12cm;max-width:100%"/></span></p>
<p class="Piedefoto-tabla" style="margin-left:0cm;text-align:center"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">El script <span style="font-family:Consolas;font-size:10pt">src/paddle_ocr_tuning.py</span> actúa como wrapper que:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>Recibe hiperparámetros por línea de comandos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span>Inicializa PaddleOCR con la configuración especificada</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span>Evalúa sobre el dataset</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">4.<span style="font-size:7pt">   </span>Retorna métricas en formato JSON</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>python paddle_ocr_tuning.py \
--pdf-folder ./dataset \
--textline-orientation True \
--text-det-box-thresh 0.5 \
--text-det-thresh 0.4 \
--text-rec-score-thresh 0.6</pre></span></p>
<p class="MsoNormal"><span lang="ES">Salida:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>{
"CER": 0.0125,
"WER": 0.1040,
"TIME": 331.09,
"PAGES": 5,
"TIME_PER_PAGE": 66.12
}</pre></span></p>
<h4><span lang="ES">Dataset Extendido</span></h4>
<p class="MsoNormal"><span lang="ES">Para la fase de optimización se extendió el dataset:</span></p>
<a name="_Ref_Tab24"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->24<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 16. Características del dataset de optimización.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Característica</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Valor</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Páginas totales</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">24</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Páginas por trial</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5 (páginas 5-10)</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Estructura</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Carpetas <span style="font-family:Consolas;font-size:10pt">img/</span> y <span style="font-family:Consolas;font-size:10pt">txt/</span> pareadas</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Resolución</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">300 DPI</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Formato imagen</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PNG</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">La clase <span style="font-family:Consolas;font-size:10pt">ImageTextDataset</span> en <span style="font-family:Consolas;font-size:10pt">src/dataset_manager.py</span> gestiona la carga de pares imagen-texto:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>class ImageTextDataset:
def __init__(self, root):
"""
Carga pares (imagen, texto) de carpetas pareadas.
Estructura esperada:
root/
0/
img/
page_0001.png
txt/
page_0001.txt
"""
self.pairs = []
for doc_folder in sorted(os.listdir(root)):
img_folder = os.path.join(root, doc_folder, 'img')
txt_folder = os.path.join(root, doc_folder, 'txt')
# Cargar pares...
def __getitem__(self, idx):
img_path, txt_path = self.pairs[idx]
return PIL.Image.open(img_path), open(txt_path).read()</pre></span></p>
<h4><span lang="ES">Espacio de Búsqueda</span></h4>
<p class="MsoNormal"><span lang="ES">El espacio de búsqueda se definió considerando los hiperparámetros más relevantes identificados en la documentación de PaddleOCR:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>from ray import tune
from ray.tune.search.optuna import OptunaSearch
search_space = {
# Parámetros booleanos
"use_doc_orientation_classify": tune.choice([True, False]),
"use_doc_unwarping": tune.choice([True, False]),
"textline_orientation": tune.choice([True, False]),
# Parámetros continuos (umbrales)
"text_det_thresh": tune.uniform(0.0, 0.7),
"text_det_box_thresh": tune.uniform(0.0, 0.7),
"text_det_unclip_ratio": tune.choice([0.0]), # Fijado
"text_rec_score_thresh": tune.uniform(0.0, 0.7),
}</pre></span></p>
<a name="_Ref_Tab25"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->25<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 17. Descripción detallada del espacio de búsqueda.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tipo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Rango</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Descripción</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_orientation_classify</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Booleano</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">{True, False}</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Clasificación de orientación del documento completo</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_unwarping</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Booleano</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">{True, False}</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Corrección de deformación/curvatura</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">textline_orientation</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Booleano</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">{True, False}</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Clasificación de orientación por línea de texto</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Continuo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[0.0, 0.7]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral de probabilidad para píxeles de texto</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_box_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Continuo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">[0.0, 0.7]</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral de confianza para cajas detectadas</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span></span></p></td><td style="border:none;padding:5px"><p class="Mso
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Justificación del espacio:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Rango [0.0, 0.7] para umbrales</b>: Se evitan valores extremos (&gt;0.7) que podrían filtrar demasiado texto válido, y se incluye 0.0 para evaluar el impacto de desactivar el filtrado.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b><span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span> fijo</b>: Por decisión de diseño inicial, este parámetro se mantuvo constante para reducir la dimensionalidad del espacio de búsqueda.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Parámetros booleanos completos</b>: Los tres parámetros de preprocesamiento se exploran completamente para identificar cuáles son necesarios para documentos digitales.</span></p>
<h4><span lang="ES">Configuración de Ray Tune</span></h4>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>tuner = tune.Tuner(
trainable_paddle_ocr,
tune_config=tune.TuneConfig(
metric="CER",
mode="min",
search_alg=OptunaSearch(),
num_samples=64,
max_concurrent_trials=2
),
run_config=air.RunConfig(
verbose=2,
log_to_file=False
),
param_space=search_space
)</pre></span></p>
<a name="_Ref_Tab26"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->26<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 18. Parámetros de configuración de Ray Tune.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Valor</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Justificación</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Métrica objetivo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CER</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Métrica estándar para OCR</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Modo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">min</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Minimizar tasa de error</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Algoritmo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">OptunaSearch (TPE)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Eficiente para espacios mixtos</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Número de trials</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">64</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Balance entre exploración y tiempo</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Trials concurrentes</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Limitado por memoria disponible</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Elección de 64 trials:</b></span></p>
<p class="MsoNormal"><span lang="ES">El número de trials se eligió considerando:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Espacio de búsqueda de 7 dimensiones (3 booleanas + 4 continuas)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Tiempo estimado por trial: ~6 minutos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Tiempo total objetivo: &lt;8 horas</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Regla empírica: 10× dimensiones = 70 trials mínimo recomendado</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Resultados de la Optimización</span></h3>
<h4><span lang="ES">Ejecución del Experimento</span></h4>
<p class="MsoNormal"><span lang="ES">El experimento se ejecutó exitosamente con los siguientes resultados globales:</span></p>
<a name="_Ref_Tab27"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->27<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 19. Resumen de la ejecución del experimento.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Métrica</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Valor</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Trials completados</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">64/64</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Trials fallidos</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tiempo total</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~6.4 horas</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tiempo medio por trial</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">367.72 segundos</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Páginas procesadas</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">320 (64 trials × 5 páginas)</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Estadísticas Descriptivas</span></h4>
<p class="MsoNormal"><span lang="ES">Del archivo CSV de resultados (<span style="font-family:Consolas;font-size:10pt">raytune_paddle_subproc_results_20251207_192320.csv</span>):</span></p>
<a name="_Ref_Tab28"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->28<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 20. Estadísticas descriptivas de los 64 trials.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Estadística</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">WER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tiempo (s)</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tiempo/Página (s)</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>count</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">64</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">64</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">64</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">64</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>mean</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5.25%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">14.28%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">347.61</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">69.42</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>std</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">11.03%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">10.75%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">7.88</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.57</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>min</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.15%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">9.89%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">320.97</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">64.10</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>25%</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.20%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">10.04%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">344.24</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">68.76</span></p></td></tr><tr><td style="border:none;padding:5px"><p class
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Observaciones:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Alta varianza en CER</b>: La desviación estándar (11.03%) es mayor que la media (5.25%), indicando una distribución muy dispersa con algunos valores extremos.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Mediana vs Media</b>: La mediana del CER (1.23%) es mucho menor que la media (5.25%), confirmando una distribución sesgada hacia valores bajos con outliers altos.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Tiempo consistente</b>: El tiempo de ejecución es muy estable (std = 1.57 s/página), indicando que las configuraciones de hiperparámetros no afectan significativamente el tiempo de inferencia.</span></p>
<h4><span lang="ES">Distribución de Resultados</span></h4>
<a name="_Ref_Tab29"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->29<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 21. Distribución de trials por rango de CER.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Rango CER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Número de trials</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Porcentaje</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">&lt; 2%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">43</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">67.2%</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2% - 5%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">7</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">10.9%</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5% - 10%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3.1%</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">10% - 20%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">7.8%</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">&gt; 20%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">7</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">10.9%</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">La mayoría de trials (67.2%) alcanzaron CER &lt; 2%, cumpliendo el objetivo establecido. Sin embargo, un 10.9% de trials presentaron fallos catastróficos (CER &gt; 20%).</span></p>
<h4><span lang="ES">Mejor Configuración Encontrada</span></h4>
<p class="MsoNormal"><span lang="ES">La configuración que minimizó el CER fue:</span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>Best CER: 0.011535 (1.15%)
Best WER: 0.098902 (9.89%)
Configuración óptima:
textline_orientation: True
use_doc_orientation_classify: False
use_doc_unwarping: False
text_det_thresh: 0.4690
text_det_box_thresh: 0.5412
text_det_unclip_ratio: 0.0
text_rec_score_thresh: 0.6350</pre></span></p>
<a name="_Ref_Tab30"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->30<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 22. Configuración óptima identificada.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Valor óptimo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Valor por defecto</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Cambio</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">textline_orientation</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>True</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Activado</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">use_doc_orientation_classify</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sin cambio</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">use_doc_unwarping</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sin cambio</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">text_det_thresh</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>0.4690</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.3</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">+0.169</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">text_det_box_thresh</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>0.5412</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.6</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-0.059</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">text_det_unclip_ratio</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.0</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.5</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-1.5 (fijado)</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">text_rec_score_thresh</span></p></td><td style="border-top:none;border-bottom:sol
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Análisis de Correlación</span></h4>
<p class="MsoNormal"><span lang="ES">Se calculó la correlación de Pearson entre los parámetros continuos y las métricas de error:</span></p>
<a name="_Ref_Tab31"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->31<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 23. Correlación de parámetros con CER.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Correlación con CER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Interpretación</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>-0.523</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Correlación moderada negativa</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_box_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">+0.226</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Correlación débil positiva</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_rec_score_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-0.161</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Correlación débil negativa</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">NaN</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Varianza cero (valor fijo)</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<a name="_Ref_Tab32"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->32<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 24. Correlación de parámetros con WER.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Correlación con WER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Interpretación</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>-0.521</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Correlación moderada negativa</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_box_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">+0.227</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Correlación débil positiva</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_rec_score_thresh</span></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-0.173</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Correlación débil negativa</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Hallazgo clave</b>: El parámetro <span style="font-family:Consolas;font-size:10pt">text_det_thresh</span> muestra la correlación más fuerte (-0.52 con ambas métricas), indicando que valores más altos de este umbral tienden a reducir el error. Este umbral controla qué píxeles se consideran "texto" en el mapa de probabilidad del detector.</span></p>
<h4><span lang="ES">Impacto del Parámetro textline_orientation</span></h4>
<p class="MsoNormal"><span lang="ES">El parámetro booleano <span style="font-family:Consolas;font-size:10pt">textline_orientation</span> demostró tener el mayor impacto en el rendimiento:</span></p>
<a name="_Ref_Tab33"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->33<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 25. Impacto del parámetro textline_orientation.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">textline_orientation</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER Medio</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER Std</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">WER Medio</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">N trials</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">True</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3.76%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">7.12%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">12.73%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">32</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">12.40%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">14.93%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">21.71%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">32</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Interpretación:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Reducción del CER</b>: Con <span style="font-family:Consolas;font-size:10pt">textline_orientation=True</span>, el CER medio es 3.3 veces menor (3.76% vs 12.40%).</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Menor varianza</b>: La desviación estándar también se reduce significativamente (7.12% vs 14.93%), indicando resultados más consistentes.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Reducción del CER</b>: 69.7% cuando se habilita la clasificación de orientación de línea.</span></p>
<a name="_Ref_Fig7"></a><p class="MsoCaption" style="text-align:center"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Figura <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Figura \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->7<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Impacto de textline_orientation en CER</span></i></p>
<p class="MsoNormal" style="text-align:center"><span lang="ES"><img alt="Impacto de textline_orientation en CER" src="figures/figura_7.png" style="width:12cm;max-width:100%"/></span></p>
<p class="Piedefoto-tabla" style="margin-left:0cm;text-align:center"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Explicación técnica:</b></span></p>
<p class="MsoNormal"><span lang="ES">El parámetro <span style="font-family:Consolas;font-size:10pt">textline_orientation</span> activa un clasificador que determina la orientación de cada línea de texto detectada. Para documentos con layouts mixtos (tablas, encabezados laterales, direcciones postales), este clasificador asegura que el texto se lea en el orden correcto, evitando la mezcla de líneas de diferentes columnas o secciones.</span></p>
<h4><span lang="ES">Análisis de Fallos Catastróficos</span></h4>
<p class="MsoNormal"><span lang="ES">Los trials con CER muy alto (&gt;20%) presentaron patrones específicos:</span></p>
<a name="_Ref_Tab34"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->34<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 26. Características de trials con fallos catastróficos.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Trial</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">text_det_thresh</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">textline_orientation</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Diagnóstico</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">#47</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">51.61%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.017</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">True</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral muy bajo</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">#23</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">43.29%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.042</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral bajo + sin orientación</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">#12</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">38.76%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.089</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral bajo + sin orientación</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">#56</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">35.12%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.023</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">False</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral muy bajo + sin orientación</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Diagnóstico:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Umbral de detección muy bajo</b> (<span style="font-family:Consolas;font-size:10pt">text_det_thresh</span> &lt; 0.1): Genera exceso de falsos positivos en la detección, incluyendo artefactos, manchas y ruido como "texto".</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Desactivación de orientación</b>: Sin el clasificador de orientación, las líneas de texto pueden mezclarse incorrectamente, especialmente en tablas.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Combinación fatal</b>: La peor combinación es umbral bajo + sin orientación, que produce textos completamente desordenados y con inserciones de ruido.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Recomendación</b>: Evitar <span style="font-family:Consolas;font-size:10pt">text_det_thresh</span> &lt; 0.1 en cualquier configuración.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Comparación Baseline vs Optimizado</span></h3>
<h4><span lang="ES">Evaluación sobre Dataset Completo</span></h4>
<p class="MsoNormal"><span lang="ES">La configuración óptima identificada se evaluó sobre el dataset completo de 24 páginas, comparando con la configuración baseline:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Configuración Baseline:</b></span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>baseline_config = {
"textline_orientation": False, # Valor por defecto
"use_doc_orientation_classify": False,
"use_doc_unwarping": False,
"text_det_thresh": 0.3, # Valor por defecto
"text_det_box_thresh": 0.6, # Valor por defecto
"text_det_unclip_ratio": 1.5, # Valor por defecto
"text_rec_score_thresh": 0.5, # Valor por defecto
}</pre></span></p>
<p class="MsoNormal"><span lang="ES"><b>Configuración Optimizada:</b></span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>optimized_config = {
"textline_orientation": True,
"use_doc_orientation_classify": False,
"use_doc_unwarping": False,
"text_det_thresh": 0.4690,
"text_det_box_thresh": 0.5412,
"text_det_unclip_ratio": 0.0,
"text_rec_score_thresh": 0.6350,
}</pre></span></p>
<a name="_Ref_Tab35"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->35<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 27. Comparación baseline vs optimizado (24 páginas).</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Modelo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Precisión Caracteres</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">WER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Precisión Palabras</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddleOCR (Baseline)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">7.78%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">92.22%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">14.94%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">85.06%</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddleOCR-HyperAdjust</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>1.49%</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>98.51%</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>7.62%</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>92.38%</b></span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Métricas de Mejora</span></h4>
<a name="_Ref_Tab36"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->36<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 28. Análisis cuantitativo de la mejora.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Forma de Medición</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">WER</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Valor baseline</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">7.78%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">14.94%</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Valor optimizado</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.49%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">7.62%</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Mejora absoluta</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-6.29 pp</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-7.32 pp</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Reducción relativa del error</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>80.9%</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>49.0%</b></span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Factor de mejora</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5.2×</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2.0×</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<a name="_Ref_Fig8"></a><p class="MsoCaption" style="text-align:center"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Figura <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Figura \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->8<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Comparación Baseline vs Optimizado (24 páginas)</span></i></p>
<p class="MsoNormal" style="text-align:center"><span lang="ES"><img alt="Comparación Baseline vs Optimizado (24 páginas)" src="figures/figura_8.png" style="width:12cm;max-width:100%"/></span></p>
<p class="Piedefoto-tabla" style="margin-left:0cm;text-align:center"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Impacto Práctico</span></h4>
<p class="MsoNormal"><span lang="ES"><b>En un documento típico de 10,000 caracteres:</b></span></p>
<a name="_Ref_Tab37"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->37<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla de datos.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Configuración</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Caracteres con error</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Palabras con error*</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Baseline</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~778</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~225</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Optimizada</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~149</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~115</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Reducción</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>629 menos</b></span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>110 menos</b></span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">*Asumiendo longitud media de palabra = 6.6 caracteres en español.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Interpretación del notebook:</b></span></p>
<p class="MsoNormal" style="margin-left:2cm;margin-right:1cm"><i><span lang="ES">"La optimización de hiperparámetros mejoró la precisión de caracteres de 92.2% a 98.5%, una ganancia de 6.3 puntos porcentuales. Aunque el baseline ya ofrecía resultados aceptables, la configuración optimizada reduce los errores residuales en un 80.9%."</span></i></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Tiempo de Ejecución</span></h3>
<a name="_Ref_Tab38"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->38<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 29. Métricas de tiempo del experimento.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Métrica</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Valor</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tiempo total del experimento</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~6.4 horas</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tiempo medio por trial</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">347.61 segundos (~5.8 min)</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tiempo medio por página</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">69.42 segundos</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Variabilidad (std)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.57 segundos/página</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Páginas procesadas totales</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">320</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Observaciones:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>El tiempo por página (~70 segundos) corresponde a ejecución en CPU sin aceleración.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span>La variabilidad del tiempo es muy baja, indicando que los hiperparámetros no afectan significativamente la velocidad.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span>Con GPU, los tiempos serían 10-50× menores según benchmarks de PaddleOCR.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Resumen de la Sección</span></h3>
<p class="MsoNormal"><span lang="ES">Esta sección ha presentado:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Configuración del experimento</b>: Arquitectura de subprocesos, dataset extendido, espacio de búsqueda de 7 dimensiones</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Resultados estadísticos</b>:</span></p>
<p class="MsoNormal"><span lang="ES"> - CER medio: 5.25% (std: 11.03%) - CER mínimo: 1.15% - 67.2% de trials con CER &lt; 2%</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Hallazgos clave</b>:</span></p>
<p class="MsoNormal"><span lang="ES"> - <span style="font-family:Consolas;font-size:10pt">textline_orientation=True</span> reduce CER en 69.7% - <span style="font-family:Consolas;font-size:10pt">text_det_thresh</span> tiene correlación -0.52 con CER - Valores de <span style="font-family:Consolas;font-size:10pt">text_det_thresh</span> &lt; 0.1 causan fallos catastróficos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Mejora final</b>: CER reducido de 7.78% a 1.49% (reducción del 80.9%)</span></p>
<p class="MsoNormal"><span lang="ES"><b>Fuentes de datos:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">[<span style="font-family:Consolas;font-size:10pt">src/run_tuning.py</span>](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py): Script principal de optimización</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">[<span style="font-family:Consolas;font-size:10pt">src/raytune_ocr.py</span>](https://github.com/seryus/MastersThesis/blob/main/src/raytune_ocr.py): Librería de utilidades Ray Tune</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">[<span style="font-family:Consolas;font-size:10pt">src/results/</span>](https://github.com/seryus/MastersThesis/tree/main/src/results): Resultados CSV de los trials</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Discusión y análisis de resultados</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Introducción</span></h3>
<p class="MsoNormal"><span lang="ES">Esta sección presenta un análisis consolidado de los resultados obtenidos en las fases de benchmark comparativo y optimización de hiperparámetros. Se discuten las implicaciones prácticas, se evalúa el cumplimiento de los objetivos planteados y se identifican las limitaciones del estudio.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Resumen Consolidado de Resultados</span></h3>
<h4><span lang="ES">Progresión del Rendimiento</span></h4>
<a name="_Ref_Tab39"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->39<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 30. Evolución del rendimiento a través del estudio.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Fase</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Configuración</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Mejora vs anterior</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Benchmark inicial</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Baseline (5 páginas)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~5-6%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Optimización (mejor trial)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Optimizada (5 páginas)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.15%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~80%</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Validación final</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Optimizada (24 páginas)</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.49%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">-</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">El incremento del CER de 1.15% (5 páginas) a 1.49% (24 páginas) es esperado debido a la mayor diversidad de layouts en el dataset completo.</span></p>
<h4><span lang="ES">Comparación con Objetivo</span></h4>
<a name="_Ref_Tab40"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->40<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 31. Verificación del objetivo general.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Aspecto</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Objetivo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Resultado</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Cumplimiento</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Métrica</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CER</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CER</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"></span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Umbral</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">&lt; 2%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1.49%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"></span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Método</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sin fine-tuning</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Solo hiperparámetros</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"></span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Hardware</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sin GPU</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CPU only</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"></span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Análisis Detallado de Hiperparámetros</span></h3>
<h4><span lang="ES">Jerarquía de Importancia</span></h4>
<p class="MsoNormal"><span lang="ES">Basándose en el análisis de correlación y el impacto observado:</span></p>
<a name="_Ref_Tab41"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->41<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 32. Ranking de importancia de hiperparámetros.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Rank</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Parámetro</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Impacto</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Evidencia</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">textline_orientation</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Crítico</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Reduce CER 69.7%</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>Alto</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Correlación -0.52</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_rec_score_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Medio</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Correlación -0.16</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">4</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">text_det_box_thresh</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Bajo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Correlación +0.23</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_orientation_classify</span></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Nulo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sin mejora</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">6</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">use_doc_unwarping</span></span><
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Análisis del Parámetro textline_orientation</span></h4>
<p class="MsoNormal"><span lang="ES"><b>Por qué es tan importante:</b></span></p>
<p class="MsoNormal"><span lang="ES">El clasificador de orientación de línea resuelve un problema fundamental en documentos con layouts complejos: determinar el orden correcto de lectura. Sin este clasificador:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span>Las líneas de una tabla pueden mezclarse con texto adyacente</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">2.<span style="font-size:7pt">   </span>Los encabezados laterales pueden insertarse en posiciones incorrectas</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">3.<span style="font-size:7pt">   </span>El texto en columnas puede leerse en orden incorrecto</span></p>
<p class="MsoNormal"><span lang="ES">Para documentos académicos que típicamente incluyen tablas, listas y encabezados multinivel, este clasificador es esencial.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Recomendación</b>: Siempre activar <span style="font-family:Consolas;font-size:10pt">textline_orientation=True</span> para documentos estructurados.</span></p>
<h4><span lang="ES">Análisis del Parámetro text_det_thresh</span></h4>
<p class="MsoNormal"><span lang="ES"><b>Comportamiento observado:</b></span></p>
<a name="_Ref_Tab42"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->42<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla de datos.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Rango</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER típico</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Comportamiento</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.0 - 0.1</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">&gt;20%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Fallos catastróficos</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.1 - 0.3</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5-15%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Rendimiento pobre</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.3 - 0.5</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">1-5%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Rendimiento óptimo</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.5 - 0.7</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2-8%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Rendimiento aceptable</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES"><b>Interpretación:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Valores muy bajos (&lt; 0.1) incluyen ruido y artefactos como "texto"</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Valores muy altos (&gt; 0.6) filtran texto legítimo de bajo contraste</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">El rango óptimo (0.3-0.5) balancea precisión y recall de detección</span></p>
<p class="MsoNormal"><span lang="ES"><b>Valor óptimo encontrado</b>: 0.4690</span></p>
<h4><span lang="ES">Parámetros sin Impacto Significativo</span></h4>
<p class="MsoNormal"><span lang="ES"><b><span style="font-family:Consolas;font-size:10pt">use_doc_orientation_classify</span> y <span style="font-family:Consolas;font-size:10pt">use_doc_unwarping</span>:</b></span></p>
<p class="MsoNormal"><span lang="ES">Estos módulos están diseñados para:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Documentos escaneados con rotación</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Fotografías de documentos con perspectiva</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Documentos curvados o deformados</span></p>
<p class="MsoNormal"><span lang="ES">Para documentos PDF digitales como los evaluados, estos módulos son innecesarios e incluso pueden introducir artefactos. Su desactivación reduce el tiempo de procesamiento sin pérdida de precisión.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Análisis de Casos de Fallo</span></h3>
<h4><span lang="ES">Clasificación de Errores</span></h4>
<a name="_Ref_Tab43"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->43<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 33. Tipología de errores observados.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tipo de error</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Frecuencia</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Ejemplo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Causa probable</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Pérdida de acentos</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alta</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">más → mas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Modelo de reconocimiento</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Duplicación de caracteres</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Media</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">titulación → titulacióon</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Solapamiento de detecciones</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Confusión de puntuación</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Media</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">¿ → ?</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Caracteres similares</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Pérdida de eñe</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Baja</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">año → ano</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Modelo de reconocimiento</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Texto desordenado</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Variable</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Mezcla de líneas</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Fallo de orientación</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h4><span lang="ES">Patrones de Fallo por Tipo de Contenido</span></h4>
<a name="_Ref_Tab44"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->44<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 34. Tasa de error por tipo de contenido.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Tipo de contenido</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER estimado</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Factor de riesgo</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Párrafos de texto</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~1%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Bajo</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Listas numeradas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~2%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Medio</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tablas simples</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~3%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Medio</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Encabezados + pie de página</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~2%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Medio</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tablas complejas</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~5%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alto</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Texto en columnas</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~4%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Alto</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Comparación con Objetivos Específicos</span></h3>
<a name="_Ref_Tab45"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->45<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 35. Cumplimiento de objetivos específicos.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Objetivo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Descripción</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Resultado</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Estado</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">OE1</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Comparar soluciones OCR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">EasyOCR, PaddleOCR, DocTR evaluados; PaddleOCR seleccionado</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">✓ Cumplido</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">OE2</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Preparar dataset de evaluación</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">24 páginas con ground truth</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">✓ Cumplido</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">OE3</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Identificar hiperparámetros críticos</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">textline_orientation</span> y <span style="font-family:Consolas;font-size:10pt">text_det_thresh</span> identificados</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">✓ Cumplido</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">OE4</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Optimizar con Ray Tune (≥50 trials)</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">64 trials ejecutados</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">✓ Cumplido</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">OE5</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Validar configuración optimizada</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CER: 7.78% → 1.49% documentado</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">✓ Cumplido</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Limitaciones del Estudio</span></h3>
<h4><span lang="ES">Limitaciones de Generalización</span></h4>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Tipo de documento único</b>: Solo se evaluaron documentos académicos de UNIR. La configuración óptima puede no ser transferible a otros tipos de documentos (facturas, formularios, contratos).</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Idioma único</b>: El estudio se centró en español. Otros idiomas con diferentes características ortográficas podrían requerir configuraciones diferentes.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Formato único</b>: Solo se evaluaron PDFs digitales. Documentos escaneados o fotografías de documentos podrían beneficiarse de diferentes configuraciones.</span></p>
<h4><span lang="ES">Limitaciones Metodológicas</span></h4>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Ground truth automático</b>: El texto de referencia se extrajo programáticamente del PDF, lo cual puede introducir errores en layouts complejos donde el orden de lectura no es evidente.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Tamaño del dataset</b>: 24 páginas es un dataset pequeño. Un dataset más amplio proporcionaría estimaciones más robustas.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Parámetro fijo</b>: <span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span> se mantuvo en 0.0 durante todo el experimento. Explorar este parámetro podría revelar mejoras adicionales.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Ejecución en CPU</b>: Los tiempos reportados corresponden a ejecución en CPU. El comportamiento con GPU podría diferir.</span></p>
<h4><span lang="ES">Limitaciones de Validación</span></h4>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Sin validación cruzada</b>: No se realizó validación cruzada sobre diferentes subconjuntos del dataset.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Sin test set independiente</b>: El dataset de validación final se solapaba parcialmente con el de optimización.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Implicaciones Prácticas</span></h3>
<h4><span lang="ES">Guía de Configuración Recomendada</span></h4>
<p class="MsoNormal"><span lang="ES">Para documentos académicos en español similares a los evaluados:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Configuración recomendada:</b></span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>config_recomendada = {
# OBLIGATORIO
"textline_orientation": True,
# RECOMENDADO
"text_det_thresh": 0.45, # Rango: 0.4-0.5
"text_rec_score_thresh": 0.6, # Rango: 0.5-0.7
# OPCIONAL
"text_det_box_thresh": 0.55, # Rango: 0.5-0.6
# NO RECOMENDADO para PDFs digitales
"use_doc_orientation_classify": False,
"use_doc_unwarping": False,
}</pre></span></p>
<h4><span lang="ES">Cuándo Aplicar Esta Metodología</span></h4>
<p class="MsoNormal"><span lang="ES">La optimización de hiperparámetros es recomendable cuando:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Sin GPU disponible</b>: El fine-tuning requiere GPU; la optimización de hiperparámetros no.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Modelo preentrenado adecuado</b>: El modelo ya soporta el idioma objetivo.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Dominio específico</b>: Se busca optimizar para un tipo de documento particular.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Mejora incremental</b>: El rendimiento baseline es aceptable pero mejorable.</span></p>
<h4><span lang="ES">Cuándo NO Aplicar Esta Metodología</span></h4>
<p class="MsoNormal"><span lang="ES">La optimización de hiperparámetros puede ser insuficiente cuando:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Idioma no soportado</b>: El modelo no incluye el idioma en su vocabulario.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Escritura manuscrita</b>: Requiere fine-tuning o modelos especializados.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Documentos muy degradados</b>: Escaneos de baja calidad o documentos históricos.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Requisitos de CER &lt; 0.5%</b>: Puede requerir fine-tuning para alcanzar precisiones muy altas.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Resumen del Capítulo</span></h3>
<p class="MsoNormal"><span lang="ES">Este capítulo ha presentado el desarrollo completo de la contribución:</span></p>
<p class="MsoNormal"><span lang="ES"><b>Planteamiento de la comparativa:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Evaluación de EasyOCR, PaddleOCR y DocTR</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Selección de PaddleOCR por su configurabilidad</span></p>
<p class="MsoNormal"><span lang="ES"><b>Desarrollo de la comparativa:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">64 trials de Ray Tune con Optuna</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Identificación de <span style="font-family:Consolas;font-size:10pt">textline_orientation</span> y <span style="font-family:Consolas;font-size:10pt">text_det_thresh</span> como críticos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">CER mínimo alcanzado: 1.15%</span></p>
<p class="MsoNormal"><span lang="ES"><b>Discusión y análisis:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Mejora del CER de 7.78% a 1.49% (reducción del 80.9%)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Cumplimiento de todos los objetivos específicos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Identificación de limitaciones y recomendaciones prácticas</span></p>
<p class="MsoNormal"><span lang="ES"><b>Resultado principal</b>: Se logró alcanzar el objetivo de CER &lt; 2% mediante optimización de hiperparámetros, sin requerir fine-tuning ni recursos GPU.</span></p>
<p class="MsoNormal"><span lang="ES"><b>Fuentes de datos:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">[<span style="font-family:Consolas;font-size:10pt">src/run_tuning.py</span>](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py): Script principal de optimización</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">[<span style="font-family:Consolas;font-size:10pt">src/results/</span>](https://github.com/seryus/MastersThesis/tree/main/src/results): Resultados CSV de los trials</span></p>
<p class="MsoNormal"><span lang="ES"><b>Imágenes Docker:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/paddle-ocr-gpu</span>: PaddleOCR con soporte GPU</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/easyocr-gpu</span>: EasyOCR con soporte GPU</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/doctr-gpu</span>: DocTR con soporte GPU</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Validación con Aceleración GPU</span></h3>
<p class="MsoNormal"><span lang="ES">Para evaluar la viabilidad práctica del enfoque optimizado en escenarios de producción, se realizó una validación adicional utilizando aceleración GPU. Esta fase complementa los experimentos en CPU presentados anteriormente y demuestra la aplicabilidad del método cuando se dispone de hardware con capacidad de procesamiento paralelo.</span></p>
<h4><span lang="ES">Configuración del Entorno GPU</span></h4>
<a name="_Ref_Tab46"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->46<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 36. Especificaciones del entorno de validación GPU.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Componente</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Especificación</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">GPU</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">NVIDIA GeForce RTX 3060 Laptop</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">VRAM</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5.66 GB</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CUDA</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">12.4</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sistema Operativo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Ubuntu 24.04.3 LTS</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Kernel</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">6.14.0-37-generic</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">El entorno de validación representa hardware de consumo típico para desarrollo de aplicaciones de machine learning, permitiendo evaluar el rendimiento en condiciones realistas de despliegue.</span></p>
<h4><span lang="ES">Comparación CPU vs GPU</span></h4>
<p class="MsoNormal"><span lang="ES">Se evaluó el tiempo de procesamiento utilizando la configuración optimizada identificada en la fase anterior, comparando el rendimiento entre CPU y GPU.</span></p>
<a name="_Ref_Tab47"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->47<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 37. Rendimiento comparativo CPU vs GPU.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Métrica</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CPU</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">GPU (RTX 3060)</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Factor de Aceleración</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Tiempo/Página</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">69.4s</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.55s</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>126x</b></span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Dataset completo (45 páginas)</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~52 min</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">~25 seg</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>126x</b></span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">La aceleración de 126x obtenida con GPU transforma la aplicabilidad práctica del sistema. Mientras que el procesamiento en CPU limita el uso a escenarios de procesamiento por lotes sin restricciones de tiempo, la velocidad con GPU habilita casos de uso interactivos y de tiempo real.</span></p>
<h4><span lang="ES">Comparación de Modelos PaddleOCR</span></h4>
<p class="MsoNormal"><span lang="ES">PaddleOCR ofrece dos variantes de modelos: Mobile (optimizados para dispositivos con recursos limitados) y Server (mayor precisión a costa de mayor consumo de memoria). Se evaluó la viabilidad de ambas variantes en el hardware disponible.</span></p>
<a name="_Ref_Tab48"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->48<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 38. Comparación de modelos Mobile vs Server en RTX 3060.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Modelo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">VRAM Requerida</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Resultado</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Recomendación</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PP-OCRv5 Mobile</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.06 GB</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Funciona correctamente</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">✓ Recomendado</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PP-OCRv5 Server</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">5.3 GB</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">OOM en página 2</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">✗ Requiere &gt;8 GB VRAM</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="ES">Los modelos Server, a pesar de ofrecer potencialmente mayor precisión, resultan inviables en hardware con VRAM limitada (≤6 GB) debido a errores de memoria (Out of Memory). Los modelos Mobile, con un consumo de memoria 88 veces menor, funcionan de manera estable y ofrecen rendimiento suficiente para el caso de uso evaluado.</span></p>
<h4><span lang="ES">Conclusiones de la Validación GPU</span></h4>
<p class="MsoNormal"><span lang="ES">La validación con aceleración GPU permite extraer las siguientes conclusiones:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Aceleración significativa</b>: La GPU proporciona una aceleración de 126x sobre CPU, haciendo viable el procesamiento en tiempo real para aplicaciones interactivas.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Modelos Mobile recomendados</b>: Para hardware con VRAM limitada (≤6 GB), los modelos Mobile de PP-OCRv5 ofrecen el mejor balance entre precisión y recursos, funcionando de manera estable sin errores de memoria.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Viabilidad práctica</b>: Con GPU, el procesamiento de un documento completo (45 páginas) toma menos de 30 segundos, validando la aplicabilidad en entornos de producción donde el tiempo de respuesta es crítico.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Escalabilidad</b>: La arquitectura de microservicios dockerizados utilizada para la validación GPU facilita el despliegue horizontal, permitiendo escalar el procesamiento según demanda.</span></p>
<p class="MsoNormal"><span lang="ES">Esta validación demuestra que la configuración optimizada mediante Ray Tune no solo mejora la precisión (CER: 7.78% → 1.49%) sino que, combinada con aceleración GPU, resulta prácticamente aplicable en escenarios de producción real.</span></p><h1 style="mso-list:l22 level1 lfo18"><a name="_Toc160619818"><?if !supportLists?><span lang="ES" style='mso-fareast-font-family:"Calibri Light";mso-fareast-theme-font:
major-latin;mso-bidi-font-family:"Calibri Light";mso-bidi-theme-font:major-latin'><span style="mso-list:Ignore">5.<span style='font:7.0pt "Times New Roman"'>  
</span></span></span><?endif?><span lang="ES" style="text-transform:none">Conclusiones
y trabajo futuro</span></a></h1><p class="MsoNormal"><span lang="ES">Este capítulo resume las principales conclusiones del trabajo, evalúa el grado de cumplimiento de los objetivos planteados y propone líneas de trabajo futuro que permitirían ampliar y profundizar los resultados obtenidos.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Conclusiones</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Conclusiones Generales</span></h3>
<p class="MsoNormal"><span lang="ES">Este Trabajo Fin de Máster ha demostrado que es posible mejorar significativamente el rendimiento de sistemas OCR preentrenados mediante optimización sistemática de hiperparámetros, sin requerir fine-tuning ni recursos GPU dedicados.</span></p>
<p class="MsoNormal"><span lang="ES">El objetivo principal del trabajo era alcanzar un CER inferior al 2% en documentos académicos en español. Los resultados obtenidos confirman el cumplimiento de este objetivo:</span></p>
<a name="_Ref_Tab49"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->49<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla 39. Cumplimiento del objetivo de CER.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Métrica</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Objetivo</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Resultado</span></b></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CER</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">&lt; 2%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>1.49%</b></span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Conclusiones Específicas</span></h3>
<p class="MsoNormal"><span lang="ES"><b>Respecto a OE1 (Comparativa de soluciones OCR)</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Se evaluaron tres soluciones OCR de código abierto: EasyOCR, PaddleOCR (PP-OCRv5) y DocTR</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">PaddleOCR demostró el mejor rendimiento base para documentos en español</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">La configurabilidad del pipeline de PaddleOCR lo hace idóneo para optimización</span></p>
<p class="MsoNormal"><span lang="ES"><b>Respecto a OE2 (Preparación del dataset)</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Se construyó un dataset estructurado con 24 páginas de documentos académicos</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">La clase <span style="font-family:Consolas;font-size:10pt">ImageTextDataset</span> facilita la carga de pares imagen-texto</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">El ground truth se extrajo automáticamente del PDF mediante PyMuPDF</span></p>
<p class="MsoNormal"><span lang="ES"><b>Respecto a OE3 (Identificación de hiperparámetros críticos)</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">El parámetro <span style="font-family:Consolas;font-size:10pt">textline_orientation</span> es el más influyente: reduce el CER en un 69.7% cuando está habilitado</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">El umbral <span style="font-family:Consolas;font-size:10pt">text_det_thresh</span> presenta la correlación más fuerte (-0.52) con el CER</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Los parámetros de corrección de documento (<span style="font-family:Consolas;font-size:10pt">use_doc_orientation_classify</span>, <span style="font-family:Consolas;font-size:10pt">use_doc_unwarping</span>) no aportan mejora en documentos digitales</span></p>
<p class="MsoNormal"><span lang="ES"><b>Respecto a OE4 (Optimización con Ray Tune)</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Se ejecutaron 64 trials con el algoritmo OptunaSearch</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">El tiempo total del experimento fue aproximadamente 6 horas (en CPU)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">La arquitectura basada en subprocesos permitió superar incompatibilidades entre Ray y PaddleOCR</span></p>
<p class="MsoNormal"><span lang="ES"><b>Respecto a OE5 (Validación de la configuración)</b>:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">Se validó la configuración óptima sobre el dataset completo de 24 páginas</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">La mejora obtenida fue del 80.9% en reducción del CER (7.78% → 1.49%)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">La precisión de caracteres alcanzó el 98.51%</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Hallazgos Clave</span></h3>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Arquitectura sobre umbrales</b>: Un único parámetro booleano (<span style="font-family:Consolas;font-size:10pt">textline_orientation</span>) tiene más impacto que todos los umbrales continuos combinados.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Umbrales mínimos efectivos</b>: Valores de <span style="font-family:Consolas;font-size:10pt">text_det_thresh</span> &lt; 0.1 causan fallos catastróficos (CER &gt;40%).</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Simplicidad para documentos digitales</b>: Para documentos PDF digitales (no escaneados), los módulos de corrección de orientación y deformación son innecesarios.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Optimización sin fine-tuning</b>: Se puede mejorar significativamente el rendimiento de modelos preentrenados mediante ajuste de hiperparámetros de inferencia.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Contribuciones del Trabajo</span></h3>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Metodología reproducible</b>: Se documenta un proceso completo de optimización de hiperparámetros OCR con Ray Tune + Optuna.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Análisis de hiperparámetros de PaddleOCR</b>: Se cuantifica el impacto de cada parámetro configurable mediante correlaciones y análisis comparativo.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Configuración óptima para español</b>: Se proporciona una configuración validada para documentos académicos en español.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Código fuente</b>: Todo el código está disponible en el repositorio GitHub para reproducción y extensión.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Limitaciones del Trabajo</span></h3>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Tipo de documento único</b>: Los experimentos se realizaron únicamente sobre documentos académicos de UNIR. La generalización a otros tipos de documentos requiere validación adicional.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Tamaño del dataset</b>: 24 páginas es un corpus limitado para conclusiones estadísticamente robustas.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Ground truth automático</b>: La extracción automática del texto de referencia puede introducir errores en layouts complejos.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Validación en entorno limitado</b>: Aunque se validó con GPU (126x más rápido que CPU, 0.55s/página), los experimentos se realizaron en hardware de consumo (RTX 3060). Hardware empresarial podría ofrecer mejor rendimiento.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Parámetro no explorado</b>: <span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span> permaneció fijo en 0.0 durante todo el experimento.</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">Líneas de trabajo futuro</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Extensiones Inmediatas</span></h3>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Validación cruzada</b>: Evaluar la configuración óptima en otros tipos de documentos en español (facturas, formularios, textos manuscritos).</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Exploración de <span style="font-family:Consolas;font-size:10pt">text_det_unclip_ratio</span></b>: Incluir este parámetro en el espacio de búsqueda.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Dataset ampliado</b>: Construir un corpus más amplio y diverso de documentos en español.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Líneas de Investigación</span></h3>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Transfer learning de hiperparámetros</b>: Investigar si las configuraciones óptimas para un tipo de documento transfieren a otros dominios.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Optimización multi-objetivo</b>: Considerar simultáneamente CER, WER y tiempo de inferencia como objetivos.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>AutoML para OCR</b>: Aplicar técnicas de AutoML más avanzadas (Neural Architecture Search, meta-learning).</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Comparación con fine-tuning</b>: Cuantificar la brecha de rendimiento entre optimización de hiperparámetros y fine-tuning real.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Aplicaciones Prácticas</span></h3>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Herramienta de configuración automática</b>: Desarrollar una herramienta que determine automáticamente la configuración óptima para un nuevo tipo de documento.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Integración en pipelines de producción</b>: Implementar la configuración optimizada en sistemas reales de procesamiento documental.</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES">1.<span style="font-size:7pt">   </span><b>Benchmark público</b>: Publicar un benchmark de OCR para documentos en español que facilite la comparación de soluciones.</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Reflexión Final</span></h3>
<p class="MsoNormal"><span lang="ES">Este trabajo demuestra que, en un contexto de recursos limitados donde el fine-tuning de modelos de deep learning no es viable, la optimización de hiperparámetros representa una alternativa práctica y efectiva para mejorar sistemas OCR.</span></p>
<p class="MsoNormal"><span lang="ES">La metodología propuesta es reproducible, los resultados son cuantificables, y las conclusiones son aplicables a escenarios reales de procesamiento documental. La reducción del CER del 7.78% al 1.49% representa una mejora sustancial que puede tener impacto directo en aplicaciones downstream como extracción de información, análisis semántico y búsqueda de documentos.</span></p>
<p class="MsoNormal"><span lang="ES">El código fuente y los datos experimentales están disponibles públicamente para facilitar la reproducción y extensión de este trabajo.</span></p><p class="Ttulo1sinnumerar"><a name="_Toc160619821"><span lang="ES">Referencias
bibliográficas</span></a></p><p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Akiba, T., Sano, S., Yanase, T., Ohta, T., &amp; Koyama, M. (2019). Optuna: A next-generation hyperparameter optimization framework. <i>Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery &amp; Data Mining</i>, 2623-2631. https://doi.org/10.1145/3292500.3330701</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Baek, Y., Lee, B., Han, D., Yun, S., &amp; Lee, H. (2019). Character region awareness for text detection. <i>Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition</i>, 9365-9374. https://doi.org/10.1109/CVPR.2019.00959</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Bergstra, J., &amp; Bengio, Y. (2012). Random search for hyper-parameter optimization. <i>Journal of Machine Learning Research</i>, 13(1), 281-305. https://jmlr.org/papers/v13/bergstra12a.html</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Bergstra, J., Bardenet, R., Bengio, Y., &amp; Kégl, B. (2011). Algorithms for hyper-parameter optimization. <i>Advances in Neural Information Processing Systems</i>, 24, 2546-2554. https://papers.nips.cc/paper/2011/hash/86e8f7ab32cfd12577bc2619bc635690-Abstract.html</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Cohen, J. (1988). <i>Statistical power analysis for the behavioral sciences</i> (2nd ed.). Lawrence Erlbaum Associates.</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Doran, G. T. (1981). There's a S.M.A.R.T. way to write management's goals and objectives. <i>Management Review</i>, 70(11), 35-36.</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Du, Y., Li, C., Guo, R., Yin, X., Liu, W., Zhou, J., Bai, Y., Yu, Z., Yang, Y., Dang, Q., &amp; Wang, H. (2020). PP-OCR: A practical ultra lightweight OCR system. <i>arXiv preprint arXiv:2009.09941</i>. https://arxiv.org/abs/2009.09941</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Du, Y., Li, C., Guo, R., Cui, C., Liu, W., Zhou, J., Lu, B., Yang, Y., Liu, Q., Hu, X., Yu, D., &amp; Wang, H. (2023). PP-OCRv4: Mobile scene text detection and recognition. <i>arXiv preprint arXiv:2310.05930</i>. https://arxiv.org/abs/2310.05930</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Feurer, M., &amp; Hutter, F. (2019). Hyperparameter optimization. In F. Hutter, L. Kotthoff, &amp; J. Vanschoren (Eds.), <i>Automated machine learning: Methods, systems, challenges</i> (pp. 3-33). Springer. https://doi.org/10.1007/978-3-030-05318-5_1</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">He, P., Huang, W., Qiao, Y., Loy, C. C., &amp; Tang, X. (2016). Reading scene text in deep convolutional sequences. <i>Proceedings of the AAAI Conference on Artificial Intelligence</i>, 30(1), 3501-3508. https://doi.org/10.1609/aaai.v30i1.10291</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">JaidedAI. (2020). EasyOCR: Ready-to-use OCR with 80+ supported languages. GitHub. https://github.com/JaidedAI/EasyOCR</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Liang, J., Doermann, D., &amp; Li, H. (2005). Camera-based analysis of text and documents: A survey. <i>International Journal of Document Analysis and Recognition</i>, 7(2), 84-104. https://doi.org/10.1007/s10032-004-0138-z</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Liao, M., Wan, Z., Yao, C., Chen, K., &amp; Bai, X. (2020). Real-time scene text detection with differentiable binarization. <i>Proceedings of the AAAI Conference on Artificial Intelligence</i>, 34(07), 11474-11481. https://doi.org/10.1609/aaai.v34i07.6812</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Liaw, R., Liang, E., Nishihara, R., Moritz, P., Gonzalez, J. E., &amp; Stoica, I. (2018). Tune: A research platform for distributed model selection and training. <i>arXiv preprint arXiv:1807.05118</i>. https://arxiv.org/abs/1807.05118</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Mindee. (2021). DocTR: Document Text Recognition. GitHub. https://github.com/mindee/doctr</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Moritz, P., Nishihara, R., Wang, S., Tumanov, A., Liaw, R., Liang, E., Elibol, M., Yang, Z., Paul, W., Jordan, M. I., &amp; Stoica, I. (2018). Ray: A distributed framework for emerging AI applications. <i>13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)</i>, 561-577. https://www.usenix.org/conference/osdi18/presentation/moritz</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Morris, A. C., Maier, V., &amp; Green, P. D. (2004). From WER and RIL to MER and WIL: Improved evaluation measures for connected speech recognition. <i>Eighth International Conference on Spoken Language Processing</i>. https://doi.org/10.21437/Interspeech.2004-668</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">PaddlePaddle. (2024). PaddleOCR: Awesome multilingual OCR toolkits based on PaddlePaddle. GitHub. https://github.com/PaddlePaddle/PaddleOCR</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Pearson, K. (1895). Notes on regression and inheritance in the case of two parents. <i>Proceedings of the Royal Society of London</i>, 58, 240-242. https://doi.org/10.1098/rspl.1895.0041</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">PyMuPDF. (2024). PyMuPDF documentation. https://pymupdf.readthedocs.io/</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Shi, B., Bai, X., &amp; Yao, C. (2016). An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition. <i>IEEE Transactions on Pattern Analysis and Machine Intelligence</i>, 39(11), 2298-2304. https://doi.org/10.1109/TPAMI.2016.2646371</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Smith, R. (2007). An overview of the Tesseract OCR engine. <i>Ninth International Conference on Document Analysis and Recognition (ICDAR 2007)</i>, 2, 629-633. https://doi.org/10.1109/ICDAR.2007.4376991</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Zhou, X., Yao, C., Wen, H., Wang, Y., Zhou, S., He, W., &amp; Liang, J. (2017). EAST: An efficient and accurate scene text detector. <i>Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition</i>, 5551-5560. https://doi.org/10.1109/CVPR.2017.283</span></p>
<p class="MsoBibliography" style="margin-left:36.0pt;text-indent:-36.0pt"><span lang="ES">Zoph, B., &amp; Le, Q. V. (2017). Neural architecture search with reinforcement learning. <i>International Conference on Learning Representations (ICLR)</i>. https://arxiv.org/abs/1611.01578</span></p>
<p class="Anexo" style="mso-list:l2 level1 lfo23"><a name="_Toc160619822"><?if !supportLists?><span lang="ES" style='mso-fareast-font-family:"Calibri Light";mso-fareast-theme-font:
major-latin;mso-bidi-font-family:"Calibri Light";mso-bidi-theme-font:major-latin'><span style="mso-list:Ignore">Anexo A.<span style='font:7.0pt "Times New Roman"'>   
</span></span></span><?endif?><span lang="ES">Código fuente y datos analizados</span></a></p><h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">A.1 Repositorio del Proyecto</span></h2>
<p class="MsoNormal"><span lang="ES">El código fuente completo y los datos utilizados en este trabajo están disponibles en el siguiente repositorio:</span></p>
<p class="MsoNormal"><span lang="ES"><b>URL del repositorio:</b> https://github.com/seryus/MastersThesis</span></p>
<p class="MsoNormal"><span lang="ES">El repositorio incluye:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Servicios OCR dockerizados</b>: PaddleOCR, DocTR, EasyOCR con soporte GPU</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Scripts de evaluación</b>: Herramientas para evaluar y comparar modelos OCR</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Scripts de ajuste</b>: Ray Tune con Optuna para optimización de hiperparámetros</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Dataset</b>: Imágenes y textos de referencia utilizados</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES"><b>Resultados</b>: Archivos CSV con los resultados de los 64 trials por servicio</span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">A.2 Estructura del Repositorio</span></h2>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>MastersThesis/
├── docs/ # Documentación de la tesis
│ └── metrics/ # Métricas de rendimiento OCR
│ ├── metrics.md # Resumen comparativo
│ ├── metrics_paddle.md # Resultados PaddleOCR
│ ├── metrics_doctr.md # Resultados DocTR
│ └── metrics_easyocr.md # Resultados EasyOCR
├── src/
│ ├── paddle_ocr/ # Servicio PaddleOCR
│ │ ├── Dockerfile.gpu # Imagen Docker GPU
│ │ ├── Dockerfile.cpu # Imagen Docker CPU
│ │ ├── docker-compose.yml # Configuración Docker
│ │ └── main.py # API FastAPI
│ ├── doctr_service/ # Servicio DocTR
│ │ ├── Dockerfile.gpu
│ │ ├── docker-compose.yml
│ │ └── main.py
│ ├── easyocr_service/ # Servicio EasyOCR
│ │ ├── Dockerfile.gpu
│ │ ├── docker-compose.yml
│ │ └── main.py
│ ├── dataset/ # Dataset de evaluación
│ ├── raytune_ocr.py # Utilidades compartidas Ray Tune
│ └── results/ # Resultados de ajuste CSV
└── .gitea/workflows/ci.yaml # Pipeline CI/CD</pre></span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">A.3 Requisitos de Software</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Sistema de Desarrollo</span></h3>
<a name="_Ref_Tab50"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->50<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla A1. Especificaciones del sistema de desarrollo.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Componente</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Especificación</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Sistema Operativo</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Ubuntu 24.04.3 LTS</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CPU</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">AMD Ryzen 7 5800H</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">RAM</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">16 GB DDR4</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">GPU</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">NVIDIA RTX 3060 Laptop (5.66 GB VRAM)</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">CUDA</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">12.4</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Dependencias</span></h3>
<a name="_Ref_Tab51"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->51<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla A2. Dependencias del proyecto.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Componente</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Versión</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Python</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">3.12.3</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Docker</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">29.1.5</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">NVIDIA Container Toolkit</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Requerido para GPU</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Ray</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">2.52.1</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">Optuna</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">4.7.0</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">A.4 Instrucciones de Ejecución de Servicios OCR</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">PaddleOCR (Puerto 8002)</span></h3>
<p class="MsoNormal"><span lang="ES"><b>Imágenes Docker:</b></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">GPU: <span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/paddle-ocr-gpu</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">CPU: <span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/paddle-ocr-cpu</span></span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>cd src/paddle_ocr
# GPU (recomendado)
docker compose up -d
# CPU (más lento, 126x)
docker compose -f docker-compose.cpu-registry.yml up -d</pre></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">DocTR (Puerto 8003)</span></h3>
<p class="MsoNormal"><span lang="ES"><b>Imagen Docker:</b> <span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/doctr-gpu</span></span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>cd src/doctr_service
# GPU
docker compose up -d</pre></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">EasyOCR (Puerto 8002)</span></h3>
<p class="MsoNormal"><span lang="ES"><b>Imagen Docker:</b> <span style="font-family:Consolas;font-size:10pt">seryus.ddns.net/unir/easyocr-gpu</span></span></p>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>cd src/easyocr_service
# GPU
docker compose up -d</pre></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Verificar Estado del Servicio</span></h3>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre># Verificar salud del servicio
curl http://localhost:8002/health
# Respuesta esperada:
# {"status": "ok", "model_loaded": true, "gpu_name": "NVIDIA GeForce RTX 3060"}</pre></span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">A.5 Uso de la API OCR</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Evaluar Dataset Completo</span></h3>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre># PaddleOCR - Evaluación completa
curl -X POST http://localhost:8002/evaluate_full \
-H "Content-Type: application/json" \
-d '{
"pdf_folder": "/app/dataset",
"save_output": true
}'</pre></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Evaluar con Hiperparámetros Optimizados</span></h3>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre># PaddleOCR con configuración óptima
curl -X POST http://localhost:8002/evaluate_full \
-H "Content-Type: application/json" \
-d '{
"pdf_folder": "/app/dataset",
"use_doc_orientation_classify": true,
"use_doc_unwarping": false,
"textline_orientation": true,
"text_det_thresh": 0.0462,
"text_det_box_thresh": 0.4862,
"text_det_unclip_ratio": 0.0,
"text_rec_score_thresh": 0.5658,
"save_output": true
}'</pre></span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">A.6 Ajuste de Hiperparámetros con Ray Tune</span></h2>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Ejecutar Ajuste</span></h3>
<p class="MsoNormal" style="margin-left:1cm"><span style="font-family:Consolas;font-size:9pt"><pre>cd src
# Activar entorno virtual
source ../.venv/bin/activate
# PaddleOCR (64 muestras)
python -c "
from raytune_ocr import *
ports = [8002]
check_workers(ports, 'PaddleOCR')
trainable = create_trainable(ports, paddle_ocr_payload)
results = run_tuner(trainable, PADDLE_OCR_SEARCH_SPACE, num_samples=64)
analyze_results(results, prefix='raytune_paddle', config_keys=PADDLE_OCR_CONFIG_KEYS)
"</pre></span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Servicios y Puertos</span></h3>
<a name="_Ref_Tab52"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->52<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla A3. Servicios Docker y puertos.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Servicio</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Puerto</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Script de Ajuste</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">PaddleOCR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">8002</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">paddle_ocr_payload</span></span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">DocTR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">8003</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">doctr_payload</span></span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">EasyOCR</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">8002</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><span style="font-family:Consolas;font-size:10pt">easyocr_payload</span></span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">A.7 Métricas de Rendimiento</span></h2>
<p class="MsoNormal"><span lang="ES">Los resultados detallados de las evaluaciones y ajustes de hiperparámetros se encuentran en:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">[Métricas Generales](metrics/metrics.md) - Comparativa de los tres servicios</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">[PaddleOCR](metrics/metrics_paddle.md) - Mejor precisión (7.76% CER baseline, <b>1.49% optimizado</b>)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">[DocTR](metrics/metrics_doctr.md) - Más rápido (0.50s/página)</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left:36pt;text-indent:-18pt"><span lang="ES" style="font-family:Symbol">·</span><span lang="ES" style="font-size:7pt">     </span><span lang="ES">[EasyOCR](metrics/metrics_easyocr.md) - Balance intermedio</span></p>
<h3 style="mso-list:l22 level3 lfo18"><span lang="ES" style="text-transform:none">Resumen de Resultados</span></h3>
<a name="_Ref_Tab53"></a><p class="MsoCaption"><b><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla <!--[if supportFields]><span style='mso-element:field-begin'></span> SEQ Tabla \* ARABIC <span style='mso-element:field-separator'></span><![endif]-->53<!--[if supportFields]><span style='mso-element:field-end'></span><![endif]-->.</span></b><span lang="ES" style="font-size:12.0pt;line-height:150%"> </span><i><span lang="ES" style="font-size:12.0pt;line-height:150%">Tabla A4. Resumen de resultados del benchmark por servicio.</span></i></p>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse:collapse;border:none"><tr><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Servicio</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER Base</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">CER Ajustado</span></b></p></td><td style="border-top:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><b><span lang="ES">Mejora</span></b></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>PaddleOCR</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">8.85%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES"><b>7.72%</b></span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">12.8%</span></p></td></tr><tr><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">DocTR</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">12.06%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">12.07%</span></p></td><td style="border:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0%</span></p></td></tr><tr><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">EasyOCR</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">11.23%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">11.14%</span></p></td><td style="border-top:none;border-bottom:solid windowtext 1.0pt;border-left:none;border-right:none;padding:5px"><p class="MsoNormal" style="margin:0"><span lang="ES">0.8%</span></p></td></tr></table>
<p class="Piedefoto-tabla" style="margin-left:0cm"><span lang="ES">Fuente: Elaboración propia.</span></p>
<p class="MsoNormal"><span lang="ES"><o:p> </o:p></span></p>
<h2 style="mso-list:l22 level2 lfo18"><span lang="ES" style="text-transform:none">A.8 Licencia</span></h2>
<p class="MsoNormal"><span lang="ES">El código se distribuye bajo licencia MIT.</span></p></div>
<div style="mso-element:footnote-list"><?if !supportFootnotes?><br clear="all"/>
<hr align="left" size="1" width="33%"/>
<?endif?>
<div id="ftn1" style="mso-element:footnote">
</div>
</div>
</body>
</html>