RU2787136C2 - Traceless image capture, using mobile device - Google Patents

Traceless image capture, using mobile device Download PDF

Info

Publication number
RU2787136C2
RU2787136C2 RU2020142701A RU2020142701A RU2787136C2 RU 2787136 C2 RU2787136 C2 RU 2787136C2 RU 2020142701 A RU2020142701 A RU 2020142701A RU 2020142701 A RU2020142701 A RU 2020142701A RU 2787136 C2 RU2787136 C2 RU 2787136C2
Authority
RU
Russia
Prior art keywords
frame
mobile device
image
video stream
candidate image
Prior art date
Application number
RU2020142701A
Other languages
Russian (ru)
Other versions
RU2020142701A (en
Inventor
Иван Германович Загайнов
Степан Юрьевич Лобастов
Юрий Евгеньевич Катков
Василий Сергеевич Шахов
Ольга Юрьевна Титова
Иван Петрович Хинцицкий
Original Assignee
АБИ Девелопмент, Инк.
Filing date
Publication date
Application filed by АБИ Девелопмент, Инк. filed Critical АБИ Девелопмент, Инк.
Priority to US17/136,148 priority Critical patent/US11380117B1/en
Priority to US17/750,898 priority patent/US11948385B2/en
Publication of RU2020142701A publication Critical patent/RU2020142701A/en
Application granted granted Critical
Publication of RU2787136C2 publication Critical patent/RU2787136C2/en

Links

Images

Abstract

FIELD: image processing.
SUBSTANCE: group of inventions relates to image processing technologies and more specifically to systems and methods for image capture, using a mobile device. A computer-implemented method for image capture with a mobile device is proposed. The method contains a stage, at which an application for video capture, launched on the mobile device, receives a video stream from a camera of the mobile device. Next, a specific frame of the video frame is identified. A set of hypotheses determining image borders in the specific frame is generated. A trained neural network selects a specific hypothesis among the set of hypotheses. A value of a quality indicator of a candidate image is determined. In this case, if the value of the quality indicator of the selected frame is lower than a value of the quality indicator of a previously processed image, the selected frame is rejected, and a new frame is identified. A frame with the highest quality indicator is automatically recorded.
EFFECT: provision of automatic capture of the best quality of a video frame of a video stream with a mobile device, using an application not requiring installation on the mobile device.
20 cl, 6 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[0001] Реализации изобретения в целом относятся к обработке изображений и, более конкретно, к системам и способам захвата изображения с помощью мобильного устройства.[0001] Embodiments of the invention generally relate to image processing, and more specifically to systems and methods for capturing an image using a mobile device.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION

[0002] В настоящее время для захвата документов можно использовать мобильные устройства. Однако различные методы захвата документов мобильными устройствами подразумевают действия пользователя, такие как ручная регулировка освещения, стабилизация мобильного устройства и т.д. Настоящее изобретение описывает автоматизированный захват изображений мобильного устройства. [0002] Currently, mobile devices can be used to capture documents. However, various methods for capturing documents by mobile devices involve user actions such as manually adjusting the lighting, stabilizing the mobile device, and so on. The present invention describes the automated capture of images of a mobile device.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯDISCLOSURE OF THE INVENTION

[0003] Реализации настоящего изобретения описывают механизмы захвата изображения мобильным устройством, содержащие: прием приложением для захвата видео, запущенным на мобильном устройстве, видеопотока с камеры мобильного устройства; идентификацию конкретного кадра видеопотока; генерацию множества гипотез, определяющих границы изображения в конкретном кадре; выбор нейронной сетью конкретной гипотезы среди множества гипотез; создание изображения-кандидата путем применения конкретной гипотезы к конкретному кадру; определение значения показателя качества изображения-кандидата; определение того, что значение показателя качества изображения-кандидата превышает одно или несколько значений показателя качества одного или нескольких ранее обработанных изображений, извлеченных из видеопотока; при этом приложение для захвата изображений не требует установки. В некоторых вариантах реализации способ дополнительно содержит выполнение оптического распознавания символов документа, изображенного на изображении-кандидате, при этом оптическое распознавание символов документа выполняется на мобильном устройстве; обрезка изображения-кандидата; отображение изображения-кандидата на экране мобильного устройства; при этом прием видеопотока выполняется в ответ на прием команды через элемент управления веб-браузера; при этом прием видеопотока выполняется в ответ на прием команды через пользовательский интерфейс управления мобильного устройства.[0003] Implementations of the present invention describe mechanisms for capturing an image by a mobile device, comprising: receiving, by a video capture application running on a mobile device, a video stream from a camera of the mobile device; identification of a particular frame of the video stream; generation of a set of hypotheses that define the boundaries of the image in a particular frame; selection by the neural network of a specific hypothesis among the set of hypotheses; generating a candidate image by applying a particular hypothesis to a particular frame; determining a quality score value of the candidate image; determining that the quality score of the candidate image is greater than one or more quality scores of one or more previously processed images extracted from the video stream; however, the image capture application does not require installation. In some embodiments, the method further comprises performing OCR on the document depicted in the candidate image, wherein OCR on the document is performed on the mobile device; cropping a candidate image; displaying the candidate image on the screen of the mobile device; wherein the video stream is received in response to receiving the command via the web browser control; wherein the reception of the video stream is performed in response to the receipt of the command via the control user interface of the mobile device.

[0004] Энергонезависимый машиночитаемый носитель данных изобретения включает в себя инструкции, которые при доступе к устройству обработки заставляют устройство обработки: принимать с помощью приложения захвата видео, запущенного на мобильном устройстве, видеопоток с камеры мобильного устройства; идентифицировать конкретный кадр видеопотока; генерировать множество гипотез, определяющих границы изображения в конкретном кадре; выбирать с помощью нейронной сети конкретную гипотезу из множества гипотез; создавать изображение-кандидат, применив конкретную гипотезу к конкретному кадру; определять значение показателя качества изображения-кандидата; определять, что значение показателя качества изображения-кандидата превышает одно или несколько значений показателя качества одного или нескольких ранее обработанных изображений, извлеченных из видеопотока; при этом приложение для захвата изображений не требует установки.[0004] The non-volatile computer-readable storage medium of the invention includes instructions that, when accessed by a processing device, cause the processing device to: receive, with a video capture application running on a mobile device, a video stream from a camera of the mobile device; identify a specific frame of the video stream; generate a set of hypotheses that determine the boundaries of the image in a particular frame; using a neural network to select a specific hypothesis from a set of hypotheses; create a candidate image by applying a specific hypothesis to a specific frame; determine the value of the quality indicator of the candidate image; determine that the value of the quality index of the candidate image exceeds one or more values of the quality index of one or more previously processed images extracted from the video stream; however, the image capture application does not require installation.

В некоторых вариантах реализации инструкции энергонезависимого машиночитаемого носителя информации дополнительно побуждают устройство обработки выполнять оптическое распознавание символов документа, изображенного на изображении-кандидате, при этом оптическое распознавание символов документа выполняется на мобильном устройстве; кадрировать изображение-кандидат; отображать изображение-кандидат на экране мобильного устройства; при этом прием видеопотока выполняется в ответ на прием команды через элемент управления веб-браузера; при этом прием видеопотока выполняется в ответ на прием команды через пользовательский интерфейс управления мобильного устройства.In some embodiments, the instructions of the non-volatile computer-readable storage medium further cause the processing device to perform OCR on the document depicted in the candidate image, wherein the OCR of the document is performed on the mobile device; crop the candidate image; display the candidate image on the screen of the mobile device; wherein the video stream is received in response to receiving the command via the web browser control; wherein the reception of the video stream is performed in response to the receipt of the command via the control user interface of the mobile device.

[0005] Система изобретения включает в себя память и устройство обработки, функционально связанное с памятью, устройство обработки для приема приложением для видеозахвата, запущенным на мобильном устройстве, видеопотока с камеры мобильного устройства; идентификацию конкретного кадра видеопотока; генерацию множества гипотез, определяющих границы изображения в конкретном кадре; выбор с помощью нейронной сети конкретной гипотезы из множества гипотез; создание изображения-кандидата с применением конкретной гипотезы к конкретному кадру; определение значения показателя качества изображения-кандидата; определение того, что значение показателя качества изображения-кандидата превышает одно или несколько значений показателя качества одного или нескольких ранее обработанных изображений, извлеченных из видеопотока; при этом приложение для захвата изображений не требует установки.[0005] The system of the invention includes a memory and a processing device operatively associated with the memory, a processing device for receiving, by a video capture application running on a mobile device, a video stream from a camera of the mobile device; identification of a particular frame of the video stream; generation of a set of hypotheses that define the boundaries of the image in a particular frame; selecting, using a neural network, a specific hypothesis from a set of hypotheses; generating a candidate image by applying a particular hypothesis to a particular frame; determining a quality score value of the candidate image; determining that the quality score of the candidate image is greater than one or more quality scores of one or more previously processed images extracted from the video stream; however, the image capture application does not require installation.

В некоторых вариантах реализации система дополнительно содержит выполнение оптического распознавания символов документа, изображенного на изображении-кандидате, при этом оптическое распознавание символов документа выполняется на мобильном устройстве; обрезку изображения-кандидата; отображение изображения-кандидата на экране мобильного устройства; при этом прием видеопотока выполняется в ответ на прием команды через элемент управления веб-браузера; при этом прием видеопотока выполняется в ответ на прием команды через пользовательский интерфейс управления мобильного устройства.In some implementations, the system further comprises performing OCR on the document depicted in the candidate image, wherein the OCR of the document is performed on the mobile device; cropping the candidate image; displaying the candidate image on the screen of the mobile device; wherein the video stream is received in response to receiving the command via the web browser control; wherein the reception of the video stream is performed in response to the receipt of the command via the control user interface of the mobile device.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0006] Изобретение может быть лучше изучено благодаря детальному описанию, данному ниже, и благодаря прилагающимся иллюстрациям, показывающим различные варианты применения изобретения. Изображения, тем не менее, не должны восприниматься как единственно возможные варианты применения изобретения, а приведены лишь для объяснения и понимания.[0006] The invention may be better understood by the detailed description given below and by the accompanying illustrations showing various applications of the invention. The illustrations, however, should not be taken as the only possible applications of the invention, but are provided only for explanation and understanding.

[0007] На ФИГ. 1 представлено схематическое изображение мобильного устройства в соответствии с одним или несколькими вариантами реализации настоящего изобретения.[0007] FIG. 1 is a schematic representation of a mobile device in accordance with one or more embodiments of the present invention.

[0008] На ФИГ. 2 представлена блок-схема, иллюстрирующая один примерный способ захвата изображения в соответствии с некоторыми вариантами реализации настоящего изобретения.[0008] FIG. 2 is a flowchart illustrating one exemplary image capture method in accordance with some embodiments of the present invention.

