Detailed Description
Exemplary embodiments of the present disclosure are described below in conjunction with the accompanying drawings, which include various details of the embodiments of the present disclosure to facilitate understanding, and should be considered as merely exemplary. Accordingly, one of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the present disclosure. Also, descriptions of well-known functions and constructions are omitted in the following description for clarity and conciseness.
Fig. 1 is an application scenario diagram of a method and apparatus for determining event authenticity according to an embodiment of the present disclosure.
It should be noted that fig. 1 is only an example of a system architecture to which embodiments of the present disclosure may be applied to assist those skilled in the art in understanding the technical content of the present disclosure, but does not mean that embodiments of the present disclosure may not be used in other devices, systems, environments, or scenarios.
As shown in fig. 1, a system architecture 100 according to this embodiment may include terminal devices 101, 102, 103, a network 104, and a server 105. The network 104 is used as a medium to provide communication links between the terminal devices 101, 102, 103 and the server 105. The network 104 may include various connection types, such as wired and/or wireless communication links, and the like.
The user may interact with the server 105 via the network 104 using the terminal devices 101, 102, 103 to receive or send messages or the like. The terminal devices 101, 102, 103 may be a variety of electronic devices having a display screen and supporting web browsing, including but not limited to smartphones, tablets, laptop and desktop computers, and the like.
The server 105 may be a server providing various services, such as a background management server (by way of example only) providing support for websites browsed by users using the terminal devices 101, 102, 103. The background management server may analyze and process the received data such as the user request, and feed back the processing result (for example, the authenticity of the target event determined according to the event information and the map) to the terminal device.
It should be noted that the method for determining the authenticity of an event provided by the embodiments of the present disclosure may be generally performed by the server 105. Accordingly, the means for determining the authenticity of an event provided by embodiments of the present disclosure may be generally provided in the server 105. The method of determining the authenticity of an event provided by the embodiments of the present disclosure may also be performed by a server or a cluster of servers other than the server 105 and capable of communicating with the terminal devices 101, 102, 103 and/or the server 105. Accordingly, the means for determining the authenticity of an event provided by the embodiments of the present disclosure may also be provided in a server or a server cluster different from the server 105 and capable of communicating with the terminal devices 101, 102, 103 and/or the server 105.
It should be understood that the number of terminal devices, networks and servers in fig. 1 is merely illustrative. There may be any number of terminal devices, networks, and servers, as desired for implementation.
Fig. 2 is a schematic flow chart of a method of determining event authenticity according to an embodiment of the disclosure.
As shown in FIG. 2, the method 200 of determining the authenticity of an event may include operations S210-S230.
In operation S210, event information related to a target event is determined.
The target event may include a violation event during vehicle travel, such as a vehicle reversing, a parking violation, a throwing, a driver unbelting, and the like.
The event information may include at least one of event location information, vehicle information, time information, type information, and camera information. The event location information indicates a target event occurrence location, such as an intersection, a road, GPS (global positioning system) coordinates, etc., where the target event occurs. The vehicle information indicates a vehicle in which the target event occurs, and the vehicle information may include at least one of a vehicle identification, a license plate number, a vehicle body color, a vehicle model number, a vehicle brand, and vehicle coordinates. The time information may represent the time when the target event occurred. The type information may indicate a type of the target event, such as a vehicle reverse event being one type and a parking violation event being another type. The image capturing device information may indicate information about the image capturing device capturing the vehicle occurrence of the target event, and may include at least one of an identification of the image capturing device and a physical position of the image capturing device, and the physical position of the image capturing device may be indicated by using GPS coordinates of the image capturing device or by using an area in which the image capturing device is located.
The video data captured by the image capturing device may be processed using a target event detection algorithm, for example, the target event detection algorithm extracts multiple frames of images from the video data, and then processes the multiple frames of images to obtain event information. A variety of target event detection algorithms may be used to determine event information, which is not limited by the present disclosure.
In operation S220, a plurality of association nodes associated with the event information are determined from a plurality of nodes of the graph according to the event information and the graph. The plurality of nodes may include a plurality of image pickup device nodes, any two image pickup device nodes satisfying a predetermined position condition among the plurality of image pickup device nodes being connected via an edge.
The graph may include a plurality of nodes and a plurality of edges, and the graph may be stored using a graph database, which may be JanusGraph.
The plurality of nodes in the map may also include vehicle nodes, which may represent vehicles that have occurred the target event. For the case that the association node is a vehicle node, the association of the association node with the event information may indicate that the vehicle represented by the vehicle node has a target event. In some embodiments, the plurality of nodes in the map may not include vehicle nodes, but only camera nodes, which may represent cameras for capturing video data.
In the case where the association node is an image pickup device node, the association node and the event information may indicate that the image pickup device indicated by the image pickup device node picks up the target event, or may indicate that the image pickup device a indicated by the image pickup device node is located in the vicinity of the image pickup device b picking up the target event. For example, the distance between the image pickup device a and the image pickup device b is smaller than a distance threshold (for example, 10 meters), or the image pickup device a and the image pickup device b are located in the same predetermined area (for example, at the same intersection).
In the embodiment of the disclosure, the condition that any two image capturing device nodes meet the predetermined position condition may indicate that the physical position of the first image capturing device is located near the physical position of the second image capturing device in the two image capturing devices represented by the two image capturing device nodes.
In one example, the predetermined location condition includes that the physical locations of two cameras represented by any two camera nodes are in the same area. The regions may be divided according to intersections, for example, each intersection in a road network may be determined as one region. The regions may be divided according to roads, for example, the same road may be determined as one region. The areas may be divided according to distances, for example, a circular area centered on the physical position of one image pickup device and having a radius of a predetermined radius may be determined as one area.
In another example, the predetermined location condition includes that physical locations of two cameras represented by any two camera nodes are in two adjacent areas. For example, each intersection in the road network is determined as one region, and two adjacent regions may be two adjacent intersections. For example, the same road is determined as one area, and two adjacent areas may be two adjacent roads, such as a main road and a subsidiary road.
In another example, the predetermined location condition includes a distance between physical locations of two cameras represented by any two camera nodes being less than or equal to a distance threshold.
In the embodiment of the disclosure, when one image capturing device located in a certain area captures a target event of a vehicle, other image capturing devices located in the area or nearby area capture video data in the running process of the vehicle, and the video data can provide references for determining whether the target event of the vehicle occurs, so that any two image capturing device nodes meeting the predetermined position condition can be connected by using edges in a map, and further, connection between two image capturing devices represented by any two image capturing device nodes is established, thereby improving accuracy of determining the target event.
In operation S230, the authenticity of the target event is determined according to the plurality of association nodes.
It should be noted that, the target event detection algorithm has some misjudgment rate, for example, misjudgment of the situation that the vehicle is running normally as a reverse event. The authenticity may represent the accuracy of the target event.
In some technical schemes, after the target event detection algorithm determines that the vehicle has a violation event, the violation event can be pushed to a manager, the manager watches a video related to the vehicle violation event, and whether the violation event determined by the target event detection algorithm is correct or not is checked manually.
Compared with the technical scheme checked by the manager, the technical scheme provided by the embodiment of the disclosure determines whether the target event is correct or not through the map and the event information, so that the workload of the manager can be reduced, and the labor cost is reduced.
In practical application, taking an example that the target event detection algorithm is an algorithm for detecting a reverse running event of a vehicle, if it is determined that the target event is a real event, it means that the target event determined by the target event detection algorithm is correct, that is, the reverse running event of the vehicle occurs. Event information related to the retrograde event can be pushed to the traffic management department, so that the traffic management department can conveniently process the retrograde event. If the target event is determined to be an unreal event, namely the vehicle does not generate a retrograde event, the target event detection algorithm misjudges the normal running condition of the vehicle as the retrograde event. Event information related to the reverse event may not be pushed to the traffic management.
According to another embodiment of the present disclosure, the operation of determining a plurality of association nodes associated with event information from a plurality of nodes of a map according to the event information and the map may include an operation of previously setting a physical location of an image capturing device as tag information or attribute information of the image capturing device node for each image capturing device node included in the map. Then, the tag information and the attribute information of each of the plurality of nodes in the map are traversed, a plurality of camera nodes whose physical positions are located in the vicinity of the position indicated by the event position information are determined therefrom, and the plurality of camera nodes are determined as a plurality of associated nodes.
According to another embodiment of the present disclosure, the determining a plurality of association nodes associated with the event information from among a plurality of nodes of the map according to the event information and the map may include determining a node of the plurality of nodes, in which attribute information or tag information is matched with the event information, as a first association node of the plurality of association nodes. And then determining the nodes, of which the edge paths between the nodes and the first association node are smaller than or equal to the edge path threshold value, as second association nodes of the association nodes in the map.
Nodes in the graph may include at least one of tag information and attribute information.
For camera nodes in the map, in one example, the identity of the camera may be set as tag information for the camera node. In another example, the physical location of the image capturing apparatus may be set as tag information or attribute information of the image capturing apparatus node, and may include at least one of an area in which the image capturing apparatus is located and GPS coordinates of the image capturing apparatus. In another example, other information such as resolution, angle of view, and the like may be set as the attribute information of the image pickup device node.
Matching the attribute information or tag information of the camera node with the event information may include at least one of the physical location of the camera being the same as the event location information included in the event information and the identity of the camera being the same as the identity of the camera included in the event information.
For the vehicle nodes in the map, in one example, any one of the identification of the vehicle, the license plate number, the vehicle body color, the vehicle model number, the vehicle brand, the vehicle coordinates, and the type information of the target event may be set as the tag information or the attribute information of the vehicle nodes. For example, a license plate number is set as tag information, and a vehicle body color is set as attribute information.
The matching of the attribute information or the tag information of the vehicle node with the event information may include that a license plate number of the vehicle represented by the vehicle node is identical to the vehicle information included in the event information.
In the case where it is determined that at least one of the image pickup device node and the vehicle node matches the event information, the image pickup device node and the vehicle node may be searched in the map, and the searched image pickup device node and vehicle node may be determined as the first association node. And then traversing the map by taking each first association node as a starting point and taking a preset edge path as a traversing range, and searching for a second association node.
The predetermined edge path represents the number of edges connecting between the first and second association nodes in the graph, and may be, for example, 2 to 10. The specific value of the predetermined side path may be determined according to the type of the target event detection algorithm, for example, the target event detection algorithm is an algorithm for detecting reverse travel of the vehicle, the predetermined side path may be 4, the target event detection algorithm is an algorithm for detecting illegal parking of the vehicle, and the predetermined side path may be 3.
According to the technical scheme provided by the embodiment of the disclosure, the first association node is determined firstly, then the second association node is determined according to the preset edge path, and each node in the map does not need to be traversed, so that the efficiency of determining the association node is improved, and the required computing resources are reduced.
According to another embodiment of the present disclosure, the plurality of nodes in the graph may include a plurality of vehicle nodes, each of the plurality of vehicle nodes being connected to one of the plurality of camera nodes via an edge.
The image pickup device node and the vehicle node are connected through the edge, wherein the image pickup device indicated by the image pickup device node picks up the vehicle occurrence target event indicated by the vehicle node.
For example, three image capturing devices capture that the same vehicle is in a reverse driving event, in the map, the three image capturing devices respectively correspond to one image capturing device node, the three image capturing device nodes are respectively connected to one vehicle node via edges, the three vehicle nodes have the same tag information or attribute information (for example, license plate number), and the three vehicle nodes represent the same vehicle.
According to the technical scheme provided by the embodiment of the disclosure, the vehicle node is established for the vehicle with the target event, so that the authenticity of the target event can be determined according to the vehicle node, and the processing process is simplified.
According to another embodiment of the present disclosure, in the case where the plurality of nodes in the map include vehicle nodes, the event information includes vehicle information representing the target vehicle, and the operation of determining the authenticity of the target event according to the plurality of associated nodes may include at least one of the following two operations.
In one example, the first operation includes determining that the target event is a real event if a number of vehicle nodes representing the target vehicle is greater than or equal to a number threshold among the plurality of association nodes. For example, it may be determined whether the vehicles represented by the respective vehicle nodes are the same target vehicle based on the attribute information of the respective vehicle nodes. For example, the number threshold may be 4.
In another example, the second operation includes determining that the target event is a real event in a case where it is determined that a ratio between a number of vehicle nodes representing the target vehicle and a number of the plurality of association nodes is equal to or greater than a ratio threshold. For example, the ratio threshold may be 0.6.
Both the above operations may indicate that a target event occurs in a vicinity of a position where the target event occurs, where a plurality of image capturing devices capture the target event, for example, 4 image capturing devices capture a reverse event in the same vehicle, and the authenticity of reverse travel of the vehicle is high.
The technical scheme provided by the embodiment of the disclosure can determine the authenticity of the target event according to the number of the vehicle nodes, and the authenticity determination process is simple, convenient and high in accuracy.
According to another embodiment of the present disclosure, the plurality of nodes in the map may not include vehicle nodes.
In the case where the plurality of nodes in the map do not include the vehicle node, the authenticity of the target event can be determined by the following operations. For example, in the case where it is determined that the imaging device has captured the vehicle and the target event has occurred, tag information or attribute information may be set for the imaging device node that captured the target event, and the attribute information may include, for example, vehicle information of the target vehicle in which the target event has occurred, such as a license plate number of the target vehicle. A plurality of association nodes may then be determined from the plurality of camera nodes in the atlas. And then, counting attribute information of the plurality of association nodes, and determining the association node including the vehicle information of the target vehicle in the attribute information as a reference node. And then determining that the target event is a real event in the case that the number of the reference nodes is determined to be greater than or equal to the number threshold, or in the case that the ratio between the number of the reference nodes and the number of the plurality of associated nodes is determined to be greater than or equal to the ratio threshold. For example, the ratio threshold may be set to 0.6.
According to another embodiment of the present disclosure, in response to detecting that a start condition is satisfied, an operation of determining a plurality of association nodes associated with event information from a plurality of nodes of a graph according to the event information and the graph is performed. The start-up condition may include at least one of the following three start-up conditions.
In one example, the first initiation condition includes a utilization of the predetermined resource data being equal to or less than a utilization threshold.
It should be noted that, the operation of determining the association node and the operation of determining the authenticity of the target event from the plurality of nodes each require the use of predetermined resource data configured by the server, for example, at least one of the GPU and the CPU configured by the server. Grafana (an open source metric analysis and visualization tool) monitoring platform may be used to monitor the utilization of a predetermined resource of the server.
The first start-up condition may specifically include, for example, at least one of a GPU usage rate of 60% or less and a CPU usage rate of 50% or less.
The technical scheme provided by the example executes the operation of determining a plurality of association nodes from a plurality of nodes under the condition that the utilization rate of the preset resource data is smaller than the utilization rate threshold value, so that the utilization rate of the preset data resource configured by the server is improved. In addition, when the target event detection algorithm is operated by using the preset resource data, the technical scheme provided by the example can also ensure that the server has more resources to operate the target event detection algorithm, so that the normal operation of the target event detection algorithm is ensured.
In another example, the second start condition includes a duration greater than or equal to a duration threshold, the duration being a duration in which the usage of the predetermined resource data is less than or equal to the usage threshold.
For example, the duration threshold may be 15 minutes. The duration time being greater than or equal to the duration threshold value indicates that the server is in an idle state.
In another example, the third start-up condition includes the current time being within a predetermined period of time based on the day. The predetermined period may be a period at night, for example, 23 hours to 5 hours. Because the light is poor at night, the definition of the video data shot by the camera device can be reduced, so that the misjudgment rate of a target event detection algorithm is increased, and the accuracy of the target event can be improved by determining the authenticity of the target event. In addition, vehicles are fewer at night, the calling times of the target event detection algorithm and the used preset resource data are reduced, and the utilization rate of the preset resource data can be improved by determining the authenticity of the target event.
Fig. 3 is a schematic diagram of an atlas according to an embodiment of the disclosure.
The circles in fig. 3 represent nodes, the characters inside the circles represent names of the nodes, and the straight lines connecting the two nodes represent edges.
Fig. 3 relates to 6 intersections and 8 cameras. The 6 intersections are sequentially distributed along the road direction, the camera node n_m1 represents the camera M1 installed at the first intersection, the camera nodes n_m2_1 and n_m2_2 represent the two cameras m2_1 and m2_2 installed at the second intersection, the camera node n_m3 represents the camera M3 installed at the third intersection, and the camera node n_m4 represents the camera M4 installed at the fourth intersection. The image pickup device nodes n_m5_1 and n_m5_2 represent two image pickup devices m5_1 and m5_2 installed at the fifth intersection. The image pickup device node n_m6 represents the image pickup device M6 installed at the sixth intersection.
The plurality of camera nodes are connected according to the following rule that any two cameras positioned at two adjacent intersections are connected through edges, and any two cameras positioned at the same intersection are connected through edges.
FIG. 3 also relates to vehicles with 3 events, vehicle nodes N_C1_1, N_C1_2, and N_C1_3 representing the same vehicle C1 with a target event (e.g., a reverse event), and vehicle node N_C2 representing vehicle C2 with a target event (e.g., a parking violation event). The vehicle node n_c3 represents the vehicle C3 that has a target event (e.g., a driver unbelted event).
The image pickup device node and the vehicle node are connected through the edge, and the image pickup device represented by the image pickup device node picks up the object event of the vehicle represented by the vehicle node. For example, the three image pickup devices MI, m2_1, and m2_2 pick up a reverse event of the vehicle C1, the image pickup device m2_1 picks up a parking violation event of the vehicle C2, and the image pickup device m5_1 picks up an unbelted event of the driver of the vehicle C3.
The process of determining the authenticity of the target event will be described below taking the example where the target event is the unbelted event of the driver related to the vehicle C3 described above.
The intersection where the image pickup device is located may be set as tag information of the image pickup device node, and the license plate number of the vehicle may be set as attribute information of the vehicle node.
Event information related to the target event may be determined. For example, the video data of the camera device is processed by using a target event detection algorithm to obtain the unbelted event of the driver and event information related to the event, wherein the event information can include event position information, such as a fifth intersection, and the event information can also include vehicle information, such as a license plate number of the vehicle C3.
A plurality of association nodes associated with the event information may be determined from a plurality of nodes of the graph based on the event information and the graph. For example, the image pickup device node n_m5_1 may be found from the map based on the event position information, and the vehicle node n_c3 may be found from the map based on the vehicle information. The image pickup device node n_m5_1 and the vehicle node n_c3 are respectively used as the first association nodes described above, and each first association node is used as a starting point, and traversal is performed with the predetermined edge path being 3 to determine the second association node. The first association node and the second association node are determined as a plurality of association nodes including 8 nodes in total of the image pickup device nodes n_m2_1, n_m2_2, n_m3, n_m4, n_m5_1, n_m5_2, n_m6, and the vehicle node n_c3.
The authenticity of the target event may then be determined based on the plurality of association nodes. For example, the ratio between the number of vehicle nodes at which the target event occurs and the number of plurality of associated nodes is calculated to result in a ratio of 0.125, which is less than a ratio threshold (e.g., 0.6), thus determining the driver unbelted event as a non-real event.
Fig. 4 is a schematic block diagram of an apparatus for determining event authenticity according to an embodiment of the disclosure.
As shown in fig. 4, the apparatus 400 for determining the authenticity of an event may include an event information determination module 410, an association node determination module 420, and an authenticity determination module 430.
The event information determination module 410 is configured to determine event information related to a target event.
The association node determining module 420 is configured to determine, from the event information and the map, a plurality of association nodes associated with the event information from a plurality of nodes of the map, where the plurality of nodes include a plurality of camera nodes, and any two camera nodes of the plurality of camera nodes satisfy a predetermined position condition are connected via an edge.
The authenticity determination module 430 is configured to determine the authenticity of the target event according to the plurality of association nodes.
According to another embodiment of the present disclosure, the predetermined position condition includes one of physical positions of two image pickup devices represented by any two image pickup device nodes being in a same area and physical positions of two image pickup devices represented by any two image pickup device nodes being in two adjacent areas.
According to another embodiment of the present disclosure, the association node determining module includes a first association node determining sub-module and a second association node determining sub-module. The first association node determining submodule is used for determining a node, of the plurality of nodes, of which the attribute information or the label information is matched with the event information, as a first association node of the plurality of association nodes. The second association node determining submodule is used for determining nodes, among the plurality of nodes, of which the edge paths with the first association node are smaller than or equal to an edge path threshold value as second association nodes among the plurality of association nodes in the map.
According to another embodiment of the present disclosure, the operation of the association node determining module is performed in response to detecting that one of a utilization rate of the predetermined resource data is equal to or less than a utilization rate threshold, a duration time period is equal to or greater than a duration time threshold, the duration time period being a time period during which the utilization rate of the predetermined resource data is equal to or less than the utilization rate threshold, and the current time is within a predetermined time period based on days.
According to another embodiment of the present disclosure, the plurality of nodes further includes a plurality of vehicle nodes, each of the plurality of vehicle nodes is connected to one of the plurality of camera nodes via an edge, and the camera represented by the one camera node captures a target event of the vehicle represented by each of the plurality of vehicle nodes.
According to another embodiment of the present disclosure, the event information includes vehicle information representing a target vehicle, and the authenticity determination module includes at least one of a first authenticity determination sub-module and a second authenticity determination sub-module. The first authenticity determination submodule is used for determining that the target event is an actual event when the number of vehicle nodes representing the target vehicle is larger than or equal to a number threshold value in the plurality of association nodes. The second authenticity determination submodule is used for determining that the target event is an actual event when the ratio between the number of vehicle nodes representing the target vehicle and the number of the plurality of association nodes is larger than or equal to a ratio threshold value.
In the technical scheme of the disclosure, the related processes of collecting, storing, using, processing, transmitting, providing, disclosing and the like of the personal information of the user accord with the regulations of related laws and regulations, and the public order colloquial is not violated.
In the technical scheme of the disclosure, the authorization or consent of the user is obtained before the personal information of the user is obtained or acquired.
According to embodiments of the present disclosure, the present disclosure also provides an electronic device, a readable storage medium and a computer program product.
Fig. 5 illustrates a schematic block diagram of an example electronic device 500 that may be used to implement embodiments of the present disclosure. Electronic devices are intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The electronic device may also represent various forms of mobile devices, such as personal digital processing, cellular telephones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the disclosure described and/or claimed herein.
As shown in fig. 5, the apparatus 500 includes a computing unit 501 that can perform various suitable actions and processes according to a computer program stored in a Read Only Memory (ROM) 502 or a computer program loaded from a storage unit 508 into a Random Access Memory (RAM) 503. In the RAM503, various programs and data required for the operation of the device 500 can also be stored. The computing unit 501, ROM 502, and RAM503 are connected to each other by a bus 504. An input/output (I/O) interface 505 is also connected to bus 504.
The various components in the device 500 are connected to an I/O interface 505, including an input unit 506, e.g., a keyboard, a mouse, etc., an output unit 507, e.g., various types of displays, speakers, etc., a storage unit 508, e.g., a magnetic disk, optical disk, etc., and a communication unit 509, e.g., a network card, modem, wireless communication transceiver, etc. The communication unit 509 allows the device 500 to exchange information/data with other devices via a computer network such as the internet and/or various telecommunication networks.
The computing unit 501 may be a variety of general and/or special purpose processing components having processing and computing capabilities. Some examples of computing unit 501 include, but are not limited to, a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), various specialized Artificial Intelligence (AI) computing chips, various computing units running machine learning model algorithms, a Digital Signal Processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 501 performs the various methods and processes described above, such as a method of determining the authenticity of an event. For example, in some embodiments, the method of determining the authenticity of an event may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 508. In some embodiments, part or all of the computer program may be loaded and/or installed onto the device 500 via the ROM 502 and/or the communication unit 509. When the computer program is loaded into RAM 503 and executed by the computing unit 501, one or more steps of the method of determining the authenticity of an event described above may be performed. Alternatively, in other embodiments, the computing unit 501 may be configured to perform the method of determining the authenticity of an event in any other suitable way (e.g. by means of firmware).
Various implementations of the systems and techniques described here above may be implemented in digital electronic circuitry, integrated circuit systems, field Programmable Gate Arrays (FPGAs), application Specific Integrated Circuits (ASICs), application Specific Standard Products (ASSPs), systems On Chip (SOCs), complex Programmable Logic Devices (CPLDs), computer hardware, firmware, software, and/or combinations thereof. These various embodiments may include being implemented in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be a special or general purpose programmable processor, operable to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
Program code for carrying out methods of the present disclosure may be written in any combination of one or more programming languages. These program code may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus such that the program code, when executed by the processor or controller, causes the functions/operations specified in the flowchart and/or block diagram to be implemented. The program code may execute entirely on the machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.
In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. The machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices may also be used to provide for interaction with a user, for example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user may be received in any form, including acoustic input, speech input, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a background component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such background, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a Local Area Network (LAN), a Wide Area Network (WAN), and the Internet.
The computer system may include a client and a server. The client and server are typically remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
It should be appreciated that various forms of the flows shown above may be used to reorder, add, or delete steps. For example, the steps recited in the present disclosure may be performed in parallel or sequentially or in a different order, provided that the desired results of the technical solutions of the present disclosure are achieved, and are not limited herein.
The above detailed description should not be taken as limiting the scope of the present disclosure. It will be apparent to those skilled in the art that various modifications, combinations, sub-combinations and alternatives are possible, depending on design requirements and other factors. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present disclosure are intended to be included within the scope of the present disclosure.