System and method for improving searches using completeness metrics

By computing a completeness metric and defining a search update condition based on expected video streams, the system ensures accurate and efficient video search results by optimizing updates to include only relevant data, addressing the issue of incomplete video stream availability.

AU2023478216A1Pending Publication Date: 2026-07-09MOTOROLA SOLUTIONS INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
AU · AU
Patent Type
Applications
Current Assignee / Owner
MOTOROLA SOLUTIONS INC
Filing Date
2023-12-29
Publication Date
2026-07-09

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

An example method for improving searches using completeness metrics includes: receiving a search request including search target parameters and video parameters; performing a search of available video streams matching the video parameters for a search target matching the search target parameters; determining a completeness metric for the search based on the available video streams and expected video streams matching the video parameters; and defining a search update condition to trigger an update to the search based on the expected video streams.
Need to check novelty before this filing date? Find Prior Art

Description

Background

[0001] Video searches digest video streams from a variety of different sources to identify a search target and provide information about the location and actions of the search target to the searcher. However, access and temporary local video stream storage may affect the completeness of the search. Brief Description of the Several Views of the Drawings

[0002] In the accompanying figures similar or the same reference numerals may be repeated to indicate corresponding or analogous elements. These figures, together with the detailed description, below are incorporated in and form part of the specification and serve to further illustrate various embodiments of concepts that include the claimed invention, and to explain various principles and advantages of those embodiments.

[0003] FIG. 1 is a schematic diagram of an example system for improving searches using completeness metrics.

[0004] FIG. 2 is a block diagram of the server of FIG. 1.

[0005] FIG. 3 is a flowchart of an example method for improving searches using completeness metrics.

[0006] FIG. 4 is a flowchart of an example method of determining a completeness metric.

[0007] FIG. 5 is a schematic diagram of a scenario for improved searching using completeness metrics.

[0008] FIG. 6 is a schematic diagram of a rendered representation of the method of FIG. 4.

[0009] FIG. 7 is a flowchart of an example method of defining a search update condition.

[0010] Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve understanding of embodiments of the present disclosure.

[0011] The system, apparatus, and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present disclosure so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein. Detailed Description of the Invention

[0012] Many video stream sources which may provide relevant results in a search may not be immediately available for searching. For example, mobile cameras, such as body-worn cameras, vehicle cameras, and the like, may have temporary local storage of captured video streams and may be uploaded at a later date (e.g., upon being physically connected or having sufficient bandwidth). Other video stream sources may have secured access for privacy and security. Accordingly, such video streams may not be available at an initial search request.

[0013] The unavailability of such video streams may affect the results of the search, and hence, in accordance with the present examples, a completeness metric may be computed based on the relevance of the available video streams. The completeness metric may allow the search results to be evaluated more accurately, and further may allow a search update condition to be defined to automatically update the search with relevant results. In addition, the updates may be refined based on the initial search results.

[0014] In accordance with one example embodiments, an example method includes receiving a search request including search target parameters and video parameters; performing a search of available video streams matching the video parameters for a search target matching the search target parameters; determining a completeness metric for the search based on the available video streams and expected video streams matching the video parameters; and defining a search update condition to trigger an update to the search based on the expected video streams.

[0015] In accordance with another example embodiment, an example computing device includes a memory storing executable code; a processor interconnected with the memory and to execute the code, the code operable to cause the processor to: receive a search request including search target parameters and video parameters; perform a search of available video streams matching the video parameters for a search target matching the search target parameters; determine a completeness metric for the search based on the available video streams and expected video streams matching the video parameters; and define a search update condition to trigger an update to the search based on the expected video streams.

[0016] Each of the above-mentioned embodiments will be discussed in more detail below, starting with example system and device architectures of the system in which the embodiments may be practiced, followed by an illustration of processing blocks for achieving an improved technical method, device, and system for improving searches using completeness metrics.

[0017] Example embodiments are herein described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to example embodiments. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a special purpose and unique machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. The methods and processes set forth herein need not, in some embodiments, be performed in the exact sequence as shown and likewise various blocks may be performed in parallel rather than in sequence. Accordingly, the elements of methods and processes are referred to herein as “blocks” rather than “steps.”

[0018] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the function / act specified in the flowchart and / or block diagram block or blocks.

[0019] The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus that may be on or off-premises, or may be accessed via the cloud in any of a software as a service (SaaS), platform as a service (PaaS), or infrastructure as a service (laaS) architecture so as to cause a series of operational blocks to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide blocks for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. It is contemplated that any part of any aspect or embodiment discussed in this specification can be implemented or combined with any part of any other aspect or embodiment discussed in this specification.

[0020] Further advantages and features consistent with this disclosure will be set forth in the following detailed description, with reference to the figures.

[0021] Referring now to the drawings, and in particular FIG. 1, an example system 100 for improving searches using completeness metrics. The system 100 may be deployed to monitor and / or search an environment 102, such as a city or other urban or metropolitan area, or in a localized and / or private environment, such as the grounds or campus of an educational, health facility, or other institution, or the like. In other examples, the system 100 may also be deployed to monitor and / or search a wide variety of other environments.

[0022] The system 100 includes a server 104 interconnected with a repository 108. Generally, the system 100, and more particularly, the server 104 performs improved searches using completeness metrics. Specifically, the server 104 may receive a search request including search target parameters and video parameters. The search target parameters may include parameters pertaining to the search target directly as well as to the context of the search target. The video parameters may include parameters defining suitable video streams to be searched. For example, the video parameters may include a time period before and after a time of an incident, and a geofence centered at a location of the incident.

