<?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">30016</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2022.030016</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Methods and Means for Small Dynamic Objects Recognition and Tracking</article-title>
<alt-title alt-title-type="left-running-head">Methods and Means for Small Dynamic Objects Recognition and Tracking</alt-title>
<alt-title alt-title-type="right-running-head">Methods and Means for Small Dynamic Objects Recognition and Tracking</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Kushnir</surname><given-names>Dmytro</given-names>
</name><email>dmytro.o.kushnir@lpnu.ua</email></contrib>
<aff><institution>Department of Computer Engineering, Lviv Polytechnic National University</institution>, <addr-line>Lviv, 79013</addr-line>, <country>Ukraine</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Dmytro Kushnir. Email: <email>dmytro.o.kushnir@lpnu.ua</email></corresp>
</author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2022-06-14"><day>14</day>
<month>06</month>
<year>2022</year></pub-date>
<volume>73</volume>
<issue>2</issue>
<fpage>3649</fpage>
<lpage>3665</lpage>
<history>
<date date-type="received">
<day>16</day>
<month>3</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>12</day>
<month>5</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2022 Kushnir</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Kushnir</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_30016.pdf"></self-uri>
<abstract>
<p>A literature analysis has shown that object search, recognition, and tracking systems are becoming increasingly popular. However, such systems do not achieve high practical results in analyzing small moving living objects ranging from 8 to 14 mm. This article examines methods and tools for recognizing and tracking the class of small moving objects, such as ants. To fulfill those aims, a customized You Only Look Once Ants Recognition (YOLO_AR) Convolutional Neural Network (CNN) has been trained to recognize Messor Structor ants in the laboratory using the LabelImg object marker tool. The proposed model is an extension of the You Only Look Once v4 (Yolov4) 512 &#x00D7; 512 model with an additional Self Regularized Non&#x2013;Monotonic (Mish) activation function. Additionally, the scalable solution for continuous object recognizing and tracking was implemented. This solution is based on the OpenDatacam system, with extended Object Tracking modules that allow for tracking and counting objects that have crossed the custom boundary line. During the study, the methods of the alignment algorithm for finding the trajectory of moving objects were modified. I discovered that the Hungarian algorithm showed better results in tracking small objects than the K&#x2013;D dimensional tree (k-d tree) matching algorithm used in OpenDataCam. Remarkably, such an algorithm showed better results with the implemented YOLO_AR model due to the lack of False Positives (FP). Therefore, I provided a new tracker module with a Hungarian matching algorithm verified on the Multiple Object Tracking (MOT) benchmark. Furthermore, additional customization parameters for object recognition and tracking results parsing and filtering were added, like boundary angle threshold (BAT) and past frames trajectory prediction (PFTP). Experimental tests confirmed the results of the study on a mobile device. During the experiment, parameters such as the quality of recognition and tracking of moving objects, the PFTP and BAT, and the configuration parameters of the neural network and boundary line model were analyzed. The results showed an increased tracking accuracy with the proposed methods by 50%. The study results confirmed the relevance of the topic and the effectiveness of the implemented methods and tools.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Object detection</kwd>
<kwd>artificial intelligence</kwd>
<kwd>object tracking</kwd>
<kwd>object counting</kwd>
<kwd>small movable objects</kwd>
<kwd>ants tracking</kwd>
<kwd>ants recognition</kwd>
<kwd>YOLO_AR</kwd>
<kwd>Yolov4</kwd>
<kwd>Hungarian algorithm</kwd>
<kwd>k-d tree algorithm</kwd>
<kwd>MOT benchmark</kwd>
<kwd>image labeling</kwd>
<kwd>movement prediction</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>The increased need for autonomous systems for object finding, tracking, and monitoring [<xref ref-type="bibr" rid="ref-1">1</xref>&#x2013;<xref ref-type="bibr" rid="ref-4">4</xref>] pushes for the development and applying new Machine Learning techniques. The most applicable task such systems may be applied to is car traffic monitoring [<xref ref-type="bibr" rid="ref-2">2</xref>&#x2013;<xref ref-type="bibr" rid="ref-6">6</xref>]. However, at the same time, such tasks open doors for analyzing specific small objects, like ants [<xref ref-type="bibr" rid="ref-7">7</xref>,<xref ref-type="bibr" rid="ref-8">8</xref>]. Such systems analyze ants&#x2019; movement in specific isolated environments, but they do not provide a scalable solution for counting and analyzing ants&#x2019; movement patterns. Moreover, recognizing small movable objects requires great recognition and tracking algorithms since such objects occupy small space on the screen and may not move in strict, predictable directions.</p>
<p>Therefore, the development of methods and means that would allow to continuously train and process custom CNN models with specific classes such as ants species, and analysis of the advantages and disadvantages of using the developed methods for specific conditions, is an actual scientific task.</p>
<sec id="s1_1">
<label>1.1</label>
<title>Purpose of the Study</title>
<p>In this study, the proposed system aims to continuously train and process custom CNN models, like a model for recognizing ant species. Afterward, I perform recognition and tracking for small movable objects in real-time. Finally, I propose the set of filters and modified tracking algorithm to enchant output results.</p>
</sec>
<sec id="s1_2">
<label>1.2</label>
<title>Contributions of the Study</title>
<p>The main contribution consists of the following:
<list list-type="bullet">
<list-item>
<p>the current study designs a new CNN YOLO_AR model with Mish activation function and 516 &#x00D7; 516 dimensions;</p></list-item>
<list-item>
<p>The ant&#x2019;s dataset in the indoor environment, which was used for labeling and training the CNN model;</p></list-item>
<list-item>
<p>the scalable docker environment is employed as a storage for all system modules, like training, processing, and tracking nodes;</p></list-item>
<list-item>
<p>the OpenDataCam object tracker module was enchanted with the usage of the Hungarian algorithm instead of the K-d tree algorithm, which showed a 50% accuracy increase for tracking small objects;</p></list-item>
<list-item>
<p>the additional tracker filters were used to smooth the trajectory prediction like <italic>BAT</italic> and <italic>PFTP;</italic></p></list-item>
<list-item>
<p>finally, all modules were combined in the OpenDataCam system [<xref ref-type="bibr" rid="ref-1">1</xref>], which serves as an analytics tool for showing the results of the predictions and tracking. A wide range of simulations was carried out to highlight the YOLO_AR CNN model and modified tracking algorithm accuracy increase.</p></list-item>
</list></p>
</sec>
<sec id="s1_3">
<label>1.3</label>
<title>Organization of the Study</title>
<p>This paper consists of several sections. Section 2 briefs the recently-developed models for object Recognition and Tracking and scalable systems for showing output results related to the study domain. Section 3 introduces the proposed system architecture. Section 4 showed the training labeling and training process using the proposed dataset. Also, it introduces a set of filters for Object Recognition output. In Section 5, a new tracking algorithm with matching and smoothing parameters is proposed to obtain better accuracy during small object counting. Section 6 showed the test execution process. Afterward, Section 7 showed the test results calculation and obtained data interpretation. Lastly, Section 8 draws the conclusion.</p>
</sec>
</sec>
<sec id="s2">
<label>2</label>
<title>Related Works</title>
<p>There are plenty of means for continuous monitoring and tracking of objects embedded on mobile devices. The most popular systems are Opendatacam [<xref ref-type="bibr" rid="ref-1">1</xref>,<xref ref-type="bibr" rid="ref-2">2</xref>] and DeepStream Software Development Kit (SDK) [<xref ref-type="bibr" rid="ref-3">3</xref>].</p>
<p>Opendatacam is an open-source system for continuously monitoring objects using a custom Machine Learning model. The system can be integrated on mobile devices like Jetson Nano, Raspberry Pi, or Android operating system or executed on Linux-based machines via a web server. It reads data from the camera or through the Camera Serial Interface (CSI) bus.</p>
<p>DeepStream SDK allows executing programs directly on Nvidia mobile devices, like Jetson Nano or Jetson Xavier NX. In addition, it provides more quick data transfer between the visual sensor (Camera) via the CSI bus. However, it does not support many customization options for the Machine Learning model and Tracking parameters.</p>
<p>The Opendatacam system was chosen for further investigation as it provides better scalability and can be easily customized.</p>
<p>There are several approaches to formalizing the task of detecting small movable objects [<xref ref-type="bibr" rid="ref-5">5</xref>,<xref ref-type="bibr" rid="ref-6">6</xref>].</p>
<p>In particular, the Re-Identification (Re&#x2013;ID) model [<xref ref-type="bibr" rid="ref-5">5</xref>] is based on optimized DenseNet121 with joint loss. This model applies the Squeeze&#x2013;and&#x2013;Excitation (SE) block to automatically obtain the importance of each channel feature and assign the corresponding weight to it. Features are transferred to the deep layer by adjusting the corresponding weights, which reduces the transmission of redundant information in the process of feature reuse in DenseNet121. The proposed model leverages the complementary expression advantages of the middle features of the CNN to enhance the feature expression ability [<xref ref-type="bibr" rid="ref-5">5</xref>].</p>
<p>At the same time, Real&#x2013;the time Small Object Detection Algorithm (RSOD) [<xref ref-type="bibr" rid="ref-6">6</xref>] algorithm improves the small object detection accuracy by
<list list-type="simple">
<list-item><label>&#x2013;</label><p>using feature maps of a shallower layer containing more fine-grained information for location prediction;</p></list-item>
<list-item><label>&#x2013;</label><p>fusing local and global features of shallow and deep feature maps in Feature Pyramid Network (FPN) to enhance the ability to extract more representative features;</p></list-item>
<list-item><label>&#x2013;</label><p>assigning weights to output features of FPN and fusing them adaptively;</p></list-item>
<list-item><label>&#x2013;</label><p>improving the excitation layer in the Squeeze&#x2013;and&#x2013;Excitation (SE) attention mechanism to adjust the feature responses of each channel more precisely [<xref ref-type="bibr" rid="ref-6">6</xref>].</p></list-item>
</list></p>
<p>Such approaches may be considered a good start for implementing our Tracking algorithm methods and means. However, such systems were applied only for the car&#x2013;traffic tasks, where objects usually move in strict patterns. Therefore, I may consider ants tracking systems [<xref ref-type="bibr" rid="ref-7">7</xref>,<xref ref-type="bibr" rid="ref-8">8</xref>]. For example, in [<xref ref-type="bibr" rid="ref-7">7</xref>], the authors present their detection framework for ant&#x2019;s movement tracking. They propose:
<list list-type="simple">
<list-item><label>&#x2013;</label><p>adopting a two-stage object detection framework using (Residual Network with 50 Layers) ResNet&#x2013;50 as the backbone and coding the position of regions of interest to locate ants accurately;</p></list-item>
<list-item><label>&#x2013;</label><p>using the ResNet&#x2013;50 model to develop the appearance descriptors of ants;</p></list-item>
<list-item><label>&#x2013;</label><p>constructing long&#x2013;term appearance sequences and combining them with motion information to achieve online tracking.</p></list-item>
</list></p>
<p>At the same time, the following article [<xref ref-type="bibr" rid="ref-8">8</xref>] proposes an online MOT framework to track ant individuals. This framework combines both motion and appearance matching, effectively preventing trajectory fragments and ID (True Positive Id&#x2019;s) switches from long&#x2013;term occlusion caused by frequent interactions of ants, achieving efficient and high&#x2013;precision tracking [<xref ref-type="bibr" rid="ref-8">8</xref>].</p>
<p>Assuming the results of the authors, the MOT benchmark could be used to test the Tracker performance. However, the ResNet&#x2013;50 model looks not so efficient for ant&#x2019;s recognition. Therefore, finding the most effective model for small movable object recognition is valuable.</p>
<p>Currently, many families of neural network models provide the ability to search and recognize objects. It is vital to highlight the family of You Only Look Once (Yolo) models, which use the division of the input video stream into cells and calculate the recognition probabilities for each of them [<xref ref-type="bibr" rid="ref-9">9</xref>].</p>
<p>In general, the following models of the Yolo family can be distinguished:
<list list-type="bullet">
<list-item>
<p>You Only Look Once v3 (Yolov3) [<xref ref-type="bibr" rid="ref-10">10</xref>]&#x2014;based on previous Yolo models with objectivity assessment of the regions. As a backbone, it uses the Darknet&#x2013;53 framework instead of ResNet&#x2013;152 as in previous versions. Additionally, Rectified Linear Activation Unit (Relu) [<xref ref-type="bibr" rid="ref-11">11</xref>] is used as an activation function. A three-level probability estimate has also been added to the model to improve the recognition rate of small objects.</p></list-item>
<list-item>
<p>Yolov4 [<xref ref-type="bibr" rid="ref-12">12</xref>]&#x2014;An updated version of Yolo [<xref ref-type="bibr" rid="ref-10">10</xref>], which shows an improvement of 10% mean Average Precision (mAP) compared to the previous model. As a backbone uses a modified version of Darknet CSPDarknet53. Mish [<xref ref-type="bibr" rid="ref-13">13</xref>] is used as an activation function. The SPP (Spatial Pyramid Pooling) unit is also used to increase the efficiency of the receptive field. At the same time, the PAN (Path Aggregation Network) unit is used for more efficient aggregation of parameters between different levels of the backbone. Additionally, Yolov4 offers Mosaic data augmentation methods and Self&#x2013;Adversarial Training (SAT) to improve recognition.</p></list-item>
<list-item>
<p>You Only Look Once v4 Scaled (Yolov4 Scaled) [<xref ref-type="bibr" rid="ref-14">14</xref>]&#x2014;a modified version of yolov4 [<xref ref-type="bibr" rid="ref-12">12</xref>]. It has additional backbone layers: ResNet and ResNeXt and the main CSPDarknet53. The authors also added some functionality to scale the power of the model.</p></list-item>
<list-item>
<p>You Only Look Once v5 (Yolov5) [<xref ref-type="bibr" rid="ref-15">15</xref>]&#x2014;A completely new Yolo [<xref ref-type="bibr" rid="ref-10">10</xref>] model implementation on the PyTorch framework. However, identical architecture with Yolov4 [<xref ref-type="bibr" rid="ref-12">12</xref>] significantly reduces image recognition speed and quality.</p></list-item>
<list-item>
<p>You Only Learn One Representation (YoloR) [<xref ref-type="bibr" rid="ref-16">16</xref>]&#x2014;Continuation of research to improve the effectiveness of the yolov4 model [<xref ref-type="bibr" rid="ref-11">11</xref>]. The idea is to add to the learning mechanism conscious cognition (prepared data for learning) and unconscious cognition (by analogy with the human subconscious).</p></list-item>
</list></p>
<p>The Yolov4 algorithm was chosen for further research because it showed the highest efficiency among all models of neural networks for tracking small objects. Furthermore, the chosen model was modified with minimizing and smoothing filters [<xref ref-type="bibr" rid="ref-9">9</xref>] to increase recognition output.</p>
<p>For image labeling purposes in Yolov4 format, the LabelImg [<xref ref-type="bibr" rid="ref-17">17</xref>] tool was chosen, as it is free, open-source, and can spread object labeled rectangles to the next frame. Therefore, it is useful when there is a need to annotate the video stream, where objects are not moving much compared to the next frame.</p>
<p>The tracking algorithms may provide different results with different output parameters [<xref ref-type="bibr" rid="ref-18">18</xref>,<xref ref-type="bibr" rid="ref-19">19</xref>]. The MOT (Multiple Object Tracking Benchmark) [<xref ref-type="bibr" rid="ref-20">20</xref>,<xref ref-type="bibr" rid="ref-21">21</xref>] evaluation tool may be used to standardize observation results. It provides several measures, from recall to precision to running time.</p>
<p>The matching algorithms can be applied for multiple tasks, but the most efficient object trajectory tracking methods are Hungarian [<xref ref-type="bibr" rid="ref-22">22</xref>] k-d tree [<xref ref-type="bibr" rid="ref-23">23</xref>] algorithms.</p>
<p>The Docker system [<xref ref-type="bibr" rid="ref-24">24</xref>] was used to increase the reliability and scalability of the recognition and tracking model. Docker tasks manager proved to be the most efficient for this class. The system does not require large capacities and calculations but configures the environment and performs the necessary operations.</p>
<p>In conclusion, the reviewed tracking systems do not provide efficient ways to analyze small movable objects, as they are usually applied to car traffic tasks. Therefore, it is advisable to develop and research methods and tools to recognize and track small movable objects in real-time.</p>
</sec>
<sec id="s3">
<label>3</label>
<title>Means for Objects Recognizing and Tracking</title>
<p>According to the results of literary works research, I propose a system for small movable objects recognition and tracking. Furthermore, the system is fully scalable, which means any custom objects may be trained via the proposed train service and applied to the system.</p>
<p>The proposed system consists of an OpenDataCam tool extension with extra integrated modules for achieving the research goal. The schematic diagram of the recognition and tracking system is shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>.</p>
<p>The system is fully dockerized, which means it can be deployed on an external cyber-physical system based on Jetson Nano or Raspberry PI. The current implementation was handled on an Ubuntu machine with Ray Tracing Texel eXtreme (RTX) 2070 graphics card.</p>
<p>The system consists of the following components:
<list list-type="simple">
<list-item><label>&#x2013;</label><p>Model train service. The extended service for the autonomous deployment of new weights of the model to the Neural Network Execution Environment;</p></list-item>
<list-item><label>&#x2013;</label><p>Neural Network Execution Environment (NNEE). This docker image stores the YOLO_AR pre-trained object recognition model based on the YOLOv4 Darknet CNN model. A Compute Unified Device Architecture (CUDA) processor processes all parallel operations. Additionally, this container listens to the input video stream from the camera. It bypasses the data via the Open Source Computer Vision Library (OpenCV) module to the Node Js application backend service.</p></list-item>
<list-item><label>&#x2013;</label><p>Node Js Application.</p></list-item>
</list></p>
<p>It consists of two server apps: OpenDataCam Server and Hypertext Transfer Protocol (HTTP) Proxy.
<list list-type="bullet">
<list-item>
<p>OpenDataCam HTTP Proxy. This app is the starting point that receives model configurations and executes the process of execution of the NNEE docker image. In addition, this component starts web UI and passes input data by Motion Joint Photographic Experts Group (MJPEG) stream via port 8090 to the Frontend Application.</p></list-item>
<list-item>
<p>OpenDataCam Server. Backend Service continuously receives recognition data from NNEE JsonStream via exposed port 8070. This object recognition data is processed and stored in MongoDB Database via port 27017. In the next step, the obtained video frames with recognition results are bypassed to the Tracker Module to track and count recognized objects. This data will be stored and remain in the database volume memory even if the system is offline. After each frame execution, the processed data is sent to the Frontend Application via public port 8080.</p></list-item>
</list>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>The schematic diagram of the proposed system for continuously recognizing and tracking movable objects</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-1.png"/>
</fig>
<list list-type="bullet">
<list-item>
<p>Database storage. Storage for user history of tracking information per some recognized classes.</p></list-item>
<list-item>
<p>Engine&#x2013;X (Nginx). Container for forwarding Application Stream to the Frontend App. Uses reverse&#x2013;proxy technique to direct requests to a particular client domain.</p></list-item>
<list-item>
<p>Device. User device to see and manipulate Application results.</p></list-item>
<list-item>
<p>Camera. Sensor for recording Object Recognition and Tracking stream.</p></list-item>
</list></p>
</sec>
<sec id="s4">
<label>4</label>
<title>Training and Evaluating the Proposed Model Based on the Ants Dataset</title>
<p>For study purposes, I choose the YoloV4 model architecture. The resulted YOLO_AR consists of 3 layers with dimensions of 512 &#x00D7; 512 pixels. The additional Mish layer was added to increase the model recognition accuracy. Such YOLO architecture overview with image processing techniques as described in the previous paper [<xref ref-type="bibr" rid="ref-9">9</xref>]. The resulted model was adjusted with smoothing and minimization filters.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Preparing the Dataset for the Model and Marking Process</title>
<p>The target object is ants ranging in size from 8 to 14 mm. I created the corresponding image dataset [<xref ref-type="bibr" rid="ref-25">25</xref>] to fulfill research goals.</p>
<p>The dataset was created using Fast Forward MPEG (<italic>FFmpeg)</italic> Linux tool by obtaining an image sequence from the video stream. I have used two types of videos: big and small size of ants. Each frame from the dataset has 2160 &#x00D7; 3840 dimensions.</p>
<p>The dataset consists of 500 hundred images that capture ant movements in the indoor environment. The important thing here is that ants should be located on the visible surface. Otherwise, the recognition results will not be enough as objects may merge with the surrounding landscape or nest surface. For test evaluation, Camera HD Pro C920 was used. For labeling output image results, the LabelImg tool was used. The labelimg process is depicted in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Labeling process of marking messor structor ants with different objects size. the boundary limit for ants is set to 14 mm</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-2.png"/>
</fig>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Training the YOLO_AR Model</title>
<p>We used a darknet framework [<xref ref-type="bibr" rid="ref-13">13</xref>] to train the YOLO_AR model on GeForce RTX 2070 with CUDA 11. The results are the follows (<xref ref-type="fig" rid="fig-3">Fig. 3</xref>).</p>
<p>The blue curve indicates how many errors occur when learning and demonstrates whether the network is learning (graph is down) or degrading (graph is up). The y&#x2013;axis represents the value of the loss ratio, while the x&#x2013;axis represents the number of performed iterations. Also, the red graphic shows mAP (mean over precision) per iteration. The training was finished at 4000 iterations as it was noticed that model was not improved much after that point. After the training, the resulting model weights and configuration were loaded to the NNEE docker image module, from where it was accessed by the recognition and tracker modules.</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>The training process of the proposed YOLO_AR neural network</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-3.png"/>
</fig>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Model Output Results Dynamic Customization</title>
<p>We applied an additional set of filters to increase Object Recognition accuracy and remove objects overlapping. Such filters are crucial for YOLO models since such architecture divides the frame into regions with a probability of recognition. Afterward, the regions may overlap each other. The following set of filters should help omit such collisions:
<list list-type="simple">
<list-item><label>&#x2013;</label><p><bold><italic>recognized frame size filter (RFSF)</italic></bold>: Filters out objects whose area is higher than a certain percentage of the total frame area calculated by the following formula:</p></list-item>
</list></p>
<p><disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="italic">d</mml:mi><mml:mi mathvariant="italic">e</mml:mi><mml:mi mathvariant="italic">t</mml:mi><mml:mi mathvariant="italic">e</mml:mi><mml:mi mathvariant="italic">c</mml:mi><mml:mi mathvariant="italic">t</mml:mi><mml:mi mathvariant="italic">i</mml:mi><mml:mi mathvariant="italic">o</mml:mi></mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mi mathvariant="italic">d</mml:mi><mml:mi mathvariant="italic">e</mml:mi><mml:mi mathvariant="italic">t</mml:mi><mml:mi mathvariant="italic">e</mml:mi><mml:mi mathvariant="italic">c</mml:mi><mml:mi mathvariant="italic">t</mml:mi><mml:mi mathvariant="italic">i</mml:mi><mml:mi mathvariant="italic">o</mml:mi></mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mfrac><mml:mrow><mml:mi>f</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mi>f</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>a</mml:mi><mml:mi mathvariant="normal">&#x005F;</mml:mi><mml:mi>k</mml:mi><mml:mi>o</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mn>100</mml:mn></mml:math></disp-formula></p>
<p>Where:</p>
<p><italic>detection</italic><sub><italic>wh</italic></sub>&#x2014;input frame resolution (height and width) of the recognized bounding box;</p>
<p><italic>frame</italic><sub><italic>wh</italic></sub>&#x2014;input frame resolution (height and width) from the optical sensor;</p>
<p><italic>area_koef</italic>&#x2014;recognized frame size coefficient determines how many recognized objects should be skipped.
<list list-type="simple">
<list-item><label>&#x2013;</label><p><bold><italic>confidence threshold minimizing filter (CTMF):</italic></bold> minimization filter for removing the recognized object with the confidence value more minor than in the provided filter value;</p></list-item>
<list-item><label>&#x2013;</label><p><bold><italic>IOU smoothing filter limit:</italic></bold> filter checks the border values of input object recognition IOU results per frame. I expect less overlapping with the small value of this filter.</p></list-item>
</list></p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Methods for Object Tracking and Counting</title>
<sec id="s5_1">
<label>5.1</label>
<title>Applying Tracker Algorithm based on V&#x2013;IOU</title>
<p>Based on Visual Intersection over Union (V&#x2013;IOU) [<xref ref-type="bibr" rid="ref-18">18</xref>], the algorithm compares the overlapping areas between two recognized objects. This method allows checking if the object is the same during recognition. Under the hood, it computes the IOU (Intersection over Union) value by following the formula.</p>
<p><disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:mi>I</mml:mi><mml:mi>O</mml:mi><mml:mi>U</mml:mi><mml:mo>=</mml:mo><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:math></disp-formula></p>
<p>Where Si means interception area and Su means union area.</p>
<p>The graphical representation of this formula is the follows (<xref ref-type="fig" rid="fig-4">Fig. 4</xref>).</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>The graphical representation of the IOU formula</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-4.png"/>
</fig>
<p>If gaps are in the prediction array, the algorithm skips those predictions and restores them after the wrong path is restored. The schematic diagram of the Tracking algorithm can be seen in <xref ref-type="fig" rid="fig-5">Fig. 5</xref>.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>The YOLO objects tracker algorithm. It assigns a unique identifier for each object and tracks it over the frame&#x2019;s stream</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-5.png"/>
</fig>
<p>Additionally, the tracking algorithm matches predictions for the next frame based on the velocity and acceleration vector to avoid ID (True Positive Id) reassignment when the object is missed only for a few frames. The existent OpenDataCam matching algorithm is based on the k-d tree algorithm.</p>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Customization Options for Tracking Results Enchantment</title>
<p>We added several sets of parameters to adjust tracking results. The primary enchantments are the follows:
<list list-type="simple">
<list-item><label>&#x2013;</label><p><bold><italic>frame pending limit (FPL)</italic>:</bold> the number of the frame to keep predicting the object trajectory if the next frame does not match it. Setting this higher will cause fewer ID switches but more potential false positives with an ID going to another object.</p></list-item>
<list-item><label>&#x2013;</label><p><bold><italic>boundary angle threshold (BAT)</italic>:</bold> Count items crossing the counting line only if the angle between their trajectory and the counting line is superior to this angle (in degree). Ninety degrees would count only perfectly perpendicular objects, whereas 0 degrees will count every recognized object. The graphic representation of such a method is depicted in <xref ref-type="fig" rid="fig-6">Fig. 6</xref>.</p></list-item>
</list></p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>The boundary angle threshold parameter for changing objects&#x2019; accessibility to the boundary line</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-6.png"/>
</fig>
<p><list list-type="simple">
<list-item><label>&#x2013;</label><p><bold><italic>past frames trajectory prediction (PFTP)</italic>:</bold> parameter computes the trajectory to determine if an object crosses the line based on this number of the past frames. In most cases, the trajectory of the center of the bounding box given by YOLO_AR changes per frame, so the smoothing filtering will help verify object line crossing time and the angle of crossing. For example, if the object ID were lost during tracking, the algorithm would choose the last frame assigned to the ID from memory (<xref ref-type="fig" rid="fig-7">Fig. 7</xref>).</p></list-item>
</list></p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>The past frames trajectory prediction parameter normalizes the object trajectory to the boundary line</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-7.png"/>
</fig>
</sec>
<sec id="s5_3">
<label>5.3</label>
<title>Hungarian Algorithm Integration in Comparison to K-D Tree Algorithm</title>
<p>I discovered that an alternative matching algorithm using the Hungarian algorithm (also called the Munkres assignment algorithm) instead of the existing k-d tree algorithm used in OpenDataCam could improve efficiency with YOLO models, especially for small tracked objects. Furthermore, that algorithm should show better accuracy because it finds the minimum cost matching while the k-d tree algorithm only approximates a positive solution.</p>
<p>The tests were executed on the MOT17 benchmark by applying Tracker logic with the k-d tree matching algorithm and the proposed Hungarian algorithm. The results are the follows (<xref ref-type="fig" rid="fig-8">Figs. 8</xref> and&#x00A0;<xref ref-type="fig" rid="fig-9">9</xref>).</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>The k-d tree matching algorithm tests results with mocked data on the MOT17 benchmark</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-8.png"/>
</fig>
<fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>The Hungarian(munkers) matching algorithm tests results with mocked data on the MOT17 benchmark</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-9.png"/>
</fig>
<p>Where:
<list list-type="simple">
<list-item><label>&#x2013;</label><p><bold>IDF1</bold>: The ratio of correctly identified detections over the average number of ground-truth and computed detections;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>IDP</bold>: global min&#x2013;cost precision;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>IDR</bold>: global min&#x2013;cost recall;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>GT</bold>: number of ground&#x2013;truth objects;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>RCLL</bold>: Ratio of correct detections to the total number of GT boxes;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>PRCN</bold>: Ratio of TP/(TP&#x002B;FP). Where TP&#x2013;True Positive, FP&#x2013;False Positive;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>MT</bold>: number of mostly tracked trajectories. I.e., the target has the same label for at least 80% of its life span;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>PT</bold>: partially tracked ground&#x2013;truth trajectory;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>ML</bold>: number of mostly lost trajectories. i.e., the target is not tracked for at least 20% of its life span;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>FP</bold>: number of false detections;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>FN</bold>: number of missed detections;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>IDs</bold>: number of times an ID switches to a different previously tracked object;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>Frag</bold>: number of fragmentations where a track is interrupted by miss detection;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>FM</bold>: the number of track fragmentations. Counts how many times a ground&#x2013;truth trajectory is interrupted;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>MOTA</bold>: Multi&#x2013;object tracking accuracy. Summarize three errors sources (FN, FP, IDS) with a single performance measure (GT);</p></list-item>
<list-item><label>&#x2013;</label><p><bold>MOTP</bold>: Multi&#x2013;object tracking precision. The average dissimilarity between all true positives and their corresponding ground&#x2013;truth targets;</p></list-item>
<list-item><label>&#x2013;</label><p><bold>iDt, iDa, iDm</bold>: True positive ids.</p></list-item>
</list></p>
<p>Since the proposed tracking algorithm finds optimal matching, the Hungarian algorithm shows better results in object tracking, with more false positives (FP) and fewer false negatives (FN). Additionally, the Mostly tracked parameter (MT) is higher (361 <italic>vs</italic>. 329).</p>
<p>In general, the tracker using the Hungarian algorithm performs slightly worse when the detector has a lot of false positives and slightly better when the detector does not have that many false positives. However, the Hungarian algorithm should be slightly better when using YOLOv4 detections, as the number of false positives tends to be relatively small.</p>
<p>Additionally, the IOU smoothing filter limit was decreased from default 0.05 to 0.2 to increase the overlap and decrease the number of double detections.</p>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Results for Ants Trail Recognition and Tracking</title>
<p>The set of tests was executed on the iOS mobile device. The tests include: ants tracking and unique identifier assignment; Ants object path creation; Ant&#x2019;s entities custom boundary lines crossing. The results are the follows (<xref ref-type="fig" rid="fig-10">Figs. 10</xref>&#x2013;<xref ref-type="fig" rid="fig-14">14</xref>).</p>
<fig id="fig-10">
<label>Figure 10</label>
<caption>
<title>The Recognition and Tracking results of ants in formicarium and unique object assignment</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-10.png"/>
</fig>
<fig id="fig-11">
<label>Figure 11</label>
<caption>
<title>The Recognition and Pathfinding for each ant. On the left&#x2013;with Hungarian matching algorithm, on the right&#x2013;with k-d tree matching algorithm</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-11.png"/>
</fig>
<fig id="fig-12">
<label>Figure 12</label>
<caption>
<title>The Recognition and Counting ant in different nest directions. On the left is applying the Hungarian matching algorithm, and on the right is applying the k-d tree matching algorithm. The BAT parameter is set to 45 for both scenarios</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-12.png"/>
</fig>
<fig id="fig-13">
<label>Figure 13</label>
<caption>
<title>The recognition and counting ant in different nest directions. On the left is applying the Hungarian matching algorithm, and on the right is applying the k-d tree matching algorithm. The BAT parameter is set to 0 for both scenarios</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-13.png"/>
</fig>
<fig id="fig-14">
<label>Figure 14</label>
<caption>
<title>The results are stored in the database for each test for each boundary line</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30016-fig-14.png"/>
</fig>
</sec>
<sec id="s7">
<label>7</label>
<title>Results Analysis</title>
<p>The results of the test execution are provided in <xref ref-type="table" rid="table-1">Tab. 1</xref>.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Test execution with created YOLO_AR model for checking the performance of Hungarian/k-d tree matching algorithms</title>
</caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th>No. of runs</th>
<th>Matching algorithm</th>
<th>BAT</th>
<th>PFTP</th>
<th>Objects crossed boundary lines</th>
<th>Recognized objects</th>
</tr>
</thead>
<tbody>
<tr>
<td>Run&#x2013;1</td>
<td>Hungarian</td>
<td>1</td>
<td>1</td>
<td>22</td>
<td>32</td>
</tr>
<tr>
<td>Run&#x2013;2</td>
<td>k-d tree</td>
<td>1</td>
<td>1</td>
<td>11</td>
<td>24</td>
</tr>
<tr>
<td>Run&#x2013;3</td>
<td>k-d tree</td>
<td>45</td>
<td>45</td>
<td>0</td>
<td>27</td>
</tr>
<tr>
<td>Run&#x2013;4</td>
<td>Hungarian</td>
<td>45</td>
<td>45</td>
<td>4</td>
<td>23</td>
</tr>
<tr>
<td>Run&#x2013;5</td>
<td>k-d tree</td>
<td>20</td>
<td>60</td>
<td>5</td>
<td>28</td>
</tr>
<tr>
<td>Run&#x2013;6</td>
<td>Hungarian</td>
<td>20</td>
<td>60</td>
<td>9</td>
<td>29</td>
</tr>
<tr>
<td>Run&#x2013;7</td>
<td>k-d tree</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>21</td>
</tr>
<tr>
<td>Run&#x2013;8</td>
<td>Hungarian</td>
<td>0</td>
<td>0</td>
<td>7</td>
<td>24</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Some parameters were stable during the test:
<list list-type="simple">
<list-item><label>&#x2013;</label><p><italic>Model name</italic>: YOLO_AR 512x512;</p></list-item>
<list-item><label>&#x2013;</label><p><italic>Test duration</italic>: 1 min. The video fragment is the same for each test;</p></list-item>
<list-item><label>&#x2013;</label><p><italic>Approximate FPS (Frames Per Second)</italic>: 12&#x2013;16. FPL was set to 18 to keep high number of True Positives (TP);</p></list-item>
<list-item><label>&#x2013;</label><p><italic>Ant&#x2019;s average size</italic>: 8mm;</p></list-item>
<list-item><label>&#x2013;</label><p><italic>IOU smoothing filter</italic>: 0.1;</p></list-item>
<list-item><label>&#x2013;</label><p><italic>RFSF:</italic> such formula was applied for input screen resolution 2532 &#x00D7; 1170;</p></list-item>
<list-item><label>&#x2013;</label><p><italic>CTMF</italic>: 90.</p></list-item>
</list></p>
<p>The tests were executed on one video recording where ants with an average size equal to 8 mm move through the nest. The overall recognized objects count is the total number of unique IDs assigned to the ants. Some ids were reassigned during the test since the ant trajectory was lost when it did not move on the white surface. The results also show a more extensive trajectory loss (this can be observed in <xref ref-type="fig" rid="fig-11">Fig. 11</xref>) in the case of the K&#x2013;d tree algorithm. In addition, the count of tracked ants that crossed the boundary line is also lower compared to Hungarian matching algorithm integration. The tracking results for the Hungarian algorithm shown on <xref ref-type="table" rid="table-1">Tab. 1</xref> depict an accuracy increase of 50%. If BAT and PFTP filters are disabled, the trajectory loss will increase by 40%. This is observable in the case of high FPS; however, the negative results may be adjusted by the FPL filter. The ant&#x2019;s recognition results are worse in case the ant is located on the nest wall. Also, ants can hardly be recognized if they are not on a white surface. Such results are expected, as the current train data contain only ants filmed in the laboratory environment. Overall, real-time tests showed promising results in recognizing, tracking, and counting ants with the size up to 14 mm. The proposed CNN model YOLO_AR showed efficient results in recognizing such ant species.</p>
</sec>
<sec id="s8">
<label>8</label>
<title>Conclusions</title>
<p>The paper introduced a scalable system for recognizing and tracking small movable objects in sizes from 8 to 14 mm.</p>
<p>Analyzing the results of the research, I can say that:
<list list-type="simple">
<list-item><label>&#x2013;</label><p>The Hungarian algorithm is overcoming k-d tree algorithm in matching small movable objects with the YOLO_AR model because of the lack of false positive values. The actual results were confirmed on MOT benchmark mock data. The obtained results on the real environment showed a 50% accuracy increase comparting to the existing method;</p></list-item>
<list-item><label>&#x2013;</label><p>The implemented BAT and PFTP filters showed an increase in tracking accuracy in real-time, mainly when the video&#x2013;stream contains high FPS. Without the implemented filters, the loss for tracked paths is higher by 40%;</p></list-item>
<list-item><label>&#x2013;</label><p>The OpenDataCam system can be easily extended to fulfill research needs. Also, additional system modules may be added or enchanted. For example, I modified the Tracker module in our particular case and added an autonomous Model Train Service.</p></list-item>
<list-item><label>&#x2013;</label><p>The proposed system can be used for ants in sizes from 8 to 14 mm behavioral investigation. In addition, it can be scaled to recognize other classes of ant species or breeds.</p></list-item>
</list></p>
<p>The additional results of the research are the follows:
<list list-type="simple">
<list-item><label>&#x2013;</label><p>The Messor Structor ant&#x2019;s dataset was created from 2 video streams via the FFmpeg tool. Afterward, the LabelImg image framework was used to annotate the obtained dataset. Finally, the received data was used to train the YOLO_AR 512 &#x00D7; 512 model with the Mish activation function;</p></list-item>
<list-item><label>&#x2013;</label><p>Additional smoothing and minimization filters were used to remove image overlapping and increase object recognition results;</p></list-item>
<list-item><label>&#x2013;</label><p>The train service was created to train the CNN model autonomously and forward the training output to the subsequent system nodes.</p></list-item>
</list></p>
<p>The obtained results can be used to design and implement scalable systems for continuously recognizing, tracking, and counting custom counts of object classes.</p>
</sec>
<sec id="s9">
<label>9</label>
<title>Prospects for Future Research</title>
<p>The key results of the research could be extended in two main directions. The first is a complete iOS mobile platform integration without using an external server. To achieve this Core Machine Learning (CoreML) framework [<xref ref-type="bibr" rid="ref-26">26</xref>] may be used to recognize and track a small movable object. The second one is to adjust the Neural Network model to recognize different ant species castes. So, the system may track and count different types of ants of different sizes and behaviors. The sizes of ants now will be crucial. For example, the size of solder is up to 10mm, the size of workers is from 4 to 9.5 mm, and the size of the queen is up to 14 mm.</p>
</sec>
</body>
<back>
<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 they have 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>B.</given-names> <surname>Gro&#x00DF;</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Kreutzer</surname></string-name> and <string-name><given-names>T.</given-names> <surname>Durand</surname></string-name></person-group>, &#x201C;<article-title>OpenDataCam 3.0.2: An open source tool to quantify the world</article-title>,&#x201D; <source>Move Lab</source>, <year>2021</year>, <uri>https://www.move-lab.com/project/opendatacam</uri>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Valladares</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Toscano</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Tufi&#x00F1;o</surname></string-name>, <string-name><given-names>P.</given-names> <surname>Morillo</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Vallejo-Huanga</surname></string-name></person-group>, &#x201C;<chapter-title>Performance evaluation of the Nvidia Jetson Nano through a real-time machine learning application</chapter-title>,&#x201D; in <source>Advances in Intelligent Systems and Computing</source>, <publisher-loc>Palermo, Italy</publisher-loc>, pp. <fpage>343</fpage>&#x2013;<lpage>349</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H. N.</given-names> <surname>Abdulghafoor</surname></string-name> and <string-name><given-names>H. N.</given-names> <surname>Abdullah</surname></string-name></person-group>, &#x201C;<article-title>Real-time moving objects detection and tracking using Deep-Stream technology</article-title>,&#x201D; <source>Journal of Engineering Science and Technology</source>, vol. <volume>16</volume>, no. <issue>1</issue>, pp. <fpage>533</fpage>&#x2013;<lpage>545</lpage>, <year>2021</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>N.</given-names> <surname>Pavych</surname></string-name> and <string-name><given-names>V.</given-names> <surname>Zahurskii</surname></string-name></person-group>, &#x201C;<article-title>Software architecture for analyzing the impact of news on the stock market</article-title>,&#x201D; in <conf-name>2021 11th Int. Conf. on Advanced Computer Information Technologies (ACIT)</conf-name>, <publisher-loc>Ternopil, Ukraine</publisher-loc>, pp. <fpage>613</fpage>&#x2013;<lpage>617</lpage>, <year>2021</year>. </mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>X. R.</given-names> <surname>Zhang</surname></string-name>, <string-name><given-names>X.</given-names> <surname>Chen</surname></string-name>, <string-name><given-names>W.</given-names> <surname>Sun</surname></string-name> and <string-name><given-names>X. Z.</given-names> <surname>He</surname></string-name></person-group>, &#x201C;<article-title>Vehicle re-identification model based on optimized DenseNet121 with joint loss</article-title>,&#x201D; <source>Computers, Materials &#x0026; Continua</source>, vol. <volume>67</volume>, no. <issue>3</issue>, pp. <fpage>3933</fpage>&#x2013;<lpage>3948</lpage>, <year>2021</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>W.</given-names> <surname>Sun</surname></string-name>, <string-name><given-names>L.</given-names> <surname>Dai</surname></string-name>, <string-name><given-names>X. R.</given-names> <surname>Zhang</surname></string-name>, <string-name><given-names>P. S.</given-names> <surname>Chang</surname></string-name> and <string-name><given-names>X. Z.</given-names> <surname>He</surname></string-name></person-group>, &#x201C;<article-title>Real-time small object detection algorithm in UAV-based traffic monitoring</article-title>,&#x201D; <source>Applied Intelligence</source>, vol. <volume>92</volume>, no. <issue>6</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>16</lpage>, <year>2021</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>M.</given-names> <surname>Wu</surname></string-name>, <string-name><given-names>X.</given-names> <surname>Cao</surname></string-name> and <string-name><given-names>S.</given-names> <surname>Guo</surname></string-name></person-group>, &#x201C;<article-title>Accurate detection and tracking of ants in indoor and outdoor environments</article-title>,&#x201D; <source>BioRxiv</source>, vol. <volume>2</volume>, no. <issue>1</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>26</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>X.</given-names> <surname>Cao</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Guo</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Lin</surname></string-name>, <string-name><given-names>W.</given-names> <surname>Zhang</surname></string-name> and <string-name><given-names>M.</given-names> <surname>Liao</surname></string-name></person-group>, &#x201C;<article-title>Online tracking of ants based on deep association metrics: Method, dataset and evaluation</article-title>,&#x201D; <source>Pattern Recognition</source>, vol. <volume>103</volume>, no. <issue>11</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>25</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Kushnir</surname></string-name> and <string-name><given-names>Y.</given-names> <surname>Paramud</surname></string-name></person-group>, &#x201C;<article-title>Model for real-time object searching and recognizing on mobile platform</article-title>,&#x201D; in <conf-name>2020 IEEE 15th Int. Conf. on Advanced Trends in Radioelectronics, Telecommunications and Computer Engineering (TCSET)</conf-name>, <publisher-loc>Slavsk, Ukraine</publisher-loc>, pp. <fpage>127</fpage>&#x2013;<lpage>130</lpage>, <year>2020</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>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>YOLOv3: An incremental improvement</article-title>,&#x201D; ArXiv, <year>2018</year>, <uri>https://arxiv.org/abs/1804.02767</uri>.</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>C.</given-names> <surname>Banerjee</surname></string-name>, <string-name><given-names>T.</given-names> <surname>Mukherjee</surname></string-name> and <string-name><given-names>E.</given-names> <surname>Pasiliao</surname></string-name></person-group>, &#x201C;<article-title>The multi-phase ReLU activation function</article-title>,&#x201D; in <conf-name>Proc. of the 2020 ACM Southeast Conf. (ACM SE &#x2018;20)</conf-name>, <publisher-loc>New York, NY, USA</publisher-loc>, <publisher-name>Association for Computing Machinery</publisher-name>, pp. <fpage>239</fpage>&#x2013;<lpage>242</lpage>, <year>2020</year>. </mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Misra</surname></string-name></person-group>, &#x201C;<article-title>Mish: A self-regularized non-monotonic activation function</article-title>,&#x201D; ArXiv, <year>2019</year>, <uri>https://arxiv.org/abs/1908.08681</uri>.</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>A.</given-names> <surname>Bochkovskiy</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Redmon</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Sinigardi</surname></string-name>, <string-name><given-names>T.</given-names> <surname>Hager</surname></string-name>, <string-name><given-names>J.</given-names> <surname>JaledMC</surname></string-name> <etal>et al.</etal></person-group><italic>,</italic> &#x201C;<article-title>AlexeyAB/darknet:YOLOv4 (version yolov4)</article-title>,&#x201D; <source>Zenodo</source>, <year>2021</year>, <uri>https://doi.org/10.5281/zenodo.562267</uri>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>W.</given-names> <surname>Kin-Yiu</surname></string-name></person-group>, &#x201C;<article-title>Implementation of Scaled-YOLOv4 using PyTorch framework (v1.0.0)</article-title>,&#x201D; <source>Zenodo</source>, <year>2021</year>, <uri>https://doi.org/10.5281/zenodo.5534091</uri>.</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>Jocher</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Stoken</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Chaurasia</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Borovec</surname></string-name>, <string-name><given-names>T.</given-names> <surname>Xie</surname></string-name> <etal>et al.</etal></person-group><italic>,</italic> &#x201C;<article-title>Ultralytics/YOLOv5:v6.0&#x2013;YOLOv5n &#x2018;Nano&#x2019; models, Roboflow integration, TensorFlow export, OpenCV DNN support (v6.0)</article-title>,&#x201D; <source>Zenodo</source>, <year>2021</year>, <uri>https://doi.org/10.5281/zenodo.5563715</uri>.</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>C.</given-names> <surname>Wang</surname></string-name>, <string-name><given-names>I.</given-names> <surname>Yeh</surname></string-name> and <string-name><given-names>H. M.</given-names> <surname>Liao</surname></string-name></person-group>, &#x201C;<article-title>You only learn one representation: Unified network for multiple tasks</article-title>,&#x201D; ArXiv, <year>2021</year>, <uri>https://arxiv.org/abs/2105.04206</uri>.</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>D. T.</given-names> <surname>Zutalin</surname></string-name></person-group>, &#x201C;<article-title>LabelImg</article-title>,&#x201D; <source>GitHub</source>, <year>2021</year>, <uri>https://github.com/tzutalin/labelImg</uri>.</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>E.</given-names> <surname>Bochinski</surname></string-name>, <string-name><given-names>T.</given-names> <surname>Senst</surname></string-name> and <string-name><given-names>T.</given-names> <surname>Sikora</surname></string-name></person-group>, &#x201C;<article-title>Extending IOU based multi-object tracking by visual information</article-title>,&#x201D; in <conf-name>2018 15th IEEE Int. Conf. on Advanced Video and Signal Based Surveillance (AVSS)</conf-name>, <publisher-loc>Auckland, New Zealand</publisher-loc>, pp. <fpage>1</fpage>&#x2013;<lpage>6</lpage>, <year>2018</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>A.</given-names> <surname>Bewley</surname></string-name>, <string-name><given-names>Z.</given-names> <surname>Ge</surname></string-name>, <string-name><given-names>L.</given-names> <surname>Ott</surname></string-name>, <string-name><given-names>F.</given-names> <surname>Ramos</surname></string-name> and <string-name><given-names>B.</given-names> <surname>Upcroft</surname></string-name></person-group>, &#x201C;<article-title>Simple online and real-time tracking</article-title>,&#x201D; in <conf-name>2016 IEEE Int. Conf. on Image Processing (ICIP)</conf-name>, <publisher-loc>Phoenix, Arizona</publisher-loc>, pp. <fpage>3464</fpage>&#x2013;<lpage>3468</lpage>, <year>2016</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>A.</given-names> <surname>Milan</surname></string-name>, <string-name><given-names>L.</given-names> <surname>Leal-Taixe</surname></string-name>, <string-name><given-names>I.</given-names> <surname>Reid</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Roth</surname></string-name> and <string-name><given-names>K.</given-names> <surname>Schindler</surname></string-name></person-group>, &#x201C;<article-title>MOT16: A benchmark for multi-object tracking</article-title>,&#x201D; ArXiv, <year>2016</year>, <uri>https://arxiv.org/abs/1603.00831</uri>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Dendorfer</surname></string-name>, <string-name><given-names>A.</given-names> <surname>O&#x0161;ep</surname></string-name> and <string-name><given-names>A.</given-names> <surname>Milan</surname></string-name></person-group>, &#x201C;<article-title>MOTChallenge: A benchmark for single-camera multiple target tracking</article-title>,&#x201D; <source>International Journal of Computer Vision</source>, vol. <volume>129</volume>, no. <issue>4</issue>, pp. <fpage>845</fpage>&#x2013;<lpage>881</lpage>, <year>2021</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>H.</given-names> <surname>Kuhn</surname></string-name></person-group>, &#x201C;<article-title>The hungarian method for the assignment problem</article-title>,&#x201D; <source>50 Years of Integer Programming</source>, <year>2010</year>, <uri>https://www.semanticscholar.org/paper/The-Hungarian-Method-for-the-Assignment-Problem-Kuhn/b6a0f30260302a2001da9999096cfdd89bc1f7fb</uri>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Skrodzki</surname></string-name></person-group>, &#x201C;<article-title>The k-d tree data structure and a proof for neighborhood computation in expected logarithmic time</article-title>,&#x201D; ArXiv, <year>2019</year>, <uri>https://arxiv.org/abs/1603.00831</uri>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Merkel</surname></string-name></person-group>, &#x201C;<article-title>Docker: Lightweight Linux containers for consistent development and deployment</article-title>,&#x201D; <source>Linux Journal</source>, no. <issue>239</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>2</lpage>, <year>2015</year>, <uri>https://www.linuxjournal.com/content/docker-lightweight-linux-containers-consistent-development-and-deployment</uri>.</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>D.</given-names> <surname>Kushnir</surname></string-name></person-group>, &#x201C;<article-title>Ants dataset (indoor/outdoor Messor Structor) &#x002B; trained YOLOv4 weights</article-title>,&#x201D; <source>Mendeley Data</source>, <year>2022</year>, <uri>https://doi.org/10.17632/zprk7wkf9j.1</uri>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Mishra</surname></string-name></person-group>, Machine learning for iOS developers. New York, NY, USA: <publisher-name>John Wiley &#x0026; Sons</publisher-name>, <year>2020</year>. [Online]. Available: <uri xlink:href="https://www.wiley.com/en-ie/Machine+Learning+for+iOS+Developers-p-9781119602903">https://www.wiley.com/en-ie/Machine+Learning+for+iOS+Developers-p-9781119602903</uri>.</mixed-citation></ref>
</ref-list>
</back>
</article>
