Method and system
Patent Information
- Application Number
- GB2024019168
- Authority / Receiving Office
- GB · GB
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-12-31
- Publication Date
- 2025-02-12
AI Technical Summary
Existing systems struggle to accurately distinguish and classify unmanned aerial vehicles (drones) from other airborne objects like birds and identify their behavior, particularly in terms of threat and surveillance characteristics, which is crucial for effective monitoring and management.
A computer-implemented method using neural networks, specifically convolutional neural networks (CNNs), processes sensor data from multiple cameras to identify and classify airborne objects by analyzing their behavior patterns, determining threat and surveillance scores, and initiating appropriate actions when scores exceed predefined thresholds.
Enables precise identification and classification of drones and other airborne objects, providing situational awareness and enabling timely responses to potential threats or surveillance activities.
Abstract
Description
FIELD The invention relates to a method and system. Particularly, but not exclusively, the invention relates to a computer-implemented method for object and behaviour classification of an airborne object such as, for example, a drone. BACKGROUND Unmanned aerial vehicles, also known as drones, are gaining popularity as a useful way to implement aerial operations without the use of human beings inside the vehicle. The number of applications where they are used is growing and now includes aerial photography, area coverage, precision agriculture, forest fire monitoring, river monitoring, environmental monitoring, policing and surveillance, infrastructure inspections and entertainment. It is important to be able to monitor the behaviour of these vehicles and to be able to identify them without confusing them with other airborne objects. Aspects and embodiments were conceived with the foregoing in mind. SUMMARY Aspects relate to a method for object and behaviour classification of an airborne object such as, for example, a drone or a bird. Viewed from a first aspect, there may be provided a computer implemented method for object and behaviour classification of an airborne object. An example of airborne object is a bird or drone but other airborne objects may also be classified using the method. The method may be implemented by a processing resource. The object classification may enable the object to be identified. The behaviour classification may enable the behaviour of the object to be classified in terms of its threat and surveillance characteristics. The processing resource may be hardware or software implemented. The processing resource may be implemented via the cloud and / or a cloud implemented resource. The processing resource may implement one or more modules which may include one or more neural networks or convolutional neural networks. The one or more modules may be located in the same location or distributed over a larger geographic area. The processing resource may comprise any element which can provide processing capacity. The method may comprise receiving from two or more sensor modules directed at a target airspace, sensor data relating to a target airspace. The sensor modules may deploy any suitable imaging apparatus such as, for example, a camera or a video camera. The sensor data may comprise video footage comprising one or more frames. The two or more sensor modules may be trained on the same airspace but may be in any orientation relative to one another. The method may comprise processing the sensor data to obtain data indicative of an airborne object within the target airspace. This may comprise deploying image recognition techniques such as, for example, edge detection or image segmentation. Other techniques for identifying and delineating objects in an image may be used such as, for example, a process such as, for example, edge detection, corner detection, blob detection or ridge detection to delineate and / or identify the presence of objects in an image. This may comprise processing the frames to determine whether the object is moving or static. This may comprise discarding sensor data relating to static objects. The movement may be in any axes, i.e. longitudinal, latitudinal or changes in altitude. The sensor data may be processed to determine whether the airborne object is to be considered a target. The method may comprise determining an object type to associate with the airborne object, the object type being an identity of the object. Example object identities include birds and / or drones. The method may further comprise identifying the object as a target object. The identification of the object as a target object may comprise using the sensor data to identify dynamic characteristics of the object which indicate it is to be determined a target. The method may comprise determining a behavioural classification to associate with the behaviour of the airborne object, the behavioural classification comprising a threat score indicative of threatening behaviour of the object and / or a surveillance score indicative of surveillance behaviour of the object. The behavioural classification may also be determined using a CNN and / or and ANN which may also be trained using supervised, unsupervised or semi-supervised learning approaches. The behavioural classification may be determined using one or more windows which are derived from tracks which track the changes in longitude, latitude and altitude of the identified object. Various determinations as set out above may be implemented using an artificial neural network (ANN) or a convolutional neural network (CNN). ANNs can be hardware - (neurons are represented by physical components) or software-based (computer models) and can use a variety of topologies and learning algorithms. ANNs usually have at least three layers that are interconnected. The first layer consists of input neurons. Those neurons send data on to the second layer, referred to a hidden layer which implements a function and which in turn sends the output neurons to the third layer. There may be a plurality of hidden layers in the ANN. With respect to the number of neurons in the input layer, this parameter is based on training data. The second or hidden layer in a neural network implements one or more functions. For example, the function or functions may each compute a linear transformation or a classification of the previous layer or compute logical functions. For instance, considering that the input vector can be represented as x, the hidden layer functions as h and the output as y, then the ANN may be understood as implementing a function f using the second or hidden layer that maps from x to h and another function g that maps from h to y. So the hidden layer's activation is f(x) and the output of the network is g(f(x)). CNNs can also be hardware or software based and can also use a variety of topologies and learning algorithms. A CNN usually comprises at least one convolutional layer where a feature map is generated by the application of a kernel matrix to an input image. The input image may comprise one or more tracks or window updates which can be taken from sensor data captured from an airspace. The tracks or window updates comprise a series of points, indexed in time, wherein each point comprises measurements relate to the dynamic behaviour of the identified objects. The dynamic behaviour may relate to the relative heading and / or relative altitude of the identified object. Each of the at least one convolutional layers is configured to generate a feature map using a kernel matrix which detects a feature in the provided track or window update, e.g. an edge. Where the CNN is used for behaviour classification, the kernel matrix may be configured to detect at least one track or window update characteristic which indicate changes in latitude and / or longitude and / or altitude which are indicative of specific behavioural characteristics. These behavioural characteristics may indicate surveillance characteristics such as, for example, an airborne object carrying out stand-off surveillance by exhibiting a flat constant speed into the field of view but avoiding any geofenced areas or an airborne object hovering for long periods. These behavioural characteristics may indicate pre-attack surveillance where there is flat constant speed toward a geo-fence but no breach or a shorter hovering time or a retreat on the same path as entry or crabbing behaviour or repetition of other behaviours. The behavioural characteristics may indicate vertical load deployment such as, for example, high speed flat flight, sudden stop, slight descend, fidgeting, hovering, slight ascend, high speed departure. The behavioural characteristics may indicate hit-ile behaviour such as, for example, a medium speed flat inward flight, a hard turn, sudden acceleration or constant angle descent. The behavioural characteristics may indicate arc-attack hit-ile behaviour such as, for, example, medium speed flat inward flight, arcing on the downward turn or full acceleration. The behavioural characteristics may indicate prison drop behaviour such as a medium flat inward flight, sudden speed changes, horizontal and / or vertical fidgeting (to hunt for the correct deployment site), hovering, sudden climbing and speedy departures. Where the CNN is used for object identification, the feature or features may represent an airborne object in that the feature may be an edge associated with an airborne object or another aesthetic characteristic associated with that object. The at least one convolution layer is followed by at least one pooling layer and a fully connected layer, which deploys a multilayer perceptron which comprises at least an input layer, at least one hidden layer and an output layer. The at least one hidden layer applies weights to the output of the pooling layer to determine an output prediction. The training of the ANN and / or CNN may be implemented using supervised, unsupervised or semi-supervised learning approaches. A method in accordance with the first aspect enables an airborne object to be identified and its threat and surveillance characteristics to be determined. If the threat or surveillance scores exceed a specified threshold, further action may be initiated. Optionally, the sensor data may comprise a plurality of image frames of the target airspace over a predetermined period of time from each of the two or more sensors. The plurality of image frames may be obtained from video footage captured from the target airspace using suitable imaging apparatus. Optionally, processing the sensor data to obtain data indicative of an object may comprise utilising edge detection to identify an object in each of the plurality of frames and / or determining a position of the object within the frame and / or comparing the position of the object between the plurality of frames to determine a movement distance of the object and / or if the position of the object has not changed, removing the object from the plurality of frames and / or if the movement distance is within a predetermined threshold distance, identifying the object as a moving object and storing the new location of the moving object and / or if the movement distance has exceeded the predetermined threshold, identifying the object as a new object different from the object. Optionally, the movement distance may be determined based on a calculation of a Euclidean distance between the position of the object across the plurality of frames. Other calculations which can be used to determine the distance moved by an object over a period of time may also be used to determine the movement distance. Optionally, the plurality of frames may comprise a number of frames specified by a user. Optionally, if the object is identified as a moving object, the method may further comprises determining a three-dimensional (3D) vector originating at the latitude, longitude and altitude of the location of each of the two or more sensors and / or calculating an azimuth and an elevation of the object relative to an azimuth and an elevation of each of the two or more sensors. Optionally, determining the object type may comprise utilising a trained object identification model. This may deploy one or more ANNs or CNNs as described above. Optionally, the trained object determination model may be trained using input-output labelled data sets wherein forward-backward propagation is used to train an object determination model to identify an object. Optionally, the determination of a behavioural classification may comprises the application of a behavioural classification model trained to determine the threat score and to determine the surveillance score. This may deploy one or more ANNs or CNNs as described above. Optionally, the training may comprise using input-output data sets to match input data to both behaviour of an airborne object and surveillance and / or behavioural characteristics of an airborne object. Optionally, the determination of a threat score and the determination of a surveillance score may comprise the application of first and second distinct trained models. Optionally, the determination of a behavioural classification is associated with a calculation of the relative adjustment in heading of the object and relative adjustment in height of the object. Optionally, wherein the relative adjustment in heading and the relative adjustment in height are determined across a window comprising a plurality of frames. We may determine the relative heading and the relative height of a target object across a window using the following equations: Rh,n = HEN+1 — Hen Where HEi is the heading value at position i in the track, it is based on the longitudinal and latitudinal components corresponding to the longitude and latitude at the ith position in the track. RH i is the relative heading of the target object at the ith position in the track, and where the relative height may be defined as: Ra,N = ^N + l — An Where At is the altitude of the target object at position i in the track. Where ut is the track update at position i in the track, it is a vector with longitudinal and latitudinal components corresponding to the longitude and latitude at the ith position in the track. RH i is the relative heading of the target object at the ith position in the track. The relative heading of a target object indicates the change in horizontal rotational direction of the front of the target object (i.e. a drone or an aircraft) (in degrees or radians) Optionally, wherein the object type is one of a drone or a bird. Optionally, wherein the sensor data is received from at least two imaging modules directed at a target airspace. Viewed from a further aspect, there may be provided a drone classification system comprising: a processing device; a memory device; a processing medium configured to implement the method of the first aspect. Viewed from a further aspect, there may be provided a system comprising: a processing device; a memory device; a processing medium configured to implement the method of the first aspect. Viewed from a further aspect, there may be provided a computer readable medium comprising instructions which, when executed by a processing resource, implement the steps of the first aspect. DESCRIPTION An embodiment will now be described, by way of example only, and with reference to the following drawings in which: Figure 1 illustrates two cameras directed at an area of airspace in accordance with the embodiment; Figure 2 illustrates first and second cameras and their relationship with a behaviour analysis module in accordance with the embodiment; Figure 3 illustrates a behaviour analysis module in accordance with the embodiment; Figure 4 illustrates the steps involved with behaviour analysis module obtaining data used to classify the behaviour of an airborne object in accordance with the embodiment; Figure 5 illustrates the steps involved with classifying the behaviour of an airborne object in accordance with the embodiment. We will now describe, with reference to Figures 1 to 3, the configuration of a object behavioral classification module 300 which could be used to identify an object airborne in an airspace 104 within the field of view (respectively 106a and 106b) of both of cameras 102a and 102b and also to classify the behaviour of such an airborne object in terms of its threat level and its surveillance characteristics. While the example is described with reference to a first camera 102a and a second camera 102b, it will be understood that this is just an example embodiment with respect to both the type of imaging equipment used and the relative orientation of those imaging equipment. That is to say, imaging equipment of any type can be used and a plurality of those imaging equipment may be arranged in any suitable orientation with respect to an airspace. Figure 2 shows first and second cameras (102a and 102b) and their relationship with a system 100 which can be used to classify the surveillance and threat characteristics of an object within the airspace 104. The initial processing of video footage of an airspace to identify objects for further analysis is now described with reference to Figures 3 and 4. The first camera 102a and the second camera 102b are both trained on the airspace 104 and are configured to capture real-time video footage from the area as a series of frames. The capture of the video footage is step S300. The first and second camera may also be trained on areas peripheral to the airspace to enable early identification of objects which may be a threat. The video footage from each camera is transmitted to a respective first and second computer vision module (enumerated as 202a and 202b). This is step S302. The video is processed at each computer vision module using a suitable interface which can process the received frames to separate each frame for individual analysis. The respective computer vision module may receive the data from the camera using any suitable data transmission medium or protocol. The respective computer vision module may be located at the same site as the camera or may be located remotely relative to the camera. The computer vision modules process each frame to identify objects within each frame using a process such as, for example, edge detection, corner detection, blob detection or ridge detection to delineate and / or identify the presence of objects within each frame, and the location (in terms of longitude and latitude) of objects within each frame can then be established. This is step S304. The data associated with each frame and the objects within those frames (i.e. longitude and latitude) can then be transmitted to the object behavioural classification module 300. The transmission between the respective computer vision module and the object behavioural classification module 300 can be implemented using any suitable data transmission protocol. The computer vision modules may be located adjacent to the object behavioural classification module 300 or they may be located remotely relative to the object behavioural classification module 300. Each computer vision module is further configured to determine the presence of moving objects within the captured video footage. This is step S306. In order to identify moving objects within the captured video footage, the most recent N (e.g. 5 or 10 frames) are processed to identify where the same object appears in multiple of the most recent N frames (e.g. by determining where object data associated with a first frame is identical to object data associated with a further frame, i.e. at least one more frame). If the same object appears in multiple frames then this object is identified as a potential moving object. The position of the object in the first frame in which it appears (i.e. a first position) is compared with the position of the same object in the final frame of the N frames in which it appears (i.e. a second position). The first position and second position can be characterised by x and y coordinates within the respective frame. Object movement (OM) may then be calculated using the Pythagoras formula (i.e. the Euclidean approach to finding the distance between two points) wherein the first position is characterised by coordinates (x^y^ and the second position is characterised by coordinates (x2,y2): oM = 7(^2-¾)2 + (y2 -yi)2 If OM >OT then the respective object is identified as a moving object. If OM <OTthen the object data corresponding to that object is discarded. Where multiple objects are identified in a frame, then the determination of whether the object is moving is repeated for each object. The position data associated with each of the one or more identified moving objects is then saved in storage. The position data associated with each of the one or more moving objects is also transmitted to an object movement analysis module 204. The corresponding analysis on a second camera can be performed based on the coordinates (x3,y3) and (x4,y4). The use of the formula for 0Massumes the distance moved is not so far to make the curvature of the earth a factor. If the curvature of the earth is considered to be a factor then the Haversine formula can be used. The object movement analysis module 204 also receives the longitude, latitude and altitude of the respective first and / or second camera. The azimuth and elevation of the first and second camera are also provided to the object movement analysis module 204. The maximum distance which can be visualised by the respective camera is also provided to the object movement analysis module 204. This enables the determination of the maximum extent to which the moving object can travel before it escapes the camera. The field of view can also be provided to the object movement analysis module in that the field of view is determined using: , H FOV = 2 tan’1 — Where H is the sensor size (horizontal dimension) and f is the focal length of the lens. The sensor size and the focal length may vary between the cameras but may also be identical. This returns the horizontal field of view. The dimension of the sensor size changes correspondingly for the vertical field of view. Firstly, the end point of the object in the collected frames is determined by converting the azimuth angle of the camera into radians (Arad): A7n A - = ^tclcL X8Q The end latitude (La end) and longitude (Lo end) of the end point of the object (in the collected frames) can then be respectively determined using the equations below (in a step S308): , . _i , . / ^max \ , . / ^max \ pnd = sin x( sin ——- cos —777777777777 + cos ——- sin —777777777777 cos (Arnd)) a’end v \180 / \6378137 / \180 / \63781377 v radJJ ^0,end = "TT^T + tan 1(sin(i4rad) sin(Dma% / 6378137) * cos(Lat—-) / cos loU loU \od / o±d / / - sin (y^-) sin(La end)) Where Dmaxis the maximum distance visible by the camera (determined from the maximum range of the camera) and Latand Lonare the respective latitude and longitude values of the camera and Azis the azimuth (relative to the centre pixel) of the respective pixel on the last frame where the object is determined to be present. Secondly,the change in height of the moving object (6H) can also be determined (relative to the camera) based on Dmax, the elevation value of the respective pixel obtained (in radians) from the respective camera (^) and the starting height of the camera using the following equation: Dmaxtan(El), The height of the object can then be obtained using the formula (in a step S310): Ho = Hs + 6H Where Ho is the height of the object and Hs is the starting height of the camera. The determination of the height of the object and the respective end longitude and end latitude are repeated for each frame for each camera. This enables the height of the object for each frame and the latitude and longitude for each object (for each frame) to be determined. The determination of the height of the object and the respective end longitude and end latitude values can be determined using processing units which are co-located with the respective camera. Those values can then be respectively transmitted to the object movement analysis module 204 for the further analysis we will now describe. The latitude and longitude values for each object in each frame can therefore be obtained and used to track the movement of the object using the calculated end latitude (La end) and longitude (Loend) of the object (in the collected frames). The altitude of the object can also be tracked in each frame using the values of Ho for each object. A three dimensional positional vector can then obtained by the object movement analysis module 204 for each moving object for each of the first and second cameras. That is to say, two vectors can be determined for each object for each camera. The first vector is the three dimensional positional vector for each moving object - it is determined by the end latitude (La end) and longitude (Loend) and the heigh of the object (Ho). The second vector is the location (in terms of latitude and longitude), altitude, azimuth and elevation of the respective first or second camera. The first and second vector can then be further processed by the respective object movement analysis module 204. The object movement analysis module 204 is configured to identify where the three dimensional positional vectors intersect each other as this is an indication they relate to the same object. This determines whether the object is to be identified as a target. This is step S312. The point of intersection can be determined using the following values: ((x4 - x3)(yi - y3) - (y4 - y3)(xi - x3)) a~ (y4 - y3)U2 - xj - (x4 - x3)(y2 - yj ((x2 - xJCyi - y3) - (y2 - yi)(xx - x3)) Um = —------—---------------------- (y4 - y3)(x2 - xj - (x4 - x3)(y2 - yj The coordinates of the intersection are then identified (in terms of latitude and longitude) by: Xint = XX + (ua(x2 -Xj) Vint = yi + (w«(y2 - yJ) Where (xn,yn) corresponds to respective end latitude (La end) and end longitude (Lo end) of the end point of the object in the nth respective frame. Indeed, it will be understood that this relates to the intersection of two vectors, where the first vector is based on the data obtained from the first camera and the second vector is based on the data obtained from second camera. Specifically, the values (x^y^ and (x2,y2) are first and second positions of the object in respective first and second frames captured from the first camera and the values (x3,y3) and(x4,y4) are first and second positions of the object in respective first and second frames captured from the second camera. If (y4 _ y3^x2 ~ ^i) - (¾ - ^3)(y2 - yj = 0 then the above intersection points are undefined, but this is of limited relevance as this will mean the respective vectors do not intersect. The corresponding object data (i.e. the points (xint,yint) and Ho (and SH)) can then be added to an in-memory target model for the moving object in a step S314. That is to say, this analysis identifies the moving object as a target. A track is then initialised for that object. The data corresponding to the latitude, longitude and height (and change in height) can then be stored in memory and used to initialise the analysis of that moving object. The further analysis may utilise data obtained from either of the first or second cameras. The object movement analysis module 204 is also configured to determine whether the target already exists in the model at that location or within a configurable tolerance of that location (e.g. 5-10 mm). If it does already exist then then the location of the target is updated and the track for that target object is updated with another point (this will be described in more detail later). This enables a track to be built up for each object identified as a target by the object movement analysis module 204. The track can then be used to classify the behaviour of the target object using the object behavioural classification module 300. We will now describe the composition of a track. A track comprises positional and height updates of a tracked object. It is updated each time a location of a target object changes (i.e. as fast as the video footage arrives at the object movement analysis module 204 which would typically be around 1 HZ) and this change could be represented as a change in latitude, longitude or altitude. The evolution of a track is monitored over a track window which is X updates wide. The track window can be aligned to any update in the track as long as there are enough updates to fill the window. If a track is larger than X updates wide then the track is truncated to the most recent X updates. If we consider a track window of 3 updates and a track of 5 updates then it can be defined in the following way: Track '. u1 ,u2,u3,u4,u5 Window^) u1,u2,u3 WindowiT) u2,u3,u4 WindowtS) u3,u4,u5 Where uN is the Nth update to the respective track and each comprises a (Laend) and end longitude (Loend) of the end point of the object in the nth respective frame and a respective altitude Hoot the object in the nth respective frame. That is to say, each update inside a track from the central processing unit contains a location in 3d space using latitude, longitude and altitude. So the track (and therefore window) in native data format may be described in the following way: Track: u1, u2, u3, u4, u5 That is to say, the above track has 5 updates where at least one of the latitude, longitude or altitude has changed relative to the previous update. That is, the altitude of the threatening object may change but the latitude and longitude may not, for instance, or vice versa. The track can have as many updates as is specified by the user or system or application. We are using an example with 5 updates for purposes of simplicity only. We then determine the relative heading and the relative height of a target object across a window. This is step S316. This is defined using the following equations: Rh,N = HEN+1 — Hen Where HEi is the heading value at position i in the track, it is based on the longitudinal and latitudinal components corresponding to the longitude and latitude at the ith position in the track. RH i is the relative heading of the target object at the ith position in the track. The values for HE i can be determined by first converting the corresponding latitude and longitude values at the ith position in the track into radians using the following equations: 71 La,i,rad 180 L A,end,i 71 Lo,i,rad 180 L O,end,i where LAendi and LO end i are the respective latitude and longitude of the object in the ith respective frame of the update ut as defined above. The change in longitude can then be defined as: &L,i Lo i rad Lq i_-^ rad where i >2 We then define a vertical heading value and a horizontal heading value using the respective equations below: Hvert,i £OS(LA i rad) j) Hhori,i £OS(LA i-i rad) Sin^L^ j,rad) Stn(L^,i-l,rad) COS(LAd rad) COS(<5^) The overall heading value corresponding to the ith position in the track can then be defined as: = tan-(^) ‘‘hori.i This value is in radians. We convert it into degrees using the following equation: _ 180 He,1 _ HE t rad 71 This value (the value in degrees) can then be used to calculate the relative heading across a track using the equation described above for calculating the relative heading of a target object. It is possible that the heading may be returned as a negative value but this is undesirable. In this instance, we would utilise the periodicity of the tan function and simply add 360 degrees to the value for HE before calculating the relative heading. The relative heading of a target object indicates the change in horizontal rotational direction of the front of the target object (i.e. a drone or an aircraft) (in degrees) The relative height can be defined as: Ra,N — ^N + l An Where At is the altitude of the target object (i.e. Ho i)at position i in the track. A specific caveat to the meaning of RH i is if the target object has not moved in respect of longitude and latitude. We can then assign a value of 360 to RH i. This is important where target objects are hovering. We can use these definitions of the relative heading and relative height to project the track and the window into a space defined by relative heading and relative height. A track will then be defined (under the projection) as follows: Track = ul(HE1 ,RA1),u2 (^HE 2, RA2),u3 ^e,3> (He,a> Ra,a) A window can be defined as (based on the previous definition of a window and then subsequently projected under the paradigm set out above): Window (1): ul(HE1 ,RA^,u2 (HE2,RA2) Window(2). u2 (^HE 2, RA2^,u3 (HE,3> RA,z) Window(3): u3 (HE 3,Ra ^,u4 That is to say, each window becomes an array of 2D arrays where each array is defined by a relative heading and a relative altitude. These windows can be remapped by altering the maximum size of each track and then re-processing the track. Having defined the relative heading and the relative height, it is now appropriate to describe how we train the convolutional neural networks which will be used to classify the target object and its behaviour. Adjusting (through re-mapping or otherwise, e.g. through changing the window size) the window size and the maximum size of each track can be used to generate training data sets with a specific window size per training set. Two convolutional neural networks will be used to classify the target object and its behaviour. The first convolutional neural network will be implemented using the object identification module 302. The second convolutional neural network will be implemented using the behaviour classification module 304. These convolutional neural networks will form part of the object behavioural classification module 300. The object behaviour classification module will also comprise a data interface 308 where input will be received (this will be described later). It is entirely possible that different window sizes will be required for each of the convolutional neural networks. Using two different convolutional neural networks with two different window sizes also ensures we can maintain a contextual difference in that object recognition can be maintained as independent from behaviour classification, i.e. ensure an independent comparison between drones and birds and the surveillance behaviour. For example, if an object resembles a bird, but is a drone disguised as a bird and programmed to move like a bird, it can be identified as a target if its behaviour indicates it is a threat. Convolutional neural networks (CNNs) are used to infer the threat and surveillance characteristics of the target object using the behaviour classification module 304. CNNs can also be hardware or software based and can also use a variety of topologies and learning algorithms. A CNN usually comprises at least one convolutional layer where a feature map is generated by the application of a kernel matrix to input data (in this case a window of track updates). The at least one convolutional layer is followed by at least one pooling layer and a fully connected layer, which deploys a multilayer perceptron which comprises at least an input layer, at least one hidden layer and an output layer. The at least one hidden layer applies weights to the output of the pooling layer to determine an output prediction. The CNN implemented by the behaviour classification module 304 is trained using forward / backward propagation. Days of drone footage will be obtained where drones are flown in pre-agreed flight patterns which are recognised by appropriate authorities (e.g. military and security service) to constitute threatening behaviour. Additionally, drone footage will be obtained where drones are flown in non-threatening flight patterns. Tracks of the drone footage are then obtained in accordance with the paradigm set out above and the tracks are mapped to a window size selected for the CNN. The tracks will be mapped to surveillance scores and threat scores during the training. That is to say, the input will be the window derived from the updated track (i.e. based on relative heading and relative height) and the output is a score. Bird related video data is also used and is similarly mapped to surveillance and threat scores. That is to say, the behaviour classification module 304 is trained by generating track and window data for various airborne objects and then mapping that track and window data (as an input to the CNN) to threat and surveillance scores in order to optimise the t least one convolutional layer, the at least one pooling layer and the fully connected layer . The CNN implemented by the object identification module 302 is trained similarly using forward / backward propagation where tracks of drones (being flown in threatening and non-threatening flight patterns) and tracks of birds are mapped to a window as an input to the CNN and this is trained on outputs which identify birds or drones (or other airborne objects if they are of interest). This trains the CNN implemented by the object identification module 302 to identify airborne objects based on the window data which can be derived from the tracks obtained from the video footage captured by the first and second cameras. That is to say, the CNN implemented by the object identification module 302 is trained using one or more tracks or window updates which can be taken from sensor data captured from an airspace. The tracks and / or window updates describe multiple types of dynamic behavior of a respective object. The dynamic behaviour of an object may relate to the relative heading and / or relative altitude of the identified object. Each of the at least one convolutional layers is configured to generate a feature map using a kernel matrix which detects a feature in the provided track or window update, e.g. an edge . Where the CNN is used for behaviour classification (in terms of both threat and / or surveillance characteristics), the kernel matrix may be configured to detect at least one track or window update characteristic which indicate changes in latitude and / or longitude and / or altitude which are indicative of specific behavioural characteristics. This may be implemented using changes in relative heading or relative altitude across a window of track updates. These behavioural characteristics may indicate surveillance characteristics such as, for example, an airborne object carrying out stand-off surveillance by exhibiting a flat constant speed into the field of view but avoiding any geofenced areas or an airborne object hovering for long periods. These behavioural characteristics may indicate pre-attack surveillance where there is flat constant speed toward a geo-fence but no breach or a shorter hovering time or a retreat on the same path as entry or crabbing behaviour or repetition of other behaviours. The behavioural characteristics may indicate vertical load deployment such as, for example, high speed flat flight, sudden stop, slight descend, fidgeting, hovering, slight ascend, high speed departure. The behavioural characteristics may indicate hit-ile behaviour such as, for example, a medium speed flat inward flight, a hard turn, sudden acceleration or constant angle descent. The behavioural characteristics may indicate arc-attack hit-ile behaviour such as, for, example, medium speed flat inward flight, arcing on the downward turn or full acceleration. The behavioural characteristics may indicate prison drop behaviour such as a medium flat inward flight, sudden speed changes, horizontal and / or vertical fidgeting (to hunt for the correct deployment site), hovering, sudden climbing and speedy departures. That is to say, the CNN may be trained to identify the behavioural characteristics by generating training data indicative of these behaviour characteristics, i.e. fast or slow changes in the relative heading (which may be relative to a relative heading threshold), high or low values of the relative heading (which may be relative to a relative heading threshold), fast or slow changes in the relative altitude (which may be relative to an altitude threshold) or high or low values of the relative altitude (which may be relative to an altitude threshold). With regard to a feature map, these may be illustrated using transitions in respective track updates which show vertical or horizontal changes in heading or altitude (which can be interpreted as vertical or horizontal lines in an input track) and the convolutional layer is trained to identify these features (and / or other features) in the input track by using forward / backward propagation to match these features in an input track to respective behaviour characteristics. Where the CNN is used for object identification, the feature or features may represent characteristics of the track which can be used to identify an airborne object. That is, the characteristics of the objects flight pattern which can be associated with the identity of the object. In the case of, for example, a drone, these may be periods of constant heading with no changes in altitude, hovering (i.e. little or no change in heading or altitude), changes in only altitude or changes in heading over a threshold number of degrees with no changes in altitude. Similarly, the CNN may be trained to identify non-threatening behavioural characteristics in a similar way by training the convolutional layer to identify features in an input track which are indicative of those behavioural characteristics, i.e. slow, flat flight patterns. We will now describe, with reference to Figure 5, how the track data captured from target objects can be used to identify an airborne object and then classify its threat and surveillance characteristics. In a step S400, window data relating to a target object is received from the object movement analysis module 204. In a simple example where the window size (as above) is just 3, the data may be received as the following: Window: ul(HE1,RA1),u2 ^HE)2,RA2) This is evidently a simplified example and it will be understood that window sizes may be larger than 3. The window size of three may be specific to the behaviour classification module 304 and a larger window size may be required for the object identification module 302. More window data may be provided in that case and the received data may look more like (for example where the window size for the object identification may be 5. Window. ul(HE1 ,Ra1),u2 (He 2, Ra,2)- ui (^HE 3, RA 3), u4 (HEA, Ra,a) This data is then provided to the data interface 308. This is step S402. The data interface 308 separates the window data into the number of points required for each of the CNNs implemented by the object identification module 302 and the behaviour classification module 304. In the simple illustrated example, this would mean that 141,142,143 and u4 are provided to the object identification module 302 and only 14I and 142 are provided to the behaviour classification module 304. The respective object identification module 302 and the behaviour classification module 304 then provide the output they are trained to provide, That is, an object identification (e.g. bird or drone) and scores indicative of both threat and surveillance. That is to say, a drone which is flying in a pattern which is indicative of surveillance would be identified as a drone and given a higher score for surveillance than for threat. However, a drone which is flying in a pattern indicative of an attack would be given a higher score than for surveillance. However, if the airborne object was identified as being a bird such as a pigeon or a sparrow, it would be identified as a bird and given a low score for both surveillance and threat. This output is provided in step S404. The 20 output from the object identification module 302 and the behaviour classification module 304 may be provided separately, subsequently or contemporaneously or substantially contemporaneously. If the threat score exceeds a threshold suggesting that the target object is a threat, an alert may be generated by the processing resource 100 and transmitted to an external entity, such as a mobile computing device. This is step S406. The footage corresponding to the target object may be obtained and transmitted to secure storage. If the surveillance score exceeds a threshold indicating that the target object is surveying the airspace, or at least the ground around the airspace, an alert may be generated by the processing resource 100 and transmitted to an external entity. The footage corresponding to the target object may be obtained and transmitted to secure storage. In summary, the described embodiment enables the detection tracking and identification or airborne objects and then uses convolutional neural networks to determine which objects are a threat and which ones are not. This can then be used to provide situational awareness to an operator so that can make decisions about which actions to take. It should be noted that the above-mentioned aspects and embodiments illustrate rather than limit the disclosure, and that those skilled in the art will be capable of designing many alternative embodiments without departing from the scope of the disclosure as defined by the appended claims. In the claims, any reference signs placed in parentheses shall not be construed as limiting the claims. The word "comprising" and "comprises", and the like, does not exclude the presence of elements or steps other than those listed in any claim or the specification as a whole. In the present specification, “comprises” means “includes or consists of” and “comprising” means “including or consisting of”. The singular reference of an element does not exclude the plural reference of such elements and vice-versa. The disclosure may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Claims
1. A computer implemented method for object and behaviour classification of an airborne object, the method implemented by a processing resource, the method comprising:receiving from two or more sensor modules directed at a target airspace, sensor data relating to a target airspace ;processing, via a processing device, the sensor data to obtain data indicative of an airborne object within the target airspace;determining an object type to associate with the airborne object, the object type being an identity of the object; anddetermining a behavioural classification to associate with the behaviour of the airborne object, the behavioural classification comprising:a threat score indicative of threatening behaviour of the object; ora surveillance score indicative of surveillance behaviour of the object.
2. The method of claim 1, wherein the sensor data comprises a plurality of image frames of the target airspace over a predetermined period of time from each of the two or more sensors.
3. The method of claim 2, wherein processing the sensor data to obtain data indicative of an object comprises:utilising edge detection to identify an object in each of the plurality of frames;determining a position of the object within the frame;comparing the position of the object between the plurality of frames to determine a movement distance of the object; andif the position of the object has not changed, removing the object from the plurality of frames;if the movement distance is within a predetermined threshold distance, identifying the object as a moving object and storing the new location of the moving object; andif the movement distance has exceeded the predetermined threshold, identifying the object as a new object different from the object.
4. The method of Claim 3, wherein the movement distance is determined based on a calculation of a Euclidean distance between the position of the object across the plurality of frames.
5. The method of Claim 3 or Claim 4, wherein the plurality of frames comprises a number of frames specified by a user.
6. The method of any one of claims 3 to 5, wherein if the object is identified as a moving object, the method further comprises:determining a three-dimensional (3D) vector originating at the latitude, longitude and altitude of the location of each of the two or more sensors; andcalculating an azimuth and an elevation of the object relative to an azimuth and an elevation of each of the two or more sensors.
7. The method of claim 1, wherein determining the object type comprises utilising a trained object determination model.
8. The method of claim 7, wherein the trained object determination model is trained using input-output labelled data sets wherein forward-backward propagation is used to train an object determination model to identify an object.
9. The method of any preceding claim, wherein the determination of a behavioural classification comprises the application of a behavioural classification model trained to determine the threat score and to determine the surveillance score.
10. The method of Claim 9, wherein the training comprises using input-output data sets to match input data to both behaviour of an airborne object and surveillance characteristics of an airborne object.
11. The method of Claim 9 or Claim 10, wherein the determination of a threat score and the determination of a surveillance score comprise the application of first and second distinct trained models.
12. The method of any preceding claim, wherein the determination of a behavioural classification is associated with a calculation of the relative heading of the object.
13. The method of Claim 12, wherein the relative heading is calculated using the formula:Rh,N = HEN+1 — HenWhere HEi is the heading value at position i in the track and RH i is the relative heading of the target object at the ith position in the track.
14. The method of Claim 12 or Claim 13, wherein the relative adjustment in height is calculated using the formula:Ra,N = ^N + l — AnWhere At is the altitude of the target object at position i in the track.
15. The method of any one of Claims 12 to 14, wherein the relative heading and the relative adjustment in height are determined across a window comprising a plurality of frames.
16. The method of any preceding claim, wherein the object type is one of a drone or a bird.
17. The method of any preceding claim wherein the sensor data is received from at least two imaging modules directed at a target airspace.
18. A drone classification system comprising:a processing device;a memory device;a processing medium configured to implement the method of any one of Claims 1 to 17.
19. A system comprising:a processing device;a memory device;a processing medium configured to implement the method of any one of Claims 1 to 17.
20. A computer readable medium comprising instructions which, when executed by a processing resource, implement the steps of any one of Claims 1 to 17.