[0023] The server 104 may then obtain available video streams stored in the repository 108. That is, the repository 108 is configured to store video streams. The repository 108 may be a data lake, a series of cooperating repositories, another suitably configured repository, or the like. The repository 108 may be hosted at the server 104, one or more servers or other computing devices independent of the server 104, including one or more cooperating cloud-based servers, or the like. Accordingly, the repository 108 is further interconnected with a plurality of video sources, of which five example sources 112-1, 112-2, 112-3, 112-4, and 112-5 (referred to herein generically as a source 112 and collectively as the sources 112; this nomenclature is also used elsewhere herein) are depicted, to obtain video streams captured at the sources 112.

[0024] The video sources 112 may be any suitable cameras, including fixed cameras such as security cameras 112-2, 112-4, and 112-5, mobile cameras, such as a vehicle-mounted camera 112-1 on a vehicle 116 or a body-worn camera 112-3 worn by an officer 120, or other suitable devices capable of capturing video streams. For example, the sources 112 may be independent cameras or devices, as presently depicted, or one or more of the sources may be integrated into another computing device, such as a vehicle-integrated camera for self-driving vehicles or the like. Further, the sources 112 may include components in both public and private infrastructure, such as municipally-implemented traffic systems, privately-owned corporate security systems, privately-owned residential and / or individual security systems, and the like. Further, in some examples, the sources 112 may include infrared or thermal imaging sources, or the like.

[0025] The sources 112 may communicate with the repository 108 via one or more wired or wireless connections traversing one or more communications networks, including one or more local-area networks, one or more wide-area networks, such as the Internet, combinations of the above, and the like.

[0026] Accordingly, the repository 108 may obtain video streams from a network of sources 112, including, but not limited to, the example sources 112 illustrated in the present example. In some examples, the sources 112 may transmit the corresponding captured video streams to the repository 108 for storage in real time, while in other examples, the sources 112 may transmit the captured video streams upon request by the repository 108 (e.g., via control from the server 104 or another controlling device). For example, based on pre-existing contracts and / or agreements, the video streams captured by the security camera 112-2 of a residential building 124 may be periodically uploaded (e.g., at predefined intervals), or upon request by the server 104. Further, in some examples, access to the captured video streams may be protected, and hence the sources 112 may only release the captured video streams to the repository 108 upon successful authorization (e.g., via authentication, completion of a search warrant, or other suitable authorizations). For example, access to the video streams captured by the security cameras 112-4 and 112-5 of a bank 128 may be contingent on an authorized request for security and privacy reasons. In still further examples, the sources 112 may have intermittent connectivity to the repository 108, and hence may transmit the captured video streams periodically upon availability of a suitable connection. For example, the body-worn camera 112-3 may store the captured video stream locally until the officer 120 completes their shift and returns the body-worn camera 112-3 to a docking station at a home precinct or the like.

[0027] The repository 108 may therefore track the sources 112 and parameters of the accessibility of video streams (e.g., based on personnel assignments and shift times of an officer 120, authorization criteria, etc.), parameters of the sources 112 themselves (e.g., operational status, etc.), and the like.

[0028] Accordingly, in addition to obtaining available video streams stored in the repository 108 matching the video parameters of the search request, the server 104 may additionally identify one or more expected video streams matching the video parameters. That is, the expected video streams may correspond to sources 112 for which the corresponding video stream is expected to match the video parameters, but which are not yet available in the repository 108. The server 104 may therefore compute a completeness metric for the search based on the available video streams and the expected video streams matching the video parameters, as will be further described herein. The server 104 may present the completeness metric to allow for improved searches by providing further information and context about the search to an operator (e.g., a requestor of the search).

[0029] Further, the server 104 may use the completeness metric to define a search update condition to trigger an update to the search based on the expected video streams. For example, the search update condition may allow the server 104 to defer updating the search until such time as new video streams are available from the expected video streams which are likely to allow the completeness metric to be improved or increased above a predefined threshold value. That is, the server 104 may reduce the computational burden of continuous searching and recurring updates until the search update condition is detected, as will be further described herein.

[0030] Turning to FIG. 2, certain internal components of the server 104 are illustrated. The server 104 includes a controller, such as a processor 200, interconnected with a non-transitory computer-readable storage medium, such as a memory 204.

[0031] The processor 200 may include one or more logic circuits, processing units, microprocessors, GPUs (Graphics Processing Units), ASICs (application-specific integrated circuits), FPGAs (field-programmable gate arrays) and / or other suitable units capable of executing instructions to carry out the functionality described herein. The memory 204 includes a combination of volatile memory (e.g., Random Access Memory or RAM) and non-volatile memory (e.g., read only memory or ROM, Electrically Erasable Programmable Read Only Memory or EEPROM, flash memory, etc.). The processor 200 and the memory 204 may each comprise one or more integrated circuits.

[0032] The memory 204 stores computer-readable instructions for execution by the processor 200. In particular, the memory 204 stores an application 208 which, when executed by the processor 200, configures the processor 200 to perform various functions discussed below in greater detail and related to the completeness metric computation and improved search operations of the server 104. In particular, the application 208 may include code operable to compute completeness metrics and to trigger search updates for improved searches. Some or all of the application 208 may also be implemented as a suite of distinct applications. Those skilled in the art will appreciate that the functionality implemented by the processor 200 via execution of the application 208 and the code contained therein may also be implemented by one or more specially designed hardware and firmware components. The memory 204 may also store a repository 212 storing rules and data for the completeness metric computation and improved search operation. In some examples, the repository 108 may be integrated with the repository 212 or vice versa.