[0009] На ФИГ. 3 представлена блок-схема, иллюстрирующая примерный способ идентификации границ изображения в соответствии с некоторыми вариантами реализациями настоящего изобретения.[0009] FIG. 3 is a flowchart illustrating an exemplary method for identifying image boundaries in accordance with some embodiments of the present invention.

[0010] На ФИГ. 4 представлено схематическое изображение структуры нейронной сети, работающей в соответствии с одним или несколькими вариантами реализации настоящего изобретения.[0010] FIG. 4 is a schematic representation of the structure of a neural network operating in accordance with one or more embodiments of the present invention.

[0011] На ФИГ. 5 представлена блок-схема примерной компьютерной системы, в которой может применяться настоящее изобретение.[0011] FIG. 5 is a block diagram of an exemplary computer system in which the present invention may be applied.

[0012] На ФИГ. 6 представлена блок-схема компьютерной системы в соответствии с некоторыми вариантами реализации настоящего изобретения.[0012] FIG. 6 is a block diagram of a computer system in accordance with some embodiments of the present invention.

ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИDESCRIPTION OF THE PREFERRED IMPLEMENTATION OPTIONS

[0013] Описаны системы и способы мобильного захвата изображений. Различные способы захвата изображения мобильным устройством включают важные действия пользователя, такие как ручная настройка освещенности, ожидание стабилизации мобильного устройства, чтобы избежать размытия и бликов на снимаемом изображении. Тщательное позиционирование мобильного устройства по отношению к снимаемому изображению также может иметь решающее значение для успешного захвата изображения. Все части изображения должны быть видны камере мобильного устройства. Мобильное устройство должно располагаться близко к центру изображения и желательно параллельно поверхности изображения, чтобы избежать значительных искажений. Часто пользователю нужно сделать несколько снимков, чтобы выбрать наиболее подходящий кадр с минимальным количеством проблем.[0013] Mobile image capture systems and methods are described. Various ways of capturing an image with a mobile device include important user actions such as manually adjusting the lighting, waiting for the mobile device to stabilize to avoid blur and glare in the captured image. Careful positioning of the mobile device in relation to the image being captured can also be critical to successful image capture. All parts of the image must be visible to the camera of the mobile device. The mobile device should be positioned close to the center of the image and preferably parallel to the image surface to avoid significant distortion. Often the user needs to take multiple shots to select the most appropriate shot with the least number of issues.

[0014] В большинстве случаев для захвата изображения мобильным устройством пользователю требуется установить на мобильное устройство специализированное приложение для получения изображений. Однако полученные изображения часто бывают низкого качества. Кроме того, многие пользователи не хотят устанавливать на свои устройства другое приложение.[0014] In most cases, in order to capture an image with a mobile device, a user needs to install a specialized application for capturing images on the mobile device. However, the resulting images are often of poor quality. In addition, many users do not want to install another application on their devices.

[0015] Варианты реализации изобретения устраняют вышеупомянутые и другие недостатки, обеспечивая механизмы для автоматического захвата изображения. Согласно настоящему изобретению, захват изображения выполняется путем анализа множества кадров в видеопотоке, захваченном камерой, и выбора кадра, который подходит для обработки изображения, в соответствии с набором конфигурируемых пользователем или автоматически определенных требований.[0015] Embodiments of the invention address the above and other disadvantages by providing mechanisms for automatic image capture. According to the present invention, image capture is performed by analyzing a plurality of frames in a video stream captured by a camera and selecting a frame that is suitable for image processing according to a set of user-configurable or automatically determined requirements.

[0016] Одним из аспектов настоящего изобретения является автоматизация захвата изображения. В соответствии с использованием в настоящем изобретении захват изображения автоматизирован, когда последовательность видеокадров, захваченных камерой, анализируется в реальном времени без записи видеопотока. Если анализ показывает, что видеокадр имеет приемлемое качество, такой видеокадр записывается автоматически. Впоследствии записанное изображение может быть обрезано и дополнительно обработано для устранения искажений и других недостатков.[0016] One aspect of the present invention is the automation of image capture. As used in the present invention, image capturing is automated, where a sequence of video frames captured by a camera is analyzed in real time without recording a video stream. If the analysis shows that the video frame is of acceptable quality, such a video frame is automatically recorded. Subsequently, the recorded image can be cropped and further processed to eliminate distortion and other imperfections.

[0017] Другой вариант реализации настоящего изобретения заключается в том, что все взаимодействия с камерой мобильного устройства, а также анализ видеопотока, идентификация подходящего видеокадра и передача захваченного изображения на другое устройство выполняются приложением, не требующим установки. Приложение, не требующее установки, - это приложение, которое не устанавливается на мобильное устройство заранее, а вместо этого загружается мобильным устройством только в ответ на действие пользователя в окне браузера; после завершения приложение автоматически удаляется с мобильного устройства. Например, такое приложение может быть загружено мобильным устройством, когда пользователь активирует конкретный элемент управления графическим интерфейсом пользователя (GUI) на странице браузера. После завершения захвата изображения это приложение с нулевым объемом памяти удаляется с мобильного устройства.[0017] Another embodiment of the present invention is that all interactions with the camera of the mobile device, as well as analysis of the video stream, identification of a suitable video frame, and transmission of the captured image to another device, are performed by an application that does not require installation. A non-installation application is an application that is not pre-installed on a mobile device, but instead is downloaded by the mobile device only in response to a user action in a browser window; upon completion, the application is automatically deleted from the mobile device. For example, such an application may be loaded by a mobile device when a user activates a particular graphical user interface (GUI) control on a browser page. Once image capture is complete, this zero-memory app is removed from the mobile device.

[0018] Используемый термин «кадр» может относиться к изображению, захваченному камерой мобильного устройства в реальном времени, независимо от того, записывается ли захваченный видеопоток, который включает в себя последовательность кадров, в реальном времени или асинхронно относительно захвата.[0018] The term "frame" as used herein may refer to an image captured by the camera of a mobile device in real time, whether the captured video stream, which includes a sequence of frames, is recorded in real time or asynchronous to capture.

[0019] В данном контексте «мобильное устройство» может относиться к портативному компьютеру, такому как мобильный телефон, смартфон, фаблет, планшетный компьютер, нетбук, цифровой медиаплеер, портативная игровая консоль, умные часы, персональное устройство цифрового помощника, цифровой помощник предприятия, ноутбук, цифровая видеокамера, цифровой фотоаппарат, цифровая видеокамера. Некоторые мобильные устройства могут иметь сенсорный экран, обеспечивающий интерфейс сенсорного экрана цифровыми кнопками и цифровой клавиатурой. Некоторые мобильные устройства могут иметь физические кнопки вместе с физической клавиатурой. Некоторые мобильные устройства могут иметь возможность подключаться для передачи цифровых данных через один или несколько интерфейсов ввода/вывода (I/O) (например, один или несколько сетевых беспроводных и/или проводных сетевых интерфейсов, которые могут использоваться для установления сеансов связи с одним или несколькими серверами и/или одноранговыми устройствами через одну или несколько сетей, содержащих локальные и/или глобальные сети, такие как Интернет).[0019] As used herein, "mobile device" may refer to a portable computer such as a mobile phone, smartphone, phablet, tablet computer, netbook, digital media player, handheld game console, smart watch, personal digital assistant device, enterprise digital assistant, laptop , digital video camera, digital camera, digital video camera. Some mobile devices may have a touch screen that provides a touch screen interface with number buttons and a numeric keypad. Some mobile devices may have physical buttons along with a physical keyboard. Some mobile devices may be able to connect to transfer digital data through one or more input/output (I/O) interfaces (for example, one or more network wireless and/or wired network interfaces that can be used to establish communication sessions with one or more servers and/or peer devices over one or more networks containing local and/or wide area networks such as the Internet).

[0020] Описанные способы позволяют осуществлять автоматический захват изображения с помощью искусственного интеллекта. Эти методы могут включать обучение нейронной сети для определения подходящей границы изображения в видеокадре. Нейронная сеть может включать множество нейронов, которые связаны с обучаемыми весами и смещениями. Нейроны могут быть организованы в слои. Нейронная сеть может быть обучена на обучающей выборке данных изображений с корректно идентифицированными границами изображений. Например, набор обучающих данных может включать в себя примеры изображений и подходящие границы для этих изображений в качестве результатов обучения.[0020] the Described methods allow automatic image capture using artificial intelligence. These methods may include training a neural network to determine the appropriate edge of an image in a video frame. The neural network may include a plurality of neurons that are associated with trainable weights and biases. Neurons can be organized into layers. A neural network can be trained on a training set of image data with correctly identified image boundaries. For example, the training dataset may include sample images and suitable bounds for those images as learning outcomes.

[0021] Нейронная сеть может генерировать выходное изображение для каждого исходного обучающего изображения. Выходное изображение нейронной сети может быть сопоставлено с целевым выходным результатом, связанным с исходным обучающим изображением, как установлено обучающим набором данных, и ошибка может распространиться на предыдущие слои нейронной сети, чьи параметры (такие как веса и смещения нейронов) могут быть изменены соответствующим образом. Во время обучения нейронной сети параметры нейронной сети могут быть изменены для оптимизации точности прогноза. После обучения нейронная сеть может быть использована для автоматического захвата изображения.[0021] The neural network may generate an output image for each original training image. The output image of the neural network can be compared to the target output associated with the original training image, as set by the training dataset, and the error can be propagated to previous layers of the neural network, whose parameters (such as neuron weights and biases) can be changed accordingly. During training of the neural network, the parameters of the neural network can be changed to optimize the prediction accuracy. Once trained, the neural network can be used to automatically capture an image.

[0022] На ФИГ. 1 представлено примерное изображение мобильного устройства 102, имеющее экран 104 и элемент 106 управления камерой для запуска потоковой передачи видео и записи видео камерой мобильного устройства 102. В некоторых вариантах реализации настоящего изобретения управление камерой 106 может осуществляться виртуальной кнопкой, выполненной на сенсорном экране мобильного устройства 102. В других вариантах реализации элемент 106 управления камерой может представлять собой физическую кнопку. Экран 104 может воспроизводить изображения (например, видеокадры), которые захватываются камерой мобильного устройства.[0022] FIG. 1 is an exemplary illustration of a mobile device 102 having a screen 104 and a camera control 106 for triggering video streaming and recording by the camera of the mobile device 102. In some embodiments of the present invention, the camera 106 may be controlled by a virtual button on the touch screen of the mobile device 102. In other implementations, the camera control 106 may be a physical button. Screen 104 may display images (eg, video frames) that are captured by the camera of the mobile device.

