WO2025023530A1 - Method, computer device and computer program for generating video snapshots by using image hashing - Google Patents
Method, computer device and computer program for generating video snapshots by using image hashing Download PDFInfo
- Publication number
- WO2025023530A1 WO2025023530A1 PCT/KR2024/008874 KR2024008874W WO2025023530A1 WO 2025023530 A1 WO2025023530 A1 WO 2025023530A1 KR 2024008874 W KR2024008874 W KR 2024008874W WO 2025023530 A1 WO2025023530 A1 WO 2025023530A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- frames
- similarity
- video
- snapshot
- computer device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/803—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of input or preprocessed data
Definitions
- One technique to solve this problem is to remove some of the frames contained in the video and create a snapshot consisting of only the remaining frames, which can then be used for video analysis.
- snapshot generation technology can be used to provide highlight reels for videos.
- Korean Patent Registration No. 10-1174176 (registration date August 8, 2012) discloses a technology for generating a thumbnail that summarizes the entire content of a video file by sampling and selecting snapshots at multiple points in the entire running time of the video file.
- a zero-shot technique can be used to determine whether a frame contains a user-defined class using a hash.
- a method for generating a video snapshot executed on a computer device including at least one processor configured to execute computer-readable instructions contained in a memory, the method for generating a video snapshot including the step of removing, by the at least one processor, redundant frames from frames included in a video and generating a snapshot with the remaining frames, while maintaining frames including target information defined by a user to generate the snapshot.
- the generating step may generate a snapshot of the video using a hash generated through a machine learning model.
- the generating step can generate a snapshot of the video through a multi-modal model learned by expressing embeddings of different modalities in a single vector space.
- the generating step may include: a step of calculating a first similarity indicating image similarity between frames included in the video; a step of calculating a second similarity indicating a similarity relationship with a prompt registered as the target information for each frame included in the video; and a step of selecting some frames included in the video as the duplicate frames based on the first similarity and the second similarity.
- the step of calculating the first similarity calculates the first similarity by using a multi-modal model learned by expressing embeddings of different modalities in a single vector space, and the first similarity can be calculated through the vector distance between image embeddings that embed features of images corresponding to each frame.
- the step of calculating the second similarity may include a step of registering the prompt as content in any one of text, image, and audio forms.
- the step of calculating the second similarity calculates the second similarity by using a multi-modal model learned by expressing embeddings of different modalities in a single vector space, and the second similarity can be calculated through the vector distance between the prompt embedding that embeds the features of the prompt registered as the target information and the image embedding that embeds the features of the image corresponding to each frame.
- the selecting step may include: a step of clustering frames having a similarity of a certain level or higher based on the first similarity; a step of selecting frames remaining after excluding a certain number of frames per cluster as candidate frames of the duplicate frame; and a step of excluding frames having the second similarity of a certain level or higher among the candidate frames from the selection target of the duplicate frame.
- the multi-modal model may be a model in which the similarity of embeddings for data pairs is learned using contrastive learning.
- the multi-modal model may be a vision-language pre-trained (VLP) model learned through contrastive learning.
- VLP vision-language pre-trained
- a computer program stored in a non-transitory computer-readable recording medium is provided for executing the above video snapshot generation method on the computer device.
- At least one processor configured to execute computer-readable instructions contained in a memory, the at least one processor processing a process of removing duplicate frames from frames contained in a video and generating a snapshot with the remaining frames, while maintaining frames containing target information defined by a user to generate the snapshot.
- FIG. 1 is a diagram illustrating an example of a network environment according to one embodiment of the present invention.
- FIG. 2 is a block diagram illustrating an example of a computer device according to one embodiment of the present invention.
- Figure 3 illustrates an example of frames that make up a video.
- Figure 4 illustrates an example of creating a video snapshot.
- FIG. 5 is a flowchart illustrating an example of a method that a computer device according to an embodiment of the present invention can perform.
- FIGS. 6 and 7 are exemplary drawings for explaining a searchable multi-modal model according to one embodiment of the present invention.
- FIG. 8 is a flowchart illustrating an example of a duplicate frame filtering process according to one embodiment of the present invention.
- Figures 9 and 10 illustrate examples of snapshot creation using a prompt according to one embodiment of the present invention.
- Embodiments of the present invention relate to techniques for generating video snapshots.
- Embodiments including those specifically disclosed herein can generate a snapshot in a form that retains key frames containing target information when generating a video snapshot.
- a video snapshot generation system can be implemented by at least one computer device, and a video snapshot generation method according to embodiments of the present invention can be performed by at least one computer device included in the video snapshot generation system.
- a computer program according to an embodiment of the present invention can be installed and run on the computer device, and the computer device can perform the video snapshot generation method according to embodiments of the present invention under the control of the run computer program.
- the above-described computer program can be stored in a computer-readable recording medium so as to be combined with the computer device and cause the computer to execute the video snapshot generation method.
- FIG. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
- the network environment of FIG. 1 represents an example including a plurality of electronic devices (110, 120, 130, 140), a plurality of servers (150, 160), and a network (170).
- FIG. 1 is an example for explaining the invention, and the number of electronic devices or servers is not limited to FIG. 1.
- the network environment of FIG. 1 merely describes one example of environments applicable to the present embodiments, and the environment applicable to the present embodiments is not limited to the network environment of FIG. 1.
- the plurality of electronic devices (110, 120, 130, 140) may be fixed terminals or mobile terminals implemented as computer devices.
- Examples of the plurality of electronic devices (110, 120, 130, 140) include smart phones, mobile phones, navigation devices, computers, laptops, digital broadcasting terminals, PDAs (Personal Digital Assistants), PMPs (Portable Multimedia Players), tablet PCs, etc.
- PDAs Personal Digital Assistants
- PMPs Portable Multimedia Players
- tablet PCs etc.
- the shape of a smart phone is shown as an example of the electronic device (110), but in the embodiments of the present invention, the electronic device (110) may actually mean one of various physical computer devices that can communicate with other electronic devices (120, 130, 140) and/or servers (150, 160) via a network (170) using a wireless or wired communication method.
- the communication method is not limited, and may include not only a communication method that utilizes a communication network (for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network (170) may include, but also a short-range wireless communication between devices.
- a communication network for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network
- the network (170) may include, but also a short-range wireless communication between devices.
- the network (170) may include any one or more of a network such as a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), and the Internet.
- PAN personal area network
- LAN local area network
- CAN campus area network
- MAN metropolitan area network
- WAN wide area network
- BBN broadband network
- the network (170) may include any one or more of a network topology including, but not limited to, a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree, or a hierarchical network.
- a network topology including, but not limited to, a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree, or a hierarchical network.
- Each of the servers (150, 160) may be implemented as a computer device or multiple computer devices that communicate with multiple electronic devices (110, 120, 130, 140) through a network (170) to provide commands, codes, files, contents, services, etc.
- the server (150) may be a system that provides a service (e.g., a video analysis service, etc.) to multiple electronic devices (110, 120, 130, 140) connected through a network (170).
- a service e.g., a video analysis service, etc.
- FIG. 2 is a block diagram illustrating an example of a computer device according to an embodiment of the present invention.
- Each of the plurality of electronic devices (110, 120, 130, 140) or servers (150, 160) described above can be implemented by the computer device (200) illustrated in FIG. 2.
- the computer device (200) may include a memory (210), a processor (220), a communication interface (230), and an input/output interface (240), as illustrated in FIG. 2.
- the memory (210) may be a computer-readable storage medium, and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive.
- the permanent mass storage devices such as the ROM and the disk drive may be included in the computer device (200) as a separate permanent storage device distinct from the memory (210).
- the memory (210) may store an operating system and at least one program code. These software components may be loaded into the memory (210) from a computer-readable storage medium separate from the memory (210).
- the separate computer-readable storage medium may include a computer-readable storage medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, a memory card, etc.
- the software components may be loaded into the memory (210) via a communication interface (230) other than a computer-readable recording medium.
- the software components may be loaded into the memory (210) of the computer device (200) based on a computer program that is installed by files received over a network (170).
- the processor (220) may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations.
- the instructions may be provided to the processor (220) by the memory (210) or the communication interface (230).
- the processor (220) may be configured to execute instructions received according to program code stored in a storage device such as the memory (210).
- the communication interface (230) may provide a function for the computer device (200) to communicate with other devices (for example, the storage devices described above) via the network (170). For example, requests, commands, data, files, etc. generated by the processor (220) of the computer device (200) according to program codes stored in a recording device such as the memory (210) may be transmitted to other devices via the network (170) under the control of the communication interface (230). Conversely, signals, commands, data, files, etc. from other devices may be received by the computer device (200) via the communication interface (230) of the computer device (200) via the network (170). Signals, commands, data, etc. received via the communication interface (230) may be transmitted to the processor (220) or the memory (210), and files, etc. may be stored in a storage medium (the permanent storage device described above) that the computer device (200) may further include.
- a storage medium the permanent storage device described above
- the input/output interface (240) may be a means for interfacing with an input/output device (250).
- the input device may include a device such as a microphone, a keyboard, or a mouse
- the output device may include a device such as a display or a speaker.
- the input/output interface (240) may be a means for interfacing with a device that integrates input and output functions into one, such as a touch screen.
- the input/output device (250) may be configured as a single device with the computer device (200).
- the computer device (200) may include fewer or more components than the components of FIG. 2. However, it is not necessary to explicitly illustrate most of the conventional components.
- the computer device (200) may be implemented to include at least some of the input/output devices (250) described above, or may further include other components such as a transceiver, a database, etc.
- Video snapshots can be used to analyze videos, including video files such as MP4 or AVI, and animated images such as GIF or WEBP.
- a snapshot can be generated by calculating the sum of absolute difference (SAD), which represents the difference in pixel values between neighboring frames, and then detecting frames where the SAD is greater than a user-defined value.
- SAD sum of absolute difference
- an algorithm for removing duplicate frames through image processing based hash technology can be applied to generate video snapshots.
- a duplicate frame may mean not only a perfectly matching frame, but also a frame with a certain degree of similarity.
- a frame with a slight deformation such as translation or rotation may be recognized as a duplicate frame.
- most similar frames can be said to be near duplicates.
- the present embodiments can remove some of the frames contained in a given video and create a snapshot using only the remaining frames.
- Figure 3 illustrates an example of video frames for snapshot generation. As illustrated in Figure 3, it is assumed that a given video (30) consists of 10 frames.
- duplicate frames can be removed and a snapshot can be generated with the remaining frames.
- the 10 frames included in the video (30) there is a high probability that one of the frames (1) and (2) will be removed due to the image similarity.
- frames (1), (4), (5), (7), and (10) are selected as duplicate frames and deleted, and then a snapshot (41) can be generated with frames (2), (3), (6), (8), and (9).
- QR quick response code
- QRs for various purposes, such as QRs that connect to OA (official accounts) and QRs shared for personal meetings.
- QRs may require censorship as they are prohibited from being shared.
- a technology is needed that can retain frames containing target information, such as key monitoring content, when creating snapshots for video analysis, highlight production, etc.
- the computer device (200) can provide a video analysis service to a client through a dedicated application installed on the client or a web/mobile site access related to the computer device (200).
- the computer device (200) can be configured with a video snapshot generation system implemented by a computer.
- the video snapshot generation system can be implemented in the form of an independently operating program, or can be configured in the form of an in-app of a specific application and implemented so as to be operable on the specific application.
- the processor (220) of the computer device (200) may be implemented as a component for performing the following video snapshot generation method.
- the components of the processor (220) may be selectively included in or excluded from the processor (220).
- the components of the processor (220) may be separated or merged to express the function of the processor (220).
- processors (220) and components of the processor (220) can control the computer device (200) to perform the steps included in the following video snapshot generation method.
- the processor (220) and components of the processor (220) can be implemented to execute instructions according to the code of the operating system included in the memory (210) and the code of at least one program.
- the components of the processor (220) may be representations of different functions performed by the processor (220) according to instructions provided by the program code stored in the computer device (200).
- the processor (220) can read necessary commands from the memory (210) loaded with commands related to the control of the computer device (200).
- the read commands may include commands for controlling the processor (220) to execute steps to be described later.
- the steps included in the method for generating a video snapshot to be described hereinafter may be performed in a different order than the illustrated order, and some of the steps may be omitted or additional processes may be included.
- the steps included in the method for generating a video snapshot may be performed on the server (150), and in some embodiments, at least some of the steps may also be performed on the client.
- FIG. 5 is a flowchart illustrating an example of a method that a computer device can perform according to an embodiment of the present invention.
- the processor (220) can calculate the image similarity (hereinafter, referred to as 'first similarity') between frames included in the video.
- the processor (220) can calculate the degree of similarity between frames using a hash based on machine learning.
- the processor (220) can calculate the first similarity that represents the image similarity through the distance between the embedding vectors by embedding the features of each image corresponding to the frame.
- the processor (220) may calculate the similarity (hereinafter, referred to as 'second similarity') between each frame included in the video and the prompt when a prompt defined by the user is given. Similarly, the processor (220) may calculate the degree of similarity between the frame and the prompt using a machine learning-based hash.
- target information to be included in a snapshot may be defined using a prompt, and at this time, the prompt may be input by the user as various types of content such as text, image, and audio.
- the processor (220) may embed the features of the target information defined through the prompt and calculate the second similarity through the vector distance between the prompt embedding and the image embedding of each frame.
- the hash may be used to determine the similarity between the class defined by the user for the image frame using a zero-shot technique.
- the processor (220) may select duplicate frames to be removed based on the first similarity and the second similarity among frames included in the video.
- the processor (220) may cluster frames having a similarity level higher than a certain level based on the first similarity, and then select the remaining frames, excluding a set number of frames (for example, 1) for each cluster, as candidate frames.
- the processor (220) may finally select a frame among the candidate frames having a second similarity lower than a certain level as a duplicate frame.
- the processor (220) may exclude a frame among the candidate frames having a second similarity level higher than a certain level from the target of selecting a duplicate frame.
- step (S540) the processor (220) can remove frames finally selected as duplicate frames from among the frames included in the video and create a snapshot with the remaining frames. After clustering the frames included in the video based on the first similarity, a snapshot can be created while maintaining the maximum total frames of a specific cluster corresponding to the second similarity. In this embodiment, duplicate frames are removed based on image similarity and a snapshot can be created with the remaining frames, while including as many frames as possible that are similar to a class defined by the user.
- FIGS. 6 and 7 are exemplary drawings for explaining a searchable multi-modal model according to one embodiment of the present invention.
- the present invention can use a multi-modal model that enables retrieval using clustering and various types of prompts.
- a multi-modal model includes a method of extracting embeddings for various modalities such as text (601), video (or image) (602), and audio (603), while learning so that embeddings of different modalities can be shared in a single vector space (600).
- the above-mentioned model learning method can utilize contrastive learning, etc., and a representative method is a large-scale VLP (vision-language pre-trained) model such as CLIP (contrastive language-image pre-training model).
- VLP vision-language pre-trained
- CLIP contrastive language-image pre-training model
- learning is performed so that the similarity of the embeddings extracted from the text encoder (701) and the image encoder (702) for image-text pairs corresponding to contexts with the same meaning increases, and the similarity of the embeddings extracted from the text encoder (701) and the image encoder (702) for image-text pairs corresponding to contexts with different meanings decreases.
- an image encoder (702) trained together with a text encoder (701) it can be used for dual purposes as it can represent the visual characteristics of an image well while simultaneously representing the semantic characteristics of a text.
- Image-text embedding is a method for embedding and combining features of images and texts. It can well express the relationship between embedded classes and can be mainly used for image-text retrieval, image captioning, and VQA (visual question answering).
- FIG. 8 is a flowchart illustrating an example of a duplicate frame filtering process according to one embodiment of the present invention.
- filtering using a prompt defined by a user and filtering using image similarity can be performed simultaneously by using an embedding extracted through a multi-modal model.
- the processor (220) can extract image embedding for each frame included in a video through an image encoder (702) learned together with a text encoder (701), and at this time, image similarity between frames can be calculated using the frame-by-frame embedding (S801).
- the processor (220) can input a text-type prompt (80) by a user, and at this time, a text embedding for the prompt (80) can be extracted through a text encoder (701) trained together with an image encoder (702).
- a prompt such as "qr”, “qr image”, “photo of qr code”, or "qr code image” as text representing the target information.
- the processor (220) can compare the image embedding extracted through the image encoder (702) for each frame included in the video with the text embedding extracted through the text encoder (701) to calculate the similarity with the prompt (S802).
- the processor (220) can determine whether each frame includes a user-defined class based on the similarity with the prompt through a zero-shot technique using a hash generated based on machine learning.
- the processor (220) can select a frame among the frames included in the video that has an image similarity level higher than a certain level with other frames as a duplicate frame, and at this time, among the frames selected as duplicate frames, a frame that has a similarity level higher than a certain level with a prompt can be excluded from the selection of duplicate frames (S803).
- the processor (220) can remove frames finally selected as duplicate frames from among the frames included in the video and create a snapshot with the remaining frames, and at this time, frames having a similarity level with the prompt above a certain level can be included in the snapshot.
- one of frame (1) and frame (2) where a QR code exists may be selected as a duplicate frame and deleted, but in this embodiment, a user may specify desired target information through a prompt (80) to maintain the frame containing the target information and generate a video snapshot.
- Figures 9 and 10 illustrate examples of snapshot creation using a prompt according to one embodiment of the present invention.
- Figures 9 and 10 illustrate examples of snapshot generation of a video (30) consisting of 10 frames from (1) to (10).
- the processor (220) can exclude frames (1) and (2) containing QR codes among 10 frames included in the video (30) from the selection of duplicate frames.
- a snapshot (91) for a video (30) may be composed of frames (1), (2), (3), (6), (8), and (9) in which frames (4), (5), (7), and (10) are selected as duplicate frames and deleted. That is, the processor (220) may create a snapshot (91) in a form in which frames (1) and (2) in which a QR code exists as target information defined through a prompt are maintained.
- a text prompt is described as an example, but it is not limited thereto, and filtering using a prompt in the form of audio or image can also be applied.
- Embeddings of different modalities are represented in a single vector space, and the learned model can be used with zero-shot techniques to generate snapshots that do not miss frames containing target information using not only text prompts but also other forms of modality prompts.
- the features of the audio 'sky' can be embedded to maintain frames having a similarity level with the prompt embedding that is higher than a certain level.
- the processor (220) can create a snapshot (101) in a form of maintaining frames (7) and (8) corresponding to the 'sky' information as target information defined through the audio prompt.
- the snapshot (101) for the video (30) can be composed of frames (2), (3), (6), (7), (8), and (9) with frames (1), (4), (5), and (10) deleted as duplicate frames.
- These embodiments include zero-shot features, so that all information of pre-learned modalities can be targeted and applied.
- Specific keywords that can be entered in the form of text, audio, or images can be registered as target information, and in addition, various sounds, adult content, or violent content can be registered through prompts so that users can search for frames containing the information they want.
- a video snapshot when generating a video snapshot by removing duplicate frames, it is possible to generate a snapshot in which key frames containing target information are not omitted. Furthermore, according to embodiments of the present invention, by determining whether a frame includes a class defined by a user through a zero-shot technique using a hash generated based on machine learning, it is possible to generate a video snapshot by including as many frames as possible that are similar to a class defined by a user.
- the devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components.
- the devices and components described in the embodiments may be implemented using one or more general-purpose computers or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing instructions and responding to them.
- the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
- the processing device may access, store, manipulate, process, and generate data in response to the execution of the software.
- OS operating system
- the processing device may access, store, manipulate, process, and generate data in response to the execution of the software.
- the processing device is sometimes described as being used alone, but those skilled in the art will appreciate that the processing device may include multiple processing elements and/or multiple types of processing elements.
- the processing device may include multiple processors, or a processor and a controller.
- Other processing configurations, such as parallel processors, are also possible.
- the software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing device to perform a desired operation or may independently or collectively command the processing device.
- the software and/or data may be embodied in any type of machine, component, physical device, computer storage medium, or device for interpretation by the processing device or for providing instructions or data to the processing device.
- the software may be distributed over network-connected computer systems and stored or executed in a distributed manner.
- the software and data may be stored on one or more computer-readable recording media.
- the method according to the embodiment may be implemented in the form of program commands that can be executed through various computer means and recorded on a computer-readable medium.
- the medium may be one that continuously stores a program executable by a computer, or one that temporarily stores it for execution or downloading.
- the medium may be various recording means or storage means in the form of a single or multiple hardware combinations, and is not limited to a medium directly connected to a computer system, and may also be distributed on a network. Examples of the medium may include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and ROMs, RAMs, flash memories, etc., configured to store program commands.
- examples of other media may include recording media or storage media managed by app stores that distribute applications, sites that supply or distribute various software, servers, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
Description
아래의 설명은 비디오 스냅샷(video snapshot)을 생성하는 기술에 관한 것이다.The description below describes the technique for creating a video snapshot.
비디오를 분석할 때 모든 프레임(frame)을 딥러닝 모델(deep learning model)과 같이 많은 연산량을 필요로 하는 방법을 동원하는 경우 비디오 분석에 상당한 시간과 자원이 소모된다.When analyzing a video, if a method that requires a lot of computation, such as a deep learning model, is used for every frame, video analysis consumes a significant amount of time and resources.
이를 해결하기 위한 기술 중 하나는 비디오에 포함된 프레임(frame) 중 일부 프레임을 제거하고 남은 프레임만으로 구성된 스냅샷(snapshot)을 생성하여 비디오 분석에 활용하는 것이다.One technique to solve this problem is to remove some of the frames contained in the video and create a snapshot consisting of only the remaining frames, which can then be used for video analysis.
비디오 분석 이외에도 비디오에 대한 하이라이트 영상 등을 제공하기 위해 스냅샷 생성 기술을 활용할 수 있다.In addition to video analysis, snapshot generation technology can be used to provide highlight reels for videos.
예컨대, 한국등록특허 제10-1174176호(등록일 2012년 08월 08일)에는 동영상 파일의 전체 런닝타임에서 여러 지점의 스냅샷을 샘플링하여 선택함으로써 해당 동영상 파일의 전체적인 내용을 요약해서 제공하는 썸네일을 생성하는 기술이 개시되어 있다.For example, Korean Patent Registration No. 10-1174176 (registration date August 8, 2012) discloses a technology for generating a thumbnail that summarizes the entire content of a video file by sampling and selecting snapshots at multiple points in the entire running time of the video file.
중복 프레임(redundant frame)을 제거하여 스냅샷을 생성함에 있어 타겟 정보가 포함된 주요 프레임이 누락되지 않는 스냅샷을 생성할 수 있다.By removing redundant frames, it is possible to create a snapshot in which key frames containing target information are not missed when creating a snapshot.
해시(hash)를 이용하여 제로-샷(zero-shot) 기법을 통해 프레임에 사용자가 정의한 클래스(class)의 포함 여부를 판단할 수 있다.A zero-shot technique can be used to determine whether a frame contains a user-defined class using a hash.
컴퓨터 장치에서 실행되는 비디오 스냅샷 생성 방법에 있어서, 상기 컴퓨터 장치는 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 비디오 스냅샷 생성 방법은, 상기 적어도 하나의 프로세서에 의해, 비디오에 포함된 프레임 중 중복 프레임(redundant frame)을 제거하고 남은 프레임으로 스냅샷(snapshot)을 생성하되 사용자에 의해 정의된 타겟 정보를 포함하고 있는 프레임을 유지하여 상기 스냅샷을 생성하는 단계를 포함하는 비디오 스냅샷 생성 방법을 제공한다.A method for generating a video snapshot executed on a computer device, the computer device including at least one processor configured to execute computer-readable instructions contained in a memory, the method for generating a video snapshot including the step of removing, by the at least one processor, redundant frames from frames included in a video and generating a snapshot with the remaining frames, while maintaining frames including target information defined by a user to generate the snapshot.
일 측면에 따르면, 상기 생성하는 단계는, 기계 학습(machine learning) 모델을 통해 생성된 해시(hash)를 이용하여 상기 비디오의 스냅샷을 생성할 수 있다.According to one aspect, the generating step may generate a snapshot of the video using a hash generated through a machine learning model.
다른 측면에 따르면, 상기 생성하는 단계는, 서로 다른 모달리티(modality)의 임베딩을 하나의 벡터 공간에 표현하여 학습한 다중 모달 모델을 통해 상기 비디오의 스냅샷을 생성할 수 있다.According to another aspect, the generating step can generate a snapshot of the video through a multi-modal model learned by expressing embeddings of different modalities in a single vector space.
또 다른 측면에 따르면, 상기 생성하는 단계는, 상기 비디오에 포함된 프레임 간의 이미지 유사도를 나타내는 제1 유사도를 산출하는 단계; 상기 비디오에 포함된 프레임 각각에 대하여 상기 타겟 정보로서 등록된 프롬프트(prompt)와의 유사 관계를 나타내는 제2 유사도를 산출하는 단계; 및 상기 제1 유사도와 상기 제2 유사도를 기초로 상기 비디오에 포함된 일부 프레임을 상기 중복 프레임으로 선정하는 단계를 포함할 수 있다.According to another aspect, the generating step may include: a step of calculating a first similarity indicating image similarity between frames included in the video; a step of calculating a second similarity indicating a similarity relationship with a prompt registered as the target information for each frame included in the video; and a step of selecting some frames included in the video as the duplicate frames based on the first similarity and the second similarity.
또 다른 측면에 따르면, 상기 제1 유사도를 산출하는 단계는, 서로 다른 모달리티의 임베딩을 하나의 벡터 공간에 표현하여 학습한 다중 모달 모델을 이용하여 상기 제1 유사도를 산출하는 것으로, 각 프레임에 해당되는 이미지의 특징을 임베딩한 이미지 임베딩 간의 벡터 거리를 통해 상기 제1 유사도를 산출할 수 있다.According to another aspect, the step of calculating the first similarity calculates the first similarity by using a multi-modal model learned by expressing embeddings of different modalities in a single vector space, and the first similarity can be calculated through the vector distance between image embeddings that embed features of images corresponding to each frame.
또 다른 측면에 따르면, 상기 제2 유사도를 산출하는 단계는, 상기 프롬프트를 텍스트, 이미지, 오디오 중 어느 한 형태의 컨텐츠로 등록하는 단계를 포함할 수 있다.According to another aspect, the step of calculating the second similarity may include a step of registering the prompt as content in any one of text, image, and audio forms.
또 다른 측면에 따르면, 상기 제2 유사도를 산출하는 단계는, 서로 다른 모달리티의 임베딩을 하나의 벡터 공간에 표현하여 학습한 다중 모달 모델을 이용하여 상기 제2 유사도를 산출하는 것으로, 상기 타겟 정보로서 등록된 프롬프트의 특징을 임베딩한 프롬프트 임베딩과 각 프레임에 해당되는 이미지의 특징을 임베딩한 이미지 임베딩 간의 벡터 거리를 통해 상기 제2 유사도를 산출할 수 있다.According to another aspect, the step of calculating the second similarity calculates the second similarity by using a multi-modal model learned by expressing embeddings of different modalities in a single vector space, and the second similarity can be calculated through the vector distance between the prompt embedding that embeds the features of the prompt registered as the target information and the image embedding that embeds the features of the image corresponding to each frame.
또 다른 측면에 따르면, 상기 선정하는 단계는, 상기 제1 유사도를 기준으로 일정 레벨 이상의 유사성을 가진 프레임들을 클러스터링하는 단계; 클러스터 별로 일정 개수의 프레임을 제외한 나머지 프레임을 상기 중복 프레임의 후보 프레임으로 선정하는 단계; 및 상기 후보 프레임 중 상기 제2 유사도가 일정 레벨 이상인 프레임을 상기 중복 프레임의 선정 대상에서 제외하는 단계를 포함할 수 있다.According to another aspect, the selecting step may include: a step of clustering frames having a similarity of a certain level or higher based on the first similarity; a step of selecting frames remaining after excluding a certain number of frames per cluster as candidate frames of the duplicate frame; and a step of excluding frames having the second similarity of a certain level or higher among the candidate frames from the selection target of the duplicate frame.
또 다른 측면에 따르면, 상기 다중 모달 모델은 대조 학습(contrastive learning)을 이용하여 데이터 쌍에 대한 임베딩의 유사도가 학습된 모델일 수 있다.According to another aspect, the multi-modal model may be a model in which the similarity of embeddings for data pairs is learned using contrastive learning.
또 다른 측면에 따르면, 상기 다중 모달 모델은 대조 학습을 통해 학습된 VLP(vision-language pre-trained) 모델일 수 있다.According to another aspect, the multi-modal model may be a vision-language pre-trained (VLP) model learned through contrastive learning.
상기 비디오 스냅샷 생성 방법을 상기 컴퓨터 장치에 실행시키기 위해 비-일시적인 컴퓨터 판독가능한 기록 매체에 저장된 컴퓨터 프로그램을 제공한다.A computer program stored in a non-transitory computer-readable recording medium is provided for executing the above video snapshot generation method on the computer device.
컴퓨터 장치에 있어서, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 비디오에 포함된 프레임 중 중복 프레임을 제거하고 남은 프레임으로 스냅샷을 생성하되 사용자에 의해 정의된 타겟 정보를 포함하고 있는 프레임을 유지하여 상기 스냅샷을 생성하는 과정을 처리하는 컴퓨터 장치를 제공한다.In a computer device, at least one processor configured to execute computer-readable instructions contained in a memory, the at least one processor processing a process of removing duplicate frames from frames contained in a video and generating a snapshot with the remaining frames, while maintaining frames containing target information defined by a user to generate the snapshot.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.FIG. 1 is a diagram illustrating an example of a network environment according to one embodiment of the present invention.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.FIG. 2 is a block diagram illustrating an example of a computer device according to one embodiment of the present invention.
도 3은 비디오를 구성하는 프레임 예시를 도시한 것이다.Figure 3 illustrates an example of frames that make up a video.
도 4는 비디오 스냅샷 생성 예시를 도시한 것이다.Figure 4 illustrates an example of creating a video snapshot.
도 5는 본 발명의 일실시예에 따른 컴퓨터 장치가 수행할 수 있는 방법의 일례를 도시한 순서도이다.FIG. 5 is a flowchart illustrating an example of a method that a computer device according to an embodiment of the present invention can perform.
도 6 내지 도 7은 본 발명의 일실시예에 있어서 검색 가능한 다중 모달 모델을 설명하기 위한 예시 도면이다.FIGS. 6 and 7 are exemplary drawings for explaining a searchable multi-modal model according to one embodiment of the present invention.
도 8은 본 발명의 일실시예에 있어서 중복 프레임 필터링 과정의 일례를 도시한 순서도이다.FIG. 8 is a flowchart illustrating an example of a duplicate frame filtering process according to one embodiment of the present invention.
도 9 내지 도 10은 본 발명의 일실시예에 있어서 프롬프트를 이용한 스냅샷 생성 예시를 도시한 것이다.Figures 9 and 10 illustrate examples of snapshot creation using a prompt according to one embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.
본 발명의 실시예들은 비디오 스냅샷을 생성하는 기술에 관한 것이다.Embodiments of the present invention relate to techniques for generating video snapshots.
본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 비디오 스냅샷을 생성함에 있어 타겟 정보를 포함하고 있는 주요 프레임을 유지하는 형태의 스냅샷을 생성할 수 있다.Embodiments including those specifically disclosed herein can generate a snapshot in a form that retains key frames containing target information when generating a video snapshot.
본 발명의 실시예들에 따른 비디오 스냅샷 생성 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 비디오 스냅샷 생성 방법은 비디오 스냅샷 생성 시스템에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 비디오 스냅샷 생성 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 비디오 스냅샷 생성 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.A video snapshot generation system according to embodiments of the present invention can be implemented by at least one computer device, and a video snapshot generation method according to embodiments of the present invention can be performed by at least one computer device included in the video snapshot generation system. At this time, a computer program according to an embodiment of the present invention can be installed and run on the computer device, and the computer device can perform the video snapshot generation method according to embodiments of the present invention under the control of the run computer program. The above-described computer program can be stored in a computer-readable recording medium so as to be combined with the computer device and cause the computer to execute the video snapshot generation method.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.FIG. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention. The network environment of FIG. 1 represents an example including a plurality of electronic devices (110, 120, 130, 140), a plurality of servers (150, 160), and a network (170). FIG. 1 is an example for explaining the invention, and the number of electronic devices or servers is not limited to FIG. 1. In addition, the network environment of FIG. 1 merely describes one example of environments applicable to the present embodiments, and the environment applicable to the present embodiments is not limited to the network environment of FIG. 1.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기(110)는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.The plurality of electronic devices (110, 120, 130, 140) may be fixed terminals or mobile terminals implemented as computer devices. Examples of the plurality of electronic devices (110, 120, 130, 140) include smart phones, mobile phones, navigation devices, computers, laptops, digital broadcasting terminals, PDAs (Personal Digital Assistants), PMPs (Portable Multimedia Players), tablet PCs, etc. For example, in FIG. 1, the shape of a smart phone is shown as an example of the electronic device (110), but in the embodiments of the present invention, the electronic device (110) may actually mean one of various physical computer devices that can communicate with other electronic devices (120, 130, 140) and/or servers (150, 160) via a network (170) using a wireless or wired communication method.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들 간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and may include not only a communication method that utilizes a communication network (for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network (170) may include, but also a short-range wireless communication between devices. For example, the network (170) may include any one or more of a network such as a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), and the Internet. In addition, the network (170) may include any one or more of a network topology including, but not limited to, a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree, or a hierarchical network.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 서비스(일례로, 동영상 분석 서비스 등)를 제공하는 시스템일 수 있다.Each of the servers (150, 160) may be implemented as a computer device or multiple computer devices that communicate with multiple electronic devices (110, 120, 130, 140) through a network (170) to provide commands, codes, files, contents, services, etc. For example, the server (150) may be a system that provides a service (e.g., a video analysis service, etc.) to multiple electronic devices (110, 120, 130, 140) connected through a network (170).
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있다.FIG. 2 is a block diagram illustrating an example of a computer device according to an embodiment of the present invention. Each of the plurality of electronic devices (110, 120, 130, 140) or servers (150, 160) described above can be implemented by the computer device (200) illustrated in FIG. 2.
이러한 컴퓨터 장치(200)는 도 2에 도시된 바와 같이, 메모리(210), 프로세서(220), 통신 인터페이스(230) 그리고 입출력 인터페이스(240)를 포함할 수 있다. 메모리(210)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(200)에 포함될 수도 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(210)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(230)를 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(170)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(200)의 메모리(210)에 로딩될 수 있다.The computer device (200) may include a memory (210), a processor (220), a communication interface (230), and an input/output interface (240), as illustrated in FIG. 2. The memory (210) may be a computer-readable storage medium, and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive. Here, the permanent mass storage devices such as the ROM and the disk drive may be included in the computer device (200) as a separate permanent storage device distinct from the memory (210). In addition, the memory (210) may store an operating system and at least one program code. These software components may be loaded into the memory (210) from a computer-readable storage medium separate from the memory (210). The separate computer-readable storage medium may include a computer-readable storage medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, a memory card, etc. In another embodiment, the software components may be loaded into the memory (210) via a communication interface (230) other than a computer-readable recording medium. For example, the software components may be loaded into the memory (210) of the computer device (200) based on a computer program that is installed by files received over a network (170).
프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processor (220) may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. The instructions may be provided to the processor (220) by the memory (210) or the communication interface (230). For example, the processor (220) may be configured to execute instructions received according to program code stored in a storage device such as the memory (210).
통신 인터페이스(230)는 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The communication interface (230) may provide a function for the computer device (200) to communicate with other devices (for example, the storage devices described above) via the network (170). For example, requests, commands, data, files, etc. generated by the processor (220) of the computer device (200) according to program codes stored in a recording device such as the memory (210) may be transmitted to other devices via the network (170) under the control of the communication interface (230). Conversely, signals, commands, data, files, etc. from other devices may be received by the computer device (200) via the communication interface (230) of the computer device (200) via the network (170). Signals, commands, data, etc. received via the communication interface (230) may be transmitted to the processor (220) or the memory (210), and files, etc. may be stored in a storage medium (the permanent storage device described above) that the computer device (200) may further include.
입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250)는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다.The input/output interface (240) may be a means for interfacing with an input/output device (250). For example, the input device may include a device such as a microphone, a keyboard, or a mouse, and the output device may include a device such as a display or a speaker. As another example, the input/output interface (240) may be a means for interfacing with a device that integrates input and output functions into one, such as a touch screen. The input/output device (250) may be configured as a single device with the computer device (200).
또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Also, in other embodiments, the computer device (200) may include fewer or more components than the components of FIG. 2. However, it is not necessary to explicitly illustrate most of the conventional components. For example, the computer device (200) may be implemented to include at least some of the input/output devices (250) described above, or may further include other components such as a transceiver, a database, etc.
이하에서는 이미지 해시를 이용하여 비디오 스냅샷을 생성하는 방법 및 장치의 구체적인 실시예를 설명하기로 한다.Below, specific embodiments of a method and device for generating a video snapshot using an image hash are described.
MP4나 AVI와 같은 동영상 파일, GIF나 WEBP와 같은 애니메이션 이미지 등의 비디오를 분석할 때 비디오 스냅샷을 활용할 수 있다.Video snapshots can be used to analyze videos, including video files such as MP4 or AVI, and animated images such as GIF or WEBP.
일례로, 비디오 스냅샷을 생성하기 위해 특정 시간마다 하나의 프레임을 검출하는 유니폼 샘플러(uniform sampler)를 적용할 수 있다.For example, one could apply a uniform sampler that detects one frame at a specific time to generate a video snapshot.
다른 예로, 이웃하는 프레임 간 픽셀(pixel) 값의 차이를 나타내는 SAD(sum of absolute difference)를 계산한 후 SAD가 사용자에 의해 정의된 값보다 큰 프레임을 검출하여 스냅샷을 생성할 수 있다.As another example, a snapshot can be generated by calculating the sum of absolute difference (SAD), which represents the difference in pixel values between neighboring frames, and then detecting frames where the SAD is greater than a user-defined value.
상기한 방법 이외에도 비디오 스냅샷을 생성하기 위해 해시 기반의 이미지 처리(image processing based hash) 기술을 통해 중복 프레임을 제거하는 알고리즘을 적용할 수 있다.In addition to the above methods, an algorithm for removing duplicate frames through image processing based hash technology can be applied to generate video snapshots.
본 명세서에서 중복 프레임은 완벽하게 일치하는 프레임은 물론이고, 어느 정도의 유사성을 가진 프레임을 의미할 수 있다. 예를 들어, 변환(translation), 회전(rotation) 등 약간의 변형이 있는 프레임을 중복 프레임으로 인식할 수 있다. 실제 대부분의 유사 프레임은 유사 중복(near duplicates) 프레임이라 할 수 있다.In this specification, a duplicate frame may mean not only a perfectly matching frame, but also a frame with a certain degree of similarity. For example, a frame with a slight deformation such as translation or rotation may be recognized as a duplicate frame. In reality, most similar frames can be said to be near duplicates.
본 실시예들은 주어진 비디오에 대해 해당 비디오에 포함된 프레임 중 일부 프레임을 제거하고 남은 프레임만으로 스냅샷을 생성할 수 있다.The present embodiments can remove some of the frames contained in a given video and create a snapshot using only the remaining frames.
비디오 스냅샷을 생성하기 위해 비디오에 포함된 프레임 중 중복 프레임과 같이 일부 프레임을 제거하는 과정에서 주요 프레임이 누락되는 문제가 발생할 수 있다. 예를 들어, 컨텐츠 모니터링을 목표로 비디오 스냅샷을 생성할 때 모니터링을 위한 타겟 정보가 포함된 프레임이 제거됨에 따라 스냅샷에서 누락될 수 있다.In the process of removing some frames, such as duplicate frames, from the frames included in the video to create a video snapshot, there may be an issue where key frames are missed. For example, when creating a video snapshot for the purpose of content monitoring, frames containing target information for monitoring may be missed in the snapshot because they are removed.
도 3은 스냅샷 생성을 위한 비디오의 프레임 예시를 도시한 것이다. 도 3에 도시한 바와 같이, 주어진 비디오(30)가 10개의 프레임으로 구성된 것으로 가정한다.Figure 3 illustrates an example of video frames for snapshot generation. As illustrated in Figure 3, it is assumed that a given video (30) consists of 10 frames.
비디오(30)에 포함된 프레임 간의 이미지 유사성을 바탕으로 중복 프레임을 제거하고 남은 프레임으로 스냅샷을 생성할 수 있다. 비디오(30)에 포함된 10개의 프레임 중 (1)번 프레임과 (2)번 프레임이 이미지 유사성으로 인해 둘 중 하나가 제거될 확률이 높다. 예를 들어, 도 3의 비디오(30)에 대하여 도 4에 도시한 바와 같이 (1), (4), (5), (7), (10)번 프레임이 중복 프레임으로 선정되어 삭제된 후 (2), (3), (6), (8), (9)번 프레임으로 스냅샷(41)이 생성될 수 있다.Based on the image similarity between the frames included in the video (30), duplicate frames can be removed and a snapshot can be generated with the remaining frames. Among the 10 frames included in the video (30), there is a high probability that one of the frames (1) and (2) will be removed due to the image similarity. For example, with respect to the video (30) of FIG. 3, as shown in FIG. 4, frames (1), (4), (5), (7), and (10) are selected as duplicate frames and deleted, and then a snapshot (41) can be generated with frames (2), (3), (6), (8), and (9).
일례로, 메신저 상에서 이용되는 QR(quick response code)은 OA(공식계정)로 연결되는 QR, 개인 만남 등을 위해 공유되는 QR 등 다양한 목적의 QR이 존재한다. 비디오에 대한 컨텐츠 모니터링 시 QR 중 일부 QR은 공유 금지 사항으로 검열이 필요할 수 있다.For example, among the QR (quick response code) used on messengers, there are QRs for various purposes, such as QRs that connect to OA (official accounts) and QRs shared for personal meetings. When monitoring content for videos, some QRs may require censorship as they are prohibited from being shared.
그러나, 이미지 유사도(image similarity)를 기반으로 중복 프레임을 제거하는 알고리즘에서는 (1)번 프레임과 (2)번 프레임을 구분하기 힘들기 때문에 검열이 필요한 프레임임에도 불구하고 중복 프레임으로 검출되어 삭제될 수 있다.However, in an algorithm that removes duplicate frames based on image similarity, it is difficult to distinguish between frames (1) and (2), so frames that require censorship may be detected as duplicate frames and deleted.
따라서, 비디오 분석, 하이라이트 제작 등을 위한 스냅샷 생성 시 주요 모니터링 컨텐츠와 같이 타겟 정보를 포함하고 있는 프레임을 유지할 수 있는 기술이 필요하다.Therefore, a technology is needed that can retain frames containing target information, such as key monitoring content, when creating snapshots for video analysis, highlight production, etc.
본 실시예에 따른 컴퓨터 장치(200)는 클라이언트(client)를 대상으로 클라이언트 상에 설치된 전용 어플리케이션이나 컴퓨터 장치(200)와 관련된 웹/모바일 사이트 접속을 통해 동영상 분석 서비스를 제공할 수 있다. 컴퓨터 장치(200)에는 컴퓨터로 구현된 비디오 스냅샷 생성 시스템이 구성될 수 있다. 일례로, 비디오 스냅샷 생성 시스템은 독립적으로 동작하는 프로그램 형태로 구현되거나, 혹은 특정 어플리케이션의 인-앱(in-app) 형태로 구성되어 상기 특정 어플리케이션 상에서 동작이 가능하도록 구현될 수 있다.The computer device (200) according to the present embodiment can provide a video analysis service to a client through a dedicated application installed on the client or a web/mobile site access related to the computer device (200). The computer device (200) can be configured with a video snapshot generation system implemented by a computer. For example, the video snapshot generation system can be implemented in the form of an independently operating program, or can be configured in the form of an in-app of a specific application and implemented so as to be operable on the specific application.
컴퓨터 장치(200)의 프로세서(220)는 이하의 비디오 스냅샷 생성 방법을 수행하기 위한 구성요소로 구현될 수 있다. 실시예에 따라 프로세서(220)의 구성요소들은 선택적으로 프로세서(220)에 포함되거나 제외될 수도 있다. 또한, 실시예에 따라 프로세서(220)의 구성요소들은 프로세서(220)의 기능의 표현을 위해 분리 또는 병합될 수도 있다.The processor (220) of the computer device (200) may be implemented as a component for performing the following video snapshot generation method. Depending on the embodiment, the components of the processor (220) may be selectively included in or excluded from the processor (220). In addition, depending on the embodiment, the components of the processor (220) may be separated or merged to express the function of the processor (220).
이러한 프로세서(220) 및 프로세서(220)의 구성요소들은 이하의 비디오 스냅샷 생성 방법이 포함하는 단계들을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다. 예를 들어, 프로세서(220) 및 프로세서(220)의 구성요소들은 메모리(210)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.These processors (220) and components of the processor (220) can control the computer device (200) to perform the steps included in the following video snapshot generation method. For example, the processor (220) and components of the processor (220) can be implemented to execute instructions according to the code of the operating system included in the memory (210) and the code of at least one program.
여기서, 프로세서(220)의 구성요소들은 컴퓨터 장치(200)에 저장된 프로그램 코드가 제공하는 명령에 따라 프로세서(220)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다.Here, the components of the processor (220) may be representations of different functions performed by the processor (220) according to instructions provided by the program code stored in the computer device (200).
프로세서(220)는 컴퓨터 장치(200)의 제어와 관련된 명령이 로딩된 메모리(210)로부터 필요한 명령을 읽어들일 수 있다. 이 경우, 상기 읽어들인 명령은 프로세서(220)가 이후 설명될 단계들을 실행하도록 제어하기 위한 명령을 포함할 수 있다.The processor (220) can read necessary commands from the memory (210) loaded with commands related to the control of the computer device (200). In this case, the read commands may include commands for controlling the processor (220) to execute steps to be described later.
이후 설명될 비디오 스냅샷 생성 방법이 포함하는 단계들은 도시된 순서와 다른 순서로 수행될 수 있으며, 단계들 중 일부가 생략되거나 추가의 과정이 더 포함될 수 있다.The steps included in the method for generating a video snapshot to be described hereinafter may be performed in a different order than the illustrated order, and some of the steps may be omitted or additional processes may be included.
비디오 스냅샷 생성 방법이 포함하는 단계들은 서버(150)에서 수행될 수 있으며, 실시예에 따라서는 단계들 중 적어도 일부가 클라이언트에서 수행되는 것 또한 가능하다.The steps included in the method for generating a video snapshot may be performed on the server (150), and in some embodiments, at least some of the steps may also be performed on the client.
도 5는 본 발명의 일실시예에 따른 컴퓨터 장치가 수행할 수 있는 방법의 일례를 도시한 흐름도이다.FIG. 5 is a flowchart illustrating an example of a method that a computer device can perform according to an embodiment of the present invention.
도 5를 참조하면, 단계(S510)에서 프로세서(220)는 비디오에 포함된 프레임 간의 이미지 유사도(이하, '제1 유사도'라 칭함)를 산출할 수 있다. 일례로, 프로세서(220)는 기계 학습(machine learning) 기반의 해시를 이용하여 프레임과 프레임 간에 유사한 정도를 산출할 수 있다. 프로세서(220)는 프레임에 해당되는 각 이미지의 특징을 임베딩하여 임베딩 벡터 간의 거리를 통해 이미지 유사도를 나타내는 제1 유사도를 산출할 수 있다.Referring to FIG. 5, in step S510, the processor (220) can calculate the image similarity (hereinafter, referred to as 'first similarity') between frames included in the video. For example, the processor (220) can calculate the degree of similarity between frames using a hash based on machine learning. The processor (220) can calculate the first similarity that represents the image similarity through the distance between the embedding vectors by embedding the features of each image corresponding to the frame.
단계(S520)에서 프로세서(220)는 사용자에 의해 정의된 프롬프트(prompt)가 주어지는 경우 비디오에 포함된 프레임 각각에 대해 프롬프트와의 유사도(이하, '제2 유사도'라 칭함)를 산출할 수 있다. 마찬가지로, 프로세서(220)는 기계 학습 기반의 해시를 이용하여 프레임과 프롬프트 간에 유사한 정도를 산출할 수 있다. 본 실시예에서는 프롬프트를 이용하여 스냅샷에 포함시키고자 하는 타겟 정보를 정의할 수 있으며, 이때 프롬프트는 사용자에 의해 텍스트, 이미지, 오디오 등 다양한 형태의 컨텐츠로 입력될 수 있다. 프로세서(220)는 프롬프트를 통해 정의된 타겟 정보의 특징을 임베딩하여 프롬프트 임베딩과 각 프레임의 이미지 임베딩 간의 벡터 거리를 통해 제2 유사도를 산출할 수 있다. 본 실시예에서는 해시를 이용하여 제로-샷 기법으로 이미지 프레임에 대해 사용자가 정의한 클래스와의 유사 관계를 판단할 수 있다.In step (S520), the processor (220) may calculate the similarity (hereinafter, referred to as 'second similarity') between each frame included in the video and the prompt when a prompt defined by the user is given. Similarly, the processor (220) may calculate the degree of similarity between the frame and the prompt using a machine learning-based hash. In the present embodiment, target information to be included in a snapshot may be defined using a prompt, and at this time, the prompt may be input by the user as various types of content such as text, image, and audio. The processor (220) may embed the features of the target information defined through the prompt and calculate the second similarity through the vector distance between the prompt embedding and the image embedding of each frame. In the present embodiment, the hash may be used to determine the similarity between the class defined by the user for the image frame using a zero-shot technique.
단계(S530)에서 프로세서(220)는 비디오에 포함된 프레임을 대상으로 제1 유사도와 제2 유사도를 기초로 제거 대상이 되는 중복 프레임을 선정할 수 있다. 프로세서(220)는 제1 유사도를 기준으로 일정 레벨 이상의 유사성을 가진 프레임들을 클러스터링한 후 클러스터 별로 정해진 개수(예를 들어, 1개)의 프레임을 제외한 나머지 프레임을 후보 프레임으로 선정할 수 있다. 이때, 프로세서(220)는 후보 프레임 중 제2 유사도가 일정 레벨 미만인 프레임을 중복 프레임으로 최종 선정할 수 있다. 다시 말해, 프로세서(220)는 후보 프레임 중 제2 유사도가 일정 레벨 이상인 프레임을 중복 프레임 선정 대상에서 제외시킬 수 있다.In step (S530), the processor (220) may select duplicate frames to be removed based on the first similarity and the second similarity among frames included in the video. The processor (220) may cluster frames having a similarity level higher than a certain level based on the first similarity, and then select the remaining frames, excluding a set number of frames (for example, 1) for each cluster, as candidate frames. At this time, the processor (220) may finally select a frame among the candidate frames having a second similarity lower than a certain level as a duplicate frame. In other words, the processor (220) may exclude a frame among the candidate frames having a second similarity level higher than a certain level from the target of selecting a duplicate frame.
단계(S540)에서 프로세서(220)는 비디오에 포함된 프레임 중 중복 프레임으로 최종 선정된 프레임을 제거하고 남은 프레임으로 스냅샷을 생성할 수 있다. 비디오에 포함된 프레임을 제1 유사도를 기준으로 클러스터링한 후 제2 유사도에 대응되는 특정 클러스터의 최대 전체 프레임을 유지한 상태로 스냅샷을 만들 수 있다. 본 실시예에서는 이미지 유사성을 바탕으로 중복 프레임을 제거하고 남은 프레임으로 스냅샷을 생성하되 사용자가 정의한 클래스와 유사 관계에 있는 프레임을 최대로 포함하여 스냅샷을 생성할 수 있다.In step (S540), the processor (220) can remove frames finally selected as duplicate frames from among the frames included in the video and create a snapshot with the remaining frames. After clustering the frames included in the video based on the first similarity, a snapshot can be created while maintaining the maximum total frames of a specific cluster corresponding to the second similarity. In this embodiment, duplicate frames are removed based on image similarity and a snapshot can be created with the remaining frames, while including as many frames as possible that are similar to a class defined by the user.
도 6 내지 도 7은 본 발명의 일실시예에 있어서 검색 가능한 다중 모달 모델을 설명하기 위한 예시 도면이다.FIGS. 6 and 7 are exemplary drawings for explaining a searchable multi-modal model according to one embodiment of the present invention.
본 발명은 클러스터링과 다양한 형태의 프롬프트를 이용하여 검색(retrieval)이 가능한 다중 모달 모델을 사용할 수 있다.The present invention can use a multi-modal model that enables retrieval using clustering and various types of prompts.
도 6을 참조하면, 본 발명에 따른 다중 모달 모델은 텍스트(601), 비디오(또는 이미지)(602), 오디오(603) 등 다양한 모달리티(modality)에 대해 임베딩을 추출하되 서로 다른 모달리티의 임베딩이 하나의 벡터 공간(600)에서 공유될 수 있도록 학습하는 방법을 포함한다.Referring to FIG. 6, a multi-modal model according to the present invention includes a method of extracting embeddings for various modalities such as text (601), video (or image) (602), and audio (603), while learning so that embeddings of different modalities can be shared in a single vector space (600).
상기한 모델 학습 방법은 대조 학습(contrastive learning) 등을 이용할 수 있으며, 대표적인 방법으로는 CLIP(contrastive language-image pre-training model)와 같은 대용량 VLP(vision-language pre-trained) 모델을 예로 들 수 있다.The above-mentioned model learning method can utilize contrastive learning, etc., and a representative method is a large-scale VLP (vision-language pre-trained) model such as CLIP (contrastive language-image pre-training model).
도 7을 참조하면, CLIP에서는 같은 의미의 컨텍스트에 해당되는 이미지-텍스트 쌍에 대해 텍스트 인코더(701)와 이미지 인코더(702)에서 추출된 임베딩의 유사도가 높아지게, 서로 다른 의미의 컨텍스트에 해당되는 이미지-텍스트 쌍에 대해 텍스트 인코더(701)와 이미지 인코더(702)에서 추출된 임베딩의 유사도가 낮아지게 학습을 진행한다.Referring to FIG. 7, in CLIP, learning is performed so that the similarity of the embeddings extracted from the text encoder (701) and the image encoder (702) for image-text pairs corresponding to contexts with the same meaning increases, and the similarity of the embeddings extracted from the text encoder (701) and the image encoder (702) for image-text pairs corresponding to contexts with different meanings decreases.
텍스트 인코더(701)와 함께 학습된 이미지 인코더(702)의 경우, 이미지의 시각적인 특성을 잘 나타내면서 이와 동시에 텍스트의 의미론적 특징을 함께 나타낼 수 있어 이중 용도로 사용될 수 있다.In the case of an image encoder (702) trained together with a text encoder (701), it can be used for dual purposes as it can represent the visual characteristics of an image well while simultaneously representing the semantic characteristics of a text.
이미지-텍스트 임베딩은 이미지와 텍스트의 특징을 임베딩하고 상호 결합하기 위한 방법으로 임베딩된 클래스 사이의 관계를 잘 표현할 수 있으며, 주로 이미지-텍스트 검색, 이미지 캡셔닝(image captioning), VQA(visual question answering) 등에 활용될 수 있다.Image-text embedding is a method for embedding and combining features of images and texts. It can well express the relationship between embedded classes and can be mainly used for image-text retrieval, image captioning, and VQA (visual question answering).
도 8은 본 발명의 일실시예에 있어서 중복 프레임 필터링 과정의 일례를 도시한 순서도이다.FIG. 8 is a flowchart illustrating an example of a duplicate frame filtering process according to one embodiment of the present invention.
본 발명에서는 다중 모달 모델을 통해 추출된 임베딩을 이용하여 사용자에 의해 정의된 프롬프트를 이용한 필터링과 이미지 유사성을 이용한 필터링을 동시에 수행할 수 있다.In the present invention, filtering using a prompt defined by a user and filtering using image similarity can be performed simultaneously by using an embedding extracted through a multi-modal model.
도 8을 참조하면, 프로세서(220)는 비디오에 포함된 프레임 각각에 대하여 텍스트 인코더(701)와 함께 학습된 이미지 인코더(702)를 통해 이미지 임베딩을 추출할 수 있고, 이때 프레임 별 임베딩을 이용하여 프레임 간의 이미지 유사도를 산출할 수 있다(S801).Referring to FIG. 8, the processor (220) can extract image embedding for each frame included in a video through an image encoder (702) learned together with a text encoder (701), and at this time, image similarity between frames can be calculated using the frame-by-frame embedding (S801).
프로세서(220)는 사용자에 의해 텍스트 형태의 프롬프트(80)가 입력될 수 있으며, 이때 이미지 인코더(702)와 함께 학습된 텍스트 인코더(701)를 통해 프롬프트(80)에 대한 텍스트 임베딩을 추출할 수 있다.The processor (220) can input a text-type prompt (80) by a user, and at this time, a text embedding for the prompt (80) can be extracted through a text encoder (701) trained together with an image encoder (702).
예를 들어, 비디오를 분석하는 과정에서 QR 코드가 존재하는 영상을 검열하고자 하는 경우 사용자가 타겟 정보를 의미하는 텍스트로 "qr", "qr image", "photo of qr code", "qr code image" 등의 프롬프트를 입력할 수 있다.For example, if you want to censor a video that contains a QR code during the video analysis process, the user can input a prompt such as "qr", "qr image", "photo of qr code", or "qr code image" as text representing the target information.
프로세서(220)는 비디오에 포함된 프레임 각각에 대하여 이미지 인코더(702)를 통해 추출된 이미지 임베딩을 텍스트 인코더(701)를 통해 추출된 텍스트 임베딩과 비교하여 프롬프트와의 유사도를 산출할 수 있다(S802).The processor (220) can compare the image embedding extracted through the image encoder (702) for each frame included in the video with the text embedding extracted through the text encoder (701) to calculate the similarity with the prompt (S802).
다시 말해, 프로세서(220)는 기계 학습 기반으로 생성된 해시를 이용하여 제로-샷 기법을 통해 프롬프트와의 유사도로부터 각 프레임에 사용자가 정의한 클래스가 포함되어 있는지 여부를 판단할 수 있다.In other words, the processor (220) can determine whether each frame includes a user-defined class based on the similarity with the prompt through a zero-shot technique using a hash generated based on machine learning.
프로세서(220)는 비디오에 포함된 프레임 중 다른 프레임과의 이미지 유사도가 일정 레벨 이상인 프레임을 중복 프레임으로 선정할 수 있으며, 이때 중복 프레임으로 선정된 프레임 중 프롬프트와의 유사도가 일정 레벨 이상인 프레임을 중복 프레임 선정 대상에서 제외시킬 수 있다(S803).The processor (220) can select a frame among the frames included in the video that has an image similarity level higher than a certain level with other frames as a duplicate frame, and at this time, among the frames selected as duplicate frames, a frame that has a similarity level higher than a certain level with a prompt can be excluded from the selection of duplicate frames (S803).
따라서, 프로세서(220)는 비디오에 포함된 프레임 중 중복 프레임으로 최종 선정된 프레임을 제거하고 남은 프레임으로 스냅샷을 생성할 수 있으며, 이때 프롬프트와의 유사도가 일정 레벨 이상인 프레임을 스냅샷에 포함시킬 수 있다.Accordingly, the processor (220) can remove frames finally selected as duplicate frames from among the frames included in the video and create a snapshot with the remaining frames, and at this time, frames having a similarity level with the prompt above a certain level can be included in the snapshot.
이미지 유사도를 기반으로 중복 프레임을 제거하는 알고리즘의 경우 QR 코드가 존재하는 (1)번 프레임과 (2)번 프레임 중 하나가 중복 프레임으로 선정되어 삭제될 수 있으나, 본 실시예에서는 프롬프트(80)를 통해 사용자가 원하는 타겟 정보를 지정하여 해당 타겟 정보를 포함하고 있는 프레임을 유지하여 비디오 스냅샷을 생성할 수 있다.In the case of an algorithm that removes duplicate frames based on image similarity, one of frame (1) and frame (2) where a QR code exists may be selected as a duplicate frame and deleted, but in this embodiment, a user may specify desired target information through a prompt (80) to maintain the frame containing the target information and generate a video snapshot.
도 9 내지 도 10은 본 발명의 일실시예에 있어서 프롬프트를 이용한 스냅샷 생성 예시를 도시한 것이다.Figures 9 and 10 illustrate examples of snapshot creation using a prompt according to one embodiment of the present invention.
도 9와 도 10은 (1)번부터 (10)번까지 10개의 프레임으로 구성된 비디오(30)의 스냅샷 생성 예시를 나타내고 있다.Figures 9 and 10 illustrate examples of snapshot generation of a video (30) consisting of 10 frames from (1) to (10).
도 9에 도시한 바와 같이, 사용자가 원하는 타겟 정보를 정의하기 위한 프롬프트로 텍스트 'QR'을 입력한 경우, 프로세서(220)는 비디오(30)에 포함된 10개의 프레임 중 QR 코드가 존재하는 (1)번 프레임과 (2)번 프레임을 중복 프레임 선정 대상에서 제외시킬 수 있다.As illustrated in FIG. 9, when a user inputs the text 'QR' as a prompt to define desired target information, the processor (220) can exclude frames (1) and (2) containing QR codes among 10 frames included in the video (30) from the selection of duplicate frames.
예를 들어, 비디오(30)에 대한 스냅샷(91)은 (4), (5), (7), (10)번 프레임이 중복 프레임으로 선정되어 삭제되고 남은 (1), (2), (3), (6), (8), (9)번 프레임으로 구성될 수 있다. 즉, 프로세서(220)는 프롬프트를 통해 정의된 타겟 정보로서 QR 코드가 존재하는 (1)번 프레임과 (2)번 프레임을 유지하는 형태로 스냅샷(91)을 만들 수 있다.For example, a snapshot (91) for a video (30) may be composed of frames (1), (2), (3), (6), (8), and (9) in which frames (4), (5), (7), and (10) are selected as duplicate frames and deleted. That is, the processor (220) may create a snapshot (91) in a form in which frames (1) and (2) in which a QR code exists as target information defined through a prompt are maintained.
상기한 실시예에서는 텍스트 프롬프트를 일례로 설명하고 있으나, 이에 한정되는 것은 아니며, 오디오나 이미지 형태의 프롬프트를 이용한 필터링 또한 적용 가능하다.In the above embodiment, a text prompt is described as an example, but it is not limited thereto, and filtering using a prompt in the form of audio or image can also be applied.
서로 다른 모달리티의 임베딩이 하나의 벡터 공간에 표현되어 학습된 모델을 통해 제로-샷 기법으로 텍스트 프롬프트뿐만 아니라 다른 형태의 모달리티 프롬프트를 이용하여 타겟 정보를 포함하고 있는 프레임이 누락되지 않는 스냅샷을 생성할 수 있다.Embeddings of different modalities are represented in a single vector space, and the learned model can be used with zero-shot techniques to generate snapshots that do not miss frames containing target information using not only text prompts but also other forms of modality prompts.
예를 들어, 도 10에 도시한 바와 같이, 사용자가 원하는 타겟 정보를 정의하기 위한 프롬프트로 오디오 '하늘'을 입력한 경우, 오디오 '하늘'의 특징을 임베딩하여 프롬프트 임베딩과의 유사도가 일정 레벨 이상인 프레임을 유지할 수 있다. 프로세서(220)는 오디오 프롬프트를 통해 정의된 타겟 정보로서 '하늘' 정보에 대응되는 (7)번 프레임과 (8)번 프레임을 유지하는 형태로 스냅샷(101)을 만들 수 있다. 다시 말해, 비디오(30)에 대한 스냅샷(101)은 (1), (4), (5), (10)번 프레임이 중복 프레임으로 삭제되고 남은 (2), (3), (6), (7), (8), (9)번 프레임으로 구성될 수 있다.For example, as illustrated in FIG. 10, if a user inputs audio 'sky' as a prompt for defining desired target information, the features of the audio 'sky' can be embedded to maintain frames having a similarity level with the prompt embedding that is higher than a certain level. The processor (220) can create a snapshot (101) in a form of maintaining frames (7) and (8) corresponding to the 'sky' information as target information defined through the audio prompt. In other words, the snapshot (101) for the video (30) can be composed of frames (2), (3), (6), (7), (8), and (9) with frames (1), (4), (5), and (10) deleted as duplicate frames.
기계 학습 기반의 해시를 이용한 방법론을 적용함으로써 텍스트, 오디오, 이미지 등의 형태로 입력된 특정 키워드와 관련된 프레임은 물론이고, 특정 사운드(예를 들어, 환호 소리, 자동차 충돌 소리, 파도 소리, 알람 소리 등)가 포함된 프레임을 검색하는 것 또한 가능하다.By applying a methodology using machine learning-based hashing, it is possible to search for frames related to specific keywords entered in the form of text, audio, images, etc., as well as frames containing specific sounds (e.g., cheering sounds, car crash sounds, wave sounds, alarm sounds, etc.).
본 실시예들은 제로-샷 특징을 포함하고 있어 사전 학습된 모달리티의 모든 정보를 타겟팅하여 적용할 수 있다. 텍스트나 오디오, 이미지 등의 형태로 입력 가능한 특정 키워드를 타겟 정보로서 등록할 수 있으며, 그 이외에 각종 사운드, 선정적인 컨텐츠(adult content)나 폭력적인 컨텐츠 등의 컨텐츠를 프롬프트를 통해 등록하여 사용자가 원하는 정보가 담긴 프레임을 검색할 수 있다.These embodiments include zero-shot features, so that all information of pre-learned modalities can be targeted and applied. Specific keywords that can be entered in the form of text, audio, or images can be registered as target information, and in addition, various sounds, adult content, or violent content can be registered through prompts so that users can search for frames containing the information they want.
이처럼 본 발명의 실시예들에 따르면, 중복 프레임을 제거하여 비디오 스냅샷을 생성함에 있어 타겟 정보가 포함된 주요 프레임이 누락되지 않는 스냅샷을 생성할 수 있다. 더욱이, 본 발명의 실시예들에 따르면, 기계 학습 기반으로 생성된 해시를 이용하여 제로-샷 기법을 통해 프레임에 사용자가 정의한 클래스의 포함 여부를 판단함으로써 사용자가 정의한 클래스와 유사 관계에 있는 프레임을 최대로 포함하여 비디오 스냅샷을 생성할 수 있다.According to embodiments of the present invention, when generating a video snapshot by removing duplicate frames, it is possible to generate a snapshot in which key frames containing target information are not omitted. Furthermore, according to embodiments of the present invention, by determining whether a frame includes a class defined by a user through a zero-shot technique using a hash generated based on machine learning, it is possible to generate a video snapshot by including as many frames as possible that are similar to a class defined by a user.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices and components described in the embodiments may be implemented using one or more general-purpose computers or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing instructions and responding to them. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of the software. For ease of understanding, the processing device is sometimes described as being used alone, but those skilled in the art will appreciate that the processing device may include multiple processing elements and/or multiple types of processing elements. For example, the processing device may include multiple processors, or a processor and a controller. Other processing configurations, such as parallel processors, are also possible.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing device to perform a desired operation or may independently or collectively command the processing device. The software and/or data may be embodied in any type of machine, component, physical device, computer storage medium, or device for interpretation by the processing device or for providing instructions or data to the processing device. The software may be distributed over network-connected computer systems and stored or executed in a distributed manner. The software and data may be stored on one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The method according to the embodiment may be implemented in the form of program commands that can be executed through various computer means and recorded on a computer-readable medium. At this time, the medium may be one that continuously stores a program executable by a computer, or one that temporarily stores it for execution or downloading. In addition, the medium may be various recording means or storage means in the form of a single or multiple hardware combinations, and is not limited to a medium directly connected to a computer system, and may also be distributed on a network. Examples of the medium may include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and ROMs, RAMs, flash memories, etc., configured to store program commands. In addition, examples of other media may include recording media or storage media managed by app stores that distribute applications, sites that supply or distribute various software, servers, etc.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described above by way of limited examples and drawings, those skilled in the art can make various modifications and variations from the above description. For example, appropriate results can be achieved even if the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or are replaced or substituted by other components or equivalents.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also included in the scope of the claims described below.
Claims (20)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020230095208A KR20250014730A (en) | 2023-07-21 | 2023-07-21 | Method, computer device, and computer program to create video snapshot using image hash |
| KR10-2023-0095208 | 2023-07-21 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025023530A1 true WO2025023530A1 (en) | 2025-01-30 |
Family
ID=94374753
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2024/008874 Pending WO2025023530A1 (en) | 2023-07-21 | 2024-06-26 | Method, computer device and computer program for generating video snapshots by using image hashing |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR20250014730A (en) |
| WO (1) | WO2025023530A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190147279A1 (en) * | 2017-11-13 | 2019-05-16 | Aupera Technologies, Inc. | System of a video frame detector for video content identification and method thereof |
| KR20200080109A (en) * | 2018-12-26 | 2020-07-06 | 건국대학교 산학협력단 | Method of selecting key prame and apparatuses performing the same |
| EP3800578A1 (en) * | 2019-10-01 | 2021-04-07 | Sensormatic Electronics, LLC | Hierarchical sampling for object identification |
| KR20210089044A (en) * | 2020-01-07 | 2021-07-15 | 에스케이텔레콤 주식회사 | Method of selecting training data for object detection and object detection device for detecting object using object detection model trained using method |
| KR20210123119A (en) * | 2020-04-02 | 2021-10-13 | 네이버 주식회사 | Method and system for retrieving associative image through multimodality ranking model using different modal features |
-
2023
- 2023-07-21 KR KR1020230095208A patent/KR20250014730A/en active Pending
-
2024
- 2024-06-26 WO PCT/KR2024/008874 patent/WO2025023530A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190147279A1 (en) * | 2017-11-13 | 2019-05-16 | Aupera Technologies, Inc. | System of a video frame detector for video content identification and method thereof |
| KR20200080109A (en) * | 2018-12-26 | 2020-07-06 | 건국대학교 산학협력단 | Method of selecting key prame and apparatuses performing the same |
| EP3800578A1 (en) * | 2019-10-01 | 2021-04-07 | Sensormatic Electronics, LLC | Hierarchical sampling for object identification |
| KR20210089044A (en) * | 2020-01-07 | 2021-07-15 | 에스케이텔레콤 주식회사 | Method of selecting training data for object detection and object detection device for detecting object using object detection model trained using method |
| KR20210123119A (en) * | 2020-04-02 | 2021-10-13 | 네이버 주식회사 | Method and system for retrieving associative image through multimodality ranking model using different modal features |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20250014730A (en) | 2025-02-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2018074716A1 (en) | Method and system for recommending query by using search context | |
| WO2025048073A1 (en) | Method and system for automatically generating knowledge graph | |
| WO2018135833A1 (en) | System and method for contextual driven intelligence | |
| WO2016013885A1 (en) | Method for retrieving image and electronic device thereof | |
| WO2012108623A1 (en) | Method, system and computer-readable recording medium for adding a new image and information on the new image to an image database | |
| WO2019054613A1 (en) | Method and system for identifying open source software package on basis of binary file | |
| CN118053123B (en) | Alarm information generation method, device, electronic equipment and computer medium | |
| WO2017138766A1 (en) | Hybrid-based image clustering method and server for operating same | |
| CN114445754A (en) | Video processing method, apparatus, readable medium and electronic device | |
| CN113610034B (en) | Method, device, storage medium and electronic device for identifying human entities in video | |
| WO2019066222A1 (en) | Method and system for identifying open source software package on basis of binary file | |
| WO2018080228A1 (en) | Server for translation and translation method | |
| WO2023000782A1 (en) | Method and apparatus for acquiring video hotspot, readable medium, and electronic device | |
| CN115061679A (en) | Offline RPA element picking method and system | |
| WO2023140642A1 (en) | Method, computer device, and computer program for real-time inspector in live commerce platform | |
| WO2025023530A1 (en) | Method, computer device and computer program for generating video snapshots by using image hashing | |
| WO2022119326A1 (en) | Method for providing service of producing multimedia conversion content by using image resource matching, and apparatus thereof | |
| CN119442223B (en) | Model-based anomaly detection methods, devices, and storage media for identifying business risks. | |
| CN112560690A (en) | Multi-modal characteristic character attribute labeling method, device, equipment and medium | |
| WO2024172355A1 (en) | Method and device for detecting text in image | |
| WO2024136409A1 (en) | Speaker diarization method and system | |
| US11735174B2 (en) | Video-aided unsupervised grammar induction | |
| WO2023068495A1 (en) | Electronic device and control method thereof | |
| WO2024147540A1 (en) | Method and system for registering image embeddings for face recognition | |
| CN114581714B (en) | Image-based subject identification method and device, storage medium and electronic equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24845834 Country of ref document: EP Kind code of ref document: A1 |