[0033] The server 104 may further include a communications interface 216 enabling the server 104 to exchange data with other computing devices, such as the repository 108. The communications interface 216 is interconnected with the processor 200 and includes suitable hardware (e.g., transmitters, receivers, network interface controllers and the like) allowing the server 104 to communicate with other computing devices. The specific components of the communications interface 216 may be selected based on the type of network or other links that the server 104 is to communicate over. For example, the communications interface 216 may be configured for wired communications, including Ethernet, USB (Universal Serial Bus), twisted pair, coaxial, fiber-optic or similar physical connections, or wireless communications, including one or more of the Internet, a digital mobile radio (DMR) network, a Project 25 (P25) network, a terrestrial trunked radio (TETRA) network, a Bluetooth network, a Wi-Fi network, for example operating in accordance with an IEEE 802.11 standard (e.g., 802.1 la, 802.1 lb, 802.11g), an LTE (Long-Term Evolution) network and / or other types of GSM (Global System for Mobile communications) and / or 3GPP (3rd Generation Partnership Project) networks, a 5G network (e.g., a network architecture compliant with, for example, the 3GPP TS 23 specification series and / or a new radio (NR) air interface compliant with the 3GPP TS 38 specification series standard), a Worldwide Interoperability for Microwave Access (WiMAX) network, for example operating in accordance with an IEEE 802.16 standard, and / or another similar type of wireless network, combinations of the above, and the like.

[0034] The server 104 may further include one or more input and / or output devices (not shown). The input devices may include one or more buttons, keypads, touch-sensitive display screens or the like for receiving input from an operator. The output devices may further include one or more display screens, sound generators, vibrators, or the like for providing output or feedback to an operator.

[0035] Turning now to FIG. 3, the functionality implemented by the server 104 will be discussed in greater detail. FIG. 3 illustrates a method 300 of performing searches including completeness metrics. The method 300 will be discussed in conjunction with its performance in the system 100, and particularly by the server 104, via execution of the application 208. In particular, the method 300 will be described with reference to the components of FIGS. 1 and 2. In other examples, some or all of the method 300 may be performed by other suitable devices or systems.

[0036] The method 300 is initiated at block 305, where the server 104 receives a search request. The search request includes search target parameters defining parameters of a search target to locate in one or more video streams. For example, the search target parameters may relate to the search target directly, such as a features related to the physical appearance of the search target. For example, the physical appearance may include height, clothing items, clothing color, facial recognition and other features of a human search target or the make and / or model, color, dimensions, automated license plate recognition (ALPR) and other features of a vehicular search target. The search target parameters may further relate to the context of the search target, such as the mobility of a human search target (e.g., on foot, via a vehicle - in particular if the details of the vehicle are unknown, etc.), weather and other environmental conditions, incident parameters such as the type of incident (e.g., assault, robbery, etc.), and other parameters which may further inform the search operation.

[0037] The search request further includes video parameters defining parameters of potentially relevant video streams. For example, the video parameters may include a time period within which to search and a geofence within which the sources 112 of the suitable video streams are located. In some examples, the video parameters may be derived from the search target parameters, for example based on a time of an incident, which may be used to define the time period based on a predefined buffer period prior to and after the time of the incident, as well as a location of the incident, around which the geofence having a predefined radius may be centered.

[0038] At block 310, the server 104 performs a search of available video streams matching the video parameters for a search target matching the search target parameters. That is, the server 104 may obtain, from the repository 108, video streams which match the video parameters and / or which are captured by sources 112 matching the video parameters. For example, the server 104 may obtain video streams which capture some or all of the time period defined in the video parameters, including, for example if a given video stream covers only a portion of the time period. In examples where the source 112 captures a continuous video stream which is stored at the repository 108, the server 104 may obtain a portion of the continuous video stream corresponding with the time period of the video parameters. Similarly, the server 104 may obtain video streams captured from sources 112 which are located within the geofence defined in the video parameters, or video streams captured from sources 112 having a field of view partially or completely overlapping with the geofence.

[0039] In particular, the server 104 may obtain available video streams captured by sources 112 which have transmitted the captured video streams to the repository 108 and are stored at the repository 108 at the time of performance of block 310. The server 104 may be unable to obtain video streams captured by sources 112, such as the body-worn camera 112-3, which have not yet transmitted the captured video streams to the repository 108 at the time of performance of block 310.

[0040] The server 104 then performs a search of the available video streams. That is, the server 104 may process the frames of the available video streams (e.g., on a frame-by-frame basis, based on a series of representative frames selected from time-divided pools of frames, etc.) to identify the search target based on the search target parameters. The server 104 may employ any suitable image and / or object detection, localization and recognition algorithms, computer vision techniques and the like based on segmentation, feature extraction and / or classification techniques and / or employing machine-learning and / or deep learning techniques, and the like. For example, the server 104 may employ a convolutional neural network (CNN), a region-based convolutional neural network (RCNN), or the like, which may employ supervised or unsupervised learning, and which may employ a training feedback loop based on the search results and / or annotations of the search results from an operator as will be described further herein.

[0041] As a result of the search, the server 104 may identify a subset of the available video streams which include the search target. In some examples, the subset may simply include an identification of the available video streams including the search target, while in other examples, the subset may include a time stamp and / or segment of the video stream including the frame(s) of interest (i.e., which include the search target). Further, the time stamp and / or segment may include a buffer of time prior to and after the frame(s) in which the search target was identified.

[0042] In some examples, the server 104 may also update the video parameters for video streams to be searched. For example, if the search target is identified as moving in a given direction and / or having a determined path, then the geofence and the time period for potentially relevant video streams to be searched may be expanded, narrowed, or shifted accordingly. In other examples, the server 104 may determine updated search target parameters, for example, if a human search target is determined to have entered a vehicle, the updated search target parameters may include parameters of the vehicle. In such examples, a new search request including the updated search target parameters may be generated and acted on by the server 104. In particular, the updated search target parameters may warrant a new search, since the available video streams initially searched at block 310 may be reviewed again for the new search target.

[0043] At block 315, the server 104 determines a completeness metric for the search performed at block 310 based on the available video streams and expected video streams matching the video parameters. That is, the server 104 may identify one or more sources 112 known to the server 104 which are likely to capture video streams satisfying the video parameters, as determined based on parameters of the sources 112. For example, if the body-worn camera 112-3 is checked out by the officer 120 during performance of block 310, then the server 104 may identify the time of check out and an assigned patrol route of the officer 120 to determine whether the expected video stream matches the video parameters. Similarly, the server 104 may cross-check the location of bank security cameras 112-4 and 112-5 to determine whether the corresponding expected video streams match the video parameters. The server 104 may then compute the completeness metric for the search based on the available and expected video streams. For example, in one example, the completeness metric may be a percentage of the total relevant video streams searched (i.e., a ratio of the available video streams to total available and expected video streams matching the video parameters).