[0023] На ФИГ. 2 представлена блок-схема, иллюстрирующая один примерный способ 200 захвата изображения в соответствии с некоторыми вариантами реализации настоящего изобретения. Способ 200 может быть выполнен путем обработки логики, которая может включать оборудование (например, схемотехника, специализированная логика, программируемая логика, микрокод и так далее), ПО (например, инструкции, выполненные на устройстве обработки), прошивку или их комбинацию. В одном из вариантов применения способ 200 может быть выполнен устройством обработки (например, устройство обработки 602 на ФИГ. 6) компьютерного устройства 510 и/или сервера 550, как описано в соответствии с ФИГ. 5. В некоторых вариантах применения способ 200 может выполняться одним потоком обработки. В другом варианте способ 200 может выполняться двумя или более потоками обработки, каждый из которых выполняет одну или несколько отдельных функций, процедур, подпрограмм или операций способа. Например, потоки обработки, реализующие способ 200, могут быть синхронизированы (например, с помощью семафоров, критических секций и/или других механизмов синхронизации потоков). В другом варианте применения потоки обработки, осуществляющие способ 200, могут выполняться асинхронно по отношению друг к другу. Поэтому если на ФИГ. 2 и связанном с ней описании перечислены операции способа 200 в конкретном порядке, различные варианты применения способа могут выполнять по меньшей мере некоторые из описанных операций параллельно и/или в произвольно выбранном порядке.[0023] FIG. 2 is a flow diagram illustrating one exemplary image capture method 200 in accordance with some embodiments of the present invention. Method 200 may be performed by processing logic, which may include hardware (eg, circuitry, custom logic, programmable logic, microcode, and so on), software (eg, instructions executed on a processing device), firmware, or a combination thereof. In one application, method 200 may be performed by a processor (eg, processor 602 in FIG. 6) of computing device 510 and/or server 550, as described in connection with FIG. 5. In some applications, method 200 may be performed by a single processing thread. Alternatively, method 200 may be executed by two or more processing threads, each of which performs one or more separate functions, procedures, subroutines, or method steps. For example, the processing threads implementing method 200 may be synchronized (eg, using semaphores, critical sections, and/or other thread synchronization mechanisms). In another application, the processing threads that implement method 200 may execute asynchronously with respect to each other. Therefore, if in FIG. 2 and its associated description lists the steps of the method 200 in a specific order, various applications of the method may perform at least some of the described steps in parallel and/or in an arbitrary order.

[0024] На шаге 201 пользователь мобильного устройства 102 открывает вебстраницу в браузере мобильного устройства. На веб-странице содержится элемент управления (например, визуальный элемент управления или голосовое управление), который позволяет пользователю запускать приложение, имеющее возможности управления камерой. В соответствии с настоящим изобретением это приложение не требует установки. Соответственно, когда веб-страница в конечном итоге закрывается пользователем или иным образом завершается, приложение автоматически удаляется с мобильного устройства 102.[0024] In step 201, the user of the mobile device 102 opens the web page in the browser of the mobile device. The web page contains a control (such as a visual control or voice control) that allows the user to launch an application that has camera control capabilities. In accordance with the present invention, this application does not require installation. Accordingly, when the web page is eventually closed by the user or otherwise terminated, the application is automatically removed from the mobile device 102.

[0025] На шаге 202 пользователь активирует элемент управления на вебстранице. В ответ на активацию элемента управления камера мобильного устройства 102 активируется 203 приложением, не требующим установки. Пользователь направляет объектив камеры мобильного устройства на объект, который нужно захватить, и, когда камера захватывает последовательность видеокадров, приложение, не требующее установки, анализирует видеопоток. В некоторых вариантах реализации, когда камера мобильного устройства 102 активна, приложение, не требующее установки, автоматически начинает анализ видеопотока, когда изображение документа появляется в объективе камеры.[0025] In step 202, the user activates a control on the web page. In response to activation of the control, the camera of the mobile device 102 is activated 203 by an application that does not require installation. The user points the mobile device's camera lens at the object to be captured, and when the camera captures a sequence of video frames, the no-install application analyzes the video stream. In some implementations, when the camera of the mobile device 102 is active, the no-installation application automatically starts analyzing the video stream when an image of a document appears in the camera lens.

[0026] На шаге 204 система настоящего изобретения идентифицирует конкретный кадр видеопотока (например, последний захваченный кадр на текущий момент времени). В некоторых вариантах реализации настоящего изобретения система преобразует идентифицированный кадр в видео HTML и отображает его пользователю в реальном времени с помощью экрана 104.[0026] At step 204, the system of the present invention identifies a particular frame of the video stream (eg, the last captured frame at the current point in time). In some embodiments of the present invention, the system converts the identified frame to HTML video and displays it to the user in real time using screen 104.

[0027] В некоторых вариантах реализации настоящего изобретения полученные видеокадры анализируются в реальном времени без предварительной записи видеопотока или кадра. Соответственно, обработанные видеокадры могут быть отбракованы (например, с помощью кольцевого буфера в памяти мобильного вычислительного устройства для хранения полученных видеокадров), так что (N+1)-й кадр заменяет ранее записанный первый кадр, при условии, что емкость буфера позволяет хранить N кадров, где N - предопределенное целочисленное значение.[0027] In some embodiments of the present invention, the received video frames are analyzed in real time without first recording the video stream or frame. Accordingly, the processed video frames can be discarded (for example, using a ring buffer in the memory of the mobile computing device to store the received video frames), so that the (N + 1)th frame replaces the previously recorded first frame, provided that the buffer capacity allows to store N frames, where N is a predefined integer value.

[0028] В других вариантах реализации настоящего изобретения видеопоток записывается, то есть сохраняется в энергозависимой и/или энергонезависимой памяти, а затем может обрабатываться асинхронно по отношению к записи. Записанный видеопоток может быть получен из локальной памяти мобильного вычислительного устройства или с удаленного сервера или однорангового мобильного вычислительного устройства через проводное или беспроводное сетевое соединение.[0028] In other embodiments of the present invention, the video stream is recorded, that is, stored in volatile and/or non-volatile memory, and then may be processed asynchronously with respect to the recording. The recorded video stream may be obtained from the local memory of the mobile computing device, or from a remote server or peer-to-peer mobile computing device via a wired or wireless network connection.

[0029] После идентификации конкретного кадра (204) начинается анализ кадра. Кадр анализируется, чтобы определить качество изображения документа, содержащегося в кадре, и определить границы изображения документа.[0029] Once a particular frame is identified (204), analysis of the frame begins. The frame is analyzed to determine the image quality of the document contained in the frame and to determine the boundaries of the document image.

[0030] «Границы изображения» - это контуры, очерчивающие края области в кадре, которые будут дополнительно обрабатываться приложением (например, путем выполнения оптического распознавания символов текста, содержащегося в изображенном документе). Если изображение является страницей документа, границы изображения образуют прямоугольник. Границы изображения образуются «основными линиями». В случае прямоугольного изображения количество основных линий равно четырем.[0030] "Image borders" are outlines that define the edges of an area in a frame that will be further processed by the application (eg, by performing OCR on the text contained in the imaged document). If the image is a document page, the image borders form a rectangle. Image borders are formed by "main lines". In the case of a rectangular image, the number of main lines is four.

[0031] На шаге 205 конкретный кадр анализируется детектором сдвига. Если сдвиг конкретного кадра превышает заранее определенный порог, конкретный кадр отбраковывается и другой кадр идентифицируется аналогично этапу 204.[0031] In step 205, a specific frame is analyzed by a shift detector. If the shift of a particular frame exceeds a predetermined threshold, the particular frame is discarded and another frame is identified similarly to step 204.

[0032] На шаге 206 конкретный кадр анализируется для идентификации границы изображения в кадре. Конкретные этапы процесса 206 идентификации границы более подробно описаны ниже со ссылкой на ФИГ. 3.[0032] At step 206, a particular frame is analyzed to identify an image boundary within the frame. The specific steps of the boundary identification process 206 are described in more detail below with reference to FIG. 3.

[0033] Для определения границы изображения в кадре система преобразует кадр в оттенки серого (301).[0033] To determine the border of the image in the frame, the system converts the frame to grayscale (301).

[0034] Цветные изображения часто хранятся в виде трех отдельных матриц изображений: одна хранит количество красного (R) в каждом пикселе, другая - количество зеленого (G), а третья - количество синего (В), так называемый формат RGB. При преобразовании изображения RGB в оттенки серого значения RGB для каждого пикселя преобразуются в одно значение, отражающее яркость этого пикселя. В некоторых вариантах реализации это преобразование принимает среднее значение вклада каждого канала: (R+G+B)/3. Однако поскольку в воспринимаемой яркости часто преобладает зеленый компонент, в другом, более «ориентированном на человека» варианте реализации должно приниматься средневзвешенное значение, например: 0,3R+0,59G+0,11 В или другое средневзвешенное значение.[0034] Color images are often stored as three separate image matrices, one storing the amount of red (R) in each pixel, another the amount of green (G), and a third the amount of blue (B), the so-called RGB format. When converting an RGB image to grayscale, the RGB values for each pixel are converted to a single value representing the brightness of that pixel. In some implementations, this transform takes the average of each channel's contribution: (R+G+B)/3. However, since perceived luminance is often dominated by a green component, another more "human-oriented" implementation would take a weighted average, such as: 0.3R+0.59G+0.11 V or another weighted average.

[0035] На шаге 302 система, согласно настоящему изобретению, сжимает выбранный кадр в оттенках серого. В некоторых вариантах реализации сжатие может выполняться с использованием билинейной интерполяции. Сжатие выполняется до уровня, когда мелкие несущественные детали (такие как царапины, шум, подтеки) стираются, но существенные детали изображения по-прежнему хорошо видны. В некоторых вариантах реализации кадр сжимается до заранее определенного размера, например, до 1-3 мегапикселей. В некоторых вариантах реализации кадр сжимается до размера 256 × 256 пикселей, то есть до 0,07 мегапикселя.[0035] In step 302, the system according to the present invention compresses the selected frame in grayscale. In some embodiments, compression may be performed using bilinear interpolation. The compression is performed to a level where small non-essential details (such as scratches, noise, smudges) are erased, but the essential details of the image are still clearly visible. In some implementations, the frame is compressed to a predetermined size, such as 1-3 megapixels. In some implementations, the frame is compressed to a size of 256 × 256 pixels, that is, to 0.07 megapixels.

[0036] В некоторых вариантах реализации кадр сжимается до размера квадрата, сторона которого равна степени 2. Подобные сжатия особенно удобны, если преобразование Хафа используется в дальнейшей обработке конкретного кадра. Сжатие выбранного кадра значительно сокращает время, необходимое для анализа кадра, и, как следствие, позволяет осуществить захват изображения в реальном времени из видеопотока.[0036] In some embodiments, the frame is compressed to the size of a square whose side is a power of 2. Such compressions are especially useful if the Hough transform is used in further processing of a particular frame. Compression of the selected frame significantly reduces the time required for frame analysis and, as a result, allows real-time image capture from the video stream.

[0037] В некоторых вариантах реализации настоящего изобретения к конкретному кадру могут применяться другие операции предварительной обработки, такие как медианный фильтр 3×3 или детектор границ Кэнни.[0037] In some embodiments of the present invention, other pre-processing operations, such as a 3×3 median filter or a Canny edge detector, may be applied to a particular frame.

