Method, system, and computer program for performing high-resolution video analysis
The differential induction-based video analysis system enhances processing efficiency and accuracy in high-resolution video analysis by using low-resolution frames to guide object detection, addressing the resource and time challenges of high-resolution video processing.
Patent Information
- Application Number
- JP2021195101
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-14
- Filing Date
- 2021-12-01
- Publication Date
- 2025-07-03
- Estimated Expiration
- 2041-12-01
AI Technical Summary
Processing high-resolution videos consumes excessive time and resources, and increases bandwidth burden due to the complexity of object detection tasks.
A differential induction-based video analysis system (DGS) generates a differential feature map from low-resolution frames to detect objects in high-resolution frames using spatial attention, reducing the need to process the entire high-resolution frame.
Improves processing efficiency and maintains accuracy in object detection for high-resolution videos by utilizing low-resolution frames to guide object detection in high-resolution frames.
Smart Images

Figure 0007702193000002 
Figure 0007702193000003 
Figure 0007702193000004
Abstract
Description
Technical Field
[0001] The present disclosure relates to video analysis, and more particularly, to high-resolution video analysis.
Background Art
[0002] Video analysis can include detecting objects and their positions within a frame of a video such as digital video recording. Video analysis can further include operations such as object classification and motion recognition of the detected objects. In some examples, at least one convolutional neural network (CNN) can be utilized to analyze a video in order to perform video analysis operations. The effectiveness of video analysis can be improved by increasing the resolution of the video being analyzed.
Summary of the Invention
Problems to be Solved by the Invention
[0003] A method, system, and computer program for performing differential induction type video analysis are provided.
Means for Solving the Problems
[0004] According to an embodiment of the present disclosure, the method can include obtaining a set of frames having a second resolution from a video having a first resolution. The first resolution can be higher than the second resolution. The set of frames can include a first frame and a second frame adjacent to the first frame. The method can include generating a differential feature map based on the first frame and the second frame. The method can include obtaining a third frame having the first resolution from the video. The third frame can have a third frame area. The method can include detecting a first position of a first object in the third frame based on the differential feature map. The method can include cropping a first cropped area corresponding to the first object from the third frame. The first cropped area can be smaller than the third frame area. The method can include generating a first feature map of the first cropped area. The method can include generating a spatial attention layer based on the first feature map and the differential feature map. The method can include detecting the first object in the first cropped area by the spatial attention layer.
[0005] Also included herein are a system and a computer program product corresponding to the above method.
[0006] The above summary is not intended to describe every illustrated embodiment or every implementation of the present disclosure.
Brief Description of the Drawings
[0007] The drawings included in this application are incorporated herein and form a part thereof. These drawings illustrate embodiments of the present disclosure and serve to explain the principles of the present disclosure together with the description. The drawings merely exemplify specific embodiments and do not limit the present disclosure.
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
[0009] The present invention is subject to various modifications and alternative forms, and specific ones thereof are shown in the drawings and described in detail by way of example. However, it should be understood that the intention is not to limit the present invention to the specific embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention.
Best Mode for Carrying Out the Invention
[0010] Aspects of the present disclosure relate to video analysis, and more specific aspects relate to difference-guided video analysis. The present disclosure is not necessarily limited to such applications, but various aspects of the present disclosure can be understood through consideration of various examples using this context.
[0011] Video analysis can include detecting objects and their positions within the frames of a video, such as digital video recordings. Video analysis can further include operations such as object classification and motion recognition of the detected objects. In some examples, at least one convolutional neural network (CNN) can be utilized to analyze the video in order to perform video analysis operations. The effectiveness of video analysis can be improved by increasing the resolution of the video being analyzed. For example, in some instances, a video object having a pixel size of 32 or less can be detected with higher accuracy in a video having a resolution of (7,680×4,320) pixels (hereinafter, “8K resolution”) than in a video having a resolution of (720×576) pixels.
[0012] However, such an improvement in the resolution of the video can also pose problems. For example, processing a video having a high resolution (e.g., from about (1,280×720) pixels to about 8K or higher resolution) may increase the processing time and / or the cost of tools such as memory and / or processors utilized to process the video. In some examples, processing such a high-resolution video may consume a bandwidth that burdens the system or network or both.
[0013] To address these and other issues, embodiments of the present disclosure include a differential induction-based video analysis system ("DGS"). According to embodiments of the present disclosure, the DGS can improve the efficiency of object detection in high-resolution video frames using a differential feature map generated from low-resolution video frames. More specifically, in some embodiments, the DGS can acquire video data such as digital video having an 8K resolution. The DGS can extract adjacent frames from the digital video and convert the adjacent frames to a low resolution (e.g., (720×480) pixels). The DGS can generate a differential feature map from the difference between adjacent low-resolution frames. Based on the differential feature map, the DGS can determine the position of an object in the high-resolution frame. Based on that position, the DGS can crop the area corresponding to the object from the high-resolution frame. The DGS can further detect an object within the high-resolution crop area using spatial attention that is partially based on the differential feature map. Thus, in effect, embodiments of the present disclosure can "induce" the detection of objects in high-resolution video frames using the difference between low-resolution video frames.
[0014] Accordingly, by using low-resolution frames to detect objects in high-resolution video, embodiments of the present disclosure can reduce the time and / or resources utilized to process high-resolution video for object detection. Embodiments of the present disclosure can improve the field of video analysis by improving processing efficiency while maintaining or improving the accuracy of object detection in high-resolution (e.g., 8K resolution) video. In some embodiments, the DGS can improve the accuracy of one or more video analysis operations by utilizing a spatial attention layer.
[0015] Referring to the figures, FIG. 1 shows a computing environment 100 that includes one or more of each of DGS105, computer device 120, server 130, or network 135 or combinations thereof. In some embodiments, at least one DGS105, computer device 120, or server 130 or combinations thereof can exchange data with at least one other through at least one network 135. Each one or more of DGS105, computer device 120, server 130, or network 135 or combinations thereof can include a computer system such as computer system 501 described with respect to FIG. 5.
[0016] In some embodiments, DGS105 can be included within software installed on at least one computer system of at least one of computer device 120 and / or server 130. For example, in some embodiments, DGS105 can be included as a plug-in software component of software installed on computer device 120. DGS105 can include program instructions implemented by a processor such as a processor of computer device 120 to perform one or more operations described with respect to FIGS. 2-4.
[0017] In some embodiments, DGS105 can include one or more modules such as data manager 110 and / or image analyzer 115 or both. In some embodiments, data manager 110 and image analyzer 115 can be integrated into a single module. In some embodiments, data manager 110 can perform acquisition, interpretation, analysis, storage, and / or initiation of storage of data such as video data 125. In some embodiments, image analyzer 115 can utilize image processing, editing, or analysis techniques or combinations thereof to analyze data such as video data 125. In some embodiments, image analyzer 115 can include a CNN. In some embodiments, data manager 110 and / or image analyzer 115 or both can include program instructions implemented by a processor such as the processor of computer device 120 to perform one or more operations described with respect to FIGS. 2-4. For example, in some embodiments, data manager 110 can include program instructions to perform operations 405 and 410 of FIG. 4. In some embodiments, image analyzer 115 can include program instructions to perform operations 415-435 of FIG. 4.
[0018] In some embodiments, one or more computer devices 120 can include one or more desktop computers, laptops, tablets, and the like. In some embodiments, one or more computer devices 120 can include video data 125. In some embodiments, the video data 125 can include information such as a video (e.g., a digital video file), a video frame / image, or a combination thereof. In some embodiments, the video data 125 can include information corresponding to video analysis, such as RGB values, predetermined threshold values, and the like. In some embodiments, the video data 125 can be included on one or more servers 130. In some embodiments, one or more servers 130 can include one or more web servers.
[0019] In some embodiments, the network 135 can be a wide area network (WAN), a local area network (LAN), the Internet, or an intranet. In some embodiments, the network 135 can be substantially the same as, or the same as, the cloud computing environment 50 described with respect to FIG. 6.
[0020] FIG. 2 shows an exemplary video 205 in which a DGS (e.g., DGS 105 of FIG. 1) can generate a spatial attention layer 265 according to an embodiment of the present disclosure. The video 205 can have an 8K resolution. From the video 205, the DGS can extract a first frame 210 and a second frame 215. The first frame 210 and the second frame 215 can be adjacent frames of the video 205, and each can have a resolution of (720×480) pixels. The first frame 210 and the second frame 215 can consist of respective sets of pixels that make up the images visible in the first frame 210 and the second frame 215. Each pixel can have a position (e.g., X and Y coordinates in the corresponding frame). Further, the color of each pixel can correspond to a set of red-green-blue (``RGB'') values. For example, white can correspond to RGB values (255, 255, 255), and black can correspond to RGB values (0, 0, 0).
[0021] The DGS can generate a differential feature map image 240 that can represent the difference between a first frame 210 and a second frame 215. For example, the generation of the differential feature map image 240 can include subtracting the second frame 215 from the first frame 210. The subtraction operation can correspond to subtracting the RGB values for each corresponding pixel position in the second frame 215 from the RGB values for each pixel position in the first frame 210. In the differential feature map image 240, regions that appear black can indicate pixel positions where the RGB values do not exceed a threshold, for example, RGB values less than (100, 100, 100), resulting from the subtraction operation. Such RGB values can indicate that there is no significant difference between the first frame 210 and the second frame 215 in those regions. In contrast, in the differential feature map image 240, regions that appear white can indicate pixel positions where the RGB values exceed a threshold, for example, RGB values greater than (100, 100, 100), resulting from the subtraction operation. Such RGB values can indicate the movement of objects between the first frame 210 and the second frame 215.
[0022] From the differential feature map image 240, or the RGB values corresponding to the differential feature map image 240, or both, the DGS can detect the approximate positions of a first object 225 and a second object 235 that indicate movement between the first frame 210 and the second frame 215. The DGS can generate a first bounding box 220 that encloses a first bounding box area. The first bounding box area can include the pixel positions corresponding to the first object 225. The DGS can further generate a second bounding box 230 that encloses a second bounding box area. The second bounding box area can include the pixel positions corresponding to the second object 235.
[0023] From video 205, DGS can extract a third frame 245 with 8K resolution. Based on the first bounding box 220, DGS can generate a third bounding box 250 for the third frame 245. The third bounding box 250 can enclose a third bounding box area including pixel positions corresponding to the third object 270. The third object 270 can correspond to the first object 225.
[0024] Based on the third bounding box 250, DGS can extract a crop area 255 from the third frame 245. The crop area 255 can include an enlarged image of the third object. DGS can generate a spatial attention layer 265 for the CNN based on the crop area 255 and the object data 260 corresponding to the first object 225 in the differential feature map image 240 (see, for example, Equation (1) below). DGS can use the spatial attention layer 265 to classify or accurately identify or both the third object 270 in subsequent 8K resolution frames of the 8K resolution video 205. Therefore, DGS can classify or accurately identify or both the third object 270 by processing the crop area 255 instead of processing the entire frame 245. In this way, DGS can reduce the time or resources or both for object detection (e.g., classification and identification) in high-resolution (e.g., 8K) videos.
[0025] Figure 3 shows an exemplary CNN 300 having a spatial attention layer 320 according to an embodiment of the present disclosure. In some embodiments, the CNN 300 can be utilized to detect an object in a crop area 305 generated according to an embodiment of the present disclosure. In some embodiments, the crop area 305 can include one or more portions of one or more frames (e.g., the crop area 255 of FIG. 2). The CNN 300 can include a set 310 of convolutional layers configured to extract features of the crop area 305. In some embodiments, the set 310 of convolutional layers can output a feature map 315 corresponding to the features of the crop area 305. In some embodiments, the CNN 300 can include a head layer 330 for performing specific tasks such as classification or recognition or both. In some embodiments, a spatial attention layer 320 generated according to the operations described with respect to FIGS. 2 and 4 can be included between the set 310 of convolutional layers and the head layer 330. In some embodiments, the spatial attention layer 320 can output refined features 325 having spatial attention. For example, the refined features 325 can be weighted to indicate the importance of regions of the crop area, such as regions corresponding to the positions of the objects detected in the differential feature map. Thus, in some embodiments, the spatial attention layer 320 can normalize the output of the CNN.
[0026] In some embodiments, the spatial attention layer 320 can include a matrix according to the following equation.
Equation
[0027] FIG. 4 shows a flowchart of an exemplary method 400 for performing a differential-induced video analysis operation according to an embodiment of the present disclosure. The method 400 can be executed by a DGS such as the DGS 105 described with respect to FIG. 1.
[0028] In operation 405, the DGS can obtain video data such as a video file including a digital video having a certain resolution (e.g., 8K resolution). The video data can include a set of frames or images each having a resolution such as 8K resolution. In some embodiments, the DGS can obtain such video data from a device such as a computer device (e.g., the computer device 120 of FIG. 1), a server (e.g., the server 130 of FIG. 1), or an image capture device such as a camera or a combination thereof.
[0029] In operation 410, the DGS can obtain a set of adjacent frames of the video. In some embodiments, the set of adjacent frames can include two frames arranged in sequence in the video. For example, in some embodiments, if the video has a frame rate of 20 frames per second, the set of adjacent frames can include the first and second frames, the ninth and tenth frames, or the nineteenth and twentieth frames of the video. The set of adjacent frames can have a resolution lower than the resolution of the source video (i.e., the video from which the set of adjacent frames is obtained). For example, in some embodiments, the DGS can obtain a source video having a resolution of (3,840 × 2,160) pixels (hereinafter, "4K resolution") in operation 405. Continuing with this example, in operation 410, the DGS can use a video editing tool to extract adjacent frames having a low resolution, such as a resolution of (720 × 480) pixels, from the source video.
[0030] In operation 415, the DGS can generate a differential feature map. In the present disclosure, the differential feature map can refer to an expression of the difference between the features of two frames of a video (e.g., two adjacent frames). In some embodiments, the differential feature map can include a matrix having a set of values corresponding to a set of pixel positions of a frame or an image. For example, in some embodiments, such a matrix can include a set of RGB values corresponding to the pixel positions of an image. Continuing with this example, at the pixel position (x = 0, y = 0) (e.g., the bottom left pixel of the image), the matrix can store the RGB value (0, 0, 0) that represents black. Continuing with this example, at the pixel position (x = 10, y = 50), the matrix can store the RGB value (255, 255, 255) that represents white. In this example, the pixel positions having RGB values representing white can indicate pixel positions where there is a difference between the first frame and the second frame of the video (e.g., refer to the differential feature map image 240 discussed with respect to FIG. 2). In some embodiments, the differential feature map can include a differential feature map image (e.g., the differential feature map image 240 of FIG. 2).
[0031] In some embodiments, generating the differential feature map can include the DGS calculating the difference between the RGB values corresponding to the first frame of the video and the RGB values corresponding to the second frame. In some embodiments, operation 415 can include the DGS performing a principal component analysis of such calculated differences, or clustering the output corresponding to the calculated differences, or both. In some embodiments, operation 415 can include the DGS selecting a threshold, such as a set of threshold RGB values that can indicate the movement of an object in the differential feature map. In some embodiments, the DGS can perform a machine learning process to select such a threshold. In some embodiments, the threshold can be selected by an entity such as a programmer of the DGS or a user of the DGS or both.
[0032] In operation 420, the DGS can detect the position of one or more objects in the differential feature map generated in operation 415. For example, in some embodiments, operation 420 can include the DGS analyzing the pixel positions of the differential feature map that have RGB values exceeding a threshold. Such pixel positions can correspond to the movement of an object between adjacent frames of the video. Continuing with this example, the DGS can select an area of the differential feature map that includes pixel positions having RGB values exceeding the threshold. Continuing with this example, the DGS can generate a bounding box surrounding such an area, which can be referred to as the bounding box area. The bounding box area can indicate the approximate position of the object in the differential feature map.
[0033] In operation 425, based on the bounding box area selected in operation 420, the DGS can obtain a crop area from the third frame of the source video. The crop area can include an object in the third frame corresponding to the object detected in the differential feature map in operation 420. The third frame can have a resolution higher than the resolution of the adjacent frames obtained in operation 410. For example, in some embodiments, operation 425 can include the DGS obtaining a crop area of an 8K resolution frame. In some embodiments, operation 425 can include the DGS converting the bounding box area selected in operation 420 to a corresponding position in the third frame. For example, in some embodiments, the DGS can determine a relationship (e.g., a linear relationship) between the pixel positions of the differential feature map having 720×480 pixels and the pixel positions of the third frame having a corresponding 8K resolution. Based on such a relationship, the DGS can identify a set of pixel positions of the 8K resolution frame corresponding to the pixel positions of the bounding box area of the differential feature map. In this example, the identified set of pixel positions of the corresponding 8K resolution frame can be referred to as the converted bounding box area. In some embodiments, the converted bounding box area can be the same as or substantially similar to the crop area. Since the DGS can extract the crop area from the third frame, the crop area can be smaller than the area of the third frame. In some embodiments, the DGS can enlarge the image of the object included in the crop area. Such enlargement can improve the detection of the object in subsequent frames obtained from the source video (e.g., object detection by the CNN 300 in FIG. 3).
[0034] In operation 430, the DGS can generate a spatial attention matrix according to equation (1) described with respect to FIG. 3. In some embodiments, the spatial attention matrix can be incorporated into the spatial attention layer of the CNN. The spatial attention matrix can weight the pixel positions of the frame corresponding to the pixel positions in the difference feature map where one or more objects are detected. Thus, the spatial attention matrix can facilitate the efficient and accurate detection of objects in the frame.
[0035] In operation 435, the DGS can utilize the spatial attention matrix generated in operation 430 to detect (e.g., identify or classify or both) objects in the crop area of the video frame.
[0036] FIG. 5 shows representative major components of an exemplary computer system 501 that can be used according to embodiments of the present disclosure. The particular components shown are presented for illustrative purposes only and are not necessarily the only such variations. The computer system 501 can include a processor 510, a memory 520, an input / output interface (also referred to herein as I / O or I / O interface) 530, and a main bus 540. The main bus 540 can provide a communication path for other components of the computer system 501. In some embodiments, the main bus 540 can be connected to other components such as a dedicated digital signal processor (not shown).
[0037] The processor 510 of the computer system 501 can be composed of one or more CPUs 512. The processor 510 can further be composed of one or more memory buffers or caches (not shown) that provide temporary storage of instructions and data for the CPU 512. The CPU 512 can execute instructions on the input provided from the cache or memory 520 and output the results to the cache or memory 520. The CPU 512 can be composed of one or more circuits configured to execute one or more methods consistent with the embodiments of the present disclosure. In some embodiments, the computer system 501 can include multiple processors 510 typical of relatively large-scale systems. However, in other embodiments, the computer system 501 can be a single processor having a single CPU 512.
[0038] The memory 520 of the computer system 501 can be composed of a memory controller 522 and one or more memory modules (not shown) for temporarily or permanently storing data. In some embodiments, the memory 520 can include a random access semiconductor memory, a storage device, or a storage medium (either volatile or non-volatile) for storing data and programs. The memory controller 522 can communicate with the processor 510 to facilitate storing and retrieving information in the memory module. The memory controller 522 can communicate with the I / O interface 530 to facilitate storing and retrieving input or output in the memory module. In some embodiments, the memory module can be a dual in-line memory module.
[0039] The I / O interface 530 can include an I / O bus 550, a terminal interface 552, a storage interface 554, an I / O device interface 556, and a network interface 558. The I / O interface 530 can connect the main bus 540 to the I / O bus 550. The I / O interface 530 can direct instructions and data from the processor 510 and the memory 520 to various interfaces of the I / O bus 550. Also, the I / O interface 530 can direct instructions and data from various interfaces of the I / O bus 550 to the processor 510 and the memory 520. The various interfaces can include the terminal interface 552, the storage interface 554, the I / O device interface 556, and the network interface 558. In some embodiments, the various interfaces can include a subset of the aforementioned interfaces (e.g., an embedded computer system in an industrial application may not include the terminal interface 552 and the storage interface 554).
[0040] Logical modules throughout the computer system 501 (including, but not limited to, the memory 520, the processor 510, and the I / O interface 530) can communicate the failure and change of one or more components to a hypervisor or an operating system (not shown). The hypervisor or the operating system can allocate various resources available in the computer system 501 and track the location of data in the memory 520 and the processes allocated to the various CPUs 512. In embodiments that combine or relocate elements, aspects of the capabilities of the logical modules can be combined or redistributed. These variations will be apparent to those skilled in the art.
[0041] This disclosure includes a detailed description regarding cloud computing, but it is understood in advance that the implementation of the teachings described herein is not limited to a cloud computing environment. Rather, embodiments of the present invention can be implemented in connection with any other type of computing environment now known or later developed.
[0042] Cloud computing is a service delivery model that enables convenient on-demand network access to a shared pool of configurable computing resources (such as networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0043] The characteristics are as follows.
[0044] On-demand self-service: A cloud consumer can, as needed, automatically and unilaterally provision computing capabilities such as server time and network storage without the need for a human to interact with the service provider.
[0045] Broad network access: The capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (such as mobile phones, laptops, and PDAs).
[0046] Resource pooling: The provider's computing resources are pooled to provide services to multiple consumers by dynamically allocating and reallocating different physical and virtual resources on demand using a multi-tenant model. Consumers are generally location-independent in that they have no control or knowledge of the exact location of the resources provided, although they may be able to specify a higher level of abstraction (e.g., country, state, or data center).
[0047] Rapid elasticity: Functions can be provisioned quickly and elastically, in some cases automatically, to scale out rapidly and released quickly to scale in. For consumers, these functions available for provisioning often appear to be unlimited and can be purchased in any amount at any time.
[0048] Measurement of services: The cloud system automatically controls and optimizes resource use by using a metering function at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). It can monitor, control, report, and provide transparency to both the provider and the consumer of the services used.
[0049] The service model is as follows
[0050] Software as a Service (SaaS): A function provided to consumers to use an application of a provider operating on cloud infrastructure. These applications are accessible from various client devices through a thin-client interface such as a web browser (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, server, operating system, storage, or individual application features, with the possible exception of limited user-specific application configuration settings.
[0051] Platform as a Service (PaaS): A function provided to consumers to deploy consumer-generated or acquired applications on cloud infrastructure, which are generated using programming languages and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure such as the network, server, operating system, or storage, but have control over the deployed applications and, in some cases, the application hosting environment configuration.
[0052] Infrastructure as a Service (IaaS): A function provided to consumers to provision processing, storage, network, and other basic computing resources on which consumers can deploy and operate any software that may include an operating system and applications. Consumers do not manage or control the underlying cloud infrastructure, but have limited control over the operating system, storage, control of deployed applications, and, in some cases, selection of network components (e.g., host firewall).
[0053] The deployment model is as follows.
[0054] Private cloud: The cloud infrastructure is operated only for a certain organization. This cloud infrastructure can be managed by the organization or a third party and can exist on-premises or off-premises.
[0055] Community cloud: The cloud infrastructure is shared by several organizations and supports a specific community with common concerns (e.g., mission, security requirements, policies, and compliance considerations). The cloud infrastructure can be managed by the organization or a third party and can exist on-premises or off-premises.
[0056] Public cloud: The cloud infrastructure is available to the general public or large industry groups and is owned by an organization that sells cloud services.
[0057] Hybrid cloud: The cloud infrastructure remains a distinct entity but is a hybrid of two or more clouds (private, community, or public) connected by standardized or proprietary technologies (e.g., cloud bursting for load distribution between clouds) that enable data and application portability.
[0058] The cloud computing environment is a service that aims to focus on statelessness, low coupling, modularity, and semantic interoperability. The core of cloud computing is the infrastructure that includes a network of interconnected nodes.
[0059] Referring now to FIG. 6, an exemplary cloud computing environment 50 is shown. As illustrated, cloud computing environment 50 includes one or more cloud computing nodes 10 that can communicate with local computing devices used by cloud consumers such as, for example, a personal digital assistant (PDA) or cellular telephone 54A, a desktop computer 54B, a laptop computer 54C, or a computer system 54N, or a combination thereof. Nodes 10 can communicate with one another. These nodes can be physically or virtually grouped in one or more networks such as private clouds, community clouds, public clouds, or hybrid clouds as described above, or combinations thereof (not shown). This allows cloud computing environment 50 to provide infrastructure as a service, platform as a service, or software as a service, or combinations thereof, without a cloud consumer having to maintain resources on a local computing device. It is intended that the types of computing devices 54A-N shown in FIG. 6 are merely exemplary, and that computing nodes 10 and cloud computing environment 50 can communicate with any type of computerized device on or across any type of network addressable connection (e.g., using a web browser).
[0060] Referring now to FIG. 7, a set of functional abstractions provided by cloud computing environment 50 (FIG. 6) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 7 are merely exemplary and that embodiments of the invention are not limited thereto. As illustrated, the following layers and corresponding functions are provided.
[0061] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (Reduced Instruction Set Computer) architecture-based server 62, server 63, blade server 64, storage device 65, network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0062] The virtualization layer 70 provides an abstraction layer that can provide the following examples of virtual entities: virtual server 71, virtual storage 72, virtual network 73 including a virtual private network, virtual applications and operating systems 74, and virtual clients 75.
[0063] In one example, the management layer 80 can provide the functions described below. Resource provisioning 81 provides for the dynamic procurement of computing resources and other resources utilized to execute tasks within a cloud computing environment. Metering and pricing 82 provides for cost tracking of resources utilized within a cloud computing environment and for charging or billing for consumption of these resources. In one example, these resources can include application software licenses. Security provides for verification of identification information for cloud consumers and tasks and for protection of data and other resources. The user portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides for the allocation and management of cloud computing resources such that the required service levels are met. Planning and fulfillment of service level agreements (SLAs) 85 provides for the pre-placement and procurement of cloud computing resources where future requirements are predicted according to an SLA.
[0064] The workload layer 90 provides examples of functions that can utilize a cloud computing environment. Examples of workloads and functions that can be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom education delivery 93, data analysis processing 94, transaction processing 95, and differential derivative video analytics logic 96. It should be understood that these are only some examples and that in other embodiments the layer may include different services.
[0065] As will be described in more detail below, some or all of some of the operations of the embodiments of the methods described herein may be performed in an alternative order or not at all, and further, multiple operations may be performed simultaneously or as part of a larger process.
[0066] The present invention can integrate a system, method, computer program product, or a combination thereof at any possible technical detail level. The computer program product can include one or more computer-readable storage media having thereon computer-readable program instructions for causing a processor to execute aspects of the present invention.
[0067] The computer-readable storage media can be a tangible device that can hold and store instructions for use by an instruction execution device. The computer-readable storage media can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage media includes the following: namely, 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), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a punch card, or a mechanically encoded device such as a raised structure in a groove having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, the computer-readable storage media is not construed as a transitory signal itself, such as a radio wave, or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse through an optical fiber cable), or an electrical signal transmitted through a wire.
[0068] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to respective computing / processing devices, or to an external computer or external storage device via a network such as, for example, the Internet, a local area network, a wide area network, or a wireless network or a combination thereof. The network can include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each respective computing / processing device.
[0069] The computer-readable program instructions for carrying out the operations of the present invention may be source code or object code described in any combination of one or more programming languages, including assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuits, or object-oriented programming languages such as Smalltalk, C++, and ordinary procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may sometimes be executed entirely on the user's computer, sometimes be executed on the user's computer as a stand-alone software package, sometimes be executed partly on the user's computer and partly on a remote computer, or sometimes be executed entirely on the remote computer or server. In the last scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or there may be a connection to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, for example, an electronic circuit including a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) may use the state information of the computer-readable program instructions to execute the computer-readable program instructions by individuating the electronic circuit and implement aspects of the present invention.
[0070] Aspects of the present invention are described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. 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-readable program instructions.
[0071] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing apparatus create means for implementing the functions / operations specified in one or more blocks of a flowchart, a block diagram, or both. These computer program instructions can also be stored in a computer-readable medium that can direct a computer, a programmable data processing apparatus, or other devices or combinations thereof to function in a particular manner, such that the computer-readable medium storing the instructions includes a product including instructions for implementing the mode of function / operation specified in one or more blocks of a flowchart, a block diagram, or both.
[0072] The computer program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operation steps to be performed on the computer, other programmable data processing apparatus, or other device to generate a computer-implemented process, such that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / operations specified in one or more blocks of a flowchart, a block diagram, or both.
[0073] The flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram can represent a module, segment, or portion of code that includes one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in accordance with the functionality involved, actually be accomplished as one step simultaneously, substantially simultaneously, partially, or fully in a temporally overlapping manner, or these blocks may sometimes be executed in the reverse order. It should also be noted that each block of the block diagrams or flowchart diagrams, or combinations of blocks in the block diagrams or flowchart diagrams or both, can be implemented by a dedicated hardware-based system that performs the specified functions or operations, or a combination of dedicated hardware and computer instructions.
[0074] The descriptions of the various embodiments of the present disclosure are presented for purposes of illustration, but are not intended to be exhaustive or to limit the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen to best explain the principles of the embodiments, the practical application, or a technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A method for performing high-resolution video analysis by computer information processing, comprising: obtaining a set of frames having a second resolution from a video having a first resolution, wherein the first resolution is higher than the second resolution; obtaining the set of frames, wherein the set of frames includes a first frame and a second frame adjacent to the first frame; generating a differential feature map based on the first frame and the second frame; obtaining a third frame having the first resolution from the video, wherein the third frame has a third frame area; detecting a first position of a first object in the third frame based on the differential feature map; cropping a first crop area corresponding to the first object from the third frame, wherein the first crop area is smaller than the third frame area; generating a first feature map of the first crop area; generating a spatial attention layer based on the first feature map and the differential feature map; detecting the first object in the first crop area by the spatial attention layer A method comprising the steps of:
2. The method according to claim 1, wherein generating the differential feature map includes calculating a difference between a first value corresponding to a first pixel of the first frame and a second value corresponding to a second pixel of the second frame.
3. The method according to claim 2, wherein the first value and the second value include red-green-blue (RGB) values.
4. generating an output by the spatial attention layer; and inputting the output into a head of a convolutional neural network The method according to any one of claims 1 to 3, further comprising the steps of:
5. The detecting of the first position includes: identifying a set of pixel positions having respective values exceeding a threshold in the differential feature map; selecting a bounding box area including the set of pixel positions; converting the bounding box area into the third frame to yield a converted bounding box area including: The transformed bounding box area includes the first crop area. The method according to any one of claims 1 to 4. **Claim 6** The method according to any one of claims 1 to 5, wherein detecting the first object includes normalizing the output of the convolutional neural network by the spatial attention layer. **Claim 7** The method according to any one of claims 1 to 6, wherein the spatial attention layer includes calculating a difference between the weighted output of the convolutional neural network and the values of the difference feature map. **Claim 8** The method according to any one of claims 1 to 7, wherein the first resolution is (7680×4320) pixels and the second resolution is (720×480) pixels. **Claim 9** A system for performing high-resolution video analysis, one or more processors; one or more computer-readable storage media storing program instructions; comprising when the program instructions are executed by the one or more processors, causing the one or more processors to obtain a set of frames having a second resolution from a video having a first resolution, wherein the first resolution is higher than the second resolution, the set of frames including a first frame and a second frame adjacent to the first frame; obtaining generating a difference feature map based on the first frame and the second frame; obtaining a third frame having the first resolution from the video, the third frame having a third frame area; obtaining detecting a first position of a first object in the third frame based on the difference feature map; cropping a first crop area corresponding to the first object from the third frame, the first crop area being smaller than the third frame area; cropping generating a first feature map of the first crop area; generating a spatial attention layer based on the first feature map and the difference feature map; detecting the first object in the first crop area by the spatial attention layer A system configured to cause a method including
10. The system according to claim 9, wherein generating the difference feature map includes calculating a difference between a first value corresponding to a first pixel of the first frame and a second value corresponding to a second pixel of the second frame.
11. The system according to claim 10, wherein the first value and the second value include red-green-blue (RGB) values.
12. The method further includes: generating an output by the spatial attention layer; inputting the output into a head of a convolutional neural network; The system according to any one of claims 9 to 11.
13. Detecting the first position includes: identifying a set of pixel positions having respective values exceeding a threshold in the difference feature map; selecting a bounding box area including the set of pixel positions; converting the bounding box area into the third frame to result in a converted bounding box area; including wherein the converted bounding box area includes the first crop area. The system according to any one of claims 9 to 12.
14. The system according to any one of claims 9 to 13, wherein detecting the first object includes normalizing an output of a convolutional neural network by the spatial attention layer.
15. The system according to any one of claims 9 to 14, wherein the spatial attention layer includes calculating a difference between a weighted output of a convolutional neural network and a value of a difference feature map.
16. A computer program for causing a computer to execute the method according to any one of claims 1 to 8.
17. A computer-readable storage medium storing the computer program according to claim 16.
Citation Information
Patent Citations
Image sensor device and image sensor system
JP2006127195A
System and method for attention-based configurable convolutional neural network (abc-CNN) for visual question answering
JP2017091525A
Real-time video analysis for security surveillance
US20160171852A1