[0044] In other examples, the completeness metric may be computed using other methods. For example, referring to FIG. 4, a flowchart of an example method 400 of determining a completeness metric is depicted. For example, the method 400 may be performed at block 315 of the method 300.

[0045] At block 405, the server 104 determines a relevance metric for each video stream of the available video streams and the expected video streams. Generally, the relevance metric represents a degree of relevance the corresponding video stream is predicted to have to the search. The relevance metric may be computed as a percentage, a score (e.g., including in an open-ended scoring system), or another suitable metric.

[0046] The relevance metric of a given video stream may be based on one or more attributes of the given video stream and / or the source 112 of the video stream. In some examples, the attributes of the video stream and / or the source 112 may contribute a relevance, while in other examples, the attributes may be compared and / or cross-referenced against other relevance attributes based on the search target parameters and / or the video parameters. The overall relevance metric for the given video stream may therefore be based on a series of attributes.

[0047] For example, attributes of the given video stream and / or the source 112 themselves may contribute to the relevance metric of the video stream. For example, an operational status and / or quality of video obtained by the source 112 may contribute to the relevance metric. The server 104 may determine a relevance metric of zero if the operational status of a given source 112 indicates that the source 112 was or is non-operational (e.g., undergoing maintenance, broken, etc.). The server 104 may assign higher relevance to video streams with higher resolutions and / or frame rates, since the likelihood of identifying the search target may be increased as compared to lower resolution and / or lower frame-rate video streams.

[0048] In other examples, the attributes of the video stream and / or the source 112 may be compared and / or cross-referenced with the video parameters from the search request. For example, a field of view and / or time period covered by the video stream may contribute to the relevance metric of the video stream based on a geofence defined in the video parameters and a time period of interest defined in the video parameters, respectively. The server 104 may assign higher relevance to video streams from sources 112 having a field of view with a greater overlap with the geo fence. Similarly, the server 104 may assign higher relevance to video streams whose time periods substantially overlap with the time period of interest defined in the video parameters.

[0049] In still further examples, the attributes of the video stream and / or the source 112 may be compared and / or cross-referenced with the search target parameters from the search request. For example, the field of view and / or time period may be cross-referenced with a given or predicted attribute of the search target. That is, the server 104 may predict an attribute of the search target to cross-reference with the attributes of the video streams. In one example, the predicted attribute may be a predicted path of the search target after the incident. For example, based on identification or partial identification of the search target in the available video streams at block 310, the server 104 may predict the path of the search target. Further, the server 104 may obtain historical paths of historical incidents of the same type and / or otherwise having like incident parameters, the server 104 may predict a mobility of the search target (e.g., the perpetrator of an assault may be more likely to escape on foot, whereas a bank robber may be more likely escape in a vehicle, or the like). Further, based on the mobility of the search target, the server 104 may predict the path of the search target (e.g., a vehicular search target or a human search target in a vehicle would travel on roadways, whereas a search target travelling on foot may be more likely to traverse back alleys or footpaths unavailable to larger motor vehicles).

[0050] Other factors, such as weather and / or environmental parameters, including topographical features and the like, may also contribute to the predicted path of the search target determined by the server 104. In some examples, the server 104 may employ one or more machine-learning algorithms, neural networks, or the like to determine the predicted path and / or other predicted features of the incident and / or search target. In some example, more than one predicted path may be generated, with probabilities for each path.

[0051] For example, referring to FIG. 5, an example map 500 is depicted in which a robber 504 robs the bank 128. The robbery (i.e., the incident) may cause a search to be initiated with the robber 504 as the search target. The search request may include search target parameters, such as a height and appearance of the robber 504, including, for example, that the robber 504 is wearing a cap 508 and carrying a bag 512. Based on the incident type, the server 104 may generate predicted paths 516-1 and 516-2 which the robber 504 may pursue, for example based on other robbery incidents. The server 104 may also generate a likelihood or probability associated with each of the predicted paths 516.

[0052] Subsequently, in determining the relevance metric of each video stream, the server 104 may compare the predicted attribute to attributes of the video stream and / or the source 112 of the video stream. Accordingly, based on the predicted paths 516 of the search target, the server 104 may assign higher relevance to video streams from sources 112 having a field of view including portions of one of the predicted paths 516. For example, the security camera 112-2 may have a field of view 520-2. Since only a peripheral portion of the field of view 520-2 overlaps with the predicted path 516, the server 104 may assess a lower relevance metric to the security camera 112-2, for example as compared to the security camera 112-5, which has the predicted path 5162 in a central portion of a field of view 520-5 of the security camera 112-5.

[0053] That is, the relevance may increase with a higher proportion of the predicted path covered by the field of view, and / or with the angle and clarity (e.g., based on resolution of the source 112) of the predicted path in the field of view. In some examples, the relevance may also increase based on the probability that the predicted path was used.

[0054] In some examples the predicted path and / or the relevance assessments may be affected based on the results of the search performed at block 310 and identification of the search target in one or more of the available video streams. For example, upon reporting the robbery, the bank 128 may provide the video streams captured by the security cameras 112-4 and 112-5 for searching. The server 104 may determine, from said video streams, that the robber 504 proceeded at least partially along the predicted path 516-2. Accordingly, the relevance of the video stream from security camera 112-2 may be further reduced. Further, the video parameters may be updated, for example to shift the geofence along the path 516-2. Accordingly, the relevance metrics of each may be determined in view of the updated geofence. In some examples, the search target parameters may also be updated, for example, if it is detected in the video stream of one or both of the security cameras 112-4 or 112-5 that the robber 504 removes the cap 508 and tosses the cap 508 towards a nearby bicycle (not depicted). In such examples, a new search may be generated to identify the location of the cap 508 to potentially obtain further evidence and assist in the identification of the robber 504.

