RU2787136C2 - Traceless image capture, using mobile device - Google Patents
Traceless image capture, using mobile device Download PDFInfo
- 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
Links
- 230000001537 neural Effects 0.000 claims abstract description 42
- 238000009434 installation Methods 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims description 15
- 230000003287 optical Effects 0.000 claims description 10
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 239000010410 layer Substances 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 10
- 230000000875 corresponding Effects 0.000 description 6
- 210000002569 neurons Anatomy 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000007906 compression Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000003068 static Effects 0.000 description 2
- 230000001360 synchronised Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004313 glare Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 239000002365 multiple layer Substances 0.000 description 1
- 230000000737 periodic Effects 0.000 description 1
- 230000002085 persistent Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000644 propagated Effects 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000000306 recurrent Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000000087 stabilizing Effects 0.000 description 1
- 229920000638 styrene acrylonitrile Polymers 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Abstract
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
[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
[0024] На шаге 201 пользователь мобильного устройства 102 открывает вебстраницу в браузере мобильного устройства. На веб-странице содержится элемент управления (например, визуальный элемент управления или голосовое управление), который позволяет пользователю запускать приложение, имеющее возможности управления камерой. В соответствии с настоящим изобретением это приложение не требует установки. Соответственно, когда веб-страница в конечном итоге закрывается пользователем или иным образом завершается, приложение автоматически удаляется с мобильного устройства 102.[0024] In
[0025] На шаге 202 пользователь активирует элемент управления на вебстранице. В ответ на активацию элемента управления камера мобильного устройства 102 активируется 203 приложением, не требующим установки. Пользователь направляет объектив камеры мобильного устройства на объект, который нужно захватить, и, когда камера захватывает последовательность видеокадров, приложение, не требующее установки, анализирует видеопоток. В некоторых вариантах реализации, когда камера мобильного устройства 102 активна, приложение, не требующее установки, автоматически начинает анализ видеопотока, когда изображение документа появляется в объективе камеры.[0025] In
[0026] На шаге 204 система настоящего изобретения идентифицирует конкретный кадр видеопотока (например, последний захваченный кадр на текущий момент времени). В некоторых вариантах реализации настоящего изобретения система преобразует идентифицированный кадр в видео HTML и отображает его пользователю в реальном времени с помощью экрана 104.[0026] At
[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
[0032] На шаге 206 конкретный кадр анализируется для идентификации границы изображения в кадре. Конкретные этапы процесса 206 идентификации границы более подробно описаны ниже со ссылкой на ФИГ. 3.[0032] At
[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
[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
[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
[0045] На шаге 305 система может дополнительно оценить оставшиеся гипотезы с помощью нейронной сети. В некоторых вариантах реализации настоящего изобретения система может дополнительно оценивать углы прямоугольников с помощью нейронной сети.[0045] In
[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,
[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
[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
[0054] На шаге 208 система может сравнить метрику качества выбранного кадра (как определено на шаге 207) с ранее вычисленной метрикой качества предыдущего кадра. Если показатель качества выбранного кадра хуже, чем показатель качества предыдущего кадра, выбранный кадр отбраковывается и идентифицируется новый кадр 204.[0054] In
[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
[0057] На шаге 210 система выполняет постобработку выбранного кадра. Постобработка может включать в себя оптическое распознавание символов изображения в выбранном кадре, машинный перевод текста в выбранном кадре или другие операции обработки документа или обработки изображения.[0057] In
[0058] На ФИГ. 5 представлена блок-схема примерной компьютерной системы 500, в которой могут применяться варианты реализации изобретения. В соответствии с изображением система 500 может включать в себя вычислительное устройство 510, хранилище 520 и сервер 550, подключенный к сети 530. Сеть 530 может быть общедоступной сетью (например, Интернет), частной сетью (например, локальной вычислительной сетью (ЛВС) или глобальной вычислительной сетью (ГВС)) или их комбинацией.[0058] FIG. 5 is a block diagram of an
[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
[0060] Кадр 540 может быть принят компьютерным устройством 510. Кадр 540 может быть получен любым подходящим способом. Кроме того, в случаях, когда компьютерное устройство 510 является сервером, клиентское устройство, подключенное к серверу через сеть 530, может загружать кадр 540 на сервер. В случаях, когда компьютерное устройство 510 является клиентским устройством, подключенным к серверу через сеть 530, клиентское устройство может загружать кадр 540 с сервера или из хранилища 520.[0060]
[0061] Кадр 540 может использоваться для обучения набора моделей машинного обучения или может быть новым кадром, для которого желательно определение показателя качества.[0061]
[0062] В одном варианте реализации компьютерное устройство 510 может включать в себя механизм 511 определения показателей качества. Механизм 511 определения метрики качества может включать в себя инструкции, хранящиеся на одном или нескольких материальных, машиночитаемых носителях данных компьютерного устройства 510 и выполняемые одним или несколькими устройствами обработки компьютерного устройства 510.[0062] In one implementation, the computing device 510 may include a
[0063] В одном варианте реализации механизм 511 определения показателей качества может использовать набор обученных моделей 314 машинного обучения для определения одного или нескольких показателей качества кадра 540. Библиотека кадров может находиться в хранилище 520. Модели 514 машинного обучения обучаются и используются для определения показателей качества.[0063] In one implementation, the
[0064] Механизм 511 определения показателей качества может являться клиентским приложением или представлять собой комбинацию клиентского и серверного компонентов. В некоторых вариантах реализации механизм 511 определения показателей качества может полностью выполняться на клиентском компьютерном устройстве, таком как серверный компьютер, настольный компьютер, планшетный компьютер, смартфон, портативный компьютер, фотоаппарат, видеокамера и т.п. В качестве альтернативы клиентский компонент механизма 511 определения показателей качества, выполняемый на клиентском компьютерном устройстве, может принимать кадр и передавать его на серверный компонент механизма 511 определения показателей качества, выполняемого на серверном устройстве, которое выполняет определение показателей качества. Серверный компонент механизма 511 определения показателей качества может затем возвращать определенные показатели качества клиентскому компоненту механизма 511 определения показателей качества, выполненному на клиентском компьютерном устройстве, для хранения. В качестве альтернативы серверный компонент механизма 511 определения показателей качества может предоставить результат идентификации другому приложению. В других вариантах реализации механизм 511 определения показателей качества может выполняться на серверном устройстве как приложение с доступом в Интернет, доступное через интерфейс браузера. Устройство сервера может представлять собой одну или несколько компьютерных систем, таких как одна или несколько серверных машин, рабочих станций, системных блоков, персональных компьютеров (ПК) и так далее.[0064] The
[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
[0066] Модели 514 машинного обучения могут быть обучены определять показатели качества для кадра 340. Обучающие данные могут находиться в хранилище 520 и могут включать один или более наборов входных обучающих данных 522 и один или более наборов выходных обучающих данных 524. Обучающие данные могут также включать данные карт 526, которые связывают входные обучающие данные 522 с выходными обучающими данными 524. В процессе обучения механизм обучения 551 может находить закономерности в обучающих данных 526, которые могут быть использованы для связки входных обучающих данных с выходными обучающими данными. Закономерности могут быть впоследствии использованы моделью (моделями) машинного обучения 514 для будущих прогнозов. Например, после приема входных данных неизвестного кадра обученная(-ые) модель(-и) 514 машинного обучения может (могут) прогнозировать показатели качества для этого кадра и предоставлять такие показатели качества в виде выходных данных.[0066]
[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
[0069] Пример компьютерной системы 600 включает устройство обработки 602, основную память 604 (то есть память «только для чтения» (ROM), флэш-память, динамическую память случайного доступа (DRAM), такую как синхронная DRAM (SDRAM)), статическую память 606 (то есть флэш-память, статическую память случайного доступа (SRAM)) и устройство хранения данных 616, которое обменивается данными друг с другом по шине 608.[0069] An
[0070] Устройство обработки 602 представляет одно или несколько устройств обработки общего назначения, таких как микропроцессор, центральный процессор и т.п. В частности, устройство обработки 602 может быть микропроцессором с полным набором команд (CISC), микропроцессором с сокращенным набором команд (RISC), микропроцессором со сверхдлинным командным словом (VLIW) или процессором, реализующим другие наборы команд, или процессорами, реализующими комбинацию наборов команд. Устройство обработки 602 также может быть представлено одним или более устройствами обработки специального назначения, такими как специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), цифровой сигнальный процессор (DSP), сетевой процессор и т.п. Устройство обработки 602 создано с возможностью выполнения инструкций 626 для реализации механизма 511 определения показателей качества и/или механизма 551 обучения по ФИГ. 5 и выполнения операций и этапов, описанных в настоящем документе (например, способ 200 по ФИГ. 2).[0070]
[0071] Компьютерная система 600 далее может включать устройство сетевого интерфейса 622. Компьютерная система 600 также может включать устройство визуального отображения 610 (например, жидкокристаллический дисплей (ЖКД) или электронно-лучевую трубку (ЭЛТ)), устройство буквенно-цифрового ввода 612 (например, клавиатуру), устройство управления курсором 614 (например, мышь) и устройство генерации сигнала 620 (например, колонку). В одном из показанных примеров устройство визуального отображения 610, устройство буквенно-цифрового ввода 612 и устройство управления курсором 614 могут быть объединены в один компонент или устройство (например, сенсорный ЖК-экран).[0071] The
[0072] Устройства хранения данных 616 включает машиночитаемый носитель данных 624, на котором хранятся инструкции 626, описывающие одну или более описанных здесь методологий или функций. Инструкции 626 могут также относиться полностью или по меньшей мере частично к основной памяти 604 и/или к устройству обработки 602 в момент их выполнения компьютерной системой 600, основной памятью 604 и устройством обработки 602, которые также относятся к машиночитаемым носителям. В некоторых вариантах применения инструкции 626 могут дополнительно передаваться или приниматься по сети через сетевое интерфейсное устройство 622.[0072]
[0073] В то время как машиночитаемый носитель данных 624 показан в иллюстративных примерах как единственный носитель, термин «машиночитаемый носитель данных» следует понимать как включающий один носитель или несколько носителей (например, централизованную или распределенную базу данных и/или связанные кеши и серверы), в которых хранятся один или несколько наборов команд. Термин «машиночитаемый носитель данных» также должен включать любой носитель, который способен хранить, кодировать или переносить набор команд для выполнения машиной и который заставляет машину выполнять одну или несколько методологий настоящего изобретения. Термин «машиночитаемый носитель данных» следует соответственно понимать как включающий твердотельные запоминающие устройства, оптические носители и магнитные носители.[0073] While the computer-
[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)
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)
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)
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 |