[0038] На шаге 303 система, согласно настоящему изобретению, обнаруживает границы изображения в определенном кадре. В некоторых вариантах реализации для обнаружения линий границы используется быстрое преобразование Хафа. В некоторых вариантах реализации быстрое преобразование Хафа применяется к конкретному кадру как минимум дважды для обнаружения горизонтальных и вертикальных линий. Полученное изображение сканируется для обнаружения локальных максимумов. Каждый обнаруженный максимум определяет потенциальную границу изображения.[0038] In step 303, the system according to the present invention detects the boundaries of an image in a particular frame. In some implementations, the Fast Hough Transform is used to detect boundary lines. In some implementations, the fast Hough transform is applied to a particular frame at least twice to detect horizontal and vertical lines. The resulting image is scanned to detect local maxima. Each detected maximum defines a potential edge of the image.

[0039] В некоторых вариантах реализации настоящего изобретения система классифицирует обнаруженные максимумы, чтобы идентифицировать максимумы, соответствующие границам изображения. Эта классификация выполняется линейным классификатором, который определяет уровень достоверности для каждого обнаруженного максимума, который соответствует границе изображения. Выявляются максимумы с уровнями уверенности, превышающие заранее определенный порог, и соответствующие им линии сортируются в группы по потенциальной границе изображения. Например, для прямоугольника идентифицированные линии сортируются по четырем группам: группа верхней границы, группа нижней границы, группа левой границы и группа правой границы.[0039] In some embodiments of the present invention, the system classifies the detected peaks to identify peaks corresponding to image boundaries. This classification is performed by a linear classifier which determines the level of confidence for each detected maximum that corresponds to an image boundary. Peaks with confidence levels exceeding a predetermined threshold are identified, and the lines corresponding to them are sorted into groups according to the potential edge of the image. For example, for a rectangle, the identified lines are sorted into four groups: top border group, bottom border group, left border group, and right border group.

[0040] В некоторых вариантах реализации настоящего изобретения получаемые группы линий фильтруются для удаления дубликатов (линий, которые слишком похожи друг на друга). Благодаря методу идентификации линии с помощью преобразования Хафа, одна линия генерирует набор локальных максимумов, таких как (х, у), (х-1, у+2), (х-2, у+4), …. Линии, полученные в результате этих локальных максимумов, пересекают верхнюю и нижнюю границы изображения в координатах [хВерх, хНиз], [хВерх+1, хНиз+1], [хВерх+1, хНиз-1], … соответственно. Поскольку эти линии очень похожи, все они получат одинаковые уровни уверенности от классификатора.[0040] In some embodiments of the present invention, the resulting line groups are filtered to remove duplicates (lines that are too similar to each other). Thanks to the Hough transform line identification method, one line generates a set of local maxima such as (x, y), (x-1, y+2), (x-2, y+4), …. The lines resulting from these local maxima intersect the upper and lower boundaries of the image in the coordinates [xTop, xBottom], [xTop+1, xBottom+1], [xTop+1, xBottom-1], ... respectively. Since these lines are very similar, they will all receive the same levels of confidence from the classifier.

[0041] В некоторых вариантах реализации настоящего изобретения, чтобы определить, не слишком ли похожи две линии, применяется следующий эвристический тест: для каждой пары линий система определяет расстояние между точками, где эти линии пересекают противоположные границы изображения. Если эти расстояния ниже заданного порога, линии считаются слишком похожими и одна из них исключается из группы потенциальных линий границы.[0041] In some embodiments of the present invention, to determine if two lines are too similar, the following heuristic test is applied: for each pair of lines, the system determines the distance between the points where these lines intersect opposite image boundaries. If these distances are below a given threshold, the lines are considered too similar and one of them is excluded from the group of potential boundary lines.

[0042] На основе этих потенциальных линий границы система может генерировать гипотезы прямоугольника границы. Для каждой сгенерированной гипотезы может быть вычислен уровень уверенности, соответствующий уровням уверенности линий, образующих прямоугольник в соответствии с этой гипотезой. В некоторых вариантах реализации гипотезы ранжируются по уровням уверенности.[0042] Based on these potential boundary lines, the system may generate boundary rectangle hypotheses. For each generated hypothesis, a confidence level can be calculated corresponding to the confidence levels of the lines that form the rectangle according to that hypothesis. In some implementations, the hypotheses are ranked by confidence levels.

[0043] Набор гипотез может быть отфильтрован для исключения наборов линий, которые могут не образовывать подходящий прямоугольник. В некоторых вариантах реализации система также отфильтровывает гипотезы о прямоугольниках с маловероятной геометрией. В системе могут использоваться следующие параметры для определения неподходящих прямоугольников: углы вершин, площадь полученного прямоугольника, размеры сторон и другие геометрические параметры. Эти параметры могут быть проанализированы для выявления неправдоподобных гипотез. В некоторых вариантах реализации система оценивает такие геометрические параметры относительно заранее определенных пороговых параметров.[0043] The set of hypotheses can be filtered to exclude sets of lines that may not form a suitable rectangle. In some implementations, the system also filters out rectangle hypotheses with unlikely geometry. The system can use the following parameters to determine inappropriate rectangles: vertex angles, area of the resulting rectangle, side dimensions, and other geometric parameters. These parameters can be analyzed to identify implausible hypotheses. In some implementations, the system evaluates such geometric parameters against predetermined threshold parameters.

[0044] На шаге 304 система может дополнительно фильтровать набор гипотез на основе геометрических корреляций и весов точек, расположенных на линиях прямоугольников. В некоторых вариантах реализации фильтрация выполняется линейным классификатором. Система может дополнительно фильтровать оставшиеся гипотезы, чтобы исключить по существу аналогичные гипотезы.[0044] In step 304, the system may further filter the set of hypotheses based on geometric correlations and weights of points located on the rectangle lines. In some implementations, filtering is performed by a linear classifier. The system may further filter the remaining hypotheses to exclude substantially similar hypotheses.

[0045] На шаге 305 система может дополнительно оценить оставшиеся гипотезы с помощью нейронной сети. В некоторых вариантах реализации настоящего изобретения система может дополнительно оценивать углы прямоугольников с помощью нейронной сети.[0045] In step 305, the system may further evaluate the remaining hypotheses using the neural network. In some embodiments of the present invention, the system may further evaluate the corners of the rectangles using a neural network.

[0046] На ФИГ. 4 схематично показана структура нейронной сети, работающей в соответствии с одним или несколькими вариантами реализации настоящего изобретения. Как показано на ФИГ. 4, нейронная сеть 400 может быть представлена непериодической нейронной сетью с прямой связью, включающей в себя входной слой 410, выходной слой 420 и один или несколько скрытых слоев 430, соединяющих входной слой 410 и выходной слой 420. Выходной слой 420 может иметь то же количество узлов, что и входной слой 410, так что сеть 400 может быть обучена неконтролируемым процессом обучения для восстановления своих собственных входных данных.[0046] FIG. 4 schematically shows the structure of a neural network operating in accordance with one or more embodiments of the present invention. As shown in FIG. 4, neural network 400 may be represented by a non-periodic feed-forward neural network including an input layer 410, an output layer 420, and one or more hidden layers 430 connecting the input layer 410 and the output layer 420. The output layer 420 may have the same number nodes as input layer 410, so that network 400 can be trained by an unsupervised learning process to recover its own input data.

[0047] Нейронная сеть может включать множество нейронов, которые связаны с обучаемыми весами и смещениями. Нейроны могут быть организованы в слои. Нейронная сеть может быть обучена на обучающем наборе данных пограничных гипотез.[0047] The neural network may include a plurality of neurons that are associated with trainable weights and biases. Neurons can be organized into layers. A neural network can be trained on a training data set of boundary hypotheses.

[0048] Нейронная сеть может генерировать выходное изображение для каждого исходного обучающего изображения. Во время обучения нейронной сети параметры нейронной сети могут быть изменены для оптимизации точности прогноза. Обучение нейронной сети может включать в себя обработку нейронной сетью гипотез границ, чтобы сеть определяла метрику качества (т.е. наблюдаемый результат) для этой гипотезы, и сравнение определенной метрики качества с известной метрикой качества (т.е. целевой выход, соответствующий входу обучения, как указано в наборе данных для обучения). Наблюдаемый выход нейронной сети можно сравнить с целевым выходом, а ошибка может быть передана обратно на предыдущие уровни нейронной сети, параметры которых (например, веса и смещения нейронов) могут быть соответствующим образом скорректированы для минимизации функции потерь (т.е. разницы между наблюдаемым выходом и результатом обучения).[0048] The neural network may generate an output image for each original training image. During training of the neural network, the parameters of the neural network can be changed to optimize the prediction accuracy. Training a neural network may include processing the boundary hypotheses by the neural network so that the network determines a quality metric (i.e., the observed outcome) for that hypothesis, and comparing the determined quality metric with a known quality metric (i.e., the target output corresponding to the training input , as specified in the training dataset). The observed output of the neural network can be compared to the target output, and the error can be fed back to the previous layers of the neural network whose parameters (e.g. neuron weights and biases) can be adjusted accordingly to minimize the loss function (i.e. the difference between the observed output and learning outcomes).

[0049] После обучения нейронная сеть может использоваться для автоматического определения показателя качества для гипотез границ. В некоторых вариантах реализации нейронная сеть может использоваться для автоматического определения показателей качества для вершин прямоугольников. Описанные здесь механизмы для определения показателей качества могут улучшить качество процесса захвата изображения путем выполнения определения показателя качества с использованием обученной нейронной сети способом, который учитывает наиболее релевантные атрибуты.[0049] After training, the neural network can be used to automatically determine the quality score for the boundary hypotheses. In some embodiments, a neural network may be used to automatically determine the quality scores for the vertices of the rectangles. The mechanisms for determining quality scores described herein can improve the quality of an image capture process by performing a quality score determination using a trained neural network in a manner that considers the most relevant attributes.

[0050] В некоторых вариантах реализации показатель качества гипотезы может быть определен на основе показателей качества вершин прямоугольников. Метрики качества вершин могут быть вычислены нейронной сетью, обрабатывающей изображения вершин. Такие изображения обычно относительно малы и просты в обращении, что сокращает время обработки для захвата изображения в соответствии с настоящим изобретением.[0050] In some embodiments, a hypothesis quality score may be determined based on the rectangle vertex quality scores. Vertex quality metrics can be computed by a neural network processing vertex images. Such images are usually relatively small and easy to handle, which shortens the processing time for image capture in accordance with the present invention.

[0051] На шаге 306 система может выполнить классификацию второго уровня гипотез прямоугольника. В некоторых вариантах реализации для выполнения классификации второго уровня используется классификатор повышения градиента. Классификация второго уровня может использовать те же параметры, что и первая классификация. В некоторых вариантах реализации показатели качества для вершин прямоугольников, сгенерированные нейронной сетью, также могут использоваться в качестве параметров классификации второго уровня.[0051] In step 306, the system may perform a second level classification of the rectangle hypotheses. In some implementations, a gradient boosting classifier is used to perform the second level classification. The second level classification can use the same parameters as the first classification. In some embodiments, the rectangle vertex quality scores generated by the neural network may also be used as second-level classification parameters.

