[{"data":1,"prerenderedAt":1130},["ShallowReactive",2],{"navigation_docs_en":3,"-en-advance-guide-classification-and-orientation":173,"-en-advance-guide-classification-and-orientation-surround":1125},[4,30,109,153],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fen\u002Fgetting-started","en\u002F01.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F01.getting-started\u002F1.introduction","i-ph-rocket",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F01.getting-started\u002F2.installation","i-ph-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fen\u002Fgetting-started\u002Fquick-start","en\u002F01.getting-started\u002F3.quick-start","i-ph-play",{"title":25,"path":26,"stem":27,"icon":28},"Live Demo","\u002Fen\u002Fgetting-started\u002Flive-demo","en\u002F01.getting-started\u002F4.live-demo","i-ph-sparkle",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"How To","\u002Fen\u002Fhow-to","en\u002F02.how-to",[35,40,45,50,55,60,65,70,75,79,84,89,94,99,104],{"title":36,"path":37,"stem":38,"icon":39},"Use Rust","\u002Fen\u002Fhow-to\u002Fuse-rust","en\u002F02.how-to\u002F00.use-rust","simple-icons-rust",{"title":41,"path":42,"stem":43,"icon":44},"Use .NET \u002F C#","\u002Fen\u002Fhow-to\u002Fuse-csharp","en\u002F02.how-to\u002F01.use-csharp","simple-icons-dotnet",{"title":46,"path":47,"stem":48,"icon":49},"Use React Native","\u002Fen\u002Fhow-to\u002Fuse-react-native","en\u002F02.how-to\u002F02.use-react-native","simple-icons-react",{"title":51,"path":52,"stem":53,"icon":54},"Use iOS (Swift)","\u002Fen\u002Fhow-to\u002Fuse-ios-swift","en\u002F02.how-to\u002F03.use-ios-swift","simple-icons-apple",{"title":56,"path":57,"stem":58,"icon":59},"Use Android (Kotlin)","\u002Fen\u002Fhow-to\u002Fuse-android-kotlin","en\u002F02.how-to\u002F04.use-android-kotlin","simple-icons-android",{"title":61,"path":62,"stem":63,"icon":64},"Use C FFI","\u002Fen\u002Fhow-to\u002Fuse-c-ffi","en\u002F02.how-to\u002F05.use-c-ffi","simple-icons-c",{"title":66,"path":67,"stem":68,"icon":69},"Use CLI","\u002Fen\u002Fhow-to\u002Fuse-cli","en\u002F02.how-to\u002F06.use-cli","simple-icons-gnubash",{"title":71,"path":72,"stem":73,"icon":74},"Use Web","\u002Fen\u002Fhow-to\u002Fuse-web","en\u002F02.how-to\u002F07.use-web","simple-icons-javascript",{"title":76,"path":77,"stem":78,"icon":49},"Use React","\u002Fen\u002Fhow-to\u002Fuse-react","en\u002F02.how-to\u002F08.use-react",{"title":80,"path":81,"stem":82,"icon":83},"Use Node.js","\u002Fen\u002Fhow-to\u002Fuse-node","en\u002F02.how-to\u002F09.use-node","simple-icons-nodedotjs",{"title":85,"path":86,"stem":87,"icon":88},"Use Python","\u002Fen\u002Fhow-to\u002Fuse-python","en\u002F02.how-to\u002F10.use-python","simple-icons-python",{"title":90,"path":91,"stem":92,"icon":93},"Use Golang","\u002Fen\u002Fhow-to\u002Fuse-golang","en\u002F02.how-to\u002F11.use-golang","simple-icons-go",{"title":95,"path":96,"stem":97,"icon":98},"Use Java & JVM","\u002Fen\u002Fhow-to\u002Fuse-java","en\u002F02.how-to\u002F12.use-java","simple-icons-openjdk",{"title":100,"path":101,"stem":102,"icon":103},"Use Flutter & Dart","\u002Fen\u002Fhow-to\u002Fuse-flutter","en\u002F02.how-to\u002F13.use-flutter","simple-icons-flutter",{"title":105,"path":106,"stem":107,"icon":108},"Use Decoded RGB Input","\u002Fen\u002Fhow-to\u002Fuse-decoded-rgb","en\u002F02.how-to\u002F14.use-decoded-rgb","lucide-image",{"title":110,"path":111,"stem":112,"children":113,"page":29},"Advance Guide","\u002Fen\u002Fadvance-guide","en\u002F03.advance-guide",[114,119,124,129,134,139,144,149],{"title":115,"path":116,"stem":117,"icon":118},"Models & Tiers","\u002Fen\u002Fadvance-guide\u002Fmodels-and-tiers","en\u002F03.advance-guide\u002F01.models-and-tiers","i-ph-cube",{"title":120,"path":121,"stem":122,"icon":123},"Multilingual OCR","\u002Fen\u002Fadvance-guide\u002Fmultilingual-ocr","en\u002F03.advance-guide\u002F02.multilingual-ocr","i-ph-translate",{"title":125,"path":126,"stem":127,"icon":128},"Spatial Layout Reconstruction","\u002Fen\u002Fadvance-guide\u002Fspatial-layout-reconstruction","en\u002F03.advance-guide\u002F03.spatial-layout-reconstruction","i-ph-layout",{"title":130,"path":131,"stem":132,"icon":133},"Image Preprocessing & Tuning","\u002Fen\u002Fadvance-guide\u002Fimage-preprocessing-and-tuning","en\u002F03.advance-guide\u002F04.image-preprocessing-and-tuning","i-ph-sliders",{"title":135,"path":136,"stem":137,"icon":138},"Classification & Orientation","\u002Fen\u002Fadvance-guide\u002Fclassification-and-orientation","en\u002F03.advance-guide\u002F05.classification-and-orientation","i-ph-arrows-clockwise",{"title":140,"path":141,"stem":142,"icon":143},"Performance & Benchmarks","\u002Fen\u002Fadvance-guide\u002Fperformance-and-benchmarks","en\u002F03.advance-guide\u002F06.performance-and-benchmarks","i-ph-chart-line-up",{"title":145,"path":146,"stem":147,"icon":148},"Troubleshooting","\u002Fen\u002Fadvance-guide\u002Ftroubleshooting","en\u002F03.advance-guide\u002F07.troubleshooting","i-ph-wrench",{"title":150,"path":151,"stem":152,"icon":138},"v0.2 to v0.3","\u002Fen\u002Fadvance-guide\u002Fmigration-guide","en\u002F03.advance-guide\u002F08.migration-guide",{"title":154,"path":155,"stem":156,"children":157,"page":29},"Api Reference","\u002Fen\u002Fapi-reference","en\u002F04.api-reference",[158,163,168],{"title":159,"path":160,"stem":161,"icon":162},"InitializeConfig","\u002Fen\u002Fapi-reference\u002Finitialize-config","en\u002F04.api-reference\u002F01.initialize-config","i-ph-code-block",{"title":164,"path":165,"stem":166,"icon":167},"OcrRunOptions","\u002Fen\u002Fapi-reference\u002Focr-run-options","en\u002F04.api-reference\u002F02.ocr-run-options","i-ph-faders",{"title":169,"path":170,"stem":171,"icon":172},"TextResult & Output Modes","\u002Fen\u002Fapi-reference\u002Ftext-result-and-output","en\u002F04.api-reference\u002F03.text-result-and-output","i-ph-textbox",{"id":174,"title":135,"body":175,"description":1117,"extension":1118,"links":1119,"meta":1120,"navigation":1121,"path":136,"seo":1122,"stem":137,"__hash__":1124},"docs_en\u002Fen\u002F03.advance-guide\u002F05.classification-and-orientation.md",{"type":176,"value":177,"toc":1107},"minimark",[178,182,185,372,375,380,383,405,410,576,580,586,648,650,654,657,759,762,813,815,819,1103],[179,180,181],"p",{},"Mobile camera captures and document scans often feature skewed angles, upside-down documents, or mixed text directions.",[179,183,184],{},"RustO! provides two distinct orientation correction stages:",[186,187,192],"pre",{"className":188,"code":189,"language":190,"meta":191,"style":191},"language-mermaid shiki shiki-themes material-theme-lighter github-light github-dark monokai","flowchart TD\n    A[\"Raw Input Image\u003Cbr\u002F>(Sideways \u002F Skewed Document)\"] --> B{\"1. Whole-Page Orient?\u003Cbr\u002F>(orient.rten)\"}\n    B -->|Enabled| C[\"Classify & Rotate Page\u003Cbr\u002F>(0&deg;, 90&deg;, 180&deg;, 270&deg;)\"]\n    B -->|Disabled| D[\"2. DBNet Text Detection\u003Cbr\u002F>(Extracts Text Polygon Quads)\"]\n    C --> D\n    D --> E{\"3. Text Line Direction CLS?\u003Cbr\u002F>(cls.rten)\"}\n    E -->|Enabled| F[\"Inspect Crop & Rotate Inverted Lines 180&deg;\"]\n    E -->|Disabled| G[\"4. CTC Text Recognition\u003Cbr\u002F>(rec.rten + dict.txt)\"]\n    F --> G\n","mermaid","",[193,194,195,208,240,266,288,300,318,340,361],"code",{"__ignoreMap":191},[196,197,200,204],"span",{"class":198,"line":199},"line",1,[196,201,203],{"class":202},"sRxSC","flowchart",[196,205,207],{"class":206},"sD0ED"," TD\n",[196,209,211,215,218,222,225,228,231,234,237],{"class":198,"line":210},2,[196,212,214],{"class":213},"s94S9","    A",[196,216,217],{"class":202},"[",[196,219,221],{"class":220},"sLACW","\"Raw Input Image\u003Cbr\u002F>(Sideways \u002F Skewed Document)\"",[196,223,224],{"class":202},"]",[196,226,227],{"class":202}," -->",[196,229,230],{"class":213}," B",[196,232,233],{"class":202},"{",[196,235,236],{"class":220},"\"1. Whole-Page Orient?\u003Cbr\u002F>(orient.rten)\"",[196,238,239],{"class":202},"}\n",[196,241,243,246,249,252,255,258,260,263],{"class":198,"line":242},3,[196,244,245],{"class":213},"    B ",[196,247,248],{"class":202},"-->|",[196,250,251],{"class":220},"Enabled",[196,253,254],{"class":202},"|",[196,256,257],{"class":213}," C",[196,259,217],{"class":202},[196,261,262],{"class":220},"\"Classify & Rotate Page\u003Cbr\u002F>(0&deg;, 90&deg;, 180&deg;, 270&deg;)\"",[196,264,265],{"class":202},"]\n",[196,267,269,271,273,276,278,281,283,286],{"class":198,"line":268},4,[196,270,245],{"class":213},[196,272,248],{"class":202},[196,274,275],{"class":220},"Disabled",[196,277,254],{"class":202},[196,279,280],{"class":213}," D",[196,282,217],{"class":202},[196,284,285],{"class":220},"\"2. DBNet Text Detection\u003Cbr\u002F>(Extracts Text Polygon Quads)\"",[196,287,265],{"class":202},[196,289,291,294,297],{"class":198,"line":290},5,[196,292,293],{"class":213},"    C ",[196,295,296],{"class":202},"-->",[196,298,299],{"class":213}," D\n",[196,301,303,306,308,311,313,316],{"class":198,"line":302},6,[196,304,305],{"class":213},"    D ",[196,307,296],{"class":202},[196,309,310],{"class":213}," E",[196,312,233],{"class":202},[196,314,315],{"class":220},"\"3. Text Line Direction CLS?\u003Cbr\u002F>(cls.rten)\"",[196,317,239],{"class":202},[196,319,321,324,326,328,330,333,335,338],{"class":198,"line":320},7,[196,322,323],{"class":213},"    E ",[196,325,248],{"class":202},[196,327,251],{"class":220},[196,329,254],{"class":202},[196,331,332],{"class":213}," F",[196,334,217],{"class":202},[196,336,337],{"class":220},"\"Inspect Crop & Rotate Inverted Lines 180&deg;\"",[196,339,265],{"class":202},[196,341,343,345,347,349,351,354,356,359],{"class":198,"line":342},8,[196,344,323],{"class":213},[196,346,248],{"class":202},[196,348,275],{"class":220},[196,350,254],{"class":202},[196,352,353],{"class":213}," G",[196,355,217],{"class":202},[196,357,358],{"class":220},"\"4. CTC Text Recognition\u003Cbr\u002F>(rec.rten + dict.txt)\"",[196,360,265],{"class":202},[196,362,364,367,369],{"class":198,"line":363},9,[196,365,366],{"class":213},"    F ",[196,368,296],{"class":202},[196,370,371],{"class":213}," G\n",[373,374],"hr",{},[376,377,379],"h2",{"id":378},"_1-text-line-direction-classifier-cls","1. Text Line Direction Classifier (CLS)",[179,381,382],{},"The CLS model inspects cropped text regions produced by the DBNet detector. If a text line is inverted (180° upside-down), it rotates the crop upright before passing it to the CTC text recognizer.",[384,385,386],"blockquote",{},[179,387,388,391,392,395,396,400,401,404],{},[196,389,390],{},"!NOTE","\nText line direction classification (",[193,393,394],{},"cls.rten",") is supported on ",[397,398,399],"strong",{},"PP-OCRv4"," and ",[397,402,403],{},"PP-OCRv5"," models. PP-OCRv6 models use an orientation-robust recognition network.",[406,407,409],"h3",{"id":408},"initialization-configuration","Initialization Configuration",[186,411,415],{"className":412,"code":413,"language":414,"meta":191,"style":191},"language-rust shiki shiki-themes material-theme-lighter github-light github-dark monokai","use rusto::InitializeConfig;\n\n\u002F\u002F Initialize engine and attach CLS model with 0.9 confidence threshold\nlet config = InitializeConfig::ppv5(\"models\u002Fdet.rten\", \"models\u002Frec.rten\", \"models\u002Fdict.txt\")\n    .with_cls_threshold(\"models\u002Fcls.rten\", 0.9);\n\nlet mut ocr = RustO::initialize(config)?;\n","rust",[193,416,417,437,443,449,505,538,542],{"__ignoreMap":191},[196,418,419,423,427,431,433],{"class":198,"line":199},[196,420,422],{"class":421},"shWJe","use",[196,424,426],{"class":425},"sKvfc"," rusto",[196,428,430],{"class":429},"sGXK2","::",[196,432,159],{"class":425},[196,434,436],{"class":435},"swvn1",";\n",[196,438,439],{"class":198,"line":210},[196,440,442],{"emptyLinePlaceholder":441},true,"\n",[196,444,445],{"class":198,"line":242},[196,446,448],{"class":447},"ss7Ak","\u002F\u002F Initialize engine and attach CLS model with 0.9 confidence threshold\n",[196,450,451,455,459,462,465,467,470,473,477,480,482,485,488,491,493,495,497,500,502],{"class":198,"line":268},[196,452,454],{"class":453},"srJo8","let",[196,456,458],{"class":457},"ss--_"," config ",[196,460,461],{"class":429},"=",[196,463,464],{"class":425}," InitializeConfig",[196,466,430],{"class":429},[196,468,469],{"class":206},"ppv5",[196,471,472],{"class":435},"(",[196,474,476],{"class":475},"siCPE","\"",[196,478,479],{"class":220},"models\u002Fdet.rten",[196,481,476],{"class":475},[196,483,484],{"class":435},",",[196,486,487],{"class":475}," \"",[196,489,490],{"class":220},"models\u002Frec.rten",[196,492,476],{"class":475},[196,494,484],{"class":435},[196,496,487],{"class":475},[196,498,499],{"class":220},"models\u002Fdict.txt",[196,501,476],{"class":475},[196,503,504],{"class":435},")\n",[196,506,507,510,513,515,517,520,522,524,528,532,535],{"class":198,"line":290},[196,508,509],{"class":429},"    .",[196,511,512],{"class":206},"with_cls_threshold",[196,514,472],{"class":435},[196,516,476],{"class":475},[196,518,519],{"class":220},"models\u002Fcls.rten",[196,521,476],{"class":475},[196,523,484],{"class":435},[196,525,527],{"class":526},"sYThS"," 0",[196,529,531],{"class":530},"sMTiH",".",[196,533,534],{"class":526},"9",[196,536,537],{"class":435},");\n",[196,539,540],{"class":198,"line":302},[196,541,442],{"emptyLinePlaceholder":441},[196,543,544,546,550,553,555,558,560,563,565,568,571,574],{"class":198,"line":320},[196,545,454],{"class":453},[196,547,549],{"class":548},"sTNss"," mut",[196,551,552],{"class":457}," ocr ",[196,554,461],{"class":429},[196,556,557],{"class":425}," RustO",[196,559,430],{"class":429},[196,561,562],{"class":206},"initialize",[196,564,472],{"class":435},[196,566,567],{"class":457},"config",[196,569,570],{"class":435},")",[196,572,573],{"class":429},"?",[196,575,436],{"class":435},[406,577,579],{"id":578},"request-local-activation","Request-Local Activation",[179,581,582,583,585],{},"Enable CLS classification for specific scans via ",[193,584,164],{},":",[186,587,589],{"className":412,"code":588,"language":414,"meta":191,"style":191},"let options = OcrRunOptions {\n    classification: Some(true), \u002F\u002F Activates CLS evaluation for this request\n    ..Default::default()\n};\n",[193,590,591,606,627,643],{"__ignoreMap":191},[196,592,593,595,598,600,603],{"class":198,"line":199},[196,594,454],{"class":453},[196,596,597],{"class":457}," options ",[196,599,461],{"class":429},[196,601,602],{"class":425}," OcrRunOptions",[196,604,605],{"class":435}," {\n",[196,607,608,611,613,616,618,621,624],{"class":198,"line":210},[196,609,610],{"class":457},"    classification",[196,612,585],{"class":429},[196,614,615],{"class":425}," Some",[196,617,472],{"class":435},[196,619,620],{"class":530},"true",[196,622,623],{"class":435},"),",[196,625,626],{"class":447}," \u002F\u002F Activates CLS evaluation for this request\n",[196,628,629,632,635,637,640],{"class":198,"line":242},[196,630,631],{"class":429},"    ..",[196,633,634],{"class":425},"Default",[196,636,430],{"class":429},[196,638,639],{"class":206},"default",[196,641,642],{"class":435},"()\n",[196,644,645],{"class":198,"line":268},[196,646,647],{"class":435},"};\n",[373,649],{},[376,651,653],{"id":652},"_2-whole-page-document-orientation-classifier","2. Whole-Page Document Orientation Classifier",[179,655,656],{},"For documents photographed sideways (90° \u002F 270°) or completely upside down (180°):",[186,658,660],{"className":412,"code":659,"language":414,"meta":191,"style":191},"let config = InitializeConfig::ppv5(\"models\u002Fdet.rten\", \"models\u002Frec.rten\", \"models\u002Fdict.txt\")\n    .with_orientation_threshold(\"models\u002Forient.rten\", 0.85);\n\nlet mut ocr = RustO::initialize(config)?;\n",[193,661,662,702,729,733],{"__ignoreMap":191},[196,663,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700],{"class":198,"line":199},[196,665,454],{"class":453},[196,667,458],{"class":457},[196,669,461],{"class":429},[196,671,464],{"class":425},[196,673,430],{"class":429},[196,675,469],{"class":206},[196,677,472],{"class":435},[196,679,476],{"class":475},[196,681,479],{"class":220},[196,683,476],{"class":475},[196,685,484],{"class":435},[196,687,487],{"class":475},[196,689,490],{"class":220},[196,691,476],{"class":475},[196,693,484],{"class":435},[196,695,487],{"class":475},[196,697,499],{"class":220},[196,699,476],{"class":475},[196,701,504],{"class":435},[196,703,704,706,709,711,713,716,718,720,722,724,727],{"class":198,"line":210},[196,705,509],{"class":429},[196,707,708],{"class":206},"with_orientation_threshold",[196,710,472],{"class":435},[196,712,476],{"class":475},[196,714,715],{"class":220},"models\u002Forient.rten",[196,717,476],{"class":475},[196,719,484],{"class":435},[196,721,527],{"class":526},[196,723,531],{"class":530},[196,725,726],{"class":526},"85",[196,728,537],{"class":435},[196,730,731],{"class":198,"line":242},[196,732,442],{"emptyLinePlaceholder":441},[196,734,735,737,739,741,743,745,747,749,751,753,755,757],{"class":198,"line":268},[196,736,454],{"class":453},[196,738,549],{"class":548},[196,740,552],{"class":457},[196,742,461],{"class":429},[196,744,557],{"class":425},[196,746,430],{"class":429},[196,748,562],{"class":206},[196,750,472],{"class":435},[196,752,567],{"class":457},[196,754,570],{"class":435},[196,756,573],{"class":429},[196,758,436],{"class":435},[406,760,579],{"id":761},"request-local-activation-1",[186,763,765],{"className":412,"code":764,"language":414,"meta":191,"style":191},"let options = OcrRunOptions {\n    orientation: Some(true), \u002F\u002F Classifies and rotates the whole page before detection\n    ..Default::default()\n};\n",[193,766,767,779,797,809],{"__ignoreMap":191},[196,768,769,771,773,775,777],{"class":198,"line":199},[196,770,454],{"class":453},[196,772,597],{"class":457},[196,774,461],{"class":429},[196,776,602],{"class":425},[196,778,605],{"class":435},[196,780,781,784,786,788,790,792,794],{"class":198,"line":210},[196,782,783],{"class":457},"    orientation",[196,785,585],{"class":429},[196,787,615],{"class":425},[196,789,472],{"class":435},[196,791,620],{"class":530},[196,793,623],{"class":435},[196,795,796],{"class":447}," \u002F\u002F Classifies and rotates the whole page before detection\n",[196,798,799,801,803,805,807],{"class":198,"line":242},[196,800,631],{"class":429},[196,802,634],{"class":425},[196,804,430],{"class":429},[196,806,639],{"class":206},[196,808,642],{"class":435},[196,810,811],{"class":198,"line":268},[196,812,647],{"class":435},[373,814],{},[376,816,818],{"id":817},"cross-binding-example-react-native","📱 Cross-Binding Example (React Native)",[186,820,824],{"className":821,"code":822,"language":823,"meta":191,"style":191},"language-typescript shiki shiki-themes material-theme-lighter github-light github-dark monokai","import { detectText, initialize } from '@rustors\u002Freact-native';\n\n\u002F\u002F Initialize with model references\nawait initialize({\n  preset: 'ppv5',\n  models: {\n    detection: 'det.rten',\n    recognition: 'rec.rten',\n    dictionary: 'dict.txt',\n    classification: 'cls.rten',\n    orientation: 'orient.rten',\n  },\n});\n\n\u002F\u002F Enable orientation correction on demand\nconst results = await detectText(\n  { uri: 'file:\u002F\u002F\u002Fpath\u002Fto\u002Fsideways_document.jpg' },\n  {\n    orientation: true, \u002F\u002F Fixes 90°\u002F270° whole-page rotation\n    classification: true, \u002F\u002F Fixes 180° upside-down text lines\n  }\n);\n","typescript",[193,825,826,859,863,868,880,897,906,922,938,954,969,985,991,1001,1006,1012,1033,1054,1060,1076,1090,1096],{"__ignoreMap":191},[196,827,828,831,834,837,839,842,845,848,851,854,857],{"class":198,"line":199},[196,829,830],{"class":202},"import",[196,832,833],{"class":435}," {",[196,835,836],{"class":457}," detectText",[196,838,484],{"class":435},[196,840,841],{"class":457}," initialize",[196,843,844],{"class":435}," }",[196,846,847],{"class":202}," from",[196,849,850],{"class":475}," '",[196,852,853],{"class":220},"@rustors\u002Freact-native",[196,855,856],{"class":475},"'",[196,858,436],{"class":435},[196,860,861],{"class":198,"line":210},[196,862,442],{"emptyLinePlaceholder":441},[196,864,865],{"class":198,"line":242},[196,866,867],{"class":447},"\u002F\u002F Initialize with model references\n",[196,869,870,873,875,877],{"class":198,"line":268},[196,871,872],{"class":202},"await",[196,874,841],{"class":206},[196,876,472],{"class":457},[196,878,879],{"class":435},"{\n",[196,881,882,886,888,890,892,894],{"class":198,"line":290},[196,883,885],{"class":884},"squCx","  preset",[196,887,585],{"class":435},[196,889,850],{"class":475},[196,891,469],{"class":220},[196,893,856],{"class":475},[196,895,896],{"class":435},",\n",[196,898,899,902,904],{"class":198,"line":302},[196,900,901],{"class":884},"  models",[196,903,585],{"class":435},[196,905,605],{"class":435},[196,907,908,911,913,915,918,920],{"class":198,"line":320},[196,909,910],{"class":884},"    detection",[196,912,585],{"class":435},[196,914,850],{"class":475},[196,916,917],{"class":220},"det.rten",[196,919,856],{"class":475},[196,921,896],{"class":435},[196,923,924,927,929,931,934,936],{"class":198,"line":342},[196,925,926],{"class":884},"    recognition",[196,928,585],{"class":435},[196,930,850],{"class":475},[196,932,933],{"class":220},"rec.rten",[196,935,856],{"class":475},[196,937,896],{"class":435},[196,939,940,943,945,947,950,952],{"class":198,"line":363},[196,941,942],{"class":884},"    dictionary",[196,944,585],{"class":435},[196,946,850],{"class":475},[196,948,949],{"class":220},"dict.txt",[196,951,856],{"class":475},[196,953,896],{"class":435},[196,955,957,959,961,963,965,967],{"class":198,"line":956},10,[196,958,610],{"class":884},[196,960,585],{"class":435},[196,962,850],{"class":475},[196,964,394],{"class":220},[196,966,856],{"class":475},[196,968,896],{"class":435},[196,970,972,974,976,978,981,983],{"class":198,"line":971},11,[196,973,783],{"class":884},[196,975,585],{"class":435},[196,977,850],{"class":475},[196,979,980],{"class":220},"orient.rten",[196,982,856],{"class":475},[196,984,896],{"class":435},[196,986,988],{"class":198,"line":987},12,[196,989,990],{"class":435},"  },\n",[196,992,994,997,999],{"class":198,"line":993},13,[196,995,996],{"class":435},"}",[196,998,570],{"class":457},[196,1000,436],{"class":435},[196,1002,1004],{"class":198,"line":1003},14,[196,1005,442],{"emptyLinePlaceholder":441},[196,1007,1009],{"class":198,"line":1008},15,[196,1010,1011],{"class":447},"\u002F\u002F Enable orientation correction on demand\n",[196,1013,1015,1018,1022,1025,1028,1030],{"class":198,"line":1014},16,[196,1016,1017],{"class":453},"const",[196,1019,1021],{"class":1020},"s91G_"," results",[196,1023,1024],{"class":429}," =",[196,1026,1027],{"class":202}," await",[196,1029,836],{"class":206},[196,1031,1032],{"class":457},"(\n",[196,1034,1036,1039,1042,1044,1046,1049,1051],{"class":198,"line":1035},17,[196,1037,1038],{"class":435},"  {",[196,1040,1041],{"class":884}," uri",[196,1043,585],{"class":435},[196,1045,850],{"class":475},[196,1047,1048],{"class":220},"file:\u002F\u002F\u002Fpath\u002Fto\u002Fsideways_document.jpg",[196,1050,856],{"class":475},[196,1052,1053],{"class":435}," },\n",[196,1055,1057],{"class":198,"line":1056},18,[196,1058,1059],{"class":435},"  {\n",[196,1061,1063,1065,1067,1071,1073],{"class":198,"line":1062},19,[196,1064,783],{"class":884},[196,1066,585],{"class":435},[196,1068,1070],{"class":1069},"s8HiA"," true",[196,1072,484],{"class":435},[196,1074,1075],{"class":447}," \u002F\u002F Fixes 90°\u002F270° whole-page rotation\n",[196,1077,1079,1081,1083,1085,1087],{"class":198,"line":1078},20,[196,1080,610],{"class":884},[196,1082,585],{"class":435},[196,1084,1070],{"class":1069},[196,1086,484],{"class":435},[196,1088,1089],{"class":447}," \u002F\u002F Fixes 180° upside-down text lines\n",[196,1091,1093],{"class":198,"line":1092},21,[196,1094,1095],{"class":435},"  }\n",[196,1097,1099,1101],{"class":198,"line":1098},22,[196,1100,570],{"class":457},[196,1102,436],{"class":435},[1104,1105,1106],"style",{},"html pre.shiki code .sRxSC, html code.shiki .sRxSC{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#F92672;--shiki-sepia-font-style:inherit}html pre.shiki code .sD0ED, html code.shiki .sD0ED{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .s94S9, html code.shiki .s94S9{--shiki-light:#90A4AE;--shiki-default:#E36209;--shiki-dark:#FFAB70;--shiki-sepia:#F8F8F2}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .shWJe, html code.shiki .shWJe{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sKvfc, html code.shiki .sKvfc{--shiki-light:#E2931D;--shiki-light-text-decoration:inherit;--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .sGXK2, html code.shiki .sGXK2{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .ss7Ak, html code.shiki .ss7Ak{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-sepia:#88846F;--shiki-sepia-font-style:inherit}html pre.shiki code .srJo8, html code.shiki .srJo8{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .ss--_, html code.shiki .ss--_{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sYThS, html code.shiki .sYThS{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sMTiH, html code.shiki .sMTiH{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sTNss, html code.shiki .sTNss{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .squCx, html code.shiki .squCx{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .s91G_, html code.shiki .s91G_{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#F8F8F2}html pre.shiki code .s8HiA, html code.shiki .s8HiA{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}",{"title":191,"searchDepth":210,"depth":210,"links":1108},[1109,1113,1116],{"id":378,"depth":210,"text":379,"children":1110},[1111,1112],{"id":408,"depth":242,"text":409},{"id":578,"depth":242,"text":579},{"id":652,"depth":210,"text":653,"children":1114},[1115],{"id":761,"depth":242,"text":579},{"id":817,"depth":210,"text":818},"How to configure text line orientation classifiers (CLS) and full-page document angle rotators.","md",null,{},{"icon":138},{"title":1123,"description":1117},"Classification & Orientation - RustO!","_AtlP4Uno8GMhYJr30wBAngJtnT-0K5FZApJu2RvPis",[1126,1128],{"title":130,"path":131,"stem":132,"description":1127,"icon":133,"children":-1},"Fine-tuning request-local preprocessing, DBNet detection, morphological dilation, and unclip parameters.",{"title":140,"path":141,"stem":142,"description":1129,"icon":143,"children":-1},"Inference latency, memory consumption, and benchmark comparison across x86_64, ARM64, and mobile hardware.",1792905889525]