[0055] In other examples, server 104 may compare the attributes of search target to predicted attributes of the source 112, for example if the source 112 is mobile (e.g., the body-worn camera 112-3 worn by the officer 120). In such examples, the server 104 may predict a path 524 of the officer 120 (and therefore the path of the body-worn camera 112-3) based on an assigned patrol route, historical patrol route patterns, or the like. The predicted path 524 of the body-worn camera 112-3 and other mobile sources 112 may also be generated using one or more machinelearning algorithms, neural networks, or the like. The server 104 may similarly compare the predicted path 524 of the body-worn camera 112-3 to the predicted path 516-2 (and / or the predicted path 516-1) assign higher relevance to video streams from sources 112 which have a higher proportion of overlap in the predicted paths 524 of the sources 112 with the predicted paths 516 of the search target.

[0056] In other examples, other attributes may also be evaluated to contribute to the overall relevance metric for a given source 112. For example, the individual relevance contributions of each of the attributes may be aggregated in a weighted combination based on predefined weights of different attributes to determine the relevance metric for the given source 112.

[0057] In still further examples, the relevance metric for each source 112 may be determined using one or more machine-learning algorithms. For example, the machine-learning algorithm may be trained on historical incidents, searches, and video streams providing relevant information for locating the search target.

[0058] Returning to FIG. 4, at block 410, after computing a respective relevance metric for each video stream of the available video streams and the expected video streams, the server 104 computes the completeness metric as a weighted combination of the available video streams, the expected video streams, and the relevance metric of each video stream. That is, the relevance metrics may act as the weights when aggregating the proportion of the available video streams which were searched to the total video streams (i.e., available and expected) matching the video parameters.

[0059] Thus, if a smaller number of video streams with high relevance metrics are available and are searched at block 310, then the completeness metric computed at block 410 may still be high, even if a larger number of video streams with lower relevance metrics are unavailable (i.e., are expected). Similarly, if a number of video streams with high relevance metrics are expected and are unavailable to be searched at block 310, then the completeness metric computed at block 410 may be lower.

[0060] At block 415, the server 104 may optionally render a representation of one or more of: the available video streams, the expected video streams, an expected availability of each video stream of the expected video streams, a location of the source 112 of each video stream and the relevance metric for each video stream. The representation may further include an indication of the completeness metric, an indication of a search update condition, and other information. The representation may be rendered at an output device (e.g., a display or the like) at the server 104 itself, or at another computing device connected to the server 104. That is, the rendering of the representation obtains features and indicators of each video stream (e.g., including stored data pertaining to the video stream or source, such as location, predefined availability and other data and the like, as well as computed data such as the relevance metrics) and aggregates the data and indicators.

[0061] Additionally, the representation may allow an operator (e.g., a requestor of the search) to digest the data for evaluation of the search, in particular, in view of the completeness metric. For example, referring to FIG. 6, an example rendered representation 600 is depicted. For example, the representation 600 may be rendered at block 415 of the method 400.

[0062] The representation 600 may include a map 602 representing the environment 102. The map 602 may include indicators 612 representing the locations of the sources 112. Accordingly, in the present example, the map 602 includes location indicators 612-1, 612-2, 612-3, 612-4, and 612-5. When the location of the source 112 is not fixed, such as the vehicle camera 612-1 or the body-worn camera 112-3 of the officer 120, the map 602 may render the location indicators 612 at predicted locations, which may be determined for example based on historical and / or assigned patrol routes or the like.

[0063] Returning to FIG. 3, after determining the completeness metric at block 315, the server 104 proceeds to block 320 to define a search update condition to trigger an update to the search based on the expected video streams. That is, the search update condition defines a condition which, when met, may trigger the server 104 to obtain newly available video streams (i.e., expected video streams which were unavailable at the initial performance of block 310 but which are available upon performing the update to the search) matching the video parameters and search the video streams for the search target, according to the search target parameters. In particular, the search update condition allows the server 104 to restrict updates to the search based on the search update condition, thereby reducing the computation burden of continual updates to the search and / or performing updates which consume considerable computational resources while providing little to no improvement to the completeness metric.

[0064] In some examples, the server 104 may define the search update condition at block 320 in response to detecting that the completeness metric determined at block 315 is below a predefined threshold value. In other examples, the server 104 may define the search update condition in response to an input and / or a trigger received from another computing device and / or a user.

[0065] For example, referring to FIG. 7, a flowchart of an example method 700 of defining a search update condition. For example, the method 700 may be performed at block 320 of the method 300.

[0066] At block 705, the server 104 determines an expected availability of each video stream in the expected video streams. The expected availability may represent a time at which a given expected video stream is expected to be available, for example based on data about the source 112 stored in the repository. For example, the expected availability of the body-worn camera 112-3 may be the time at which the officer 120 completes their shift, while the expected availability of the security camera 112-2 may be a time based on a scheduled update period (e.g., every 6 hours or the like). The expected availability may also represent an availability condition, such as an authorization condition, or the like.

[0067] At block 710, the server 104 determines a priority order of the expected video streams based on the expected availability determined at block 705 and the relevance metric of each video stream, for example determined at block 405 of the method 400. The priority order may assign an individual priority (e.g., a numerical ranking) for each video stream, or may assign a priority class (e.g., high, medium, and low) to each video stream, or other suitable prioritization schemes. For example, the server 104 may determine the priority order based primarily on the relevance metric of each video stream (i.e., to order expected video streams having higher relevance metrics higher in the priority order), and secondarily on the expected availability. In other examples, the server 104 may determine the priority order based primarily on the expected availability of each video stream (i.e., to order expected video streams having earlier expected availabilities higher in the priority order), and secondarily based on the relevance metric.

