<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="2.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Plant Sci.</journal-id>
<journal-title>Frontiers in Plant Science</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Plant Sci.</abbrev-journal-title>
<issn pub-type="epub">1664-462X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fpls.2022.1103794</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Plant Science</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Skeleton extraction and pruning point identification of jujube tree for dormant pruning using space colonization algorithm</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Fu</surname>
<given-names>Yuxing</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2106752"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Xia</surname>
<given-names>Yuyang</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Zhang</surname>
<given-names>Huiming</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="author-notes" rid="fn001">
<sup>*</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Fu</surname>
<given-names>Meng</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Yong</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Fu</surname>
<given-names>Wei</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="author-notes" rid="fn001">
<sup>*</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1584533"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Shen</surname>
<given-names>Congju</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>School of Mechanical and Electrical Engineering, Hainan University</institution>, <addr-line>Haikou</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>School of Information and Communication Engineering, Hainan University</institution>, <addr-line>Haikou</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>Mechanical Equipment Research Institute, Xinjiang Academy of Agricultural and Reclamation Sciences</institution>, <addr-line>Shihezi</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>Edited by: Gregorio Egea, University of Seville, Spain</p>
</fn>
<fn fn-type="edited-by">
<p>Reviewed by: Xiangjun Zou, South China Agricultural University, China; Jun Zhou, Nanjing Agricultural University, China</p>
</fn>
<fn fn-type="corresp" id="fn001">
<p>*Correspondence: Huiming Zhang, <email xlink:href="mailto:994330@hainanu.edu.cn">994330@hainanu.edu.cn</email>; Wei Fu, <email xlink:href="mailto:994026@hainanu.edu.cn">994026@hainanu.edu.cn</email>
</p>
</fn>
<fn fn-type="other" id="fn002">
<p>This article was submitted to Technical Advances in Plant Science, a section of the journal Frontiers in Plant Science</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>19</day>
<month>01</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>13</volume>
<elocation-id>1103794</elocation-id>
<history>
<date date-type="received">
<day>21</day>
<month>11</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>28</day>
<month>12</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Fu, Xia, Zhang, Fu, Wang, Fu and Shen</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Fu, Xia, Zhang, Fu, Wang, Fu and Shen</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>The dormant pruning of jujube is a labor-intensive and time-consuming activity in the production and management of jujube orchards, which mainly depends on manual operation. Automatic pruning using robots could be a better way to solve the shortage of skilled labor and improve efficiency. In order to realize automatic pruning of jujube trees, a method of pruning point identification based on skeleton information is presented. This study used an RGB-D camera to collect multi-view information on jujube trees and built a complete point cloud information model of jujube trees. The space colonization algorithm acts on the global point cloud to generate the skeleton of jujube trees. The iterative relationship between skeleton points was represented by constructing a directed graph. The proposed skeleton analysis algorithm marked the skeleton as the trunk, the primary branches, and the lateral branches and identified the pruning points under the guidance of pruning rules. Finally, the visual model of the pruned jujube tree was established through the skeleton information. The results showed that the registration errors of individual jujube trees were less than 0.91&#xa0;cm, and the average registration error was 0.66&#xa0;cm, which provided a favorable database for skeleton extraction. The skeleton structure extracted by the space colonization algorithm had a high degree of coincidence with jujube trees, and the identified pruning points were all located on the primary branches of jujube trees. The study provides a method to identify the pruning points of jujube trees and successfully verifies the validity of the pruning points, which can provide a reference for the location of the pruning points and visual research basis for automatic pruning.</p>
</abstract>
<kwd-group>
<kwd>dormant pruning</kwd>
<kwd>space colonization algorithm</kwd>
<kwd>skeleton</kwd>
<kwd>pruning point identification</kwd>
<kwd>jujube tree</kwd>
</kwd-group>
<counts>
<fig-count count="12"/>
<table-count count="1"/>
<equation-count count="9"/>
<ref-count count="29"/>
<page-count count="11"/>
<word-count count="5345"/>
</counts>
</article-meta>
</front>
<body>
<sec id="s1" sec-type="intro">
<label>1</label>
<title>Introduction</title>
<p>Jujube is a cash crop with Chinese characteristics, which is rich in vitamin C and other nutrients needed by humans. It has high nutritional value and medical value. Chinese jujube planting area has accounted for 99% of the world&#x2019;s total (<xref ref-type="bibr" rid="B9">Fu et&#xa0;al., 2020</xref>). Dormant pruning is a seasonal and labor-intensive orchard management work. With the shortage of labor and the rise of labor costs, the cost of pruning exceeds 20% of the management cost of the whole jujube garden (<xref ref-type="bibr" rid="B4">Crassweller et&#xa0;al., 2020</xref>). Pruning can remove low-yield branches, reduce canopy density, improve lighting conditions, and improve the quality of jujube (<xref ref-type="bibr" rid="B14">Kolmani&#x10d; et&#xa0;al., 2021</xref>). Mechanical equipment for mass pruning has been widely studied over the last few decades (<xref ref-type="bibr" rid="B20">Mika et&#xa0;al., 2016</xref>). Among them, the geometric pruning equipment has high efficiency and is suitable for rough pruning of fruit trees, but non-selective pruning operations easily cause false and missed pruning of branches (<xref ref-type="bibr" rid="B16">Ma et&#xa0;al., 2021a</xref>). Therefore, automatic pruning could effectively avoid the quality degradation caused by incorrect pruning by selecting appropriate pruning points (<xref ref-type="bibr" rid="B11">He and Schupp, 2018</xref>). Robotic selective pruning has achieved remarkable results on grapes and apples, but the relevant technologies are still in the experimental stage (<xref ref-type="bibr" rid="B3">Botterill et&#xa0;al., 2017</xref>; <xref ref-type="bibr" rid="B27">Zahid et&#xa0;al., 2020</xref>; <xref ref-type="bibr" rid="B28">Zahid et&#xa0;al., 2021</xref>). The automatic pruning technology of open-center jujube trees with variable structures needs to be studied in-depth.</p>
<p>Identifying potential pruning points was critical to the success of automatic pruning, which could guide pruning actuators to selectively prune unprofitable and diseased branches. Over the last decade, two-dimensional (2D) images and three-dimensional (3D) point clouds have been widely used to detect tree structures (<xref ref-type="bibr" rid="B6">Digumarti et&#xa0;al., 2018</xref>). <xref ref-type="bibr" rid="B29">Zhang et&#xa0;al., 2018</xref>; <xref ref-type="bibr" rid="B18">Majeed et&#xa0;al. (2020)</xref> used the Seg-Net depth learning network to identify trunks and branches of trunk-shaped apple trees and analyzed the segmentation accuracy of apple trees. Karkee et&#xa0;al. (<xref ref-type="bibr" rid="B12">2015</xref>) obtained point cloud information on the leafless trunk-shaped apple tree through the built visual system and used specific neighborhood rules to segment the branches. The recognition accuracy of pruned branches was 77%. The reconstruction process of this study was complex, and the recognition accuracy needs to be further improved. <xref ref-type="bibr" rid="B17">Ma et&#xa0;al. (2021b)</xref> used the Spg-Net depth learning network to segment jujube branches and established a linear regression model between the ground truth and the predicted value of the number of pruned branches. The above research focused on the segmentation of branches and trunks in the image and did not explore the location of pruning points. <xref ref-type="bibr" rid="B24">Wang et&#xa0;al. (2022)</xref> used the Mask R-CNN instance segmentation network to segment branches and bifurcate stems in a scene and extract the fruit-bearing branch positions based on mask relationships. The location of the litchi cutting point was realized by introducing depth reference points and fruit stalk positioning lines. <xref ref-type="bibr" rid="B15">Lin et&#xa0;al. (2021)</xref> developed a new architecture for instance segmentation by using a tiny Mask R-CNN. It was trained with a small number of images and used to detect guava fruits and branches. The detected fruit and branch point clouds were fitted with spheres and cylinders. The proposed pipeline provided a robust method for branch detection and modeling under varying illumination environments. <xref ref-type="bibr" rid="B23">Tang et&#xa0;al. (2023)</xref> used an improved YOLOv4-tiny model to detect fruits, and the three-dimensional coordinates of fruit-picking points were located based on binocular stereo vision. These studies were applied to fruit picking. However, the segmentation method of fruit-bearing branches based on tree structure and the spatial location of picking points could provide theoretical support in identifying potential pruning points.</p>
<p>
<xref ref-type="bibr" rid="B5">D&#xed;az et&#xa0;al. (2018)</xref> used fast library for approximate nearest neighbor (FLANN), support vector machine (SVM), and density-based spatial clustering of applications with noise (DBSCAN) to locate grape buds in three-dimensional space, where FLANN was used to match key points, SVM was used to classify 3D points, and finally, DBSCAN was used to locate grape buds. <xref ref-type="bibr" rid="B8">Fernandes et&#xa0;al. (2021)</xref> used Mask R-CNN to identify potential pruning points of grape trees with a simple tree shape and finally determined the pruning locations of branches in combination with the graph theory algorithm. <xref ref-type="bibr" rid="B1">Adhikari et&#xa0;al. (2011</xref>) and <xref ref-type="bibr" rid="B13">Karkee et&#xa0;al. (2014)</xref> used the medial axis thinning algorithm to generate the three-dimensional skeleton of the apple tree point cloud and recognized pruning points under the guidance of the pruning rules. This method required a group of high-density point clouds; otherwise, it easily causes abnormal branches in the skeleton. <xref ref-type="bibr" rid="B19">Medeiros et&#xa0;al. (2017)</xref> proposed a robust method based on <xref ref-type="bibr" rid="B26">Yan et&#xa0;al. (2009)</xref> to avoid searching the tree skeleton directly in a point cloud. This method constructed local point cloud clusters through segmentation and clustering and then used the minimum spanning tree algorithm to connect the centroids of clusters to form a geometric skeleton. Finally, the locations of the pruning point were identified according to the trunk characteristics and the connection relationship between the primary branches and the trunk. However, when the branch structure was complex and multiple branches overlapped, the results of the minimum spanning tree algorithm were often unpredictable, such as the shape of disconnected branches or abnormally connected branches. <xref ref-type="bibr" rid="B7">Elfiky et&#xa0;al. (2015)</xref> realized 3D reconstruction based on the geometric features of a skeleton and used a new adaptive circle-based-layer-aware modeling scheme to locate pruning points, with a recognition accuracy of 96%. The above studies have explored the detection, segmentation, and identification of pruning points, but they mainly focused on the apple trees with trunk-shaped and grape trees with simple tree structures abroad, which are not suitable for the identification of pruning points of jujube trees.</p>
<p>In order to realize the automatic selection pruning of open-center jujube trees, we presented a method of extracting the jujube tree skeleton and identifying pruning points based on the space colonization algorithm. This paper studied acquiring multi-angle point cloud images of jujube trees by building a three-dimensional information acquisition platform and registering point clouds to achieve a three-dimensional reconstruction of jujube trees. Due to the large number of point clouds and their insignificant features, the space colonization algorithm iteratively generated tree skeletons through local point clouds to describe the three-dimensional shape of jujube trees. Based on the tree skeleton, a directed graph was constructed to form a geometric skeleton to represent the relationship between skeleton points. Pruning points were identified by the skeleton analysis algorithm and the pruning rule.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Data materials</title>
<p>The experimental site was the jujube garden (81&#xb0;28&#x2032;E, 40&#xb0;34&#x2032;N) of the 13th Regiment of Alar, Xinjiang. In the garden, perennial dwarf and densely planted open-center jujube trees were planted, and the tree structure included a trunk, a primary branch, and a lateral branch. The trunk was vertical and short in length. The number of primary branches was three to four. The tree height was 1.5&#x2013;1.9 m, the plant spacing was 1.5&#xa0;m, and the row spacing was 4.2&#xa0;m.</p>
<p>The information collection platform built by the previous research was used to obtain leafless jujube tree information about 2&#xa0;m from the tree trunk (<xref ref-type="fig" rid="f1">
<bold>Figure&#xa0;1A</bold>
</xref>). The information collection device was Kinect V2 (specifications are shown in <xref ref-type="table" rid="T1">
<bold>Table&#xa0;1</bold>
</xref>), and its accuracy was 2&#xa0;mm (<xref ref-type="bibr" rid="B25">Yang et&#xa0;al., 2015</xref>). Data were collected between 4 p.m. and 5 p.m. in the field. The sunlight was weak, and it was easy to obtain high-quality color images during the period. Kinect V2 was used to obtain the color images (1,920 &#xd7; 1,080 pixels) and depth images (512 &#xd7; 424 pixels) while registering the depth image to the color image to generate a 3D point cloud image (<xref ref-type="fig" rid="f1">
<bold>Figure&#xa0;1B</bold>
</xref>). The first visual view (0&#xb0;) was named Tree_F, and the other view (counterclockwise rotation 180&#xb0; of the system platform) was named Tree_B.</p>
<fig id="f1" position="float">
<label>Figure&#xa0;1</label>
<caption>
<p>Data acquisition. <bold>(A)</bold> Experimental scene. <bold>(B)</bold> Original color point cloud image on one side.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g001.tif"/>
</fig>
<table-wrap id="T1" position="float">
<label>Table&#xa0;1</label>
<caption>
<p>General specifications of Kinect V2.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Feature</th>
<th valign="middle" align="center">Specification</th>
<th valign="middle" align="center">Value</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left">Depth sensing</td>
<td valign="middle" align="left">Basic principle<break/>Depth range<break/>Depth image resolution<break/>Field of view<break/>Frame rate</td>
<td valign="bottom" align="center">ToF<break/>0.4&#x2013;4.5 m<break/>512 &#xd7; 424 pixels<break/>70&#xb0; &#xd7; 60&#xb0;<break/>30 Hz</td>
</tr>
<tr>
<td valign="middle" align="left">Color camera</td>
<td valign="bottom" align="left">Color image resolution<break/>Frame rate</td>
<td valign="bottom" align="center">1,920 &#xd7; 1,080 pixels<break/>30 Hz (15&#xa0;Hz in low light)</td>
</tr>
<tr>
<td valign="middle" align="left">Active infrared</td>
<td valign="bottom" align="left">Infrared image resolution<break/>Frame rate<break/>Infrared light wavelength</td>
<td valign="bottom" align="center">512 &#xd7; 424 pixels<break/>30 Hz<break/>&#x223c;827&#x2013;850 nm</td>
</tr>
<tr>
<td valign="top" align="left">Data transmission</td>
<td valign="top" align="left">Interface standard</td>
<td valign="top" align="center">USB 3.0</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3">
<label>3</label>
<title>Reconstruction of the dormant jujube tree</title>
<sec id="s3_1">
<label>3.1</label>
<title>Point cloud preprocessing</title>
<p>Point cloud images obtained by the information acquisition system included ground point clouds, background noise, and outlier noise, so it was necessary to preprocess the original point cloud to obtain the point cloud information of a single jujube tree. According to the 3D point cloud coordinate information of jujube trees, by setting the distance threshold of the 3D point cloud of jujube trees, the point cloud less than the threshold was regarded as the inner point, and the point cloud of jujube trees outside the threshold was removed as the invalid point so as to remove the ground point cloud and background noise to obtain the point cloud of a single jujube tree. The outliers distributed around the branches of jujube trees were filtered by Statistical Outlier Removal (<xref ref-type="bibr" rid="B21">Runions et&#xa0;al., 2005</xref>). In the algorithm, parameter <italic>&#x3bb;</italic> was the scaling factor, which was determined according to the point cloud density, and the empirical value was [0, 1]. The parameter <italic>k</italic> was the number of neighbors. In the process of parameter selection, excessive noise removal occurred in <xref ref-type="fig" rid="f2">
<bold>Figures&#xa0;2A, C</bold>
</xref>, and some branches were treated as noise removal. In <xref ref-type="fig" rid="f2">
<bold>Figure&#xa0;2B</bold>
</xref>, some noise was not removed. The best denoising effect is shown in <xref ref-type="fig" rid="f2">
<bold>Figure&#xa0;2D</bold>
</xref>.</p>
<fig id="f2" position="float">
<label>Figure&#xa0;2</label>
<caption>
<p>Comparisons of removing noise (noise is shown in red color). <bold>(A)</bold> <italic>k</italic> = 30, <italic>&#x3bb;</italic> = 0.2. <bold>(B)</bold> <italic>k</italic> = 30, <italic>&#x3bb;</italic> = 0.5. <bold>(C)</bold> <italic>k</italic> = 40, <italic>&#x3bb;</italic> = 0.2. <bold>(D)</bold> <italic>k</italic> = 40, <italic>&#x3bb;</italic> = 0.5.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g002.tif"/>
</fig>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Reconstruction pipeline</title>
<p>Point cloud data obtained under one-sided vision could not present the complete shape of jujube trees due to partial point cloud loss due to the occlusion between branches. The point clouds on both sides were registered through the information collection of two stations to make up for the lack of local point clouds under a single view (<xref ref-type="bibr" rid="B10">Geng et&#xa0;al., 2015</xref>). The Iterative Closest Point (ICP) algorithm (<xref ref-type="bibr" rid="B2">Besl and McKay, 1992</xref>) was widely used in the registration of images and point clouds. The registration process could be well completed when the spatial positions of the point clouds on both sides were close or the overlapping area was large, but the registration stability was poor when the point cloud positions were far away, and it was easy to fall into local optimization. The overall three-dimensional reconstruction process is described in <xref ref-type="fig" rid="f3">
<bold>Figure&#xa0;3</bold>
</xref>. First, the sphere centers of target balls in point clouds on both sides were extracted, and the transformation matrix <bold>
<italic>R</italic>
</bold>
<italic>
<sub>i</sub>
</italic> was calculated based on the triangle similarity principle. The initial registration of point clouds on both sides was completed to make them close in space. The curvature of the point cloud was calculated based on the initial registration point cloud, and then the point pairs with similar curvature were searched. Finally, the ICP algorithm was used to obtain the transformation matrix <bold>
<italic>R</italic>
</bold>
<italic>
<sub>f</sub>
</italic> to achieve fine registration. More details about the methods and algorithms used in the 3D reconstruction of dormant jujube trees were available in previous work (<xref ref-type="bibr" rid="B9">Fu et&#xa0;al., 2020</xref>).</p>
<fig id="f3" position="float">
<label>Figure&#xa0;3</label>
<caption>
<p>The overall reconstruction pipeline.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g003.tif"/>
</fig>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Skeletonization based on space colonization algorithm</title>
<p>The reconstructed point cloud model had a large amount of data and insignificant features, which is not conducive to tree structure analysis. It was necessary to transform the point cloud into a form that was easy to process so as to reduce information redundancy. The space colonization algorithm (<xref ref-type="bibr" rid="B21">Runions et&#xa0;al., 2005</xref>) was based on the principle of space competition for plant growth. The skeleton generated a tree-like structure by continuously competing for the growth space, which made the point cloud model into manageable skeleton data. In the process of skeleton generation, the neighboring space points of skeleton points influence the skeleton trend to be formed. The skeleton expanded continuously with the generation of skeleton points until the algorithm ended when no neighboring space points influenced the skeleton. <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4</bold>
</xref> shows the skeleton generation process of the space colonization algorithm.</p>
<fig id="f4" position="float">
<label>Figure&#xa0;4</label>
<caption>
<p>Illustration of space colonization algorithm. <bold>(A)</bold> Skeleton points and space points. <bold>(B)</bold> Connect the skeleton point with its space points. <bold>(C)</bold> Estimate neighborhood directions. <bold>(D)</bold> Calculate growth neighborhood. <bold>(E)</bold> Connect space points within growth neighborhoods. <bold>(F)</bold> Calculating growth vectors. <bold>(G)</bold> Generate new skeleton points and delete space points. <bold>(H)</bold> Complete an iteration.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g004.tif"/>
</fig>
<p>1) In <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4A</bold>
</xref>, the current skeleton is composed of 13 blue skeleton points. There are 16 black space points <italic>q</italic> waiting to be searched globally to influence the skeleton trend. Initialize the tree skeleton array to store the tree skeleton coordinates. Assume that the search radius of the skeleton point <italic>p</italic> is <italic>R</italic>, and the space points <italic>q</italic> within the search radius are stored in set <italic>S</italic>(<italic>p</italic>). One space point <italic>q</italic> affects only the nearest skeleton point <italic>p</italic>, while the skeleton point <italic>p</italic> is affected by multiple space points within the search radius. The mathematical relationship between the skeleton point <italic>p</italic> and the space point in set <italic>S</italic>(<italic>p</italic>) is shown in Eq. (1).</p>
<disp-formula>
<label>(1)</label>
<mml:math display="block" id="M1">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mo>&lt;</mml:mo>
<mml:mi>R</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mi>min</mml:mi>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <italic>q</italic> is the space point within the search radius <italic>R</italic> of the skeleton point <italic>p</italic>. <italic>q<sub>x</sub>
</italic> is the serial number of space point <italic>q</italic> in <italic>x</italic> sets.</p>
<p>2) Estimate neighborhood directions. Connect the skeleton point with its space points in set <italic>S</italic>(<italic>p</italic>) as shown in <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4B</bold>
</xref>. Calculate the direction vector, and use the sum of the direction vectors as the direction vector <bold>
<italic>V<sub>p</sub>
</italic>
</bold> of the neighborhood, as shown by the black arrow in <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4C</bold>
</xref>. <bold>
<italic>V<sub>p</sub>
</italic>
</bold> is calculated by Eq. (2).</p>
<disp-formula>
<label>(2)</label>
<mml:math display="block" id="M2">
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
</disp-formula>
<p>3) The neighborhood range is determined by the direction vector of the neighborhood. The growth neighborhood is a sector area with an angle of 2<italic>&#x3b8;</italic> and a sector radius of <italic>R</italic>. The space points belonging to the neighborhood in set <italic>S</italic>(<italic>p</italic>) are calculated by Eq. (3). The space points belonging to the neighborhood are shown in <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4D</bold>
</xref>.</p>
<disp-formula>
<label>(3)</label>
<mml:math display="block" id="M3">
<mml:mrow>
<mml:mi>arccos</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#xb7;</mml:mo>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <bold>
<italic>V<sub>pq</sub>
</italic>
</bold> is the vector <bold>
<italic>pq</italic>
</bold>.</p>
<p>4) Calculate the direction of child skeleton points generated by the current skeleton point (parent skeleton point). Connect the skeleton point to multiple space points in its growth neighborhood and calculate their respective vectors (vector direction from skeleton point to space point), as shown by the black arrow in <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4E</bold>
</xref>. Take the direction of the vector sum as the growth direction of the skeleton and normalize its value, as shown by the red arrow in <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4F</bold>
</xref>. The specific mathematical relationship is shown in Eq. (4).</p>
<disp-formula>
<label>(4)</label>
<mml:math display="block" id="M4">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mtext>&#xa0;</mml:mtext>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <bold>
<italic>F</italic>
</bold> is the sum of vectors; <bold>
<italic>f</italic>
</bold> is the sum of normalized vectors.</p>
<p>5) The space distance between the skeleton point and the child skeleton point generated is <italic>D<sub>s</sub>
</italic>. The position <italic>P<sub>i</sub>
</italic> of the new skeleton point is calculated by Eq. (5).</p>
<disp-formula>
<label>(5)</label>
<mml:math display="block" id="M5">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
<p>6) The respective Euclidean distances between the child skeleton point and space points are calculated by Eq. (6). If the distance is less than the preset deletion threshold <italic>R<sub>d</sub>
</italic>, the space point is deleted. The red solid circles are the child skeleton points participating in the calculation, and the red dashed circles are space points to be deleted, as shown in <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4G</bold>
</xref>. In one iteration of the algorithm, two primary branches are expanded, the trunk grows upwards, and a new primary branch is formed, as shown in <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4H</bold>
</xref>.</p>
<disp-formula>
<label>(6)</label>
<mml:math display="block" id="M6">
<mml:mrow>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The space colonization algorithm took the reconstructed point cloud of a jujube tree as input and then iteratively generated the skeleton, as shown in <xref ref-type="fig" rid="f5">
<bold>Figure&#xa0;5</bold>
</xref>. The skeleton was a tree-like structure that reflected the topology of jujube trees. The skeleton point data were stored in the child linked list structure, and each parent skeleton point can query the generated child skeleton points.</p>
<fig id="f5" position="float">
<label>Figure&#xa0;5</label>
<caption>
<p>Flowchart of skeletonization using space colonization algorithm.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g005.tif"/>
</fig>
</sec>
<sec id="s5">
<label>5</label>
<title>Skeleton analysis and modeling</title>
<sec id="s5_1">
<label>5.1</label>
<title>Trunk and primary branch identification</title>
<p>According to the generation relationship between skeleton points, the parent skeleton point connected its child skeleton points to form a directed graph <italic>G</italic>(<italic>C</italic>,<italic>E</italic>), and the direction was from the parent skeleton point to the child skeleton point, where <inline-formula>
<mml:math display="inline" id="im1">
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was the vertex set; that is, all skeleton points and <italic>E</italic> = {(<italic>c<sub>i</sub>
</italic>, <italic>c<sub>k</sub>
</italic>)} were the set of edges between connected skeleton points.</p>
<p>After the directed graph <italic>G</italic> (<italic>C</italic>, <italic>E</italic>) was established, we needed to identify the subgraph <italic>G<sub>T</sub>
</italic> (<italic>C<sub>T</sub>
</italic>, <italic>E<sub>T</sub>
</italic>) that corresponded to skeleton points that belong to the trunk. Since we knew that the trunk of the tree began close to the ground and followed an approximately vertical trajectory, we identified <italic>G<sub>T</sub>
</italic> according to the following heuristics. Assume that initially <italic>C<sub>T</sub>
</italic> = &#xd8; and <italic>E<sub>T</sub>
</italic> = &#xd8;. The edge <italic>e<sub>i</sub>
</italic> was the successor edge of <italic>e<sub>s</sub>
</italic>. <italic>e<sub>i</sub>
</italic> = {(<italic>a</italic>,<italic>b</italic>)|<italic>a</italic> = <italic>c<sub>i</sub>
</italic>, and (<italic>a</italic>,<italic>b</italic>)&#x2208;<italic>E</italic>} was the set of edges in <italic>E</italic> that includes <italic>c<sub>i</sub>
</italic> as one of its vertices. The beginning edge of the trunk was formed by the root skeleton point <italic>c<sub>i</sub>
</italic> with the smallest <italic>z</italic> coordinate and its child skeleton points. Subsequently, the successor edges and the successor vertices were searched from the beginning edge. If <italic>e<sub>i</sub>
</italic> was the only successor edge of <italic>e<sub>s</sub>
</italic>, the edge <italic>e<sub>i</sub>
</italic> = (<italic>c<sub>i</sub>
</italic>, <italic>c<sub>k</sub>
</italic>) was directly added to <italic>E<sub>T</sub>
</italic>. When there were multiple successor edges, the change angle of <italic>e<sub>i</sub>
</italic> relative to <italic>e<sub>s</sub>
</italic> was calculated by Eqs (7) and (8) to determine the unique successor edge <italic>e<sub>i</sub>
</italic>.</p>
<disp-formula>
<label>(7)</label>
<mml:math display="block" id="M7">
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x2192;</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x2192;</mml:mo>
</mml:mover>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>cos</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x2192;</mml:mo>
</mml:mover>
<mml:mo>&#xb7;</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula>
<label>(8)</label>
<mml:math display="block" id="M8">
<mml:mrow>
<mml:msubsup>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi>arg</mml:mi>
<mml:mi>min</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>&#x3c8;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x2192;</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im2">
<mml:mrow>
<mml:msubsup>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> corresponds to the successor edge that showed the smallest change angle relative to <italic>e<sub>s</sub>
</italic> in <italic>e<sub>i</sub>
</italic>. If <italic>&#x3c8;</italic> was within the threshold, <inline-formula>
<mml:math display="inline" id="im3">
<mml:mrow>
<mml:msubsup>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> = (<italic>c<sub>i</sub>
</italic>, <italic>c<sub>k</sub>
</italic>) was added to <italic>E<sub>T</sub>
</italic>, and <italic>c<sub>i</sub>
</italic> and <italic>c<sub>k</sub>
</italic> were added to <italic>C<sub>T</sub>
</italic>. Restart the procedure from <italic>c<sub>k</sub>
</italic>, and terminate it when <italic>&#x3c8;</italic> exceeded the threshold. This approach guaranteed that the algorithm did not continue to search toward the primary branch at the top of the trunk. The green edges in <xref ref-type="fig" rid="f6">
<bold>Figure&#xa0;6A</bold>
</xref> show the result of the trunk detection algorithm.</p>
<fig id="f6" position="float">
<label>Figure&#xa0;6</label>
<caption>
<p>Results of skeleton analysis. <bold>(A)</bold> Trunk (green edges). <bold>(B)</bold> Primary branches (black edges).</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g006.tif"/>
</fig>
<p>Primary branches <italic>G<sub>B</sub>
</italic> (<italic>C<sub>B</sub>
</italic>, <italic>E<sub>B</sub>
</italic>) were identified on the basis of trunk <italic>G<sub>T</sub>
</italic> (<italic>C<sub>T</sub>
</italic>, <italic>E<sub>T</sub>
</italic>). The beginning point of the primary branch was the point belonging to the trunk, which was the vertex of the trunk with multiple edges or at the top of the trunk. For the convenience of description, the beginning points of the two types were collectively called <italic>PB<sub>start</sub>
</italic>. After the trunk was identified, a depth-first search was used to find primary branches, as follows.</p>
<list list-type="simple">
<list-item>
<p>(1) Mark a beginning point <italic>PB<sub>start</sub>
</italic> as the current point, and search the successor vertices of the current point as candidate points.</p>
</list-item>
<list-item>
<p>(2) Find an adjacent point not marked as a trunk among candidate points and mark the new point as the current point.</p>
</list-item>
<list-item>
<p>(3) The depth-first search is performed on the subgraph with the current point as the root node in the directed graph, and the vertices without successor points in the access process are marked as the endpoints.</p>
</list-item>
<list-item>
<p>(4) Trace back from the endpoint to the starting point <italic>PB<sub>start</sub>
</italic> and calculate the sum of Euclidean distances <italic>L<sub>i</sub>
</italic> between all the points in each backtracking path.</p>
</list-item>
<list-item>
<p>(5) Mark the path with the highest cumulative Euclidean distances as the primary branch beginning from <italic>PB<sub>start</sub>
</italic>. Repeat steps 1 through step 5 until all primary branches are identified.</p>
</list-item>
</list>
<p>
<xref ref-type="fig" rid="f6">
<bold>Figure&#xa0;6B</bold>
</xref> shows the final result of primary branch identification. The black edges were primary branches identified, and the remaining red edges were lateral branches.</p>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Pruning point identification</title>
<p>During the dormancy period, the managers cut off the end of the primary branch, which accounted for about 1/3 of the length of the primary branch. Pruning was helpful to reduce nutrient consumption in the dormancy period and make nutrient supply concentrated in the middle of main branches to cultivate fruiting branch groups so as to fully improve the production potential of jujube trees. Pruning rules, while simple, could greatly increase efficiency in seasonal pruning. Therefore, the length of the primary branch became the key parameter in the pruning point identification algorithm. In this study, the pruning length of the primary branch was not set to a fixed value but to an adaptive length, which located the pruning point at 2/3<italic>L<sub>i</sub>
</italic> from the beginning point of the primary branch. The pink dots are the identified pruning points, as shown in <xref ref-type="fig" rid="f7">
<bold>Figure&#xa0;7</bold>
</xref>.</p>
<fig id="f7" position="float">
<label>Figure&#xa0;7</label>
<caption>
<p>Identification results of pruning points (pink dots) on primary branches.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g007.tif"/>
</fig>
</sec>
<sec id="s5_3">
<label>5.3</label>
<title>Modeling</title>
<p>To visualize the pruned jujube trees, the model was based on the pruned skeleton. The trunk of jujube trees was Grade 1 branch, the primary branches were Grade 2 branches, and the remaining branches were Grade 3 branches. The branch thickness gradually decreased from Grade 1 to Grade 3. The change of branch thickness followed the rule of gradually thinning from the beginning to the end. After the determination of the pruned skeleton information, the geometric model of the trunk and primary branches was represented by a multi-segment cylindrical connection. The edges in the directed graph were set as the center axis of the cylinder, as shown in <xref ref-type="fig" rid="f8">
<bold>Figure&#xa0;8</bold>
</xref>. However, the two base radii of the cylinder, that is, the thickness of the branch, have not been determined. The pipeline model theory was widely used in estimating branch thickness (<xref ref-type="bibr" rid="B22">Shi et&#xa0;al., 2019</xref>). The thickness of the parent branch and the generated child branches was calculated by Eq. (9).</p>
<fig id="f8" position="float">
<label>Figure&#xa0;8</label>
<caption>
<p>Schematic diagram of branch modeling.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g008.tif"/>
</fig>
<disp-formula>
<label>(9)</label>
<mml:math display="block" id="M9">
<mml:mrow>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <italic>r<sub>parent</sub>
</italic> is the beginning radius of the parent branch, <italic>r<sub>child_i</sub>
</italic> is the beginning radius of the child branch, <italic>m</italic> is the number of child branches, and <italic>n</italic> is generally taken as 2. The root of the jujube tree was measured, and the beginning radius of all branches was calculated from the root. According to the pruned skeleton and radius, the cylinder was continuously generated along the skeleton trend to build a geometric model.</p>
</sec>
</sec>
<sec id="s6" sec-type="results">
<label>6</label>
<title>Results and analysis</title>
<sec id="s6_1">
<label>6.1</label>
<title>Comparative analysis of point cloud registration errors</title>
<p>To verify the stability of the individual reconstruction algorithm proposed in this study, 15 jujube trees were registered, and the results are shown in <xref ref-type="fig" rid="f9">
<bold>Figure&#xa0;9</bold>
</xref>. It could be seen that the registration errors were less than 0.91&#xa0;cm, and the average registration error was 0.66&#xa0;cm. The optimized ICP algorithm greatly improved the accuracy of point cloud registration. The comparison results show that the algorithm proposed in this study has high stability and reliability and meets the application requirements of a reconstructed jujube point cloud.</p>
<fig id="f9" position="float">
<label>Figure&#xa0;9</label>
<caption>
<p>Comparison of point cloud registration errors.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g009.tif"/>
</fig>
</sec>
<sec id="s6_2">
<label>6.2</label>
<title>Skeleton extraction and pruning point identification</title>
<p>The point cloud of jujube trees collected in the field was reconstructed to obtain complete point cloud information on jujube trees, and the Alpha-shape algorithm was used to triangulate the point cloud to improve the visual effect of the jujube tree model. The jujube tree individual model is shown in <xref ref-type="fig" rid="f10">
<bold>Figure&#xa0;10A</bold>
</xref>. A space colonization algorithm was used to extract the jujube tree skeleton with a search radius <italic>R</italic> of 8.2&#xa0;cm, a growth neighborhood <italic>&#x3b8;</italic> of 22.5&#xb0;, a skeleton point spacing <italic>D<sub>s</sub>
</italic> of 4.0&#xa0;cm, and a deletion threshold <italic>R<sub>d</sub>
</italic> of 6.0&#xa0;cm. <xref ref-type="fig" rid="f10">
<bold>Figure&#xa0;10B</bold>
</xref> shows the skeleton generated by the space colonization algorithm, trunk and primary branches identified by the skeleton analysis algorithm, and pruning points located by the pruning rule. The number of beginning points <italic>PB<sub>start</sub>
</italic> determined by the skeleton analysis algorithm in Tree 1 was four, of which three were the inner points of the trunk and one was the top endpoint of the trunk. Each inner point generated one primary branch, and the top point generated two primary branches. The red edge marked was the false primary branch because this beginning point was close to the bifurcation of two primary branches, and there was local noise at the same time, which resulted in unreasonable branches when the space colonization algorithm generated the skeleton. The red edge marked in Tree 3 has stopped growing due to necrosis, and its length was short, which did not meet the requirements of pruning. It was also one of the false primary branches. In order to improve the robustness of the algorithm to the identification of primary branches, the minimum length of primary branches was set to 50&#xa0;cm so as to avoid adding false branches such as unreasonable branches or short branches to the primary branches <italic>G<sub>B</sub>
</italic> (<italic>C<sub>B</sub>
</italic>, <italic>E<sub>B</sub>
</italic>). After the length threshold setting, the global skeleton was marked as the trunk (green edges), primary branches (black edges), and lateral branches (red edges) by the algorithm. Finally, pruning points (pink dots) of primary branches were identified under the guidance of the pruning rule.</p>
<fig id="f10" position="float">
<label>Figure&#xa0;10</label>
<caption>
<p>Results of skeleton analysis and pruning points identification. <bold>(A)</bold> Model of jujube tree. <bold>(B)</bold> Identification of pruning points based on skeleton analysis. <bold>(C)</bold> Mapping of pruning point positions in reconstructed point cloud.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g010.tif"/>
</fig>
<p>In order to evaluate the reliability of the pruning point information and ensure that the robot could achieve the pruning operation according to the pruning points, the three-dimensional coordinate information of the pruning points was mapped in the reconstructed point cloud. Pruning point information in <xref ref-type="fig" rid="f10">
<bold>Figure&#xa0;10C</bold>
</xref> was located on the primary branches, which showed that the identified pruning point information was effective, and also verified that the skeleton extracted by the space colonization algorithm had a high degree of coincidence with the three-dimensional structure of jujube trees.</p>
</sec>
<sec id="s6_3">
<label>6.3</label>
<title>Modeling</title>
<p>Branch modeling could predict the shape of jujube trees after pruning in advance so as to avoid irreversible operations such as incorrect pruning. According to the actual pruning operation, the pruned branch was partially removed from the tree, that is, all skeleton points in the skeleton generated by the pruning point were deleted. The root radii of Tree 1, Tree 2, and Tree 3 were measured at 4.1, 3.4, and 4.0&#xa0;cm, respectively. The beginning radius of all branches was calculated from the root. The roughness of the beginning of all branches was calculated from the bottom to the top of the root, and the visualization of the pruned jujube tree was achieved by combining the central axis information of the pruned skeleton (<xref ref-type="fig" rid="f11">
<bold>Figure&#xa0;11</bold>
</xref>).</p>
<fig id="f11" position="float">
<label>Figure&#xa0;11</label>
<caption>
<p>Model of jujube tree after pruning.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g011.tif"/>
</fig>
</sec>
</sec>
<sec id="s7" sec-type="discussion">
<label>7</label>
<title>Discussion</title>
<p>The final shape of the tree skeleton depended on four parameters for search radius, growth neighborhood, skeleton point spacing, and deletion threshold of the space colonization algorithm. In the process of skeleton generation by the algorithm, the skeleton of the trunk and primary branches best matched the tree shape as shown in the black box (<xref ref-type="fig" rid="f12">
<bold>Figure&#xa0;12</bold>
</xref>). The skeleton at the bifurcation of the primary branch and the lateral branch in the red box deviated from the point cloud but returned to normal quickly. This was because when the space colonization algorithm iteratively generated the lateral branch, the search radius contained more point clouds of the primary branch, which interfered with the skeleton generation of the lateral branch. However, as the distance between the lateral branch and the primary branch increased, the number of point clouds belonging to the primary branch decreased. Subsequently, the influence of the primary branch was weakened, and finally, the lateral branch skeleton returned to normal and coincides with the tree shape.</p>
<fig id="f12" position="float">
<label>Figure&#xa0;12</label>
<caption>
<p>Point cloud of jujube tree (blue) and its skeleton (black).</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fpls-13-1103794-g012.tif"/>
</fig>
<p>The search radius of the algorithm was robust when generating trunk and primary branches. However, for the lateral branches, if the search radius was too large, it would be easily affected by primary branches. Therefore, when formulating the pruning rule, pruning points were not determined by the fixed pruning length but selected 1/3 of the distance from the end of the primary branch to avoid the place where the side branches were dense as far as possible and located pruning points in the robust area of the skeleton. In the next work, the adaptability of parameters should be improved. With the change in branch density, the search radius and deletion threshold should be appropriately increased or reduced to further improve the similarity between skeleton and tree shape and ensure the effectiveness of identifying pruning points.</p>
</sec>
<sec id="s8" sec-type="conclusions">
<label>8</label>
<title>Conclusions</title>
<p>In this study, a low-cost depth camera was used to collect point cloud data on both sides of jujube trees. The point cloud data were preprocessed to remove noise. Point cloud registration was conducted by combining manual marking with an optimized ICP algorithm to achieve the reconstruction of jujube individual information. The registration errors were less than 0.91&#xa0;cm, and the average registration error was 0.66&#xa0;cm, which provided good individual data for the skeleton generation of the space colonization algorithm. Triangulate the reconstructed point cloud with the Alpha-shape algorithm, which could make the model more similar to the real tree in appearance, and was the visual basis for the automatic pruning of jujube trees.</p>
<p>The space colonization algorithm generated the skeleton reflecting the topological structure of the jujube tree by iteration. A directed graph was constructed using skeleton points to represent the tree structure and the parent&#x2013;child relationship between skeleton points. According to the tree structure and the characteristics of the directed graph of jujube trees, the skeleton was analyzed to identify the trunk and primary branches. The branch length threshold solved the problem of false primary branches in the skeleton. Subsequently, under the guidance of the pruning rule, the pruning points were identified, and the validity of the pruning points was verified by using the information mapping method. Finally, the visual model was constructed based on the remaining skeleton information to realize the appearance of the pruned tree.</p>
<p>Primary branches of jujube trees identified by the algorithm might deviate from the result of our actual judgment because the branch length obtained by the depth-first search was the only factor for primary branch identification. In the next step, we will take into account both the length of the main branch and the angle change of the main branch at the branch bifurcation and add appropriate weights to these two factors. We will sort the possible primary branches originating at the same point through the scoring principle so that the results of the algorithm are more consistent with human judgment.</p>
</sec>
<sec id="s9" sec-type="data-availability">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material. Further inquiries can be directed to the corresponding authors.</p>
</sec>
<sec id="s10" sec-type="author-contributions">
<title>Author contributions</title>
<p>YF designed and performed the experiment, selected the algorithms, analyzed the data, debugged the algorithms, and wrote the manuscript. YF, YX, MF, YW, and CS collected the data. HZ monitored the data analysis. WF and HZ conceived the study and participated in its design. All authors contributed to this article and approved the submitted version.</p>
</sec>
</body>
<back>
<sec id="s11" sec-type="funding-information">
<title>Funding</title>
<p>This work was supported by the Key R&amp;D Projects in Hainan Province (Grant No. ZDYF2022XDNY231), the National Natural Science Foundation of China (Grant No. 52265040), and the National Natural Science Foundation of China (Grant No. 51765058).</p>
</sec>
<ack>
<title>Acknowledgments</title>
<p>The authors would like to thank their schools and colleges, as well as the funding of the project. All support and assistance are sincerely appreciated. Additionally, the authors sincerely appreciate the work of the editor and the reviewers of the present paper.</p>
</ack>
<sec id="s12" sec-type="COI-statement">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec id="s13" sec-type="disclaimer">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Adhikari</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Karkee</surname> <given-names>M.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>3D reconstruction of apple trees for mechanical pruning</article-title>. <source>ASABE Annu. Int. Meet; 2011 August 7 - August 10;  Louisville, Kentucky</source>. doi:&#xa0;<pub-id pub-id-type="doi">10.13031/2013.38139</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Besl</surname> <given-names>P. J.</given-names>
</name>
<name>
<surname>McKay</surname> <given-names>N. D.</given-names>
</name>
</person-group> (<year>1992</year>). <article-title>A method for registration of 3-d shapes</article-title>. <source>IEEE Trans. Pattern Anal. Mach. Intell.</source> <volume>14</volume> (<issue>2</issue>), <fpage>239</fpage>&#x2013;<lpage>256</lpage>. doi: <pub-id pub-id-type="doi">10.1109/34.121791</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Botterill</surname> <given-names>T.</given-names>
</name>
<name>
<surname>Paulin</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Green</surname> <given-names>R.</given-names>
</name>
<name>
<surname>Williams</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Lin</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Saxton</surname> <given-names>V.</given-names>
</name>
<etal/>
</person-group>. (<year>2017</year>). <article-title>A robot system for pruning grape vines</article-title>. <source>J. Field Rob.</source> <volume>34</volume> (<issue>6</issue>), <fpage>1100</fpage>&#x2013;<lpage>1122</lpage>. doi: <pub-id pub-id-type="doi">10.1002/rob.21680</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Crassweller</surname> <given-names>R.</given-names>
</name>
<name>
<surname>Peter</surname> <given-names>K.</given-names>
</name>
<name>
<surname>Krawczyk</surname> <given-names>G.</given-names>
</name>
<name>
<surname>Schupp</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Ford</surname> <given-names>T.</given-names>
</name>
<name>
<surname>Brittingham</surname> <given-names>M.</given-names>
</name>
<etal/>
</person-group>. (<year>2020</year>). <source>2020-21 Penn state tree fruit production guide</source>. <publisher-name>Penn. State Extension Publ. AGRS-045</publisher-name> <fpage>446</fpage>.</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>D&#xed;az</surname> <given-names>C. A.</given-names>
</name>
<name>
<surname>P&#xe9;rez</surname> <given-names>D. S.</given-names>
</name>
<name>
<surname>Miatello</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Bromberg</surname> <given-names>F.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Grapevine buds detection and localization in 3D space based on structure from motion and 2D image classification</article-title>. <source>Comput. Ind.</source> <volume>99</volume>, <fpage>303</fpage>&#x2013;<lpage>312</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.compind.2018.03.033</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Digumarti</surname> <given-names>S. T.</given-names>
</name>
<name>
<surname>Nieto</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Cadena</surname> <given-names>C.</given-names>
</name>
<name>
<surname>Siegwart</surname> <given-names>R.</given-names>
</name>
<name>
<surname>Beardsley</surname> <given-names>P.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Automatic segmentation of tree structure from point cloud data</article-title>. <source>IEEE Robot. Autom. Lett.</source> <volume>3</volume> (<issue>4</issue>), <fpage>3043</fpage>&#x2013;<lpage>3050</lpage>. doi: <pub-id pub-id-type="doi">10.1109/LRA.2018.2849499</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Elfiky</surname> <given-names>N. M.</given-names>
</name>
<name>
<surname>Akbar</surname> <given-names>S. A.</given-names>
</name>
<name>
<surname>Sun</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Park</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Kak</surname> <given-names>A.</given-names>
</name>
</person-group> (<year>2015</year>). &#x201c;<article-title>Automation of dormant pruning in specialty crop production: an adaptive framework for automatic reconstruction and modeling of apple trees</article-title>,&#x201d; in: <conf-name>2015 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops</conf-name> (<publisher-loc>Boston, MA, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>). <fpage>65</fpage>&#x2013;<lpage>73</lpage>.</citation>
</ref>
<ref id="B8">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Fernandes</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Scaldaferri</surname> <given-names>A.</given-names>
</name>
<name>
<surname>Fiameni</surname> <given-names>G.</given-names>
</name>
<name>
<surname>Teng</surname> <given-names>T.</given-names>
</name>
<name>
<surname>Gatti</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Poni</surname> <given-names>S.</given-names>
</name>
<etal/>
</person-group>. (<year>2021</year>). &#x201c;<article-title>Grapevine winter pruning automation: on potential pruning points detection through 2d plant modeling using grapevine segmentation</article-title>,&#x201d; in: <conf-name>2021 IEEE 11th Annual International Conference on CYBER Technology in Automation, Control, and Intelligent Systems (CYBER)</conf-name> (<publisher-loc>Jiaxing, China</publisher-loc>: <publisher-name>IEEE</publisher-name>). <fpage>13</fpage>&#x2013;<lpage>18</lpage>.</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fu</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname> <given-names>C.</given-names>
</name>
<name>
<surname>Zhu</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Wang</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Fu</surname> <given-names>W.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Three-dimensional model construction method and experiment of jujube tree point cloud using alpha-shape algorithm</article-title>. <source>Trans. Chin. Soc Agric. Eng.</source> <volume>36</volume> (<issue>22</issue>), <fpage>214</fpage>&#x2013;<lpage>221</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.11975/j.issn.1002-6819.2020.22.024</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Geng</surname> <given-names>N.</given-names>
</name>
<name>
<surname>Ma</surname> <given-names>F.</given-names>
</name>
<name>
<surname>Yang</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Li</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Z.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Neighboring constraint-based pairwise point cloud registration algorithm</article-title>. <source>Multimed. Tools Appl</source>. <volume>75</volume> (<issue>24</issue>), <fpage>16763</fpage>&#x2013;<lpage>16780</lpage>. doi: <pub-id pub-id-type="doi">10.1007/s11042-015-2941-6</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>He</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Schupp</surname> <given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Sensing and automation in pruning of apple trees: a review</article-title>. <source>Agronomy</source> <volume>8</volume> (<issue>10</issue>), <fpage>211</fpage>. doi: <pub-id pub-id-type="doi">10.3390/agronomy8100211</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Karkee</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Adhikari</surname> <given-names>B.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>A method for three-dimensional reconstruction of apple trees for automated pruning</article-title>. <source>Trans. ASABE.</source> <volume>58</volume> (<issue>3</issue>), <fpage>565</fpage>&#x2013;<lpage>574</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.13031/trans.58.10799</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Karkee</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Adhikari</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Amatya</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Q.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Identification of pruning branches in tall spindle apple trees for automated pruning. comput</article-title>. <source>Electron. Agric.</source> <volume>103</volume>, <fpage>127</fpage>&#x2013;<lpage>135</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.compag.2014.02.013</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kolmani&#x10d;</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Strnad</surname> <given-names>D.</given-names>
</name>
<name>
<surname>Kohek</surname> <given-names>&#x160;.</given-names>
</name>
<name>
<surname>Benes</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Hirst</surname> <given-names>P.</given-names>
</name>
<name>
<surname>&#x17d;alik</surname> <given-names>B.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>An algorithm for automatic dormant tree pruning</article-title>. <source>Appl. Soft Comput.</source> <volume>99</volume>, <fpage>106931</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.asoc.2020.106931</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lin</surname> <given-names>G.</given-names>
</name>
<name>
<surname>Tang</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Zou</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname> <given-names>C.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Three-dimensional reconstruction of guava fruits and branches using instance segmentation and geometry analysis</article-title>. <source>Comput. Electron. Agric.</source> <volume>184</volume>, <fpage>106107</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.compag.2021.106107</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ma</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Yan</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Wang</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Jiang</surname> <given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>a). <article-title>Three-dimensional point cloud automatic registration for dwarf and dense planted jujube tree based on skeleton points</article-title>. <source>Trans. Chin. Soc Agric. Mach.</source> (<publisher-loc>Huangshan, China</publisher-loc>: <publisher-loc>IEEE</publisher-loc>) <volume>52</volume>, <fpage>24</fpage>&#x2013;<lpage>32</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.6041/j.issn.1000-1298.2021.09.003</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ma</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Yan</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Wang</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Jiang</surname> <given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>b). <article-title>Automatic branch detection of jujube trees based on 3D reconstruction for dormant pruning using the deep learning-based method</article-title>. <source>Comput. Electron. Agric.</source> <volume>190</volume>, <fpage>106484</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.compag.2021.106484</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Majeed</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Fu</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Karkee</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Q.</given-names>
</name>
<etal/>
</person-group>. (<year>2020</year>). <article-title>Deep learning based segmentation for automated training of apple trees on trellis wires</article-title>. <source>Comput. Electron. Agric.</source> <volume>170</volume>, <fpage>105277</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.compag.2020.105277</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Medeiros</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Kim</surname> <given-names>D.</given-names>
</name>
<name>
<surname>Sun</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Seshadri</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Akbar</surname> <given-names>S. A.</given-names>
</name>
<name>
<surname>Elfiky</surname> <given-names>N. M.</given-names>
</name>
<etal/>
</person-group>. (<year>2017</year>). <article-title>Modeling dormant fruit trees for agricultural automation</article-title>. <source>J. Field Rob.</source> <volume>34</volume> (<issue>7</issue>), <fpage>1203</fpage>&#x2013;<lpage>1224</lpage>. doi: <pub-id pub-id-type="doi">10.1002/rob.21679</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mika</surname> <given-names>A.</given-names>
</name>
<name>
<surname>Buler</surname> <given-names>Z.</given-names>
</name>
<name>
<surname>Treder</surname> <given-names>W.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Mechanical pruning of apple trees as an alternative to manual pruning</article-title>. <source>Acta Sci. Pol. Hortorum Cultus.</source> <volume>15</volume> (<issue>1</issue>), <fpage>113</fpage>&#x2013;<lpage>121</lpage>.</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Runions</surname> <given-names>A.</given-names>
</name>
<name>
<surname>Fuhrer</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Lane</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Federl</surname> <given-names>P.</given-names>
</name>
<name>
<surname>Rolland-Lagan</surname> <given-names>A. G.</given-names>
</name>
<name>
<surname>Prusinkiewicz</surname> <given-names>P.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Modeling and visualization of leaf venation patterns</article-title>. <source>ACM Trans. Graph.</source> <volume>24</volume> (<issue>3</issue>), <fpage>702</fpage>&#x2013;<lpage>711</lpage>.</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shi</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Geng</surname> <given-names>N.</given-names>
</name>
<name>
<surname>Hu</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Z.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>J.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Illumination distribution model of apple tree canopy based on random forest regression algorithm</article-title>. <source>Trans.Chinese Soc Agric. Mach.</source> <volume>50</volume> (<issue>5</issue>), <fpage>214</fpage>&#x2013;<lpage>222</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.6041/j.issn.1000-1298.2019.05.025</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tang</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Wang</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Y.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Fruit detection and positioning technology for a camellia oleifera c. Abel orchard based on improved YOLOv4-tiny model and binocular stereo vision</article-title>. <source>Expert Syst. Appl.</source> <volume>211</volume>, <fpage>118573</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.eswa.2022.118573</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Lin</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Xu</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Chen</surname> <given-names>Z.</given-names>
</name>
<name>
<surname>Wu</surname> <given-names>Z.</given-names>
</name>
<name>
<surname>Tang</surname> <given-names>Y.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A study on long-close distance coordination control strategy for litchi picking</article-title>. <source>Agronomy</source> <volume>12</volume> (<issue>7</issue>), <fpage>1520</fpage>. doi: <pub-id pub-id-type="doi">10.3390/agronomy12071520</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Dong</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Alelaiwi</surname> <given-names>A.</given-names>
</name>
<name>
<surname>Saddik</surname> <given-names>A. E.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Evaluating and improving the depth accuracy of kinect for windows v2</article-title>. <source>IEEE Sens. J.</source> <volume>15</volume> (<issue>8</issue>), <fpage>4275</fpage>&#x2013;<lpage>4285</lpage>. doi: <pub-id pub-id-type="doi">10.1109/JSEN.2015.2416651</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Yan</surname> <given-names>D.</given-names>
</name>
<name>
<surname>Wintz</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Mourrain</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Wang</surname> <given-names>W.</given-names>
</name>
<name>
<surname>Boudon</surname> <given-names>F.</given-names>
</name>
<name>
<surname>Godin</surname> <given-names>C.</given-names>
</name>
</person-group> (<year>2009</year>). &#x201c;<article-title>Efficient and robust reconstruction of botanical branching structure from laser scanned points</article-title>,&#x201d; in: <conf-name>2009 11th IEEE International Conference on Computer-Aided Design and Computer Graphics</conf-name>. (<publisher-loc>Huangshan, China</publisher-loc>: <publisher-name>IEEE</publisher-name>) <fpage>572</fpage>&#x2013;<lpage>575</lpage>.</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zahid</surname> <given-names>A.</given-names>
</name>
<name>
<surname>Mahmud</surname> <given-names>M. S.</given-names>
</name>
<name>
<surname>He</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Choi</surname> <given-names>D.</given-names>
</name>
<name>
<surname>Heinemann</surname> <given-names>P.</given-names>
</name>
<name>
<surname>Schupp</surname> <given-names>J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Development of an integrated 3R end-effector with a cartesian manipulator for pruning apple trees</article-title>. <source>Comput. Electron. Agric.</source> <volume>179</volume>, <fpage>105837</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.compag.2020.105837</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zahid</surname> <given-names>A.</given-names>
</name>
<name>
<surname>Mahmud</surname> <given-names>M. S.</given-names>
</name>
<name>
<surname>He</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Heinemann</surname> <given-names>P.</given-names>
</name>
<name>
<surname>Choi</surname> <given-names>D.</given-names>
</name>
<name>
<surname>Schupp</surname> <given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Technological advancements towards developing a robotic pruner for apple trees: A review</article-title>. <source>Comput. Electron. Agric.</source> <volume>189</volume>, <fpage>106383</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.compag.2021.106383</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname> <given-names>J.</given-names>
</name>
<name>
<surname>He</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Karkee</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Q.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Gao</surname> <given-names>Z.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Branch detection for apple trees trained in fruiting wall architecture using depth features and regions-convolutional neural network (R-CNN)</article-title>. <source>Comput. Electron. Agric.</source> <volume>155</volume>, <fpage>386</fpage>&#x2013;<lpage>393</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.compag.2018.10.029</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>