[0052] В результате классификации второго уровня может быть выбрана лучшая гипотеза границы.[0052] As a result of the second level classification, the best boundary hypothesis can be selected.

[0053] После выбора наилучшей гипотезы границы на шаге 306, возвращаясь к ФИГ. 2, на шаге 207 система определяет показатель качества выбранного кадра. Учитывается только та часть выбранного кадра, которая попадает в выбранную границу. В некоторых вариантах реализации настоящего изобретения в системе могут применяться методы снижения шума к изображению в кадре в пределах выбранной границы, чтобы определить его показатель качества.[0053] After selecting the best boundary hypothesis in step 306, returning to FIG. 2, in step 207, the system determines the quality score of the selected frame. Only that part of the selected frame that falls within the selected boundary is taken into account. In some embodiments of the present invention, the system may apply noise reduction techniques to an image in a frame within a selected boundary to determine its quality score.

[0054] На шаге 208 система может сравнить метрику качества выбранного кадра (как определено на шаге 207) с ранее вычисленной метрикой качества предыдущего кадра. Если показатель качества выбранного кадра хуже, чем показатель качества предыдущего кадра, выбранный кадр отбраковывается и идентифицируется новый кадр 204.[0054] In step 208, the system may compare the quality metric of the selected frame (as determined in step 207) with a previously calculated quality metric of the previous frame. If the quality score of the selected frame is worse than the quality score of the previous frame, the selected frame is discarded and a new frame 204 is identified.

[0055] В некоторых вариантах реализации настоящего изобретения система идентифицирует конкретный кадр в видеопотоке с заранее определенной частотой. В некоторых вариантах реализации настоящего изобретения система идентифицирует конкретный кадр в видеопотоке через заранее определенные интервалы времени. В некоторых вариантах реализации настоящего изобретения следующий кадр идентифицируется после завершения анализа предыдущего идентифицированного кадра. В некоторых вариантах реализации система анализирует заранее определенное количество конкретных кадров и переходит к следующему этапу, если лучший кадр не идентифицирован среди заранее определенного количества кадров или в течение заранее определенного периода времени.[0055] In some embodiments of the present invention, the system identifies a particular frame in a video stream at a predetermined rate. In some embodiments of the present invention, the system identifies a particular frame in the video stream at predetermined time intervals. In some embodiments of the present invention, the next frame is identified after parsing of the previous identified frame is complete. In some implementations, the system analyzes a predetermined number of specific frames and proceeds to the next step if the best frame is not identified among a predetermined number of frames or within a predetermined period of time.

[0056] На шаге 209 система оценивает пригодность кадра для оптического распознавания символов (OCR). В некоторых вариантах реализации оценка пригодности OCR выполняется локально на мобильном устройстве. В качестве альтернативы оценка пригодности OCR может выполняться на сервере после того, как выбранный кадр был захвачен и передан на сервер.[0056] In step 209, the system evaluates the suitability of the frame for optical character recognition (OCR). In some implementations, the OCR suitability evaluation is performed locally on the mobile device. Alternatively, OCR validation may be performed on the server after the selected frame has been captured and transmitted to the server.

[0057] На шаге 210 система выполняет постобработку выбранного кадра. Постобработка может включать в себя оптическое распознавание символов изображения в выбранном кадре, машинный перевод текста в выбранном кадре или другие операции обработки документа или обработки изображения.[0057] In step 210, the system performs post-processing of the selected frame. Post-processing may include optical character recognition of the image in the selected frame, machine translation of text in the selected frame, or other document processing or image processing operations.

[0058] На ФИГ. 5 представлена блок-схема примерной компьютерной системы 500, в которой могут применяться варианты реализации изобретения. В соответствии с изображением система 500 может включать в себя вычислительное устройство 510, хранилище 520 и сервер 550, подключенный к сети 530. Сеть 530 может быть общедоступной сетью (например, Интернет), частной сетью (например, локальной вычислительной сетью (ЛВС) или глобальной вычислительной сетью (ГВС)) или их комбинацией.[0058] FIG. 5 is a block diagram of an exemplary computer system 500 in which embodiments of the invention may be applied. As depicted, system 500 may include a computing device 510, storage 520, and a server 550 connected to network 530. Network 530 may be a public network (eg, the Internet), a private network (eg, a local area network (LAN), or a wide area network). computer network (GWS)) or their combination.

[0059] Вычислительное устройство 510 может быть настольным компьютером, ноутбуком, смартфоном, планшетом, сервером, сканером или любым подходящим вычислительным устройством, способным выполнять описанные в данном документе способы. В некоторых вариантах применения компьютерное устройство 510 может представлять собой (и/или включать) одно или несколько компьютерных устройств 600 на ФИГ. 6.[0059] Computing device 510 may be a desktop computer, laptop, smartphone, tablet, server, scanner, or any suitable computing device capable of performing the methods described herein. In some applications, the computing device 510 may be (and/or include) one or more of the computing devices 600 in FIG. 6.

[0060] Кадр 540 может быть принят компьютерным устройством 510. Кадр 540 может быть получен любым подходящим способом. Кроме того, в случаях, когда компьютерное устройство 510 является сервером, клиентское устройство, подключенное к серверу через сеть 530, может загружать кадр 540 на сервер. В случаях, когда компьютерное устройство 510 является клиентским устройством, подключенным к серверу через сеть 530, клиентское устройство может загружать кадр 540 с сервера или из хранилища 520.[0060] Frame 540 may be received by computing device 510. Frame 540 may be received in any suitable manner. Furthermore, in cases where computing device 510 is a server, a client device connected to the server via network 530 may upload frame 540 to the server. In cases where computing device 510 is a client device connected to a server via network 530, the client device may download frame 540 from the server or from storage 520.

[0061] Кадр 540 может использоваться для обучения набора моделей машинного обучения или может быть новым кадром, для которого желательно определение показателя качества.[0061] Frame 540 may be used to train a set of machine learning models, or may be a new frame for which a quality score determination is desired.

[0062] В одном варианте реализации компьютерное устройство 510 может включать в себя механизм 511 определения показателей качества. Механизм 511 определения метрики качества может включать в себя инструкции, хранящиеся на одном или нескольких материальных, машиночитаемых носителях данных компьютерного устройства 510 и выполняемые одним или несколькими устройствами обработки компьютерного устройства 510.[0062] In one implementation, the computing device 510 may include a quality score engine 511. The quality metric determination mechanism 511 may include instructions stored on one or more tangible, computer-readable storage media of the computing device 510 and executed by one or more processing devices of the computing device 510.

[0063] В одном варианте реализации механизм 511 определения показателей качества может использовать набор обученных моделей 314 машинного обучения для определения одного или нескольких показателей качества кадра 540. Библиотека кадров может находиться в хранилище 520. Модели 514 машинного обучения обучаются и используются для определения показателей качества.[0063] In one implementation, the quality score engine 511 may use a set of trained machine learning models 314 to determine one or more frame quality scores 540. The frame library may reside in a storage 520. The machine learning models 514 are trained and used to determine the quality scores.

[0064] Механизм 511 определения показателей качества может являться клиентским приложением или представлять собой комбинацию клиентского и серверного компонентов. В некоторых вариантах реализации механизм 511 определения показателей качества может полностью выполняться на клиентском компьютерном устройстве, таком как серверный компьютер, настольный компьютер, планшетный компьютер, смартфон, портативный компьютер, фотоаппарат, видеокамера и т.п. В качестве альтернативы клиентский компонент механизма 511 определения показателей качества, выполняемый на клиентском компьютерном устройстве, может принимать кадр и передавать его на серверный компонент механизма 511 определения показателей качества, выполняемого на серверном устройстве, которое выполняет определение показателей качества. Серверный компонент механизма 511 определения показателей качества может затем возвращать определенные показатели качества клиентскому компоненту механизма 511 определения показателей качества, выполненному на клиентском компьютерном устройстве, для хранения. В качестве альтернативы серверный компонент механизма 511 определения показателей качества может предоставить результат идентификации другому приложению. В других вариантах реализации механизм 511 определения показателей качества может выполняться на серверном устройстве как приложение с доступом в Интернет, доступное через интерфейс браузера. Устройство сервера может представлять собой одну или несколько компьютерных систем, таких как одна или несколько серверных машин, рабочих станций, системных блоков, персональных компьютеров (ПК) и так далее.[0064] The quality score engine 511 may be a client application or a combination of client and server components. In some implementations, the quality score engine 511 may run entirely on a client computing device, such as a server computer, desktop computer, tablet computer, smartphone, laptop computer, camera, camcorder, or the like. Alternatively, the client component of the quality score engine 511 running on the client computing device may receive the frame and transmit it to the server component of the score engine 511 running on the server device that performs the quality score determination. The server component of the quality score engine 511 may then return the determined quality scores to the client component of the quality score engine 511 running on the client computing device for storage. Alternatively, the server component of the quality score engine 511 may provide the identification result to another application. In other implementations, the quality score engine 511 may run on a server device as an Internet-accessible application accessible through a browser interface. The server device may be one or more computer systems, such as one or more server machines, workstations, system units, personal computers (PCs), and so on.

[0065] Серверная машина 550 может являться и/или включать стоечный сервер, роутер, персональный компьютер, портативный ассистент, мобильный телефон, ноутбук, планшет, камеру, видеокамеру, нетбук, настольный компьютер, медиацентр или любую комбинацию из вышеперечисленных. Серверная машина 550 может включать механизм обучения 551. Механизм обучения 551 может построить модель(-и) 514 машинного обучения для определения показателей качества. Модель(-и) машинного обучения 514, как показано на ФИГ. 5, могут быть обучены механизмом обучения 551, используя данные обучения, которые включают входные данные для обучения и связанные выходные данные для обучения (правильные ответы на соответствующие входные данные для обучения). Механизм обучения 551 может находить закономерности в данных обучения, привязывая входные обучающие данные к выходным обучающим данным (предполагаемый ответ) и создать модели машинного обучения 514, которые зафиксируют эти эталоны. Набор моделей машинного обучения 514 может состоять, например, из одиночного уровня линейных или нелинейных операций (таких как машина опорных векторов) или может быть глубокой нейронной сетью, такой как модель машинного обучения, которая состоит из нескольких уровней нелинейных операций. Примерами глубоких нейронных сетей являются нейронные сети, включающие сверточные нейронные сети, рекуррентные нейронные сети (РНС) с одним или более скрытых слоев и полностью связанные нейронные сети.[0065] Server machine 550 may be and/or include a rack server, router, personal computer, portable assistant, mobile phone, laptop, tablet, camera, camcorder, netbook, desktop computer, media center, or any combination of the above. The server machine 550 may include a learning engine 551. The learning engine 551 may build a machine learning model(s) 514 to determine quality metrics. The machine learning model(s) 514 as shown in FIG. 5 can be trained by the learning engine 551 using training data that includes training inputs and associated training outputs (correct responses to corresponding training inputs). The learning engine 551 can find patterns in the training data by associating the input training data with the output training data (intended response) and create machine learning models 514 that capture these patterns. The set of machine learning models 514 may consist of, for example, a single layer of linear or non-linear operations (such as a support vector machine), or may be a deep neural network such as a machine learning model that consists of multiple layers of non-linear operations. Examples of deep neural networks are neural networks including convolutional neural networks, recurrent neural networks (RNNs) with one or more hidden layers, and fully connected neural networks.