[0068] In still further examples, the server 104 may use a combination of the expected availability and the relevance metric to determine the priority order. For example, the server 104 may prioritize expected video streams having respective relevance metrics to increase the completeness metric above the predefined threshold based on the expected availability of each video stream. That is, the server 104 may optimize the priority order to allow the update to the search to include expected video streams which have (or are expected to have) relevance metrics which are sufficiently high to increase the completeness metric above the predefined threshold when the completeness metric is updated based on the updated search (i.e., including the newly available video streams in the priority order). Further, the priority order may be optimized to allow the completeness metric to reach the predefined threshold at an earliest expected availability.

[0069] At block 715, the server 104 defines the search update condition according to the priority order of the expected video streams. For example, the search update condition may be when a sufficient number of the expected video streams, according to the priority order, are available (i.e., can be obtained from the repository 108) to be searched. For example, the sufficient number may be determined based on the relevance metrics of the expected video streams, and particularly, when the relevance metrics contribute to the completeness metric to allow the completeness metric to exceed the predetermined threshold. In other examples, the search update condition may be simplified to predetermined time at which to update the search. In particular, the predetermined time may be selected based on the sufficient number of expected video streams being available to increase the completeness metric above the predetermined threshold. Other suitable search update conditions may also be defined based on the priority order of the expected video streams.

[0070] For example, referring again to FIG. 6, the representation 600 may further include a listing 624 of video streams 628 corresponding to video stream sources 112. In some examples, the listing 624 may be filtered by video streams 628 which correspond to the video parameters defined in the search request. In other examples, the listing 624 may include video streams 628 which do not match the video parameters defined in the search request and such video streams 628 may be otherwise indicated in the listing 624 (e.g., by sorting, by a difference in presentation such as applying a transparency or converting to greyscale or the like, etc.). In the present example, the listing 624 includes the video streams 628-1, 628-2, 628-3, 628-4, and 628-5, corresponding to the sources 112, respectively.

[0071] In particular, the listing 624 may include both available video streams as well as expected video streams. For example, the listing 624 may include relevance metrics 632 for each video stream 628, as determined based on the method 400, for example. The listing 624 may further include status indicators 636 which may indicate either that the available video stream 628 has been searched, or the expected availability of the expected video stream 628. In some examples, the location indicators 612 may include representations of the status as well (e.g., the location indicators 612-4 and 612-5 indicate that the video streams 628-4 and 628-5 have status indicators 636 of “Searched”).

[0072] The listing 624 may further include priority indicators 640 which may indicate the priority order of expected (i.e., unsearched) video streams (i.e., video streams 628-1, 628-2, and 628-3). In the present example, the priority order is correlated to the relevance metrics 632 of each of the video streams 628. Accordingly, the video stream 628-3, which has a relevance metric of 75% has a corresponding priority indicator of “high”. In some examples, the location indicators 612 may include representations of the priority order as well (e.g., the location indicator 612-3 indicates that the video stream 628-3 has a priority indicator 640 of “high”). Further, the priority indicator 640 may be based in part on a current completeness metric 644 and a target completeness metric 648. The target completeness metric 648 may be the predefined threshold and may be a default value or a user input value.

[0073] In determining the priority order, the server 104 may determine that including either or both of the video streams 628-1 or 628-2 are unlikely to increase the completeness metric 644 to the target completeness metric 648 (e.g., based on iterating through completeness metric computations using the determined relevance metrics 632), and hence may place a lower priority order on the video streams 628-1 and 628-2.

[0074] The rendered representation 600 may further include a trigger field 652, which may allow an operator to interact and affect the search update condition. For example, the search update condition may include an approval by an operator, based on the trigger field 652. The target completeness metric 648 and the trigger field 652 may be values included in the initial search request to facilitate the search updating process. In other examples, the representation 600 may include other fields, indicators, and the like, such as authorization indicators, recommendations by the server 104, etc.

[0075] Returning to FIG. 7, in some examples, when the completeness metric is below the predetermined threshold, after defining the search update condition at block 715, the server 104 may proceed directly to block 720. In other examples, the server 104 may receive a trigger or instruction from another computing device (e.g., as determined based on operator input) to proceed to block 720. At block 720, the server 104 is configured to monitor for realization of the search update condition. That is, the server 104 may monitor the repository 108 for the prioritized expected video streams, and / or other components of the system 100, the predetermined time, or other parameters on which the search update condition is dependent.

[0076] If the determination at block 720 is negative, that is, the server 104 determines that the search update condition has not yet been met, the server 104 may continue to monitor the parameters of the search update condition at block 720. That is, the server 104 may defer updating the search until the search update condition has been met. For example, if a given subset of expected video streams is received, and the completeness metric is not expected to increase above the predefined threshold upon inclusion of the given subset of video streams, the server 104 may continue to defer updating the search. This is in contrast to a continually updating search which may be updated upon receipt of each expected video stream, irrespective of an expected improvement or lack thereof in the search results. Such continually updating searches may be time- and resource-intensive. Further, such searches may extend the time for high relevance video streams to be processed, for example if they are queued later than lower relevance but time- and resource-intensive searches.

[0077] If the determination at block 720 is affirmative, that is, the server 104 determines that the search update condition has been met, then the server 104 proceeds to block 725. At block 725, the server 104 updates the search based on newly available video streams from the expected video streams. That is, the server 104 obtains video streams from the repository 108 for updating the search. In particular, the server 104 may request any video streams matching the video parameters (or updated video parameters) received at the repository 108 since the search operation at block 310, or the server 104 may request a specific subset of video streams based on the expected video streams (i.e., based on expected availability), based on the determined priority order, or the like.

[0078] Upon obtaining the video streams, the server 104 performs a search of the newly available video streams to identify the search target based on the search target parameters. In examples where multiple video streams are newly available, the server 104 may perform the searches based on the determined priority order.

