<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">32976</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2023.032976</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Vehicle Plate Number Localization Using Memetic Algorithms and Convolutional Neural Networks</article-title>
<alt-title alt-title-type="left-running-head">Vehicle Plate Number Localization Using Memetic Algorithms and Convolutional Neural Networks</alt-title>
<alt-title alt-title-type="right-running-head">Vehicle Plate Number Localization Using Memetic Algorithms and Convolutional Neural Networks</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Abosamra</surname><given-names>Gibrael</given-names></name><email>gabosamra@kau.edu.sa</email></contrib>
<aff id="aff-1"><institution>Faculty of Computing and Information Technology, King Abdulaziz University</institution>, <addr-line>Jeddah, 21589</addr-line>, <country>Saudi Arabia</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Gibrael Abosamra. Email: <email>gabosamra@kau.edu.sa</email></corresp>
</author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2022-10-28"><day>28</day>
<month>10</month>
<year>2022</year></pub-date>
<volume>74</volume>
<issue>2</issue>
<fpage>3539</fpage>
<lpage>3560</lpage>
<history>
<date date-type="received"><day>03</day><month>6</month><year>2022</year></date>
<date date-type="accepted"><day>23</day><month>8</month><year>2022</year></date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2023 Abosamra</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Abosamra</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_32976.pdf"></self-uri>
<abstract>
<p>This paper introduces the third enhanced version of a genetic algorithm-based technique to allow fast and accurate detection of vehicle plate numbers (VPLN) in challenging image datasets. Since binarization of the input image is the most important and difficult step in the detection of VPLN, a hybrid technique is introduced that fuses the outputs of three fast techniques into a pool of connected components objects (CCO) and hence enriches the solution space with more solution candidates. Due to the combination of the outputs of the three binarization techniques, many CCOs are produced into the output pool from which one or more sequences are to be selected as candidate solutions. The pool is filtered and submitted to a new memetic algorithm to select the best fit sequence of CCOs based on an objective distance between the tested sequence and the defined geometrical relationship matrix that represents the layout of the VPLN symbols inside the concerned plate prototype. Using any of the previous versions will give moderate results but with very low speed. Hence, a new local search is added as a memetic operator to increase the fitness of the best chromosomes based on the linear arrangement of the license plate symbols. The memetic operator speeds up the convergence to the best solution and hence compensates for the overhead of the used hybrid binarization techniques and allows for real-time detection especially after using GPUs in implementing most of the used techniques. Also, a deep convolutional network is used to detect false positives to prevent fake detection of non-plate text or similar patterns. Various image samples with a wide range of scale, orientation, and illumination conditions have been experimented with to verify the effect of the new improvements. Encouraging results with 97.55&#x0025; detection precision have been reported using the recent challenging public Chinese City Parking Dataset (CCPD) outperforming the author of the dataset by 3.05&#x0025; and the state-of-the-art technique by 1.45&#x0025;.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Genetic algorithms</kwd>
<kwd>memetic algorithm</kwd>
<kwd>convolutional neural network</kwd>
<kwd>object detection</kwd>
<kwd>adaptive binarization filters</kwd>
<kwd>license plate detection</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1"><label>1</label><title>Introduction</title>
<p>Automatic license plate recognition (ALPR) is a basic component of Intelligent Transportation Systems (ITS) which is an essential system in smart cities. ALPR has many applications such as law enforcement, surveillance, and toll booth operations [<xref ref-type="bibr" rid="ref-1">1</xref>]. ALPR systems can be categorized into four classes depending on the type of the basic primitive on which the detection algorithm is based. These categories are color-based, edge-based, texture-based, and character-based. Color-based systems scan the unknown image to find a candidate window that contains an image with color properties similar to the targeted License Plate (LP). The similarity between the image window and the prototype is detected by many different techniques either through direct correlation or through histogram-based methods to overcome illumination problems [<xref ref-type="bibr" rid="ref-2">2</xref>]. Genetic algorithms also have been used to do a heuristic search for this similarity to identify the license plate color [<xref ref-type="bibr" rid="ref-3">3</xref>]. Edge-based techniques depend on the fact that the area of the LP has a high density of small edges either vertical, horizontal, or inclined [<xref ref-type="bibr" rid="ref-4">4</xref>] because of its inclusion of many alphanumeric symbols that represent the license number in addition to the LP rectangular bounding box. Edge-based techniques require the use of a fast edge-detection algorithm [<xref ref-type="bibr" rid="ref-5">5</xref>]. Texture-based techniques can be considered an extension of the edge-based techniques because they depend on the presence of the characters in the plate area which creates a unique pixel intensity distribution inside the plate region. Special methods were used to localize the LP textures such as Vector Quantization [<xref ref-type="bibr" rid="ref-6">6</xref>] and Gabor filter [<xref ref-type="bibr" rid="ref-7">7</xref>]. Character-based techniques [<xref ref-type="bibr" rid="ref-8">8</xref>,<xref ref-type="bibr" rid="ref-9">9</xref>] mostly depend on the connected component analysis (CCA) technique that detects the LP symbols based on the pixels&#x2019; connectivity after converting the image into binary. The success of these character-based techniques relies mainly on the binarization step which is affected by the illumination conditions&#x2019; variations and the physical distortions caused by aging or inaccurate fixing of the LP that cause the license symbols to be connected to each other or to the license frame. The techniques used in LP detection vary from simple matching methods to machine learning and finally deep learning techniques. The best success has been achieved using deep learning techniques where training is carried out on a huge number of image samples that cover all the expected variations of geometric and illumination conditions. Deep learning techniques deal with the LP detection problem as an object detection problem. Different types of deep learning architectures have been used to perform localization and even recognition. The state-of-the-art real-time object detectors such as Convolutional neural networks (CNN) with region proposals (Faster R-CNN) [<xref ref-type="bibr" rid="ref-10">10</xref>], You-Only-Look-Once (YOLO 9000) [<xref ref-type="bibr" rid="ref-11">11</xref>] and Single-Shot-Detection (SSD300) [<xref ref-type="bibr" rid="ref-12">12</xref>] have achieved real-time detection of the LP position. End-To-End license plate detection and recognition using deep neural networks (Towards end-to-end (TE2E)) [<xref ref-type="bibr" rid="ref-13">13</xref>] has shown high detection accuracy by training a single neural network architecture to do detection and recognition at the same time. An End-To-End architecture called the Roadside Parking Net (RPnet) [<xref ref-type="bibr" rid="ref-14">14</xref>] achieved higher speed and accuracy on the CCPD challenging dataset (CCPD). A comprehensive review of the problems and the different techniques used in LP detection and recognition is found in [<xref ref-type="bibr" rid="ref-1">1</xref>]. Although recently, the most accurate techniques in LP detection and recognition are based on deep learning models, these techniques are highly dependent on being trained on a huge number of labelled datasets and need retraining of these models for new symbols or LP layouts. Unlike the huge amount of training datasets and the large number of the model parameters needed in the deep learning-based solutions, in [<xref ref-type="bibr" rid="ref-15">15</xref>], we have introduced a genetic algorithm (GA)-based technique that depends only on a simple geometric representation of the symbols layout of the concerned plate that has a number of parameters not more than 4&#x2009;&#x00D7;&#x2009;L<sup>2</sup> where L is the number of LP symbols and all these parameters are stored in a geometrical relationship matrix (GRM). An important metric that should be taken into consideration when evaluating systems or techniques is the number of instances needed to do the training and the length of the training time. In [<xref ref-type="bibr" rid="ref-15">15</xref>], only one clear instance of an LP image is required to produce the GRM in a period less than one second. This is very important if we consider for example a robot (or auto-driving vehicle) that is required to track a foreign vehicle with a different plate layout in an emergent condition. In this case, the learning time is the most important factor which makes us conclude that future research should concentrate on machine learning techniques as well as deep learning techniques, and old techniques such as k-nearest neighbor or even simple matching techniques should not be neglected because they possess the feature of instant learning. In the previous versions of the GA-based technique [<xref ref-type="bibr" rid="ref-15">15</xref>&#x2013;<xref ref-type="bibr" rid="ref-17">17</xref>], most illumination problems have been tackled by using local adaptive binarization methods especially in [<xref ref-type="bibr" rid="ref-17">17</xref>]. Unlike almost all systems that use a single binarization technique, in this research a deeper and more general solution is founded by applying different binarization techniques in parallel and combining their outputs to produce a larger solution space of connected components objects (CCOs) to increase the detection probability. Since having many CCOs will increase the computational complexity, object based and neighborhood adaptive filtering stages are applied to minimize the number of CCOs and hence speed up the computation and at the same time minimize the false positive (FP) solutions. Although most ALPR systems are performed in three steps (LP detection, LP segmentation, and LP symbols recognition) except End-To-End techniques [<xref ref-type="bibr" rid="ref-1">1</xref>], the GA-based technique, introduced initially in [<xref ref-type="bibr" rid="ref-15">15</xref>] and enhanced in [<xref ref-type="bibr" rid="ref-16">16</xref>] to support inclined plates combines the first two steps in one-step. In ALPR systems based on the connected component analysis technique (CCAT), the accuracy and performance are significantly dependent on the binarization stage where each pixel in the image is decided to belong either to the background or to the foreground objects. In [<xref ref-type="bibr" rid="ref-15">15</xref>], an adaptive local binarization stage has been adopted to overcome illumination changes in addition to the skipping ability introduced in the GA to overcome physical problems affecting the CCA technique. The concept of skipping was introduced in [<xref ref-type="bibr" rid="ref-15">15</xref>] and enhanced in [<xref ref-type="bibr" rid="ref-16">16</xref>] to support partial detection of the LP based on the detection of a number of license symbols less than the defined number of symbols in the LP (L). In [<xref ref-type="bibr" rid="ref-17">17</xref>], a novel multi-window-size binarization technique was introduced to support application-independent localization of the license plates. Applying the previous GA-based [<xref ref-type="bibr" rid="ref-15">15</xref>&#x2013;<xref ref-type="bibr" rid="ref-17">17</xref>] techniques to a recent challenging data set such as the CCPD dataset [<xref ref-type="bibr" rid="ref-14">14</xref>] raises new concerns related to the large number of CCOs produced by the different binarization techniques that are used to overcome illumination and perspective variations of the relatively high-resolution images. To speed up the evolutionary-based technique introduced in [<xref ref-type="bibr" rid="ref-15">15</xref>&#x2013;<xref ref-type="bibr" rid="ref-17">17</xref>], a memetic operator is introduced in this research to do fast local tuning of the intermediate solutions during the evolutionary iterations. In addition to the enhancement introduced in the object filtering and the evolutionary-based technique, the CCA algorithm is re-implemented to produce the x-y positions and width-height values of every CCO in a wide-angle range (from &#x2212;85&#x00B0; to 85&#x00B0;). This allows the calculation of the objective distance of any candidate solution based on a horizontal license plate prototype representation without resorting to doing a rotation of either the unknown plate or the prototype and produces more accurate objective distances than the previous implementations. A complete overview of the new system will be introduced in Section 2. The image-processing phase is summarized in Section 3 with a detailed description of the binarization techniques. The new methods for the object filtering phase are described in Section 4. In Section 5, the GA enhancements are described in detail. In Section 6, fake detection using a deep CNN (DCNN) is presented. Finally, the results are presented and discussed in Section 7 and the conclusion is given in Section 8.</p>
</sec>
<sec id="s2"><label>2</label><title>System Overview</title>
<p>The proposed LP symbols detection system is composed of four phases and each phase is composed of many stages as shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>. In the first phase, the LP image is binarized and a large number (N) of CCOs are produced using three different binarization techniques. Then, in the objects filtering phase many non-LP symbols are filtered out to produce less number (M) and hence reduce the computation and FP candidates. In the third phase, the memetic algorithm (MA) searches the CCOs space for the best sequence that matches the layout of the LP symbol sequence represented by the GRM. FP candidate sequences output by the memetic algorithm are detected in the fourth phase by a deep convolutional neural network DCNN if the objective distance is more than 1 otherwise the output sequence is accepted. A maximum of four trials are required in the worst case to overcome the image processing problems related to the CCA technique and to avoid FP candidates. In the first trial, only the first binarization technique is applied with a window size of 15. In the following three trials, the three binarization techniques are applied with different window sizes as will be shown in the binarization stage. Each of the three trials is initiated if the output of the previous trial is rejected by the DCNN. After the fourth trial, if the best solution so far has an objective distance (OD) less than 6 it is accepted otherwise a plate miss is reported. Most of the system phases and their stages implemented in the previous versions [<xref ref-type="bibr" rid="ref-15">15</xref>&#x2013;<xref ref-type="bibr" rid="ref-17">17</xref>] are enhanced (highlighted with blue color) and supported with novel additions (highlighted with red color) to increase the accuracy and speed as described in detail in the following sections.</p>
<fig id="fig-1"><label>Figure 1</label><caption><title>The system&#x2019;s overall flowchart for the localization of LP symbols where new additions are indicated with a red color and enhanced stages with a blue color</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_32976-fig-1.png"/></fig>
</sec>
<sec id="s3"><label>3</label><title>Image Processing Phase</title>
<p>In this phase, an input color image is subjected to four stages to extract a number N of foreground objects. These four stages (Color-to-Grey Conversion, Adaptive Binarization, Morphological Operations (optional), and Connected Component Analysis (CCA) are different than those in the previous versions [<xref ref-type="bibr" rid="ref-15">15</xref>&#x2013;<xref ref-type="bibr" rid="ref-17">17</xref>]. The changes are demonstrated in the following subsections.</p>
<sec id="s3_1"><label>3.1</label><title>Color-to-Grey Conversion</title>
<p>Unlike most of the work that deals with LP detection that uses the traditional color-to-grey formula [<xref ref-type="bibr" rid="ref-15">15</xref>], the RGB image is converted into grey by summing up the red and green channels only. The blue channel is neglected because the background of the license plate in the tested dataset [<xref ref-type="bibr" rid="ref-14">14</xref>] is blue. Hence, the contrast between the LP symbols and the LP background will be increased. This does not mean that the technique is based on the LP color, but most of the state-of-the-art works that resulted in distinctive accuracy were using the color images without conversion into grey. Hence to compete with these state-of-the-art techniques color is considered in the first stage and in the final fake detection phase when using the DCNN to detect FP solutions. The following formula is used to do the color-to-grey conversion:
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:mrow><mml:mtext>GI</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mn>0.5</mml:mn><mml:mrow><mml:mtext>&#xA0;RC</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>0.5</mml:mn><mml:mrow><mml:mtext>&#xA0;GC</mml:mtext></mml:mrow></mml:math></disp-formula>where RC and GC are the red and green components stored in the red and green channels respectively. GI is the output greyscale image which is normalized to contain values from 0 to 1.</p>
</sec>
<sec id="s3_2"><label>3.2</label><title>Multi Adaptive Binarization Techniques Stage</title>
<p>In the first trial, the system performs binarization using a fixed-size window binarization method based on the Nick technique [<xref ref-type="bibr" rid="ref-18">18</xref>]. The Nick technique is built initially to binarize text documents.</p>
<p>In the Nick method, the local threshold LT (<italic>x</italic>, <italic>y</italic>) is computed based on the mean m (x, y) and the sum of the squares of pixel intensities inside a local window centered at the current point GI (<italic>x</italic>, <italic>y</italic>) using the following formula:
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:mrow><mml:mtext>LT</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>y</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>m</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>y</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>k</mml:mi><mml:mn>1.</mml:mn><mml:msqrt><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mo>&#x2211;</mml:mo><mml:mi>G</mml:mi><mml:mi>I</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mi>m</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mspace width="negativethinmathspace" /><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true" maxsize="2.047em" minsize="2.047em">/</mml:mo></mml:mrow></mml:mstyle><mml:mspace width="negativethinmathspace" /></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:msqrt></mml:math></disp-formula>where <italic>NP</italic> is the number of pixels in the local window and <italic>k1</italic> is a parameter ranging from &#x2212;0.2 to &#x2212;0.1, but in this research, the selected value of <italic>k1</italic> is 0.11.</p>
<p>The second binarization technique is called Niblack [<xref ref-type="bibr" rid="ref-19">19</xref>], which calculates the adaptive threshold LT (x, y) at the current point (x, y), based on the local mean m (x, y) of the intensity around the current point GI (x, y) and the standard deviation &#x03B4; (x, y) inside the local window as follows:
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:mi>L</mml:mi><mml:mi>T</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>m</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>k</mml:mi><mml:mn>2.</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x03B4;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>where <italic>k2</italic> is a parameter having a selected value of &#x2212;0.2 in [<xref ref-type="bibr" rid="ref-19">19</xref>], but in this research k2 is equal to &#x2212;0.11. I noticed that while the threshold in the case of the Nick method is above the mean (due to the selected positive constant (<italic>k1</italic>)), in the Niblack method it is below the mean, so I consider that the two methods complement each other.</p>
<p>The third binarization technique introduced by Singh&#x00A0;et&#x00A0;al.&#x00A0;[<xref ref-type="bibr" rid="ref-20">20</xref>] calculates the adaptive threshold LT (x, y) at the current point (x, y), based on the local mean m (x, y) of the intensity of the window around the current point and the mean deviation of the current point (dev &#x003D; IM (x, y)&#x2009;&#x2212;&#x2009;m (x, y)) as follows
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:mi>L</mml:mi><mml:mi>T</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>m</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>k</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>where k&#x2009;&#x003D;&#x2009;0.06. In this research, a different expression is inspired from the above formula as follows:
<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:mi>L</mml:mi><mml:mi>T</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>m</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mn>0.3</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mi>a</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>v</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>0.5</mml:mn><mml:mo>+</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi>a</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>adev</mml:mtext></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>k</mml:mi><mml:mn>3</mml:mn></mml:math></disp-formula>where <italic>adev</italic> &#x003D; average &#x007C; IM (x, y)&#x2009;&#x2212;&#x2009;m (x, y) &#x007C; and <italic>k</italic>3 is a control parameter in the range [0 0.1]. Unlike Niblack and Nick&#x2019;s methods, in the new method that we refer to as &#x201C;Delta&#x201D;, the threshold may be above or below the (mean) depending on the value of <italic>adev</italic> and <italic>k3</italic>. In the case of <italic>k3&#x2009;</italic>&#x003D;&#x2009;0.06, if <italic>adev</italic> is greater than 0.48 (approximately) the threshold will be below the mean else it will be above or equal to the mean. In this research, the selected value of <italic>k3</italic> is 0.06. In the first trial, the Nick method is applied with a window-side length of 15. The window lengths of the Delta, Niblack and Nick methods for the next three trails are [10, 15, 60], [20, 30, 40], and [30, 60, 15] respectively.</p>
<p>The reason for selecting the above three binarization techniques is their fast and complementary effects based on trial and error.</p>
</sec>
<sec id="s3_3"><label>3.3</label><title>Morphological Operations</title>
<p>Since the adaptive filters may produce connected characters, it is sometimes helpful to use the opening operation to separate the connected characters. In this research, I perform an erosion (or open) operation for the output of the Niblack filter using a vertical structuring element of size equal to one-third of the window length (WL/3). Due to the composition of the Chinese character of 2 or more CCOs, a dilation (or close) operation is performed using a horizontal structuring element of size equal to one fifth the window length (WL/5) after the Delta technique to unify the Chinese symbol and at the same time to connect broken symbols. <xref ref-type="fig" rid="fig-2">Fig. 2</xref> shows examples of the outputs of the three techniques and the morphological operations for four RGB images taken from the CCPD Blur and FN sections, where each technique contributes differently to the output pool based on the complexity of the input image. If there is a missing object it will be skipped by the MA and its position and dimensions are calculated geometrically based on the GRM.</p>
<fig id="fig-2"><label>Figure 2</label><caption><title>The output of the three binarization techniques Delta, Niblack, and Nick for four RGB input images. Cases 1 and 2 from FN, window size 30&#x2009;&#x00D7;&#x2009;30. Cases 3 and 4 from blur, window size 15&#x2009;&#x00D7;&#x2009;15</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_32976-fig-2.png"/></fig>
</sec>
<sec id="s3_4"><label>3.4</label><title>Connected Component Analysis Stage</title>
<p>In this research, 4-connected component objects are detected, and their bounding boxes parameters are calculated relative to a rotating axis (from &#x2212;85&#x00B0; to &#x002B;85&#x00B0;). This allows using the exact dimensions of each object when it is included in a chromosome having a sequence of objects that have an inclined direction without resorting to rotating the prototype template or the sequence of objects themselves to obtain accurate objective distances as shown in <xref ref-type="fig" rid="fig-3">Fig. 3</xref> where the dimensions of the red rectangles will be used in calculating the objective distance at 45&#x00B0; angle.</p>
<fig id="fig-3"><label>Figure 3</label><caption><title>The red rectangles are detected based on a rotated axis of 45&#x00B0; while the yellow rectangles are detected based on the original X-Y axis</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_32976-fig-3.png"/></fig>
</sec>
</sec>
<sec id="s4"><label>4</label><title>Objects Filtering Phase</title>
<p>Objects filtering is carried out through three stages. The first stage filters out objects based on their properties (width, height, aspect ratio (Asp), and extension (Ext)). Where the extension is the number of foreground pixels divided by the object area. The second stage removes repeated objects. The third stage is region-based filtering which depends on the distribution of objects around each object.</p>
<sec id="s4_1"><label>4.1</label><title>Object-Based Filtering</title>
<p>Assuming the image width is ImageWidth, then the maximum width of an object (MaxW) is equal to ImageWidth/L; where L is the number of license plate symbols. The maximum height (MaxH) of an object is (2&#x2009;<inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula>&#x2009;MaxW) and the minimum object width is 3 pixels, considering thin numbers such as &#x2018;1&#x2019;. The minimum object height (MinH) is 15 pixels. The minimum extension is 0.13. Objects should satisfy the mentioned properties in addition to the following logical condition:
<disp-formula id="ueqn-1">
<mml:math id="mml-ueqn-1" display="block"><mml:mn>0.3</mml:mn><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:mtext>Asp</mml:mtext></mml:mrow><mml:mo>&#x003C;</mml:mo><mml:mn>3</mml:mn><mml:mspace width="1em" /><mml:mrow><mml:mtext>if Ext</mml:mtext></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mn>0.8</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>for normal symbols</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:mrow><mml:mtext>Or Asp</mml:mtext></mml:mrow><mml:mo>&#x003C;=</mml:mo><mml:mn>0.3</mml:mn><mml:mspace width="1em" /><mml:mrow><mml:mtext>if Ext</mml:mtext></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mn>0.42</mml:mn><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mtext>for thin symbols such as</mml:mtext></mml:mrow><mml:mo>&#x2018;</mml:mo><mml:msup><mml:mn>1</mml:mn><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula></p>
</sec>
<sec id="s4_2"><label>4.2</label><title>Repeated Objects Removal</title>
<p>Any two objects (j1 and j2) having similarity in their coordinates (X, Y) and dimensions (W, H) are unified which means only one of them is retained and the other is removed where the similarity (S) is given by the following logical expression:
<disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mtext>S</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>2</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac></mml:mstyle><mml:mo>&#x003C;</mml:mo><mml:mn>0.05</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mtext>AND</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac></mml:mstyle><mml:mo>&#x003C;</mml:mo><mml:mn>0.05</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mtext>AND</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac></mml:mstyle><mml:mo>&#x003C;</mml:mo><mml:mn>0.05</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mrow><mml:mtext>AND</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac></mml:mstyle><mml:mo>&#x003C;</mml:mo><mml:mn>0.05</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> &#x003D; <inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:math></inline-formula>.</p>
</sec>
<sec id="s4_3"><label>4.3</label><title>Region-Based Filtering</title>
<p>This stage depends on the distribution of objects over two sizes of square areas, small-size squares, and large-size squares. Small-size squares are of size 10&#x2009;&#x00D7;&#x2009;10. Large size squares have a size of V&#x2009;&#x00D7;&#x2009;V, where V is estimated based on the average object width (W<sub>avg</sub>) of all the detected objects (M) and the number of symbols in an LP (L) as follows:
<disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:mrow><mml:mtext>V</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>L</mml:mtext></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math></disp-formula></p>
<p>Then we create two matrices each having a number of cells equal to the number of squares in the image, one for the small squares and the other for the large squares. Every object is assigned to its corresponding cell in the two matrices based on its X and Y position and each cell of both matrices contains the number of belonging objects. The integral matrix is calculated for the small-size matrix.</p>
<p>Because symbols in an LP are located near each other and there is a semi-fixed spacing between every two consecutive symbols and this spacing is related to the average width of the symbols, then each LP symbol should have at least 3 neighbor symbols around it if we define the symbol&#x2019;s neighborhood as the square area that surrounds the symbol and have dimensions <italic>NR</italic>&#x2009;&#x00D7;&#x2009;<italic>NR</italic> where <italic>NR&#x2009;</italic>&#x003D;&#x2009;6&#x2009;&#x00D7;&#x2009;<italic>W</italic> and <italic>W</italic> is the actual width of the current object. Hence using the integral matrix, we can estimate the number of objects in the neighborhood square of each object and hence remove the object if its neighborhood square contains less than 3 objects. This condition considers the extreme left or right objects in the LP symbols. The middle objects&#x2019; neighborhoods surely will contain more than 2. By applying this condition, we can remove objects existing in low-density regions.</p>
<p>Objects in very high-density regions are removed based on the large-size squares matrix by removing objects that belong to cells having more than 3 &#x00D7; (L &#x002B; 3) objects (because we have CCOs output from three binarization techniques and the Chinese symbol may be composed of two or more CCOs).</p>
</sec>
</sec>
<sec id="s5"><label>5</label><title>MA Phase</title>
<p>Significant enhancements of this phase have been carried out on the updated GA in [<xref ref-type="bibr" rid="ref-17">17</xref>] to speed up the detection process and minimize the false-positive and false negative cases. The modifications are done in the hashing function (on which the sorting of objects inside the subpopulations is based), the input GRM, and the objective function to guarantee accurate and relatively fast localization of the vehicle plate symbols. A significant update of the GA-based solution is introduced by adding a novel memetic operator which upgrades the semi-hybrid GA in [<xref ref-type="bibr" rid="ref-17">17</xref>] into a fully MA where the GA solution becomes fully adapted to the LP detection problem in the global and local search phases.</p>
<sec id="s5_1"><label>5.1</label><title>Initial Population and Subgrouping</title>
<p>As in [<xref ref-type="bibr" rid="ref-17">17</xref>], we will use subgrouping and each subgroup will be initialized by a subset of the available objects based on a hashing function <italic>HF</italic>. <italic>HF</italic> is modified to group normal objects based on their areas and their relative <italic>Y</italic>-positions. For thin objects, the area is substituted by the square of their heights divided by 2. The <italic>X</italic>-position term is added without normalization to support the normal ordering of objects from left to right.
<disp-formula id="ueqn-2">
<mml:math id="mml-ueqn-2" display="block"><mml:mi>H</mml:mi><mml:mi>F</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>ob_j</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="italic">ImageWidth</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">ImageHeight</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>Y</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mspace width="1em" /><mml:mrow><mml:mtext>&#xA0;for</mml:mtext></mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x003E;</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>3</mml:mn></mml:math></disp-formula>
<disp-formula id="eqn-9"><label>(9)</label><mml:math id="mml-eqn-9" display="block"><mml:mspace width="1em" /><mml:mspace width="1em" /><mml:mspace width="1em" /><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="italic">ImageWidth</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">ImageHeight</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mi>H</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mspace width="1em" /><mml:mspace width="1em" /><mml:mspace width="1em" /><mml:mrow><mml:mtext>for</mml:mtext></mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x003C;=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>3</mml:mn></mml:math></disp-formula></p>
</sec>
<sec id="s5_2"><label>5.2</label><title>Horizontal GRM Layout and More Accurate Objective Distance</title>
<p>In [<xref ref-type="bibr" rid="ref-17">17</xref>], the GRM was reduced to one-fourth of its original size to contain only 45 geometrical relationships for 45 directions. In this research, we are going to reduce it to represent only one horizontal direction given that the correct properties (positions <italic>X</italic>, <italic>Y</italic>, and dimensions W and H) of every CCO are stored at all rotation angles (&#x03B8;: &#x2212;85&#x00B0;:85&#x00B0;). Hence, the geometrical relationships of the horizontal (<inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> &#x003D;&#x2009;0&#x00B0;) prototype will be used in the calculation of the objective distances without the need of using the rotated versions of the prototype as in [<xref ref-type="bibr" rid="ref-16">16</xref>,<xref ref-type="bibr" rid="ref-17">17</xref>]. Hence, each object will have 171&#x2009;&#x00D7;&#x2009;4 properties that represent all the positions <italic>X</italic>, <italic>Y</italic> and dimensions <italic>W</italic> and <italic>H</italic> at each direction from &#x2212;85&#x00B0; to &#x002B;85&#x00B0;. The calculation time and the stored properties are optimized by considering the pixels on the contours of each object and doing calculations for the range &#x2212;85&#x00B0; to 0&#x00B0; and deducing the remaining range from 0&#x00B0; to &#x002B;85&#x00B0; based on the fact that when rotating the axis that passes through the object by 90&#x00B0; then the width will be equal to the height and vice versa. The coordinates <italic>X</italic> and <italic>Y</italic> values also will be swapped taking the sign into account as follows:
<disp-formula id="eqn-10"><label>(10)</label><mml:math id="mml-eqn-10" display="block"><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mi>W</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow><mml:mo>+</mml:mo><mml:mn>90</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>H</mml:mi><mml:mrow></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow><mml:mo>+</mml:mo><mml:mn>90</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="normal">W</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>X</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow><mml:mo>+</mml:mo><mml:mn>90</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mi mathvariant="normal">Y</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>Y</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>+</mml:mo><mml:mn>90</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>X</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>}</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>The main relations (RX, RY, and RH) defined in [<xref ref-type="bibr" rid="ref-17">17</xref>] between any two consecutive objects (j1 and j2) in the chromosome at any angle <italic>&#x03B8;</italic> are calculated based on the stored coordinates and dimensions as follows:
<disp-formula id="eqn-11"><label>(11)</label><mml:math id="mml-eqn-11" display="block"><mml:mi>R</mml:mi><mml:mi>X</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mi>X</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>X</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mspace width="negativethinmathspace" /><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true" maxsize="1.2em" minsize="1.2em">/</mml:mo></mml:mrow></mml:mstyle><mml:mspace width="negativethinmathspace" /></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="eqn-12"><label>(12)</label><mml:math id="mml-eqn-12" display="block"><mml:mi>R</mml:mi><mml:mi>Y</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mi>Y</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>Y</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mspace width="negativethinmathspace" /><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true" maxsize="1.2em" minsize="1.2em">/</mml:mo></mml:mrow></mml:mstyle><mml:mspace width="negativethinmathspace" /></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="eqn-13"><label>(13)</label><mml:math id="mml-eqn-13" display="block"><mml:mi>R</mml:mi><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mspace width="negativethinmathspace" /><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true" maxsize="1.2em" minsize="1.2em">/</mml:mo></mml:mrow></mml:mstyle><mml:mspace width="negativethinmathspace" /></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>These angle dependent relations will be used in calculating the objective distance based on the horizontal (at angle 0&#x00B0;) geometric relationship matrix GRM for the concerned plate that is defined as follows:
<disp-formula id="eqn-14"><label>(14)</label><mml:math id="mml-eqn-14" display="block"><mml:mrow><mml:mtext>GRM</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>R</mml:mi><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>i</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>i</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>where:</p>
<p><italic>RT</italic> represents the relation type (1: RX, 2: RY, 3: RH),</p>
<p><italic>i<sub>1</sub></italic> represents the first gene index, and</p>
<p><italic>i<sub>2</sub></italic> represents the second gene index where <italic>i<sub>2</sub></italic>&#x2009;&#x003E;<italic>&#x2009;i<sub>1</sub></italic>.</p>
<p>Hence to calculate the distance between any chromosome <italic>k</italic> and the prototype GRM, the three distance values defined in [<xref ref-type="bibr" rid="ref-17">17</xref>] are redefined as follows:
<disp-formula id="eqn-15"><label>(15)</label><mml:math id="mml-eqn-15" display="block"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:mi>R</mml:mi><mml:mi>X</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mo>&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>R</mml:mi><mml:mi>X</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mtext>GRM</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="eqn-16"><label>(16)</label><mml:math id="mml-eqn-16" display="block"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:mi>R</mml:mi><mml:mi>Y</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mo>&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>R</mml:mi><mml:mi>Y</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mtext>GRM</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="eqn-17"><label>(17)</label><mml:math id="mml-eqn-17" display="block"><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:mi>R</mml:mi><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mo>&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>R</mml:mi><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mtext>GRM</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>In this research, two penalties are added to impose more accurate localization.</p>
<p>The first penalty is added to impose correct ordering of objects inside the LP and maintain a minimum spacing between objects in the X-direction as follows:
<disp-formula id="eqn-18"><label>(18)</label><mml:math id="mml-eqn-18" display="block"><mml:mrow><mml:mtext>If at any</mml:mtext></mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003C;</mml:mo><mml:mn>0.1</mml:mn><mml:mrow><mml:mtext>then</mml:mtext></mml:mrow><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>R</mml:mi><mml:mi>X</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mtext>GRM</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mtext>is substituted by</mml:mtext></mml:mrow><mml:mn>2.0</mml:mn></mml:math></disp-formula></p>
<p>The second penalty is added to prevent large deviation in the height of the LP objects as follows:
<disp-formula id="eqn-19"><label>(19)</label><mml:math id="mml-eqn-19" display="block"><mml:mrow><mml:mtext>If at any j</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>R</mml:mi><mml:mi>H</mml:mi><mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mtext>GRM</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mn>0.3</mml:mn><mml:mrow><mml:mtext>it will be substituted by</mml:mtext></mml:mrow><mml:mn>2.0</mml:mn></mml:math></disp-formula></p>
<p>Also, the weights in the final objective distance, between a prototype p and any chromosome k, are modified to give more weighting for the X and H components as follows:
<disp-formula id="eqn-20"><label>(20)</label><mml:math id="mml-eqn-20" display="block"><mml:mi>O</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>4</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow><mml:mi>R</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow><mml:mi>R</mml:mi><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow><mml:mi>R</mml:mi><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula></p>
<p>Hence, the fitness of a chromosome <italic>k</italic> (<inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mi>F</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>) will be given as follows:
<disp-formula id="eqn-21"><label>(21)</label><mml:math id="mml-eqn-21" display="block"><mml:mi>F</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>4</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow><mml:mi>R</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow><mml:mi>R</mml:mi><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>4</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow><mml:mi>R</mml:mi><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula></p>
<p>In [<xref ref-type="bibr" rid="ref-17">17</xref>], it was shown that the variations in the detected symbol dimensions is increased with the increase of the inclined angle <italic>&#x03B8;,</italic> hence by performing the mentioned modifications, not only the GRM size will be reduced, but also more accurate objective distances will be gained since the variation of the rotation angle <italic>&#x03B8;</italic> will not affect the measured symbol dimensions and calculations will be performed at the most stable direction which will maximize the rigidness of the geometric features and hence maximizes the TP rate.</p>
<p>If we consider the maximum acceptable objective distance threshold (<italic>OD<sub>max</sub></italic>), which was defined in [<xref ref-type="bibr" rid="ref-17">17</xref>] as follows:
<disp-formula id="eqn-22"><label>(22)</label><mml:math id="mml-eqn-22" display="block"><mml:msub><mml:mrow><mml:mtext mathvariant="italic">OD</mml:mtext></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>4</mml:mn><mml:mo>+</mml:mo><mml:mn>0.1</mml:mn><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>Due to errors caused by tilt and because a powerful fake detection phase is used, the <italic>OD</italic><sub>max</sub> is increased to capture a wider range of perspective or physical distortions as follows:
<disp-formula id="eqn-23"><label>(23)</label><mml:math id="mml-eqn-23" display="block"><mml:msub><mml:mrow><mml:mtext mathvariant="italic">OD</mml:mtext></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn>6</mml:mn><mml:mo>+</mml:mo><mml:mn>0.1</mml:mn><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mn>8.5</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="s5_3"><label>5.3</label><title>Mutation and Crossover Operators</title>
<p>The mutation and crossover operators are left intact as in [<xref ref-type="bibr" rid="ref-17">17</xref>], except that a novel memetic operator is introduced to speedup convergence as explained in Subsection 5.3.2. In the following subsection we sum up the evolution of the crossover operator in the different versions.</p>
<sec id="s5_3_1"><label>5.3.1</label><title>The Crossover Operators</title>
<p>In [<xref ref-type="bibr" rid="ref-15">15</xref>] we have introduced a crossover that first combines the objects in the parents and then separates them into two off-springs based on two cases. In the first case the combined objects are sorted based on their <italic>X</italic>-positions then the objects are split into two overlapping groups, each group goes to different offspring. In the second case, the objects are sorted based on their <italic>Y</italic>-positions then the objects are separated into two overlapping groups, each group goes to different offspring.</p>
<p>In [<xref ref-type="bibr" rid="ref-16">16</xref>], a rotating crossover was introduced to replace the operator that separates the objects vertically with a new crossover operator that separates the objects based on a rotating line. The rotation is introduced by changing the slope of the rotating line (m) randomly in the range from 0 to&#x2009;&#x00B1;&#x2009;tan (85&#x00B0;). Hence instead of sorting the objects based on their <italic>Y</italic>-positions, they are sorted based on the difference (Y-mx). This smart operator allows separation of inclined plates and evolved the GA-based localization into rotation-invariant-localization in addition to the shift and scale-invariant properties introduced in the first version [<xref ref-type="bibr" rid="ref-15">15</xref>].</p>
</sec>
<sec id="s5_3_2"><label>5.3.2</label><title>The Memetic Operator</title>
<p>Unlike the objective function of a chromosome which is defined to measure the distance between the current chromosome and the LP prototype and used to give a relative fitness of the chromosome within the current population we need to define a genetic distance to measure the fitness of the current gene within the current chromosome relative to other genes in the same chromosome based on the geometric properties of the LP problem. The purpose of the memetic operator is to minimize the memetic distance using a local search [<xref ref-type="bibr" rid="ref-21">21</xref>] for the best genes that can finally enhance the global fitness of the current chromosome.</p>
<p>In this operator the collinearity of a chromosome&#x2019;s objects is increased by replacing the most deviated objects with others to ultimately detect the sequence of LP symbols that lie on a single straight line. By considering the Hough Line transform [<xref ref-type="bibr" rid="ref-22">22</xref>] that represents a straight line in terms of the radius R and the angle &#x03B8; that are defined as shown in <xref ref-type="fig" rid="fig-4">Fig. 4</xref>, we can detect the farthest (less fit) objects from the straight line based on the deviation of the objects&#x2019; R from the mean value of R and replace them by the best fit ones.</p>
<fig id="fig-4"><label>Figure 4</label><caption><title>The relation between the coordinates (X, Y) of any point (blue circles) on the shown straight line (red) and the length (R) and the angle &#x03B8; of the perpendicular line (blue) from the origin (O) to the straight line</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_32976-fig-4.png"/></fig>
<p>Since the LP objects represented in a certain chromosome should have similarities in their widths (W) and heights (H), the MA operator should maximize these similarities by considering the deviation of each gene property from the mean value of the same property in the current chromosome. Hence, the proposed algorithm is composed of three steps as follows:</p>
<p><bold>INPUT</bold>: chromosome <bold><italic>chrm</italic></bold> having L genes with indices <italic>j</italic> from 1 to L and their corresponding objects (ob<italic><sub>j</sub></italic>&#x2009;&#x003D;&#x2009;<bold><italic>chrm</italic></bold> (<italic>j</italic>)) with location and dimension parameters <italic>X<sub>j</sub></italic>, <italic>Y<sub>j</sub></italic>, <italic>W<sub>j</sub></italic>, and <italic>H<sub>j</sub></italic>.</p>
<p><bold>OUTPUT</bold>: chromosome <bold><italic>chrm</italic></bold> with objects having better collinear and dimension characteristics.</p>
<p><bold>First step</bold>: Detect the worst fit object <italic>ob<sub>worst</sub></italic> (with index <italic>j<sub>wrst</sub></italic>) which has the largest gene distance GeneDist in <bold><italic>chrm</italic></bold>, which is defined as follows:
<disp-formula id="eqn-24"><label>(24)</label><mml:math id="mml-eqn-24" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mtext>GeneDist</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>j</mml:mi><mml:mrow><mml:mrow><mml:mtext>wrst</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo></mml:mtd><mml:mtd><mml:mi></mml:mi><mml:munder><mml:mo movablelimits="true" form="prefix">max</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>L</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mo>(</mml:mo><mml:mn>10</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mo fence="false" stretchy="false">|</mml:mo><mml:mi>R</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>D</mml:mi><mml:mi>X</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>D</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>W</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where
<disp-formula id="eqn-25"><label>(25)</label><mml:math id="mml-eqn-25" display="block"><mml:mi>R</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mtext>COS</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>Y</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mtext>SIN</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">&#x03B8;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:math></disp-formula></p>
<p><italic>R<sub>avg</sub></italic> is the mean value of <italic>R</italic>, <italic>H<sub>avg</sub></italic> is the mean value of <italic>H</italic>, and <italic>W<sub>avg</sub></italic> is the mean value of <italic>W</italic> in the current chromosome.</p>
<p><italic>DX</italic>(<italic>j</italic>) is the minimum of the <italic>X</italic>-distance of the object (<italic>j</italic>) from its left and right neighbors if it is not at one of the two extreme ends of the chromosome. If the object is at the most left (or the most right) of the chromosome, its distance from the right neighbor object (or the left neighbor object) will be used.</p>
<p>Hence the output of this step is the index of the worst gene <italic>(j<sub>worst</sub>)</italic> which corresponds to <italic>ob<sub>worst</sub></italic> in addition to other distance values that represent the maximum deviation of each property from its mean.</p>
<p><bold>Second step</bold>: finding the best fit object not belonging to the current chromosome to replace the worst fit one. This step will not take place unless one of the following conditions is true:
<disp-formula id="eqn-26"><label>(26)</label><mml:math id="mml-eqn-26" display="block"><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext>Maximum deviation in&#xA0;</mml:mtext></mml:mrow><mml:mrow><mml:mtext>R</mml:mtext></mml:mrow><mml:mo>:</mml:mo><mml:mrow><mml:mtext>&#xA0;MaxDevR</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mtext>R</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>worst</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mtext>R</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">|</mml:mo><mml:mo>&#x003E;</mml:mo><mml:mn>0.5</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mtext>b</mml:mtext></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext>&#xA0;Maximum deviation in H</mml:mtext></mml:mrow><mml:mo>:</mml:mo><mml:mrow><mml:mtext>MaxDevH</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>worst</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mn>0.33</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mtext>c</mml:mtext></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext>Maximum deviation in&#xA0;</mml:mtext></mml:mrow><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mo>:</mml:mo><mml:mrow><mml:mtext>&#xA0;MaxDevW</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>worst</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">|</mml:mo><mml:mo>&#x003E;</mml:mo><mml:mn>0.5</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mrow><mml:mtext>W</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>avg</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>}</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>If one of the above conditions is true the worst fit object ob<sub>worst</sub> is replaced by a best-fit object <italic>ob<sub>best</sub></italic> by testing all objects in the near set with indices [<italic>ob<sub>worst</sub></italic> &#x2212; 1.5&#x2009;&#x00D7;&#x2009;L, <italic>ob<sub>worst</sub></italic> &#x002B;&#x2009;1.5&#x2009;&#x00D7;&#x2009;L] and selecting the best one (<italic>ob</italic><sub>best</sub>) that has the minimum GeneDist (<italic>ob</italic><sub>best</sub>). The replacement is performed if GeneDist (<italic>ob<sub>best</sub></italic>) is less than GeneDist(<italic>ob<sub>worst</sub></italic>).</p>
<p><bold>Third step:</bold> If replacement is done in step 2, the new chromosome angle <italic>&#x03B8;</italic> is recalculated and the above two steps are repeated for a maximum of 7 iterations, otherwise the algorithm is stopped.</p>
<p>By applying the above algorithm, the chromosome state is moved to a local minimum as in the Hill-climbing algorithm which speeds up the search process significantly. For instance, after testing the plate used in the experiment shown in <xref ref-type="fig" rid="fig-5">Fig. 5</xref>, a maximum of 6 generations were needed to reach the optimal solution (in case of no skipping). As mentioned in [<xref ref-type="bibr" rid="ref-17">17</xref>], the search space after using subgrouping is approximatley linearly proportional to the number of CCOs, and based on the hybrird binarization techniques and the resloution (720 (Width)&#x2009;&#x00D7;&#x2009;1160 (Height)) and complexity of the CCPD dataset, the maximum number of CCOs is about 900. In [<xref ref-type="bibr" rid="ref-17">17</xref>], there were two image resolutions (480 &#x00D7; 640 and 240&#x2009;&#x00D7;&#x2009;320) having approximatelly a maximum of 330 CCOs and the experimentally selected maximum number of generations was 10. Hence, in the CCPD case, the required maximum number of generations is about 30, but due to the use of the memetic operator we have decreased the maximum number of generations to 15, which significantly reduces the total number of GA iterations and the LP detection time. By assigning 15 for the maximum number of generations, the average number of generations per image when using the memetic operator are dropped to 9.05 instead of 15 in the case of 30 generations without the memetic operator in the case of the CCPD Base evaluation data section (100,000 images).</p>
<fig id="fig-5"><label>Figure 5</label><caption><title>An inclined LP with angle (25&#x00B0;) having all its 6 symbols detected (out of 32 objects) in 5 iterartions where the dashed line indicates the location and orientation of the hough line of the chromosome at each iteration and the red boxes indicate the chromosome objects</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_32976-fig-5.png"/></fig>
<p>It is worth mensionning that the proposed memetic operator mostly allows a partial solution to reach the optimum one even if the partial solution has only 2 out of 6 symbols of the correct (or semi-correct) solution in a given chromosome as in <xref ref-type="fig" rid="fig-5">Fig. 5</xref> where an inclined LP with angle (25&#x00B0;) had all its 6 symbols detected (out of 32 objects) in five memetic iterations. The MA iterations are done in every generation of the GA for the best-fit chromosomes only.</p>
<p>Unlike the familiar mutation operator which is executed with a fixed probability not related to the fitness or objective distance of the chromosome, the introduced memetic operator is performed only on the best fit chromosomes whose Objective distances ODs are less than the value (OD<sub>min</sub> &#x002B; OD<sub>avg</sub>/10) to reduce the processing time and concentrate on the most promising solutions.</p>
<p><xref ref-type="fig" rid="fig-6">Fig. 6</xref> displays an image (part a) from the Rotate section which resulted in 134 CCOs after the objects filtering phase (part b) with two convergence graphs: The first graph (part c) displays the average and the best (objective distance) <italic>vs.</italic> the generation number without using the memetic operator and the second graph (part d) displays the convergence graphs using the memetic operator. From <xref ref-type="fig" rid="fig-6">Fig. 6</xref> the speed of convergence when using the memetic operator is approximately double the speed without using it.</p>
<fig id="fig-6"><label>Figure 6</label><caption><title>(a) Input RGB image, (b) 134 CCOs in the binarized image, (c) The convergence graphs without using the memetic operator, and (d) the convergence graphs in the case of using the memetic operator</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_32976-fig-6.png"/></fig>
</sec>
</sec>
</sec>
<sec id="s6"><label>6</label><title>Fake Detection Phase</title>
<p>In the previous paper [<xref ref-type="bibr" rid="ref-17">17</xref>], a fake detection stage was introduced using a heuristic function based on the number of the CCOs and the number of black-white crossings in the neighborhood of the detected LP. Because in this research we have a very large training set (100,000 images), we will use a convolutional neural network model to discriminate between LP and non-LP regions. This requires three steps:
<list list-type="simple">
<list-item><p>1- Generating the training data set</p></list-item>
</list></p>
<p>In this step the MA-based algorithm is run on the Base training dataset and for each image the MA-based algorithm is run until an LP is found based on the ground truth data, where the TP regions are stored in the TP folder and the FP ones are stored in the FP folder.
<list list-type="simple">
<list-item><p>2- Training a ready-made CNN model on the generated training set</p></list-item>
</list></p>
<p>In this step we tested two ready-made CNN models, mainly GoogleNet [<xref ref-type="bibr" rid="ref-23">23</xref>] and ResNet18 [<xref ref-type="bibr" rid="ref-24">24</xref>], where higher accuracy results were obtained using GoogleNet. The reason as we guess is that GoogleNet is more sensitive to color-image inputs than ResNet18 because the latter propagates the channel data through addition layers while GoogleNet propagates channel data through depth concatenation layers. Therefore, most of the recent research on the CCPD dataset produce higher accuracy results than previously related deep learning techniques because the color images are submitted to the models without being converted into grey.
<list list-type="simple">
<list-item><p>3- Optimization of the binary-classification accuracy of the model based on the training data</p></list-item>
</list></p>
<p>In this step the enhancement of the produced model is tried in two dimensions. The first dimension regards data augmentation during the training process. In all the conducted experiments, random rotation in the range from &#x2212;30 to 30 and random shear in both X and Y directions in the range from &#x2212;10 to 10 are performed. The second dimension regards the contents of the prepared images for the training process. Two cases are tested, in the first case, the training images contain only the regions that just include the LP while in the second case the image area is longitudinally doubled, and the LP region is kept in the center. <xref ref-type="fig" rid="fig-7">Fig. 7</xref> presents samples of TP and FP images in the two cases. Based on the flowchart in <xref ref-type="fig" rid="fig-1">Fig. 1</xref> and the fact that all the images in the CCPD dataset does not include True Negative (TN) samples, hence the accuracy is measured as TP/(TP&#x2009;&#x002B;&#x2009;MIS) where MIS means FP or False Negative (FNG). After training the two models in the two cases and testing them on the Rotate dataset section, the accuracy was 88.2&#x0025; in the first case and increased by 8.2&#x0025; in the second case reaching 96.2&#x0025; where the LP context (region around the LP) allowed the CNN model to differentiate between LP and non-LP regions. Unlike most of the previous deap learning techniques that use random regions to represent FP samples, in this research, the FP samples are generated by the proposed technique for cases that have objects sequences similar to the LP symbols (Adversarial samples), which allows the CNN model to concentrate in learning the difference between LP and simi-LP regions and hence performs what we can call &#x201C;skilled learning&#x201D; such as skilled and random forgery learning in the case of signature verification.</p>
<fig id="fig-7"><label>Figure 7</label><caption><title>Samples of TPs and FPs training images as generated by the MA-based system in the two cases: same (case 1), and double (case 2) the LP area</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_32976-fig-7.png"/></fig>
<p>A third experiment is conducted based on the second case but after replacing the average global pooling layer in the GoogleNet with a 3&#x2009;&#x00D7;&#x2009;3 average pooling layer with a stride 2&#x2009;&#x00D7;&#x2009;2 such that the output of the pooling layer is 3&#x2009;&#x00D7;&#x2009;3&#x2009;&#x00D7;&#x2009;1024 instead of 1&#x2009;&#x00D7;&#x2009;1&#x2009;&#x00D7;&#x2009;1024. This modification increased the detection accuracy of the Rotate dataset section by 1.6&#x0025; reaching 97.8&#x0025; because it allowed the LP context to be well presented to the next fully connected layer and hence higher accuracy is achieved. A further experiment is conducted after increasing the height of the LP area by double the average hight of its symbols (extended by H<sub>avg</sub> from each side) and the pooling layer is removed such that the input to the fully connected layer is 7&#x2009;&#x00D7;&#x2009;7&#x2009;&#x00D7;&#x2009;1024. This modification resulted in an increase of 0.90&#x0025; reaching 98.70&#x0025; for the Rotate data section. When using the ground truth data for verification instead of the CNN model the accuracy of the Rotate section reached 99.75&#x0025; which means that the proposed candidates by the MA-based technique cover most of the solution space but because the CNN model is the only data-dependent unit in the proposed technique the accuracy is still less than the maximum allowed limit. Since the technique is based on MA and CNN it will be refered to as MA-CNN Technique.</p>
</sec>
<sec id="s7"><label>7</label><title>Experiments and Discussion</title>
<p>The evaluation of the MA-CNN technique will be based on the CCPD benchmark dataset [<xref ref-type="bibr" rid="ref-14">14</xref>] and the Aplication Oriented License Plate Data Set (AOLP) [<xref ref-type="bibr" rid="ref-25">25</xref>]. The CCPD dataset has 200,000 images Base section (Train (100,000) and Evaluate (100,000)) plus six special test sections (Rotate, Tilt, Weather, Dark/Bright (DB), Far/Near (FN), and Challenge) which cover most of the complexity dimensions of the LP detection problems. Although CCPD includes a seventh section called Blur it is still not evaluated in the state-of-the-art works. The AOLP contains 2049 images distributed among three application categories (Acces Control (AC), traffic law enforcemnt (LE), and road patrol (RP)). <xref ref-type="fig" rid="fig-8">Fig. 8</xref> presents examples of detected samples from the CCPD dataset sections with the rotation angle written under each sample.</p>
<fig id="fig-8"><label>Figure 8</label><caption><title>Detected samples from different sections (A: Rotate, B: TILT, C: Blur, D: DB, E: FN, and F: Challenge). Ground truth boxes have red dashes and detected boxes have green dashes</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_32976-fig-8.png"/></fig>
<p>As in [<xref ref-type="bibr" rid="ref-14">14</xref>], a plate is considered detected if the intersection over union (IoU) value is larger or equal to 0.7. The evaluation experiment will be performed on all the CCPD sections based on the precision as it is used in the state of the art papers and defined as follows:
<disp-formula id="eqn-27"><label>(27)</label><mml:math id="mml-eqn-27" display="block"><mml:mrow><mml:mtext>Precision</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>TP</mml:mtext></mml:mrow><mml:mrow><mml:mspace width="negativethinmathspace" /><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true" maxsize="1.2em" minsize="1.2em">/</mml:mo></mml:mrow></mml:mstyle><mml:mspace width="negativethinmathspace" /></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>TP</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext>FP</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>Experiments on the AOLP will consider recall also, which is defined as follows:
<disp-formula id="eqn-28"><label>(28)</label><mml:math id="mml-eqn-28" display="block"><mml:mrow><mml:mtext>Recall</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>TP</mml:mtext></mml:mrow><mml:mrow><mml:mspace width="negativethinmathspace" /><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true" maxsize="1.2em" minsize="1.2em">/</mml:mo></mml:mrow></mml:mstyle><mml:mspace width="negativethinmathspace" /></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>TP</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext>FN</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>All the experiments performed in this research are implemented using MATLAB 19B on a PC with 32 GB random-access memory (RAM), Intel core i7-8700K CPU@3.70&#x2005;GHz, and a graphical accelerated processing unit (GPU) of NVIDIA GeForce GTX 1080 Ti with 11 GB RAM. Since in [<xref ref-type="bibr" rid="ref-14">14</xref>], the technique output is either FP or TP because the dataset collection application guaranteed the existence of an LP in all samples, the LP miss branch in the flowchart in <xref ref-type="fig" rid="fig-1">Fig. 1</xref> is redirected to the accepted LP symbol block to have the same experimental conditions in the case of the CCPD dataset.</p>
<p><xref ref-type="table" rid="table-1">Tab. 1</xref> presents the precision results for the seven sections and the average precision (AP) for all sections in addition to the detection speed in frames per second (FPS). The results of the works [<xref ref-type="bibr" rid="ref-10">10</xref>&#x2013;<xref ref-type="bibr" rid="ref-14">14</xref>] have been recorded as in [<xref ref-type="bibr" rid="ref-14">14</xref>]. In addition to the recorded results in [<xref ref-type="bibr" rid="ref-14">14</xref>], a recent work [<xref ref-type="bibr" rid="ref-26">26</xref>] on CCPD has achieved the highest precision based on an End-To-End deep learning architecture that included two faster-R-CNN subnetworks to detect both LP and non-LP text and used a loss function to prevent the detection of non-LP regions.</p>
<table-wrap id="table-1"><label>Table 1</label><caption><title>LP detection precision (percentage) of the state-of-the-art techniques on the seven sections of CCPD dataset and the average precision of the whole set (AP) in addition to the detection speed (FPS)</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Detection technique</th>
<th align="left">FPS</th>
<th align="left">AP</th>
<th align="left">Base</th>
<th align="left">DB</th>
<th align="left">Weather</th>
<th align="left">FN</th>
<th align="left">Rotate</th>
<th align="left">Tilt</th>
<th align="left">Challenge</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Faster R-CNN) [<xref ref-type="bibr" rid="ref-10">10</xref>]</td>
<td align="left">15</td>
<td align="left">92.9</td>
<td align="left">98.1</td>
<td align="left">92.1</td>
<td align="left">81.8</td>
<td align="left">83.7</td>
<td align="left">91.8</td>
<td align="left">89.4</td>
<td align="left">83.9</td>
</tr>
<tr>
<td align="left">YOLO9000 [<xref ref-type="bibr" rid="ref-11">11</xref>]</td>
<td align="left">42</td>
<td align="left">93.1</td>
<td align="left">98.8</td>
<td align="left">89.6</td>
<td align="left">84.2</td>
<td align="left">77.3</td>
<td align="left">93.3</td>
<td align="left">91.8</td>
<td align="left">88.6</td>
</tr>
<tr>
<td align="left">SSD300 [<xref ref-type="bibr" rid="ref-12">12</xref>]</td>
<td align="left">40</td>
<td align="left">94.4</td>
<td align="left">99.1</td>
<td align="left">89.2</td>
<td align="left">83.4</td>
<td align="left">84.7</td>
<td align="left">95.6</td>
<td align="left">94.9</td>
<td align="left">93.1</td>
</tr>
<tr>
<td align="left">TE2E [<xref ref-type="bibr" rid="ref-13">13</xref>]</td>
<td align="left">3</td>
<td align="left">94.2</td>
<td align="left">98.5</td>
<td align="left">91.7</td>
<td align="left">83.6</td>
<td align="left">83.8</td>
<td align="left">95.1</td>
<td align="left">94.5</td>
<td align="left">93.1</td>
</tr>
<tr>
<td align="left">RPnet [<xref ref-type="bibr" rid="ref-14">14</xref>]</td>
<td align="left">61</td>
<td align="left">94.5</td>
<td align="left">99.3</td>
<td align="left">89.5</td>
<td align="left">84.1</td>
<td align="left">85.3</td>
<td align="left">94.7</td>
<td align="left">93.2</td>
<td align="left">92.8</td>
</tr>
<tr>
<td align="left">Ref [<xref ref-type="bibr" rid="ref-25">25</xref>]</td>
<td align="left">14</td>
<td align="left">96.1</td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
<td align="left"/>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">MA-CNN technique</td>
<td align="left">23.2</td>
<td align="left"><bold>97.55</bold></td>
<td align="left"><bold>99.76</bold></td>
<td align="left">90.63</td>
<td align="left"><bold>99.68</bold></td>
<td align="left"><bold>93.70</bold></td>
<td align="left"><bold>98.79</bold></td>
<td align="left"><bold>98.47</bold></td>
<td align="left">92.65</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>From <xref ref-type="table" rid="table-1">Tab. 1</xref>, it is apparent that the proposed MA-CNN technique outperforms the state-of-the-art techniques in all sections except the DB and Challenge sections. The best precisions (Bold) are for the Base, Weather, Rotate and Tilt sections because the core of the technique is rotation invariant in addition to the rotation and shear augmentations performed during the training of the CNN model. Increasing the precision in the DB, FN, and Challenge sections can be achieved by optimizing the binarization filters and/or adding other techniques given that the system speed is maintained high. Also, other data augmentation related to illumination complexities is needed to increase the accuracy of the CNN model because the BASE training set does not cover all the complexities included in the mentioned test sections.</p>

<p>To adapt the technique parameters for the AOLP dataset, the blue channel is considered with an equal weight to other channels in <xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref> and the binarization filter sizes are multiplied by a factor of (ImageWidth/720). The minimum symbol hight (MinH) is set to 11 pixels to allow detection of very small symbols and overcome the main difficluty of the AOLP dataset. The same GRM matrix is used with 6 symbols instead of 7 by execluding the Chineeze character. Since, the color and layout of the AOLP dataset is different from that of the CCPD dataset, in each of the three experiments, the CNN model is retrained on two of the three data subsections and tested on the remaining one to allow verification of the MA-output. <xref ref-type="table" rid="table-2">Tab. 2</xref> presents the results in case of the AOLP data set categories showing the work of my previous paper [<xref ref-type="bibr" rid="ref-17">17</xref>], the author of the dataset [<xref ref-type="bibr" rid="ref-25">25</xref>] and the recent work of [<xref ref-type="bibr" rid="ref-26">26</xref>].</p>
<table-wrap id="table-2"><label>Table 2</label><caption><title>Detection precision and recall of the state-of-the-art techniques on the three categories of AOLP</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Detection technique</th>
<th align="center" colspan="2">AC</th>
<th align="center" colspan="2">LE</th>
<th align="center" colspan="2">RP</th>
</tr>
<tr>
<td align="left"/>
<td align="left">Precision</td>
<td align="left">Recall</td>
<td align="left">Precision</td>
<td align="left">Recall</td>
<td align="left">Precision</td>
<td align="left">Recall</td>
</tr></thead>
<tbody>
<tr>
<td align="left">Ref. [<xref ref-type="bibr" rid="ref-25">25</xref>]</td>
<td align="left">91&#x0025;</td>
<td align="left">96&#x0025;</td>
<td align="left">91&#x0025;</td>
<td align="left">95&#x0025;</td>
<td align="left">91&#x0025;</td>
<td align="left">94&#x0025;</td>
</tr>
<tr>
<td align="left">Ref. [<xref ref-type="bibr" rid="ref-26">26</xref>]</td>
<td align="left">99.71&#x0025;</td>
<td align="left">99.4&#x0025;</td>
<td align="left"><bold>99.9&#x0025;</bold></td>
<td align="left">99.47&#x0025;</td>
<td align="left"><bold>99.8&#x0025;</bold></td>
<td align="left"><bold>99.46&#x0025;</bold></td>
</tr>
<tr>
<td align="left">Ref. [<xref ref-type="bibr" rid="ref-17">17</xref>]</td>
<td align="left">99.56&#x0025;</td>
<td align="left"><bold>99.85&#x0025;</bold></td>
<td align="left">99.87&#x0025;</td>
<td align="left">99.87&#x0025;</td>
<td align="left">99.02&#x0025;</td>
<td align="left">99.18&#x0025;</td>
</tr>
<tr>
<td align="left">MA-CNN</td>
<td align="left"><bold>99.85&#x0025;</bold></td>
<td align="left">99.27&#x0025;</td>
<td align="left"><bold>99.9&#x0025;</bold></td>
<td align="left"><bold>99.9&#x0025;</bold></td>
<td align="left">99.02&#x0025;</td>
<td align="left">99.18&#x0025;</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Based on the results in <xref ref-type="table" rid="table-2">Tab. 2</xref>, we conclude that the MA-CNN technique is competing with the [<xref ref-type="bibr" rid="ref-17">17</xref>,<xref ref-type="bibr" rid="ref-26">26</xref>] techniques where the best results (Bold) are alternating between the three techniques. Based on the AOLP experiment, the significant difference between the MA-CNN technique and [<xref ref-type="bibr" rid="ref-17">17</xref>] is the very high speed (120 FPS) compared to 16.6 FPS (for [<xref ref-type="bibr" rid="ref-17">17</xref>]) in the case of low resolution (320&#x2009;&#x00D7;&#x2009;240) and 92 FPS compared to 8.3 FPS in the case of the higher resolution (640 &#x00D7;&#x2009;480).</p>

<p>Although the MA-CNN has been accelerated using C&#x002B;&#x002B; and GPU computing in about 50&#x0025; of the implemented routines, it is still relatively slow compared to the state-of-the-art real-time techniques. This can be overcome by re-implementing all the routines in the memetic algorithm using GPUs.</p>
</sec>
<sec id="s8"><label>8</label><title>Conclusion</title>
<p>A novel MA-CNN technique has been introduced for the localization of the LP symbols using a memetic algorithm that proposes a candidate solution that is verified by a CNN model which filters out FP solutions and pushes the technique to do more searches for the best solution.</p>
<p>A significant enhancement of the previously designed GA-based system for localizing the vehicle plate number inside plane images has been introduced to support fast and accurate detection of LPs in complex contexts. Hence, a deeper solution to the binarization problems has been introduced to overcome difficult illumination and physical problems. In the binarization stage, a hybrid local adaptive technique with different window sizes and binarization parameters has been introduced to enrich the solution space and to guarantee the detection of the TP solutions if they exist in different perspective and illumination contexts. A neighbourhoud-based filtering stage has been introduced to minimize the number of non-LP symbols and hence minimize the MA search space to support fast and accurate detection of the LP symbols. The output of the connected component analysis stage is enriched by storing the positions and dimensions of every CCA object at any angle to allow accurate calculation of the objective distance between the chromosome genes and the concerned LP GRM defined in one horizontal direction resulting in more accurate and fast localization of the unknown plate. The fake stage in the previous versions has been replaced with a CNN model that is optimized to differentiate between LP and non-LP regions based on the surrounding context of the localized plate. A novel memetic operator has been introduced based on the Hough line representation to perform a local search for the linearly aligned LP-symbols which significantly minimized the search time and guaranteed convergence to the global minimum with the least number of iterations.</p>
<p>Finally, the new MA-CNN technique has been tested on two challenging benchmark datasets, which resulted in highly accurate detection of the LP with a low FP rate. The precision of the new system now competes with the state of the art techniques although maintaining a wider range of angle and scale. The wide range of the complexities of the LP images in the experimented datasets proves the robustness of the new system and its high ability to overcome challenging contexts.</p>
</sec>
</body>
<back>
<ack>
<p>The author wishes to thank all the FCIT members, especially the Dean and the Head of the CIS department for the facilities provided to complete this research.</p>
</ack>
<fn-group>
<fn fn-type="other"><p><bold>Funding Statement:</bold> The author received no specific funding for this study.</p></fn>
<fn fn-type="conflict"><p><bold>Conflicts of Interest:</bold> The author declares that he has no conflicts of interest to report regarding the present study.</p></fn>
</fn-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Shashirangana</surname></string-name>, <string-name><given-names>H.</given-names> <surname>Padmasiri</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Meedeniya</surname></string-name> and <string-name><given-names>C.</given-names> <surname>Perera</surname></string-name></person-group>, &#x201C;<article-title>Automated license plate recognition: A survey on methods and techniques</article-title>,&#x201D; <source>IEEE Access</source>, vol. <volume>9</volume>, pp. <fpage>11203</fpage>&#x2013;<lpage>11225</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>W.</given-names> <surname>Jia</surname></string-name>, <string-name><given-names>H.</given-names> <surname>Zhang</surname></string-name>, <string-name><given-names>X.</given-names> <surname>He</surname></string-name> and <string-name><given-names>Q.</given-names> <surname>Wu</surname></string-name></person-group>, &#x201C;<article-title>Gaussian weighted histogram intersection for license plate classification</article-title>,&#x201D; in <conf-name>Proc. IEEE Int. Conf. on Pattern Recognition</conf-name>, <conf-loc>Hong Kong, China</conf-loc>, vol. <volume>3</volume>, pp. <fpage>574</fpage>&#x2013;<lpage>577</lpage>, <year>2006</year>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Yohimori</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Mitsukura</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Fukumi</surname></string-name>, <string-name><given-names>N.</given-names> <surname>Akamatsu</surname></string-name> and <string-name><given-names>N.</given-names> <surname>Pedrycz</surname></string-name></person-group>, &#x201C;<article-title>License plate detection system by using threshold function and improved template matching method</article-title>,&#x201D; in <conf-name>Proc. IEEE North American Fuzzy Information Processing Society</conf-name>, <conf-loc>Banff, Alberta, Canada</conf-loc>, vol. <volume>1</volume>, pp. <fpage>357</fpage>&#x2013;<lpage>362</lpage>, <year>2004</year>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>L.</given-names> <surname>Luo</surname></string-name>, <string-name><given-names>H.</given-names> <surname>Sun</surname></string-name>, <string-name><given-names>W.</given-names> <surname>Zhou</surname></string-name> and <string-name><given-names>L.</given-names> <surname>Luo</surname></string-name></person-group>, &#x201C;<article-title>An efficient method of license plate location</article-title>,&#x201D; in <conf-name>Proc. 1st Int. Conf. IEEE Information Science and Engineering</conf-name>, <conf-loc>Nanjing, Jiangsu, China</conf-loc>, pp. <fpage>770</fpage>&#x2013;<lpage>773</lpage>, <year>2009</year>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>A. M.</given-names> <surname>Al-Ghaili</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Mashohor</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Ismail</surname></string-name> and <string-name><given-names>A. R.</given-names> <surname>Ramli</surname></string-name></person-group>, &#x201C;<article-title>A new vertical edge detection algorithm and its application</article-title>,&#x201D; in <conf-name>Proc. IEEE Int. Conf. on Computer Engineering &#x0026; Systems (ICCES)</conf-name>, <conf-loc>Cairo, Egypt</conf-loc>, pp. <fpage>204</fpage>&#x2013;<lpage>209</lpage>, <year>2008</year>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Zunino</surname></string-name> and <string-name><given-names>S.</given-names> <surname>Rovetta</surname></string-name></person-group>, &#x201C;<article-title>Vector quantization for license-plate location and image coding</article-title>,&#x201D; <source>IEEE Transactions on Industrial Electronics</source>, vol. <volume>47</volume>, no. <issue>1</issue>, pp. <fpage>159</fpage>&#x2013;<lpage>167</lpage>, <year>2000</year>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Caner</surname></string-name>, <string-name><given-names>H. S.</given-names> <surname>Gecim</surname></string-name> and <string-name><given-names>A. Z.</given-names> <surname>Alkar</surname></string-name></person-group>, &#x201C;<article-title>Efficient embedded neural-network-based license plate recognition system</article-title>,&#x201D; <source>IEEE Transactions on Vehicular Technology</source>, vol. <volume>57</volume>, no. <issue>5</issue>, pp. <fpage>2675</fpage>&#x2013;<lpage>2683</lpage>, <year>2008</year>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Matas</surname></string-name> and <string-name><given-names>K.</given-names> <surname>Zimmermann</surname></string-name></person-group>, &#x201C;<article-title>Unconstrained license plate and text localization and recognition</article-title>,&#x201D; in <conf-name>Proc. IEEE Transactions on Intelligent Transportation Systems</conf-name>, <conf-loc>Vienna, Austria</conf-loc>, pp. <fpage>225</fpage>&#x2013;<lpage>230</lpage>, <year>2005</year>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Draghici</surname></string-name></person-group>, &#x201C;<article-title>A neural network based artificial vision system for license plate recognition</article-title>,&#x201D; <source>International Journal of Neural Systems</source>, vol. <volume>8</volume>, no. <issue>1</issue>, pp. <fpage>113</fpage>&#x2013;<lpage>126</lpage>, <year>1997</year>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Ren</surname></string-name>, <string-name><given-names>K.</given-names> <surname>He</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Girshick</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Sun</surname></string-name></person-group>, &#x201C;<article-title>Faster R-CNN: Towards real-time object detection with region proposal networks</article-title>,&#x201D; <source>IEEE Transactions on Pattern Analysis and Machine Intelligence</source>, vol. <volume>39</volume>, no. <issue>6</issue>, pp. <fpage>1137</fpage>&#x2013;<lpage>1149</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Redmon</surname></string-name> and <string-name><given-names>A.</given-names> <surname>Farhadi</surname></string-name></person-group>, &#x201C;<article-title>YOLO9000: Better, faster, stronger</article-title>,&#x201D; in <conf-name>Proc. IEEE Conf. on Computer Vision and Pattern Recognition</conf-name>, <conf-loc>Honolulu, HI, USA</conf-loc>, pp. <fpage>7263</fpage>&#x2013;<lpage>7271</lpage>, <year>2017</year>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>W.</given-names> <surname>Liu</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Anguelov</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Erhan</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Szegedy</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Reed</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Ssd: Single shot multibox detector</article-title>,&#x201D; in <conf-name>Proc. Springer European Conf. on Computer Vision</conf-name>, <conf-loc>Amsterdam, The Netherlands</conf-loc>, pp. <fpage>21</fpage>&#x2013;<lpage>37</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Li</surname></string-name>, <string-name><given-names>P.</given-names> <surname>Wang</surname></string-name> and <string-name><given-names>C.</given-names> <surname>Shen</surname></string-name></person-group>, &#x201C;<article-title>Towards end-to-end car license plates detection and recognition with deep neural networks</article-title>,&#x201D; <source>IEEE Transactions on Intelligent Transportation Systems</source>, vol. <volume>20</volume>, no. <issue>3</issue>, pp. <fpage>1126</fpage>&#x2013;<lpage>1136</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>Z.</given-names> <surname>Xu</surname></string-name>, <string-name><given-names>W.</given-names> <surname>Yang</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Meng</surname></string-name>, <string-name><given-names>N.</given-names> <surname>Lu</surname></string-name>, <string-name><given-names>H.</given-names> <surname>Huang</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Towards end-to-end license plate detection and recognition: A large dataset and baseline</article-title>,&#x201D; in <conf-name>Proc. the European Conf. on Computer Vision (ECCV) Workshops</conf-name>, <conf-loc>Munich, Germany</conf-loc>, pp. <fpage>255</fpage>&#x2013;<lpage>271</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>G.</given-names> <surname>Abo Samra</surname></string-name> and <string-name><given-names>F.</given-names> <surname>Khalefah</surname></string-name></person-group>, &#x201C;<article-title>Localization of license plate number using dynamic image processing techniques and genetic algorithms</article-title>,&#x201D; <source>IEEE Transactions on Evolutionary Computation</source>, vol. <volume>18</volume>, no. <issue>2</issue>, pp. <fpage>244</fpage>&#x2013;<lpage>257</lpage>, <year>2014</year>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>G.</given-names> <surname>Abo Samra</surname></string-name></person-group>, &#x201C;<article-title>Genetic algorithms based orientation and scale invariant localization of vehicle plate number</article-title>,&#x201D; <source>International Journal of Scientific &#x0026; Engineering Research</source>, vol. <volume>7</volume>, no. <issue>4</issue>, pp. <fpage>817</fpage>&#x2013;<lpage>829</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>G. E.</given-names> <surname>Abo-Samra</surname></string-name></person-group>, &#x201C;<article-title>Application independent localisation of vehicle plate number using multi window-size binarisation and semi-hybrid genetic algorithm</article-title>,&#x201D; <source>The Journal of Engineering</source>, vol. <volume>2018</volume>, no. <issue>2</issue>, pp. <fpage>104</fpage>&#x2013;<lpage>116</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>K.</given-names> <surname>Saddami</surname></string-name>, <string-name><given-names>K.</given-names> <surname>Munadi</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Muchallil</surname></string-name> and <string-name><given-names>F.</given-names> <surname>Arnia</surname></string-name></person-group>, &#x201C;<article-title>Improved thresholding method for enhancing jawi binarization performance</article-title>,&#x201D; in <conf-name>Proc. Int. Conf. on Document Analysis and Recognition</conf-name>, <conf-loc>Kyoto, Japan</conf-loc>, vol. <volume>1</volume>, pp. <fpage>1108</fpage>&#x2013;<lpage>1113</lpage>, <year>2017</year>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>M. H.</given-names> <surname>Najafi</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Murali</surname></string-name>, <string-name><given-names>D. J.</given-names> <surname>Lilja</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Sartori</surname></string-name></person-group>, &#x201C;<article-title>GPU-accelerated nick local image thresholding algorithm</article-title>,&#x201D; in <conf-name>Proc. IEEE Int. Conf. on Parallel and Distributed Systems</conf-name>, <conf-loc>Melbourne, Australia</conf-loc>, pp. <fpage>576</fpage>&#x2013;<lpage>584</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>T. R.</given-names> <surname>Singh</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Roy</surname></string-name>, <string-name><given-names>O. I.</given-names> <surname>Singh</surname></string-name>, <string-name><given-names>T.</given-names> <surname>Sinam</surname></string-name> and <string-name><given-names>K. M.</given-names> <surname>Singh</surname></string-name></person-group>, &#x201C;<article-title>A new local adaptive thresholding technique in binarization</article-title>,&#x201D; <source>International Journal of Computer Science Issues</source>, vol. <volume>8</volume>, no. <issue>6</issue>, pp. <fpage>271</fpage>&#x2013;<lpage>277</lpage>, <year>2011</year>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Cotta</surname></string-name>, <string-name><given-names>L.</given-names> <surname>Mathieson</surname></string-name> and <string-name><given-names>P.</given-names> <surname>Moscato</surname></string-name></person-group>, &#x201C;<chapter-title>Memetic algorithms</chapter-title>,&#x201D; in <source>Handbook of Heuristics</source>, <publisher-loc>Cham</publisher-loc>: <publisher-name>Springer</publisher-name>, pp. <fpage>607</fpage>&#x2013;<lpage>638</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>K.</given-names> <surname>Zhao</surname></string-name>, <string-name><given-names>Q.</given-names> <surname>Han</surname></string-name>, <string-name><given-names>C. -B.</given-names> <surname>Zhang</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Xu</surname></string-name> and <string-name><given-names>M. M.</given-names> <surname>Cheng</surname></string-name></person-group>, &#x201C;<article-title>Deep hough transform for semantic line detection</article-title>,&#x201D; <source>IEEE Transactions on Pattern Analysis and Machine Intelligence</source>, vol. <volume>44</volume>, no. <issue>9</issue>, pp. <fpage>4793</fpage>&#x2013;<lpage>4806</lpage>, <year>2022</year>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Szegedy</surname></string-name>, <string-name><given-names>W.</given-names> <surname>Liu</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Jia</surname></string-name>, <string-name><given-names>P.</given-names> <surname>Sermanet</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Reed</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Going deeper with convolutions</article-title>,&#x201D; in <conf-name>Proc. IEEE Conf. on Computer Vision and Pattern Recognition</conf-name>, <conf-loc>Boston, MA, USA</conf-loc>, pp. <fpage>1</fpage>&#x2013;<lpage>9</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>K.</given-names> <surname>He</surname></string-name>, <string-name><given-names>X.</given-names> <surname>Zhang</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Ren</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Sun</surname></string-name></person-group>, &#x201C;<article-title>Deep residual learning for image recognition</article-title>,&#x201D; in <conf-name>Proc. IEEE Conf. on Computer Vision and Pattern Recognition</conf-name>, <conf-loc>Las Vegas, NV, USA</conf-loc>, pp. <fpage>770</fpage>&#x2013;<lpage>778</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>G. S.</given-names> <surname>Hsu</surname></string-name>, <string-name><given-names>J. C.</given-names> <surname>Chen</surname></string-name> and <string-name><given-names>Y. Z.</given-names> <surname>Chung</surname></string-name></person-group>, &#x201C;<article-title>Application-oriented license plate recognition</article-title>,&#x201D; <source>IEEE Transaction on Vehicular Technology</source>, vol. <volume>62</volume>, no. <issue>2</issue>, pp. <fpage>552</fpage>&#x2013;<lpage>561</lpage>, <year>2013</year>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Lee</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Jihyo</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Ko</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Jeon</surname></string-name> and <string-name><given-names>W.</given-names> <surname>Pedrycz</surname></string-name></person-group>, &#x201C;<article-title>License plate detection via information maximization</article-title>,&#x201D; <source>IEEE Transactions on Intelligent Transportation Systems</source>, pp. <fpage>1</fpage>&#x2013;<lpage>14</lpage>, <year>2021</year>. <uri xlink:href="https://doi.org/10.1109/TITS.2021.3135015">https://doi.org/10.1109/TITS.2021.3135015</uri>.</mixed-citation></ref>
</ref-list>
</back>
</article>