[0066] Модели 514 машинного обучения могут быть обучены определять показатели качества для кадра 340. Обучающие данные могут находиться в хранилище 520 и могут включать один или более наборов входных обучающих данных 522 и один или более наборов выходных обучающих данных 524. Обучающие данные могут также включать данные карт 526, которые связывают входные обучающие данные 522 с выходными обучающими данными 524. В процессе обучения механизм обучения 551 может находить закономерности в обучающих данных 526, которые могут быть использованы для связки входных обучающих данных с выходными обучающими данными. Закономерности могут быть впоследствии использованы моделью (моделями) машинного обучения 514 для будущих прогнозов. Например, после приема входных данных неизвестного кадра обученная(-ые) модель(-и) 514 машинного обучения может (могут) прогнозировать показатели качества для этого кадра и предоставлять такие показатели качества в виде выходных данных.[0066] Machine learning models 514 may be trained to determine quality metrics for frame 340. The training data may reside in store 520 and may include one or more sets of input training data 522 and one or more sets of output training data 524. The training data may also include map data 526 that links input training data 522 to output training data 524. During training, learning engine 551 can find patterns in training data 526 that can be used to link input training data to output training data. The patterns can then be used by the machine learning model(s) 514 for future predictions. For example, upon receiving input from an unknown frame, the trained machine learning model(s) 514 may predict quality scores for that frame and provide those quality scores as output.

[0067] Хранилище 520 может быть постоянным хранилищем, способным сохранить структуры для выполнения определения меры сходства в соответствии с вариантами реализации настоящего изобретения. Хранилище 520 может быть размещено на одном или более устройствах хранения, таких как основная память, магнитные или оптические диски, ленты или жесткие диски, NAS, SAN и так далее. Несмотря на то, что изображение показывает компьютерное устройство 510 отдельно от хранилища 520, при применении хранилище 520 может являться частью компьютерного устройства 510. В других вариантах применения хранилище 520 может являться сетевым файловым сервером, в то время как при других применениях хранилище 520 может являться другим типом хранения данных, таким как база данных с привязкой к объекту, реляционная база данных и так далее, которое может находиться на серверной машине или на одной или более различных машинах, соединенных через сеть 530.[0067] Store 520 may be a persistent store capable of storing structures for performing similarity measure determination in accordance with embodiments of the present invention. Storage 520 may be located on one or more storage devices such as main memory, magnetic or optical disks, tapes or hard drives, NAS, SAN, and so on. Although the image shows computing device 510 separate from storage 520, in application, storage 520 may be part of computing device 510. In other uses, storage 520 may be a network file server, while in other applications, storage 520 may be different. type of data storage, such as an object-bound database, a relational database, and so on, which may reside on a server machine or on one or more different machines connected through network 530.

[0068] ФИГ. 6 показывает пример компьютерной системы 600, которая может выполнять один или несколько описанных здесь способов. Вычислительная система может подключаться (например, в сети) к другим вычислительным системам с помощью ЛВС, интрасети, экстрасети или Интернета. Вычислительная система может работать в качестве сервера в сетевой среде клиент-сервер. Вычислительная система может быть персональным компьютером (ПК), планшетом, телеприставкой (STB), персональным цифровым помощником (PDA), мобильным телефоном, камерой, видеокамерой или любым устройством, способным выполнять набор команд (последовательных или иных), определяющих действия, которые должны выполняться этим устройством. Кроме того, хотя проиллюстрирована только одна вычислительная система, термин «компьютер» также следует понимать как включающий любую совокупность компьютеров, которые индивидуально или совместно выполняют набор (или несколько наборов) команд для выполнения одного или нескольких из обсуждаемых в данном документе способов.[0068] FIG. 6 shows an example computer system 600 that may perform one or more of the methods described herein. The computing system may be connected (eg, on a network) to other computing systems using a LAN, intranet, extranet, or the Internet. The computing system may operate as a server in a client-server network environment. The computing system may be a personal computer (PC), a tablet, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a camera, a camcorder, or any device capable of executing a set of commands (sequential or otherwise) specifying actions to be performed. this device. In addition, although only one computing system is illustrated, the term "computer" should also be understood to include any collection of computers that individually or collectively execute a set (or sets) of instructions to perform one or more of the methods discussed herein.

[0069] Пример компьютерной системы 600 включает устройство обработки 602, основную память 604 (то есть память «только для чтения» (ROM), флэш-память, динамическую память случайного доступа (DRAM), такую как синхронная DRAM (SDRAM)), статическую память 606 (то есть флэш-память, статическую память случайного доступа (SRAM)) и устройство хранения данных 616, которое обменивается данными друг с другом по шине 608.[0069] An example computer system 600 includes a processor 602, main memory 604 (i.e., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)), static a memory 606 (i.e., flash memory, static random access memory (SRAM)) and a storage device 616 that communicate with each other over a bus 608.

[0070] Устройство обработки 602 представляет одно или несколько устройств обработки общего назначения, таких как микропроцессор, центральный процессор и т.п. В частности, устройство обработки 602 может быть микропроцессором с полным набором команд (CISC), микропроцессором с сокращенным набором команд (RISC), микропроцессором со сверхдлинным командным словом (VLIW) или процессором, реализующим другие наборы команд, или процессорами, реализующими комбинацию наборов команд. Устройство обработки 602 также может быть представлено одним или более устройствами обработки специального назначения, такими как специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), цифровой сигнальный процессор (DSP), сетевой процессор и т.п. Устройство обработки 602 создано с возможностью выполнения инструкций 626 для реализации механизма 511 определения показателей качества и/или механизма 551 обучения по ФИГ. 5 и выполнения операций и этапов, описанных в настоящем документе (например, способ 200 по ФИГ. 2).[0070] Processor 602 represents one or more general purpose processing devices such as a microprocessor, a central processing unit, and the like. In particular, processor 602 may be a full instruction set (CISC) microprocessor, a reduced instruction set (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processor 602 may also be one or more special purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, and the like. Processor 602 is configured to execute instructions 626 to implement the quality score engine 511 and/or the learning engine 551 of FIG. 5 and performing the operations and steps described herein (eg, method 200 of FIG. 2).

[0071] Компьютерная система 600 далее может включать устройство сетевого интерфейса 622. Компьютерная система 600 также может включать устройство визуального отображения 610 (например, жидкокристаллический дисплей (ЖКД) или электронно-лучевую трубку (ЭЛТ)), устройство буквенно-цифрового ввода 612 (например, клавиатуру), устройство управления курсором 614 (например, мышь) и устройство генерации сигнала 620 (например, колонку). В одном из показанных примеров устройство визуального отображения 610, устройство буквенно-цифрового ввода 612 и устройство управления курсором 614 могут быть объединены в один компонент или устройство (например, сенсорный ЖК-экран).[0071] The computer system 600 may further include a network interface device 622. The computer system 600 may also include a visual display device 610 (for example, a liquid crystal display (LCD) or cathode ray tube (CRT)), an alphanumeric input device 612 (for example , keyboard), a cursor control device 614 (eg, a mouse), and a signal generating device 620 (eg, a speaker). In one of the examples shown, the display device 610, the alphanumeric input device 612, and the cursor control device 614 may be combined into a single component or device (eg, an LCD touch screen).

[0072] Устройства хранения данных 616 включает машиночитаемый носитель данных 624, на котором хранятся инструкции 626, описывающие одну или более описанных здесь методологий или функций. Инструкции 626 могут также относиться полностью или по меньшей мере частично к основной памяти 604 и/или к устройству обработки 602 в момент их выполнения компьютерной системой 600, основной памятью 604 и устройством обработки 602, которые также относятся к машиночитаемым носителям. В некоторых вариантах применения инструкции 626 могут дополнительно передаваться или приниматься по сети через сетевое интерфейсное устройство 622.[0072] Storage devices 616 include a computer-readable storage medium 624 that stores instructions 626 describing one or more of the methodologies or functions described herein. Instructions 626 may also refer in whole or at least in part to main memory 604 and/or processor 602 at the time they are executed by computer system 600, main memory 604, and processor 602, which are also referred to as computer readable media. In some applications, instructions 626 may additionally be transmitted or received over the network via network interface device 622.

[0073] В то время как машиночитаемый носитель данных 624 показан в иллюстративных примерах как единственный носитель, термин «машиночитаемый носитель данных» следует понимать как включающий один носитель или несколько носителей (например, централизованную или распределенную базу данных и/или связанные кеши и серверы), в которых хранятся один или несколько наборов команд. Термин «машиночитаемый носитель данных» также должен включать любой носитель, который способен хранить, кодировать или переносить набор команд для выполнения машиной и который заставляет машину выполнять одну или несколько методологий настоящего изобретения. Термин «машиночитаемый носитель данных» следует соответственно понимать как включающий твердотельные запоминающие устройства, оптические носители и магнитные носители.[0073] While the computer-readable storage medium 624 is shown in the illustrative examples as the only medium, the term "machine-readable storage medium" should be understood to include one medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) , which store one or more command sets. The term "machine-readable storage medium" should also include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by a machine and that causes the machine to execute one or more of the methodologies of the present invention. The term "computer-readable storage medium" should be appropriately understood to include solid-state storage devices, optical media, and magnetic media.

[0074] Хотя операции способов в данном документе показаны и описаны в определенном порядке, порядок операций каждого способа может быть изменен так, чтобы определенные операции могли выполняться в обратном порядке, или так, чтобы определенная операция по крайней мере частично могла выполняться одновременно с другими операциями. В некоторых вариантах реализации команды или подоперации отдельных операций могут быть прерывистыми и/или чередующимися.[0074] Although the steps of the methods herein are shown and described in a specific order, the order of steps of each method can be changed so that certain steps can be performed in reverse order, or so that a certain step can be performed at least in part simultaneously with other steps. . In some embodiments, commands or sub-operations of individual operations may be discontinuous and/or interleaved.

[0075] Следует понимать, что приведенное выше описание служит для иллюстрации, а не ограничения. Многие другие варианты реализации будут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Следовательно, объем настоящего изобретения должен определяться ссылкой на прилагаемую формулу изобретения вместе с полным объемом эквивалентов, на которые такая формула изобретения имеет право.[0075] It should be understood that the above description is for illustration and not limitation. Many other implementation options will be apparent to those skilled in the art upon reading and understanding the above description. Therefore, the scope of the present invention is to be determined by reference to the appended claims, together with the full scope of the equivalents to which such claims are entitled.