[0079] In other examples, the search update condition may allow the server 104 to monitor the repository 108 continuously and evaluate, as video streams become newly available (i.e., as video streams are received at the repository 108), whether to perform the search. For example, as part of the search update condition, the server 104 may identify computational resources available for performing a search and an estimated duration of search for a given newly available video stream. If sufficient computational resources are available and / or the search may be completed prior to the expected availability of a higher priority video stream, then the server 104 may proceed with an interim update to the search based on the lower priority video stream. This may allow still further improvement of the completeness metric, while maintaining optimization of the video streams to be prioritized to increase the completeness metric above the predefined threshold.

[0080] For example, in the example given in FIG. 6, if the server 104 determines that at 4:00 PM, the search operation on the video stream 628-1 may be completed prior to 5:00 PM when the prioritized video stream 628-3 is expected to be available (i.e., based on available computational resources, and the file size of the video stream 628-1), then the server 104 may proceed with searching the video stream 628-1. In contrast, if the search operation on the video stream 628-1 is not expected to be complete by 5:00 PM (e.g., because computational resources are dedicated to another search operation, large file size, or other limitations), then the server 104 may defer the search of the video stream 628-1 until the video stream 628-3 is received and searched.

[0081] In other examples, still further search update conditions and operations are also contemplated. For example, the search update condition may include detecting that one or more of the expected video streams has an authorization condition. In particular, the server 104 may identify that one or more prioritized video streams has an authorization condition. In such examples, the server 104 may proceed with the authorization request, for example to prepare a request to the owner of the source 112, preparation of a warrant request to be signed by a judge to obtain certain video streams, logging in to a secure repository (e.g., via a secure token or key exchanged prior to performance of the search), or the like. That is, the search update condition may include multiple independent conditions, and independent actions or operations towards updating the search at block 725.

[0082] At block 730, after updating the search, the server 104 may determine an updated completeness metric based on the available video streams, the newly available video streams, and the expected video streams matching the video parameters (or updated video parameters). Since the search update condition may be defined to increase the completeness metric above the predefined threshold, determining the updated completeness metric may be a verification by the server 104 that the completeness metric exceeds the predefined threshold. In other examples, the server 104 may compare the completeness metric to the predefined threshold and return to block 715 to refine the search update condition.

[0083] As should be apparent from this detailed description above, the operations and functions of the electronic computing device are sufficiently complex as to require their implementation on a computer system, and cannot be performed, as a practical matter, in the human mind. Electronic computing devices such as set forth herein are understood as requiring and providing speed and accuracy and complexity management that are not obtainable by human mental steps, in addition to the inherently digital nature of such operations (e.g., a human mind cannot interface directly with RAM or other digital storage, cannot transmit or receive electronic messages, electronically encoded video, electronically encoded audio, etc., and cannot search video streams, determine completeness metrics for the search based on available and expected video streams, and define a search update condition to trigger an update to the search based on expected video streams, among other features and functions set forth herein).

[0084] In the foregoing specification, specific embodiments have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.

[0085] Moreover, in this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms "comprises," "comprising," “has”, “having,” “includes”, “including,” “contains”, “containing” or any other variation thereof, are intended to cover a nonexclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “comprises ...a”, “has ...a”, “includes ...a”, “contains ...a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. Unless the context of their usage unambiguously indicates otherwise, the articles “a,” “an,” and “the” should not be interpreted as meaning “one” or “only one.” Rather these articles should be interpreted as meaning “at least one” or “one or more.” Likewise, when the terms “the” or “said” are used to refer to a noun previously introduced by the indefinite article “a” or “an,” “the” and “said” mean “at least one” or “one or more” unless the usage unambiguously indicates otherwise.

[0086] Also, it should be understood that the illustrated components, unless explicitly described to the contrary, may be combined or divided into separate software, firmware, and / or hardware. For example, instead of being located within and performed by a single electronic processor, logic and processing described herein may be distributed among multiple electronic processors. Similarly, one or more memory modules and communication channels or networks may be used even if embodiments described or illustrated herein have a single such device or element. Also, regardless of how they are combined or divided, hardware and software components may be located on the same computing device or may be distributed among multiple different devices. Accordingly, in this description and in the claims, if an apparatus, method, or system is claimed, for example, as including a controller, control unit, electronic processor, computing device, logic element, module, memory module, communication channel or network, or other element configured in a certain manner, for example, to perform multiple functions, the claim or claim element should be interpreted as meaning one or more of such elements where any one of the one or more elements is configured as claimed, for example, to make any one or more of the recited multiple functions, such that the one or more elements, as a set, perform the multiple functions collectively.

[0087] It will be appreciated that some embodiments may be comprised of one or more generic or specialized processors (or “processing devices”) such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and / or apparatus described herein. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used.

[0088] Moreover, an embodiment can be implemented as a computer-readable storage medium having computer readable code stored thereon for programming a computer (e.g., comprising a processor) to perform a method as described and claimed herein. Any suitable computer-usable or computer readable medium may be utilized. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory) and a Flash memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

[0089] Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation. For example, computer program code for carrying out operations of various example embodiments may be written in an object-oriented programming language such as Java, Smalltalk, C++, Python, or the like. However, the computer program code for carrying out operations of various example embodiments may also be written in conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on a computer, partly on the computer, as a stand-alone software package, partly on the computer and partly on a remote computer or server or entirely on the remote computer or server. In the latter scenario, the remote computer or server may be connected to the computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

[0090] The terms “substantially”, “essentially”, “approximately”, “about” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art, and in one non-limiting embodiment the term is defined to be within 10%, in another embodiment within 5%, in another embodiment within 1% and in another embodiment within 0.5%. The term “one of’, without a more limiting modifier such as “only one of’, and when applied herein to two or more subsequently defined options such as “one of A and B” should be construed to mean an existence of any one of the options in the list alone (e.g., A alone or B alone) or any combination of two or more of the options in the list (e.g., A and B together).

