dataesr/scientific-paragraphs-categorization huggingface dataset:
IMPLEMENTATION DETAILS The full implementation is available at https://gitlab. inria. fr/cidre-public/oatinside. The Runner and Memory dumper modules are written in C++, inside the original ART. The architecture-specific parts have been developed only for ARMv8  [4] : signal handling, the hooking process presented in Figure  4 , and specific instructions handling mutual exclusion that OATs'inside may interrupt (ldx* and stx*). ARMv7 could be supported, and other architectures are marginal. The communication between the phone and the host is established using protobuf  4  over a socket connection. The CFG creator module is based on the NetworkX Python library  [16]. The Concolic analyzer module uses angr  [28]  as a symbolic execution engine. A few optimization techniques have been implemented for the Runner and Memory dumper modules.
Robustness against Obfuscation To assess the proper functioning of OATs'inside, we designed unit tests, as reported in Table  3. To build the test cases, we read the Dalvik bytecode specification  [3]  to enumerate all possible Java source statement behaviors (allocations, register and memory accesses, arithmetic and bitfield operations, condition checks, type checks, exception management, critical session monitoring). These behaviors are divided into eight families and 20 categories listed in the two first columns of Table  3. For each behavior categories, we distinguish, when relevant, three Java types: object, primitive variable or primitive array. For example, the condition category represents changing the execution flow (if statement), depending on the value of an object field, a primitive variable allocated onto the stack, or primitive array element.
OATs'inside Functional Contribution To assess the contribution of OATs'inside to the state of the art, we minutely read the papers describing four tools: TIRO  [34] , ARTist  [5] , JN-SAF  [32] , and Malton  [37]. In Table  3 , each reported column corresponds to a tool, OATs'inside being the first column. First, because the DHA obfuscation is a new technique, none of the other tools passed the test cases of the DHA version. In fact, tools that focus on tracing accesses to object fields all rely on a clearly defined JNI interface. ARTist  [5] , as mentioned in Section 3, does not target native code but only bytecode. This explains why it only retrieves behaviors for the DEX only version. TIRO  [34]  is an unpacker. Thus, it can output the loaded bytecode of the Pack DEX version. Then, the bytecode being available, the analyst can retrieve all the application behaviors.
However, excluding the behavior related to code loading, which is not an elementary Java behavior, TIRO does not analyze any native code. JN-SAF  [32]  and Malton  [37]  both do taint flow analysis. Therefore, they do not care about allocations, typing, exceptions, or monitoring of events and do not output them at all. JN-SAF  [32]  is a static analysis-based taint tracking tool. Owing to its static nature, it cannot work with the Pack DEX version. Moreover, JN-SAF targets only native methods and does not handle AOTC-compiled code and, thus, it misses the AOTC version. Because JN-SAF aims at tracking flows, it does not log explicitly the conditions and the operations made by the code. However, these elements are part of the flow process, i. e. " the propagation algorithm. That is why some partial information about operations and conditions is captured.
Finally, because JN-SAF relies on classical symbolic execution, obfuscated assembly can overload its analysis, preventing the JNI+obf version from being handled. Malton  [37]  is a hybrid tool that realizes data taint tracking over framework libraries and system calls. Therefore, it does not retrieve information about the internal code methods and classes. That is why all its outputs are qualified as partial. Moreover, because Malton is dynamic, it can handle the Pack DEX version. The symbolic analysis that is conducted is concolic: Like OATs'inside, it follows the execution and, thus, is not sensitive to obfuscation (unlike JN-SAF) and can tackle the JNI+obf version. Finally, Malton works with the AOTC version, because it does not rely on the APK structure but bases all its analysis on executed assembly instructions.
While the analyst still has to guide the tool using its expertise, knowledge, and time for de-obfuscating the application are not necessary. Note that, even if all modules presented in Figure  1  communicate automatically, the analyst still has the opportunity to adapt his choices with the findings after an execution. Additionally, some other tools such as IntelliDroid  [33]  may give relevant information to assist its investigation. The easy retrieval of the secret password shows that OATs'inside is of practical use.
OATs'inside Robustness against Dedicated Attacks OATs'inside stealthiness. Obfuscated applications could try avoiding being analyzed. Then, it is important to assess the capacity of OATs'inside not being detected. One could argue that the behavior of OATs'inside is fingerprintable by detecting the generation of SEGV and TRAP signals. However, they can never be caught by the application, because we capture them. Additionally, OATs'inside induces a time overhead when running the application. Then, an application could fingerprint the time of the execution. It could also measure the difference  between the time spent for accessing a variable or a field. Such techniques can be defeated by hooking the syscall gettimeofday and changing its return value to a nominal one  [36]. Also, a standard way to avoid being debugged is to check that no breakpoints have been set up or that the code has not been modified by using checksums.
The output would then contain very complex expressions. Experiments show that the overhead induced by OATs'inside is linear in the number of events that bypass the JNI interface. Combined with implemented optimizations such as Android library white-listing, this result shows the practicality of the proposed approach. We also illustrated the benefit of OATs'inside on applications containing anti-debugging techniques provided by the OWASP foundation. We easily recover the hidden password from the native code by identifying the appropriate control flow conditions and the tests that are performed by the native code. With few iterations, we recover the expected password, solving the challenge. It works for two levels of difficulty, the third one being only partially analyzed. Our proposal is released as an open source tool and patches that modify the Android source code.
Wearable devices embedding inertial sensors enable autonomous, seamless, and low-cost pedestrian navigation. Appealing it is, the approach faces several challenges: measurement noises, different device-carrying modes, different user dynamics, and individual walking characteristics. Recent research applies Artificial Intelligence (AI) to improve inertial navigation's robustness and accuracy. Our analysis identifies 2 main categories of AI approaches depending on the inertial signals segmentation: either using human gait events (steps or strides) or fixed-length inertial data segments. A theoretical analysis of the fundamental assumptions is carried out for each category. Two state-of-the-art AI algorithms (SELDA, RoNIN), representative of each category, and a gait-driven non-AI method (SmartWalk) are evaluated in a 2,17 km long open access dataset, representative of the diversity of pedestrians' mobility surroundings (open-sky, indoors, forest, urban, parking lot).
Less explicit than traditional physics-based approaches, it raises design and hyper-parametrization issues. This paper aims at analysing the recently proposed approaches in the field of pedestrian navigation with inertial wearable sensors to identify the key features that contribute to the success or limitations of robust and accurate positioning. It extends the previous conference proceeding  [1] , which classifies AI-based inertial pedestrian navigation methods into two main categories depending on the inertial signals segmentation. A detailed analysis of the fundamental hypotheses in each category, their likelihood, and their impact on positioning performance is conducted. A comparison with a non-AI pedestrian navigation approach is added. The experimental performance assessment is conducted with handheld inertial sensors on a larger open-access dataset in three different environments: urban, forest, and a shopping mall parking lot, including indoor and outdoor parts and staircases.
A. Human gait-driven AI methods The inertial data sequences are segmented using the gait events (step or stride instants) and processed to estimate the gait vector of each segment. Gait events are derived from the cyclic inertial signals patterns. For instance,  [2]  considers that a peak in the acceleration norm or a valley in the angular rate norm represents a step instant, regardless of the device's location. However, gait detection under irregular hand movements remains challenging. Due to the different features needed to estimate the step/stride length and the walking direction, they are often treated separately. 1) Stride/step length estimation: Feature engineering is performed to select the most informative features for stride/step length estimation. According to  [3] , there are four categories of relevant features: statistical (mean, variance, amplitude, etc.
III. SELECTED METHODS FOR THE EXPERIMENTAL ASSESSMENT: SELDA, RONIN, AND SMARTWALK We selected the method  [16] : pedestrian Stride-length Estimation based on LSTM and Denoising Autoencoders (titled SELDA in the rest of the paper) among the gait-driven AI methods. The latter is representative of the category with sufficient implementation and data processing details, along with a benchmarking dataset. RoNIN  [21]  is selected among the sampling frequency-driven AI methods since the authors published their implementation, trained model weights, and a part of their dataset. We would also like to evaluate a complete positioning non-AI gait-driven method for comparison, thus we selected SmartWalk. The method combines several techniques such as machine learning, statistical model, and an Extended Kalman Filter (EKF) to infer the user's trajectory, moreover, some parameters in the model are customized for each user.
A. SELDA: pedestrian Stride-length Estimation based on LSTM and Denoising Autoencoders The stride length estimation AI model proposed in  [16]  takes as input stride segments of inertial measurements: 3axis acceleration and angular rate, collected by a handheld smartphone, along with higher-level features from empirical models (Weinberg  [24] , Ladetto  [25] , Scarlett  [32] , etc. ) computed with the acceleration segment. SELDA requires the user to carry the device in "texting" mode, in such a way that the z-axis of the device points to the sky. Stride events for signal segmentation are detected by a foot-mounted device. This setup is constrained and impractical for deployment. 1) SELDA Dataset: publicly available  [33] , is collected by 5 volunteers of different gender and height, holding the smartphone horizontally in front of their chest.
The dataset covers both indoor and outdoor scenarios including staircases. the inertial signal sampled at 100 Hz is segmented by stride instants provided by the foot-mounted reference tracker, which also provides stride length ground truth. 2) Adaptation for experimental assessment: We use only 4 higher-level features instead of 35 since only 4 definitions are available. Among learning samples from the SELDA dataset, we only consider the stride length range between 0. 3m and 1. 8m. The original dataset is split into a 6319-sample training set and a 175-sample validation set. Since SELDA only estimates stride length, for illustration's purpose, we pile up three modules namely stride detection, SELDA, and heading estimation to build a positioning system. Stride instants and walking directions are provided by our footmounted reference tracker (  [34]  and  [35] ).
B. RoNIN: Robust Neural Inertial Navigation RoNIN expresses acceleration and angular rate measurements in the navigation frame, via the device attitude provided by android's Game Rotation Vector (GRV) and a spatial alignment procedure. An AI model (RoNIN ResNet) is trained to infer the user horizontal velocity (V x , V y ), given a fixlength segment (200 frames) of acceleration and angular rate expressed in the navigation frame. Inferred velocities are integrated to obtain the user's trajectory. Both RoNIN dataset, model implementation, and trained model weights are publicly available  [36]. 1) RoNIN dataset: is collected mainly in indoor environments by 100 volunteers and 3 android devices, covering usual scenarios such as a smartphone in a bag, in the pocket, handheld, walking, sitting, etc.
The roll angle of ULISS evolves in the same way as the pitch angle of the android device and the pitch angle of ULISS evolves in the same way as the android device's roll angle. ULISS yaw angle is opposite to the yaw angle of the android device. In the bottom figure, we plot the variation of their angular offsets given by Eq. 1. The under-script "a" stands for android and "u" stands for ULISS. ∆ roll = roll u -roll u (t = 0) -(pitch a -pitch a (t = 0)) (1) ∆ pitch = pitch u -pitch u (t = 0)-(roll a -roll a (t = 0)) (2) ∆ yaw = yaw u -yaw u (t = 0) + (yaw a -yaw a (t = 0)) (3) Fig. 2 : Experimental setup for studying the game rotation vector The figures show that the game rotation vector is good at estimating roll and pitch (related to gravity). There is no large difference between the game rotation vector and the MAGYQ result.
C. SmartWalk It appeared interesting to make a comparison with an older solution based on classical signal processing techniques instead of recent AI tools: SmartWalk  [41]. It is a pedestrian positioning algorithm fusing data from a tri-axis accelerometer, a tri-axis gyroscope, a tri-axis magnetometer, a barometer, and a GNSS receiver. In this paper, GNSS raw data are not included in the positioning algorithm to ensure a fair comparison with the other AI-based solutions. Smartwalk contains several modules: 1) Step detection, step length estimation and carrying mode classification: This module processes the wearable raw acceleration and angular rate readings at 200 Hz. The original step detection module was replaced with SmartStep  [2] ,  [42]. Step length s is estimated by a linear model  [43] s = h × (a × f + b) + c ( 4 ) where h is the user's height, f is the frequency of the acceleration magnitude and a, b and c are universal parameters learned on a group of users.
A personalized calibration is as well possible  [44]. The device's carrying mode is classified into either texting or swinging mode. Irregular and static phases are also detected  [43]. 2) GMM for walking direction inference: This module adopts a Gaussian Mixture Model (GMM) to model the misalignment between the device's pointing direction and the user's walking direction  [45]. First, the device's accelerations are transformed into the local North-East-Down frame using the Extended Kalman Filter-based device attitude tracking algorithm: MAGYQ  [38]. Then, the distribution of the horizontal accelerations, when the user is walking toward the North (0°h eading), is modeled by a weighted sum of 2-D Gaussian distributions: f acc(x) = q k=1 τ k N (x, m k , P k ) (5) Where τ k is the weight of Gaussian component k, parameterized by mean m k and variance P k.
To complete the analysis, stride lengths estimated by the state-of-the-art Weinberg model (green) are plotted over. The "nearly flat" line of the SELDA's predictions shows that it fails to capture the variations in the user's movement, especially when the user is taking stairs (smaller strides). Weinberg estimates, sharing one higher-level feature with SELDA, are much better at tracking variations in walking dynamics. The RoNIN's velocity plots (Fig. 10  and Fig. 11 ) show better performance in the tracking of walking changes: start, stop, and taking stairs. But, as foreseen by the theoretical analyses (FH2), the velocity estimates are noisy. The integration of the inferred velocities smooths this noise. Globally, the two categories of methods show completely opposite behaviors. The failure of SELDA and the robustness of RoNIN can be explained by their training datasets.
All stride length labels from SELDA's training set and their distribution are shown in Fig. 12. The mean and standard deviation of SELDA stride length labels are 1. 36 m and 0. 078 m. Most of the labels are close to the mean value, which is the best guess that the model can achieve. On the other hand, RoNIN regresses the two components of the velocity, whose variations are more important due to the infinity possibility of the walking direction. Thanks to the sampling frequency-driven data segmentation, RoNIN is more data-intensive than SELDA for the same amount of measurements. For example, if a normal walking sequence lasts 12 s and is sampled at 200 Hz, only about 10 strides segments can be extracted from the track for SELDA. An average gait cycle lasts about 1. 2 s. On the other hand, ((12 × 200) -200)/5 + 1 = 441 segments can be extracted for RoNIN, i.
2) Walking direction: Only RoNIN and SmartWalk are compared for the walking direction estimation task since SELDA does not predict the latter. Noisy velocity inferences result in noisy walking directions estimated by RoNIN. SmartWalk is better than RoNIN since the mean RMSE of SmartWalk is smaller in both cases of volunteers 1 and 2. The EKF correction module is efficient here. The benefit of SmartWalk's EKF correction is illustrated in Fig. 15  for Volunteer 2. Similar to RoNIN, GMM standalone (orange) yields noisy walking direction estimations. On the other hand, the trajectories estimated with MAGYQ's yaw angle (blue) have almost the same shape as the ground truth. Under the hypothesis that when the carrying mode remains steady, the change in the user's walking direction over two consecutive steps shall be the same as the change in the device's pointing direction (Hypothesis GH5).
V. CONCLUSION This article analyses the features of existing AI-based pedestrian inertial positioning techniques with wearable sensors both at the theoretical and experimental performance levels. A 2-category classification, based on the inertial segmentation strategy is presented: either using the human gait analysis or the inertial signals sampling frequency. SELDA uses the flat-foot instants of a foot-mounted tracker to segment inertial signals. It was found to be inefficient for labeling wearables' training datasets  [42]  and unrealistic in real-life situations. To better capture the walking changes with gait-driven AI methods, different walking dynamics (various stride lengths) should be added to the training dataset, and adopting a user-centric approach could be beneficial. Compared to SELDA, the signal segmentation and labeling strategies of RoNIN show better learning.
Method 2: Crack tip local displacement method For the second method, a data reduction method based on a near-crack-tip displacement formulation to obtain the mode I fracture toughness is proposed. In this method, the analysis must be focused as closely as possible to the crack tip, as shown in Fig. 3. The idea is to describe the behaviour of the experimental GDCB test by means of an equivalent DCB geometry case loaded with pure bending moments in the near-crack-tip region, carrying out a local analysis to determine the equivalent moments through the deformation of the arms in the near-crack-tip region. It is in this region where the formulation assumes a linear elastic behaviour of the specimen, thus, the inertia effects can be considered as negligible since the closer to the crack tip, the lower the mass considered and the lower the deformation of the arms due to dynamic effects.
Finally, a mean of the displacement profiles of both arms is obtained to be used as input for the FE analysis. Then, an FE simulation of the GDCB test is carried out imposing the mean experimental displacement profile. Applying the one evaluation step VCCT method (Fig. 4 ), the energy release rate can be obtained as:  This method is a combination of experimental test data and numerical modelling, having the advantages of no-dependency on a beam theory, and less need for image accuracy to obtain the displacement profile in comparison with the data required for Method 2. However, the method has its limitations as the analysis is still based on LEFM and requires a large number of FE simulations. That said, computational costs and simulation times are relatively low. 𝐺 I = - 1 2𝛥𝑎 𝑅 𝑦 𝛥𝑢 𝑦 (14) For this study, a 2D linear elastic model using the commercial software Abaqus™/Standard  [26]  was developed.
However, a comparison with a full GDCB specimen length model was performed to validate the results obtained with the reduced-length model. The full-length model was a 2D linear elastic model, as represented in Fig. 6. In this case, one half of the GDCB specimen (upper arm) was modelled and symmetric conditions were assumed, as was done for the model of the segment. The results of the fracture toughness obtained with the VCCT method were equal in both cases with less than 1% of difference, thus supporting the use of the segmented model. A summary of the different methods proposed in this work for the data reduction of the GDCB test method is presented in Table  1.
Quasi-static tests The quasi-static tests were performed under controlled laboratory conditions using an electromechanical screw-driven MTS machine equipped with a 10 kN load cell for both the DCB and the GDCB, described in  [19] , test methods with a constant cross-head velocity of 5 mm/min. The DCB quasi-static tests were carried out according to the ISO  [5]  test method for the composite laminate and the ISO  [6]  test method for the adhesively bonded joint. The exception from the test standards was to use a Side-Clamped Beam (SCB) test fixture  [27] , and only four specimens were tested. According to the standards ISO 15024 and ISO 25217, the data reduction methods of the test were based on the Corrected Beam Theory (CBT). In addition to the testing machine's own data acquisition system to record load and displacement, a set of two cameras was used for the GDCB QS tests: Camera 1 to track the grip pins and, depending on the data reduction method being used, Camera 2 to track different locations.
Intermediate/high-rate tests The intermediate/high displacement rate tests were carried out using the GDCB test method and an Instron VSH dynamic servohydraulic testing machine. The combination of this testing device and the GDCB test rig allows for a constant and symmetric opening displacement to be obtained independent of the loading rate of the test. To reduce the experimental data and determine the energy release rate, the tests were monitored with a high-speed video system. The set-up, as shown in Fig. 7 , consisted of a set of two cameras: Camera 1 to track the opening displacement at the load application points in the specimen for Method 1, and Camera 2 to monitor the crack length growth and the deformation profile of the specimen arms. This second camera captured data for the three methods.
Image post-processing The image frames obtained from the quasi-static tests and the high-rate tests were post-processed using in-house Matlab scripts/algorithms to obtain the required data for each of the data reduction methods. The post-processing was the same for both the quasi-static and high-rate GDCB tests. Fig. 8  shows a photo frame for the set of two cameras used in the GDCB test. The photo frames from Camera 2 in Fig. 8b  were rotated 90 • anti-clockwise for the post-processing. The script from Camera 1 analyses all the image frames to determine the current position of the grip pins and the reference markers. Then, the opening displacement is obtained as the distance between the two loading pins, as seen in Fig. 9. The reference  markers are used as set points for the pin markers and as a control for the conversion from pixels to millimetres.