[0076] В приведенном выше описании изложены многочисленные подробности. Однако для специалиста в данной области техники будет очевидно, что аспекты настоящего изобретения могут быть реализованы на практике без этих конкретных деталей. В некоторых случаях хорошо известные конструкции и устройства показаны в форме блок-схемы, а не в подробностях, чтобы не затруднять понимание настоящего изобретения.[0076] Numerous details have been set forth in the above description. However, it will be apparent to those skilled in the art that aspects of the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form rather than in detail so as not to obscure the present invention.

[0077] Некоторые части подробных описаний выше представлены в терминах алгоритмов и символических представлений операций с битами данных в памяти компьютера. Эти алгоритмические описания и представления являются средствами, используемыми специалистами в области обработки данных, чтобы наиболее эффективно передать суть своей работы другим специалистам в данной области техники. Алгоритм здесь и в целом задуман как самосогласованная последовательность шагов, ведущих к желаемому результату. Эти шаги требуют физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно сохранять, передавать, комбинировать, сравнивать и иным образом использовать. Иногда оказывается удобным, в основном по причинам обычного использования, называть эти сигналы битами, значениями, элементами, знаками, символами, терминами, числами и т.п.[0077] Some parts of the detailed descriptions above are presented in terms of algorithms and symbolic representations of operations on data bits in computer memory. These algorithmic descriptions and representations are the means used by data scientists to most effectively convey the essence of their work to other specialists in the art. The algorithm here and in general is conceived as a self-consistent sequence of steps leading to the desired result. These steps require physical manipulations of physical quantities. Typically, though not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, transmitted, combined, compared, and otherwise used. It is sometimes convenient, mainly for reasons of common usage, to refer to these signals as bits, values, elements, characters, symbols, terms, numbers, and the like.

[0078] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и представляют собой просто удобные обозначения, применяемые к этим величинам. Если специально не указано иное, как очевидно из следующего обсуждения, следует понимать, что во всем описании обсуждения с использованием таких терминов, как «получение», «определение», «выбор», «сохранение», «анализ» и т.п., относятся к действию и процессам вычислительной системы или аналогичного электронного вычислительного устройства, которое обрабатывает и преобразует данные, представленные в виде физических (электронных) величин в регистрах и памяти вычислительной системы, в другие данные, аналогично представленные в виде физических величин в памяти или регистрах вычислительной системы или других подобных устройств хранения, передачи или отображения информации.[0078] However, it should be borne in mind that all these and similar terms should be associated with the corresponding physical quantities and are merely convenient designations applied to these quantities. Unless specifically stated otherwise, as evident from the following discussion, it should be understood that throughout the description of the discussion using terms such as "obtaining", "determining", "selection", "storage", "analysis", etc. , refer to the operation and processes of a computing system or similar electronic computing device that processes and converts data represented as physical (electronic) quantities in the registers and memory of the computing system into other data similarly represented as physical quantities in the memory or registers of the computing system. systems or other similar devices for storing, transmitting or displaying information.

[0079] Настоящее изобретение также относится к устройству для выполнения операций в данном документе. Это устройство может быть специально сконструировано для требуемых целей или может содержать компьютер общего назначения, выборочно активируемый или реконфигурируемый компьютерной программой, хранящейся в компьютере. Такая вычислительная программа может храниться на машиночитаемом носителе данных, таком как, помимо прочего, диск любого типа, включая дискеты, оптические диски, компакт-диски и магнитооптические диски, постоянные ЗУ (ПЗУ), оперативные ЗУ (ОЗУ), ЭППЗУ, ЭСППЗУ, магнитные или оптические платы или любой тип носителя, подходящий для хранения электронных команд, каждая из которых подключена к системной шине компьютера.[0079] The present invention also relates to a device for performing operations in this document. This device may be specially designed for the desired purpose or may include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored on a computer-readable storage medium such as, but not limited to, any type of disk, including floppy disks, optical disks, compact disks and magneto-optical disks, Read Only Memory (ROM), Random Access Memory (RAM), EEPROM, EEPROM, magnetic or optical boards or any type of media suitable for storing electronic instructions, each connected to the computer's system bus.

[0080] Алгоритмы и дисплеи, представленные в данном документе, по своей сути не связаны с каким-либо конкретным компьютером или другим устройством. Различные системы общего назначения могут использоваться с программами в соответствии с изложенными идеями, или может оказаться удобным сконструировать более специализированное устройство для выполнения требуемых методических шагов. Требуемая структура для множества этих систем будет отображаться, как указано в описании. Кроме того, варианты реализации настоящего изобретения не описаны посредством ссылки на какой-либо конкретный язык программирования. Будет принято во внимание, что для реализации идей настоящего изобретения, как описано в данном документе, можно использовать множество языков программирования.[0080] The algorithms and displays presented herein are not inherently associated with any particular computer or other device. Various general purpose systems may be used with programs in accordance with the ideas outlined, or it may be convenient to construct a more specialized device to carry out the required methodological steps. The required structure for many of these systems will be displayed as indicated in the description. In addition, embodiments of the present invention are not described by reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the present invention as described herein.

[0081] Варианты реализации настоящего изобретения могут быть предоставлены в виде компьютерного программного продукта или программного обеспечения, которое может включать в себя машиночитаемый носитель для хранения команд, использующихся для программирования компьютерной системы (или других электронных устройств) с целью выполнения процесса в соответствии с настоящим изобретением. Машиночитаемый носитель включает в себя любой механизм для хранения или передачи информации в форме, читаемой машиной (например, компьютером). Например, машиночитаемый (т.е. считываемый компьютером) носитель включает в себя машиночитаемый (например, компьютером) носитель данных (например, постоянное ЗУ (ПЗУ), оперативное ЗУ (ОЗУ), носители данных на магнитных дисках, оптические носители данных, устройства флэш-памяти и т.д.).[0081] Embodiments of the present invention may be provided in the form of a computer program product or software that may include a computer-readable medium for storing instructions used to program a computer system (or other electronic devices) to perform a process in accordance with the present invention. . A computer-readable medium includes any mechanism for storing or transmitting information in a form that is readable by a machine (eg, computer). For example, computer-readable (i.e., computer-readable) media includes computer-readable (i.e., computer-readable) storage media (e.g., read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash drives, -memory, etc.).

[0082] Слова «пример» или «примерный» используются здесь для обозначения примеров, случаев или иллюстраций. Любой вариант реализации или конструкция, описанные в настоящем документе как «пример», не должны обязательно рассматриваться как предпочтительные или преимущественные по сравнению с другими вариантами реализации или конструкциями. Скорее, использование слов «пример» или «примерный» предназначено для конкретного представления понятий. Используемый в этой заявке термин «или» предназначен для обозначения включающего «или», а не исключающего «или». То есть если иное не указано или не ясно из контекста, «X включает А или В» означает любую из естественных включающих перестановок. То есть если X включает А, X включает В или X включает и А, и В, то высказывание «X включает А или В» является истинным в любом из указанных выше случаев. Кроме того, неопределенные артикли «а» и «an», использованные в англоязычной версии этой заявки и прилагаемой формуле изобретения, должны, как правило, означать «один или более», если иное не указано или из контекста не следует, что это относится к форме единственного числа. Более того, использование терминов «применение», «один вариант применения», «вариант реализации» или «один вариант реализации» не предназначено для обозначения одного и того же применения или реализации, если они не описаны как таковые. Кроме того, используемые здесь термины «первый», «второй», «третий», «четвертый» и т.д. означают метки, позволяющие различать различные элементы, и необязательно могут иметь порядковое значение в соответствии с их числовым обозначением.[0082] The words "example" or "exemplary" are used here to refer to examples, cases, or illustrations. Any implementation or design described herein as an "example" should not necessarily be construed as preferred or advantageous over other implementations or designs. Rather, the use of the words "example" or "exemplary" is intended to represent specific concepts. As used in this application, the term "or" is intended to mean an inclusive "or" and not an exclusive "or". That is, unless otherwise indicated or clear from the context, "X includes A or B" means any of the natural inclusive permutations. That is, if X includes A, X includes B, or X includes both A and B, then the proposition "X includes A or B" is true in any of the above cases. In addition, the indefinite articles "a" and "an" used in the English version of this application and the appended claims should generally mean "one or more", unless otherwise indicated or the context does not imply that this refers to singular form. Moreover, the use of the terms "use", "single use", "implementation", or "single implementation" is not intended to refer to the same application or implementation unless they are described as such. In addition, as used herein, the terms "first", "second", "third", "fourth", etc. denote labels to distinguish between different elements, and may optionally have an ordinal value according to their numerical designation.

[0083] Поскольку многие изменения и модификации изобретения без сомнения будут очевидны для специалиста в данной области после прочтения вышеизложенного описания, следует понимать, что каждое конкретное показанное и описанное посредством иллюстраций применение не должно ни в коем случае считаться ограничением. Следовательно, отсылки к деталям различных применений не должны ограничивать объем запросов, которые сами по себе содержат только те особенности, которые рассматриваются как изобретение.[0083] Since many changes and modifications to the invention will no doubt be apparent to those skilled in the art upon reading the foregoing description, it should be understood that any particular use shown and described by means of the illustrations should not be considered limiting in any way. Therefore, references to the details of various applications should not limit the scope of requests, which in themselves contain only those features that are considered as the invention.

Claims (52)