[0091] A device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed.

[0092] The terms “coupled”, “coupling” or “connected” as used herein can have several different meanings depending on the context in which these terms are used. For example, the terms coupled, coupling, or connected can have a mechanical or electrical connotation. For example, as used herein, the terms coupled, coupling, or connected can indicate that two elements or devices are directly connected to one another or connected to one another through intermediate elements or devices via an electrical element, electrical signal or a mechanical element depending on the particular context.

[0093] The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.

Claims

1. A method comprising:receiving a search request including search target parameters and video parameters; performing a search of available video streams matching the video parameters for a search target matching the search target parameters;determining a completeness metric for the search based on the available video streams and expected video streams matching the video parameters; anddefining a search update condition to trigger an update to the search based on the expected video streams.

2. The method of claim 1, wherein determining the completeness metric comprises: determining, based on the search target parameters and the video parameters, a relevance metric for each video stream of the available video streams and the expected video streams; and computing the completeness metric as a weighted combination of the available video streams, the expected video streams and the relevance metric of each video stream.

3. The method of claim 2, wherein the relevance metric is based on one or more of: an incident type; an incident parameter; a predicted incident parameter; an environmental parameter; a field of view of a source of the video stream; a source type of the source of the video stream; an operational status of the source of the video stream; a geo fence defined in the video parameters; and a time period defined in the video parameters.

4. The method of claim 2, wherein defining the search update condition comprises: determining an expected availability of each video stream of the expected video streams; determining the relevance metric for each video stream of the expected video streams; determining a priority order of the expected video streams based on the expected availability and the relevance metric of each video stream of the expected video streams; anddefining the search update condition according to the priority order of the expected video streams.

5. The method of claim 4, wherein determining the priority order comprises:prioritizing the expected video streams having respective relevance metrics to increase the completeness metric above a predefined threshold based on the expected availability of each video stream.

6. The method of claim 1, wherein defining the search update condition comprises:determining an expected availability of each video stream of the expected video streams; anddefining the search update condition based on the expected availability of at least one of the expected video streams.

7. The method of claim 1, wherein the search update condition is defined when the completeness metric is below a predefined threshold.

8. The method of claim 1, further comprising, when the search update condition is detected, updating the search based on newly available video streams from the expected video streams.

9. The method of claim 8, further comprising:defining, based on the search, updated video parameters; andupdating the search based on the newly available video streams matching the updated video parameters.

10. The method of claim 9, further comprising:determining an updated completeness metric for the search based on the available video streams and the expected video streams matching the updated video parameters.

11. The method of claim 1, further comprising:defining, based on the search, updated search target parameters; andgenerating a new search request having the updated search target parameters.

12. The method of claim 1, further comprising:rendering a representation of one or more of: the available video streams; the expected video streams; an expected availability of each video stream of the expected video streams; a location of a source of each video stream of the expected video streams and the available video streams; and a relevance metric for each video stream of the available video streams and the expected video streams.

13. A computing device comprising:a memory storing executable code;a processor interconnected with the memory and to execute the code, the code operable to cause the processor to:receive a search request including search target parameters and video parameters;perform a search of available video streams matching the video parameters for a search target matching the search target parameters;determine a completeness metric for the search based on the available video streams and expected video streams matching the video parameters; anddefine a search update condition to trigger an update to the search based on the expected video streams.

14. The computing device of claim 13, wherein determining the completeness metric comprises: determining, based on the search target parameters and the video parameters, a relevance metric for each video stream of the available video streams and the expected video streams; and computing the completeness metric as a weighted combination of the available video streams, the expected video streams and the relevance metric of each video stream.

15. The computing device of claim 14, wherein the relevance metric is based on one or more of: an incident type; an incident parameter; a predicted incident parameter; an environmental parameter; a field of view of a source of the video stream; a source type of the source of the video stream; an operational status of the source of the video stream; a geofence defined in the video parameters; and a time period defined in the video parameters.

16. The computing device of claim 14, wherein defining the search update condition comprises: determining an expected availability of each video stream of the expected video streams; determining the relevance metric for each video stream of the expected video streams; determining a priority order of the expected video streams based on the expected availability and the relevance metric of each video stream of the expected video streams; and defining the search update condition according to the priority order of the expected video streams.

17. The computing device of claim 16, wherein determining the priority order comprises: prioritizing the expected video streams having respective relevance metrics to increase the completeness metric above a predefined threshold based on the expected availability of each video stream.

18. The computing device of claim 13, wherein defining the search update condition comprises: determining an expected availability of each video stream of the expected video streams; anddefining the search update condition based on the expected availability of at least one of the expected video streams.

19. The computing device of claim 13, wherein the search update condition is defined when the completeness metric is below a predefined threshold.

20. The computing device of claim 13, the code further operable to cause the processor to, whenthe search update condition is detected, update the search based on newly available video streams from the expected video streams.

21. The computing device of claim 20, the code further operable to cause the processor to: define, based on the search, updated video parameters; and update the search based on the newly available video streams matching the updated video parameters.

22. The computing device of claim 21, the code further operable to cause the processor to: determine an updated completeness metric for the search based on the available video streams and the expected video streams matching the updated video parameters.

23. The computing device of claim 13, the code further operable to cause the processor to: define, based on the search, updated search target parameters; and generate a new search request having the updated search target parameters.

24. The computing device of claim 13, the code further operable to cause the processor to: render a representation of one or more of: the available video streams; the expected video streams; an expected availability of each video stream of the expected video streams; a location of a source of each video stream of the expected video streams and the available video streams; and a relevance metric for each video stream of the available video streams and the expected video streams.

25. A method comprising:receiving a search request including search target parameters and video parameters; performing a search of available video streams matching the video parameters for a search target matching the search target parameters;determining a completeness metric for the search based on the available video streams and expected video streams matching the video parameters; andrendering a representation of one or more of: the available video streams; the expected video streams; and the completeness metric.