1. Реализуемый компьютером способ захвата изображения мобильным устройством, включающий:1. A computer-implemented method for capturing an image by a mobile device, including: прием приложением для видеозахвата, запущенным на мобильном устройстве, видеопотока с камеры мобильного устройства;receiving by the video capture application running on the mobile device a video stream from the camera of the mobile device; идентификацию конкретного кадра видеопотока;identification of a particular frame of the video stream; посредством обработки кадра видеопотока, генерацию множества гипотез, определяющих границы изображения в конкретном кадре;by processing a frame of the video stream, generating a set of hypotheses that define the boundaries of the image in a particular frame; выбор обученной нейронной сетью конкретной гипотезы среди множества гипотез; selection of a specific hypothesis trained by the neural network among a plurality of hypotheses; создание изображения-кандидата путем применения конкретной гипотезы к конкретному кадру; generating a candidate image by applying a particular hypothesis to a particular frame; определение значения показателя качества изображения-кандидата; determining a quality score value of the candidate image; определение того, что значение показателя качества изображения-кандидата превышает одно или несколько значений показателя качества одного или нескольких ранее обработанных изображений, извлеченных из видеопотока, при этомdetermining that the value of the quality index of the candidate image exceeds one or more values of the quality index of one or more previously processed images extracted from the video stream, while если значение показателя качества выбранного кадра ниже, чем значение показателя качества ранее обработанного изображения, выбранный кадр отбраковывается и идентифицируется новый кадр;if the value of the quality index of the selected frame is lower than the value of the quality index of the previously processed image, the selected frame is rejected and a new frame is identified; автоматическую запись кадра с самым высоким показателем качества;automatic frame recording with the highest quality index; при этом приложение для видеозахвата является приложением, не требующим установки.however, the video capture application is an application that does not require installation. 2. Способ по п. 1, в котором дополнительно выполняется оптическое распознавание символов документа, содержащегося на изображении-кандидате. 2. The method of claim. 1, which additionally performs optical character recognition of the document contained in the candidate image. 3. Способ по п. 2, в котором оптическое распознавание символов документа выполняется на мобильном устройстве. 3. The method of claim 2, wherein OCR of the document is performed on the mobile device. 4. Способ по п. 1, дополнительно содержащий кадрирование изображения-кандидата. 4. The method of claim 1, further comprising cropping the candidate image. 5. Способ по п. 1, дополнительно содержащий отображение изображения-кандидата на экране мобильного устройства. 5. The method of claim 1, further comprising displaying the candidate image on the screen of the mobile device. 6. Способ по п. 1, в котором прием видеопотока выполняется в ответ на прием команды через элемент управления веб-браузера. 6. The method of claim 1, wherein the video stream is received in response to receiving a command via a web browser control. 7. Способ по п. 1, в котором прием видеопотока выполняется в ответ на прием команды через пользовательский интерфейс управления мобильного устройства.7. The method of claim. 1, in which the reception of the video stream is performed in response to the receipt of the command through the user control interface of the mobile device. 8. Система захвата изображения мобильным устройством, содержащая:8. A system for capturing an image by a mobile device, comprising: запоминающее устройство; иMemory device; and процессор, связанный с запоминающим устройством, выполненный с возможностью:a processor associated with the storage device, configured to: приема приложением для видеозахвата, запущенным на мобильном устройстве, видеопотока с камеры мобильного устройства;receiving, by the video capture application running on the mobile device, a video stream from the camera of the mobile device; идентификации конкретного кадра видеопотока;identification of a specific frame of the video stream; посредством обработки кадра видеопотока, генерации множества гипотез, определяющих границы изображения в конкретном кадре;by processing the frame of the video stream, generating a set of hypotheses that determine the boundaries of the image in a particular frame; выбора обученной нейронной сетью конкретной гипотезы среди множества гипотез; selecting a particular hypothesis by the trained neural network among the plurality of hypotheses; создания изображения-кандидата путем применения конкретной гипотезы к конкретному кадру; generating a candidate image by applying a particular hypothesis to a particular frame; определения значения показателя качества изображения-кандидата; determining a quality score value of the candidate image; определения того, что значение показателя качества изображения-кандидата превышает одно или несколько значений показателя качества одного или нескольких ранее обработанных изображений, извлеченных из видеопотока, при этомdetermining that the value of the quality index of the candidate image exceeds one or more values of the quality index of one or more previously processed images extracted from the video stream, while если значение показателя качества выбранного кадра ниже, чем значение показателя качества ранее обработанного изображения, выбранный кадр отбраковывается и идентифицируется новый кадр;if the value of the quality index of the selected frame is lower than the value of the quality index of the previously processed image, the selected frame is rejected and a new frame is identified; автоматической записи кадра с самым высоким показателем качества;automatic frame recording with the highest quality index; при этом приложение для видеозахвата является приложением, не требующим установки. however, the video capture application is an application that does not require installation. 9. Система по п. 8, в которой дополнительно выполняется оптическое распознавание символов документа, содержащегося на изображении-кандидате. 9. The system of claim. 8, which additionally performs optical character recognition of the document contained in the candidate image. 10. Система по п. 9, в которой оптическое распознавание символов документа выполняется на мобильном устройстве. 10. The system of claim. 9, wherein the optical character recognition of the document is performed on a mobile device. 11. Система по п. 8, дополнительно содержащая кадрирование изображения-кандидата. 11. The system of claim 8, further comprising cropping the candidate image. 12. Система по п. 8, дополнительно содержащая отображение изображения-кандидата на экране мобильного устройства. 12. The system of claim 8, further comprising displaying the candidate image on the screen of the mobile device. 13. Система по п. 8, в которой прием видеопотока выполняется в ответ на прием команды через элемент управления веб-браузера. 13. The system of claim 8, wherein the video stream is received in response to receiving a command via a web browser control. 14. Система по п. 8, где прием видеопотока выполняется в ответ на прием команды через пользовательский интерфейс управления мобильного устройства.14. The system of claim. 8, where the reception of the video stream is performed in response to receiving a command through the user control interface of the mobile device. 15. Энергонезависимый машиночитаемый носитель данных, включающий исполняемые инструкции, которые при выполнении компьютерной системой побуждают компьютерную систему осуществлять:15. A non-volatile computer-readable storage medium including executable instructions that, when executed by a computer system, cause the computer system to: прием приложением для видеозахвата, запущенным на мобильном устройстве, видеопотока с камеры мобильного устройства;receiving by the video capture application running on the mobile device a video stream from the camera of the mobile device; идентификацию конкретного кадра видеопотока;identification of a particular frame of the video stream; посредством обработки кадра видеопотока, генерацию множества гипотез, определяющих границы изображения в конкретном кадре;by processing a frame of the video stream, generating a set of hypotheses that define the boundaries of the image in a particular frame; выбор обученной нейронной сетью конкретной гипотезы среди множества гипотез; selection of a specific hypothesis trained by the neural network among a plurality of hypotheses; создание изображения-кандидата путем применения конкретной гипотезы к конкретному кадру; generating a candidate image by applying a particular hypothesis to a particular frame; определение значения показателя качества изображения-кандидата; determining a quality score value of the candidate image; определение того, что значение показателя качества изображения-кандидата превышает одно или несколько значений показателя качества одного или нескольких ранее обработанных изображений, извлеченных из видеопотока, при этомdetermining that the value of the quality index of the candidate image exceeds one or more values of the quality index of one or more previously processed images extracted from the video stream, while если значение показателя качества выбранного кадра ниже, чем значение показателя качества ранее обработанного изображения, выбранный кадр отбраковывается и идентифицируется новый кадр;if the value of the quality index of the selected frame is lower than the value of the quality index of the previously processed image, the selected frame is rejected and a new frame is identified; автоматическую запись кадра с самым высоким показателем качества;automatic frame recording with the highest quality index; при этом приложение для видеозахвата является приложением, не требующим установки.however, the video capture application is an application that does not require installation. 16. Носитель данных по п. 15, дополнительно включающий выполнение оптического распознавания символов документа, содержащегося на изображении-кандидате. 16. The storage medium of claim 15, further comprising performing OCR on the document contained in the candidate image. 17. Носитель данных по п. 16, в котором оптическое распознавание символов документа выполняется на мобильном устройстве. 17. The storage medium of claim 16, wherein the OCR of the document is performed on the mobile device. 18. Носитель данных по п. 15, дополнительно содержащий кадрирование изображения-кандидата. 18. The storage medium of claim 15, further comprising cropping the candidate image. 19. Носитель данных по п. 15, дополнительно содержащий отображение изображения кандидата на экране мобильного устройства. 19. The storage medium of claim 15, further comprising displaying an image of the candidate on the screen of the mobile device. 20. Носитель данных по п. 15, в котором прием видеопотока выполняется в ответ на прием команды через элемент управления веб-браузера. 20. The storage medium of claim 15, wherein the video stream is received in response to receiving a command via a web browser control.
RU2020142701A 2020-12-23 2020-12-23 Traceless image capture, using mobile device RU2787136C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/136,148 US11380117B1 (en) 2020-12-23 2020-12-29 Zero-footprint image capture by mobile device
US17/750,898 US11948385B2 (en) 2020-12-23 2022-05-23 Zero-footprint image capture by mobile device

Publications (2)

Publication Number Publication Date
RU2020142701A RU2020142701A (en) 2022-06-23
RU2787136C2 true RU2787136C2 (en) 2022-12-29

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013181637A2 (en) * 2012-06-01 2013-12-05 Brain Corporation Neural network learning and collaboration apparatus and methods
RU2541353C2 (en) * 2013-06-19 2015-02-10 Общество с ограниченной ответственностью "Аби Девелопмент" Automatic capture of document with given proportions
US20160125613A1 (en) * 2014-10-30 2016-05-05 Kofax, Inc. Mobile document detection and orientation based on reference object characteristics
US9514389B1 (en) * 2013-11-01 2016-12-06 Google Inc. Training a neural network to detect objects in images
KR101709085B1 (en) * 2015-12-16 2017-02-23 서강대학교산학협력단 Shot Boundary Detection method and apparatus using Convolutional Neural Networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013181637A2 (en) * 2012-06-01 2013-12-05 Brain Corporation Neural network learning and collaboration apparatus and methods
RU2541353C2 (en) * 2013-06-19 2015-02-10 Общество с ограниченной ответственностью "Аби Девелопмент" Automatic capture of document with given proportions
US9514389B1 (en) * 2013-11-01 2016-12-06 Google Inc. Training a neural network to detect objects in images
US20160125613A1 (en) * 2014-10-30 2016-05-05 Kofax, Inc. Mobile document detection and orientation based on reference object characteristics
KR101709085B1 (en) * 2015-12-16 2017-02-23 서강대학교산학협력단 Shot Boundary Detection method and apparatus using Convolutional Neural Networks

Similar Documents

Publication Publication Date Title
US11551338B2 (en) Intelligent mixing and replacing of persons in group portraits
JP7407856B2 (en) Efficient image analysis using environmental sensor data
CN110533097B (en) Image definition recognition method and device, electronic equipment and storage medium
WO2019233297A1 (en) Data set construction method, mobile terminal and readable storage medium
JP6694829B2 (en) Rule-based video importance analysis
TWI773189B (en) Method of detecting object based on artificial intelligence, device, equipment and computer-readable storage medium
US9153031B2 (en) Modifying video regions using mobile device input
CN111738243B (en) Method, device and equipment for selecting face image and storage medium
US8861884B1 (en) Training classifiers for deblurring images
US9070044B2 (en) Image adjustment
US11948385B2 (en) Zero-footprint image capture by mobile device
US20160155241A1 (en) Target Detection Method and Apparatus Based On Online Training
WO2014074959A1 (en) Real-time face detection using pixel pairs
US11636312B2 (en) Systems and methods for rapid development of object detector models
US11468571B2 (en) Apparatus and method for generating image
CN110781874A (en) Method for converting electronic menu into menu of cooking machine and menu making terminal
CN113784171A (en) Video data processing method, device, computer system and readable storage medium
CN110516598B (en) Method and apparatus for generating image
Saleh et al. Adaptive uncertainty distribution in deep learning for unsupervised underwater image enhancement
CN116596928B (en) Quick peanut oil impurity detection method based on image characteristics
RU2787136C2 (en) Traceless image capture, using mobile device
US20230066331A1 (en) Method and system for automatically capturing and processing an image of a user
CN116129417A (en) Digital instrument reading detection method based on low-quality image
US11763564B1 (en) Techniques for generating optimized video segments utilizing a visual search
US11087121B2 (en) High accuracy and volume facial recognition on mobile platforms