PT107559B - COMPUTATIONAL VISION SYSTEM OF MODULAR ARCHITECTURE AND RESPECTIVE APPLICATION PROGRAMMING INTERFACE METHOD - Google Patents

COMPUTATIONAL VISION SYSTEM OF MODULAR ARCHITECTURE AND RESPECTIVE APPLICATION PROGRAMMING INTERFACE METHOD Download PDF

Info

Publication number
PT107559B
PT107559B PT10755914A PT10755914A PT107559B PT 107559 B PT107559 B PT 107559B PT 10755914 A PT10755914 A PT 10755914A PT 10755914 A PT10755914 A PT 10755914A PT 107559 B PT107559 B PT 107559B
Authority
PT
Portugal
Prior art keywords
computer vision
modules
server
module
computer
Prior art date
Application number
PT10755914A
Other languages
Portuguese (pt)
Other versions
PT107559A (en
Inventor
Duarte Filipe Oliveira Duque
Original Assignee
Exva Experts In Video Analysis Lda
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Exva Experts In Video Analysis Lda filed Critical Exva Experts In Video Analysis Lda
Priority to PT10755914A priority Critical patent/PT107559B/en
Priority to BR102014009660A priority patent/BR102014009660A2/en
Publication of PT107559A publication Critical patent/PT107559A/en
Publication of PT107559B publication Critical patent/PT107559B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras

Description

DESCRIÇÃODESCRIPTION

Sistema de visão computacional de arquitetura modular e respetivo método de interface de programação de aplicaçõesComputer vision system with modular architecture and respective application programming interface method

Dominio técnico da invençãoTechnical domain of the invention

A presente invenção refere-se a uma arquitetura modular e escalável e à respetiva interface de programação de aplicações (do inglês Application Programming InterfaceAPI), que cria uma camada de abstração para unificar o acesso aos diferentes sensores e/ou algoritmos utilizados em soluções baseadas em visão computacional.The present invention refers to a modular and scalable architecture and the respective application programming interface (from English Application Programming InterfaceAPI), which creates an abstraction layer to unify access to the different sensors and / or algorithms used in solutions based on computer vision.

Antecedentes da InvençãoBackground of the Invention

A necessidade de medir e caracterizar a população de determinado local existe e tem crescido cada vez mais nos dias correntes. A informação que se pode recolher de uma determinada audiência é fulcral para os negócios que dependem do conhecimento que as organizações consigam obter dos seus potenciais clientes.The need to measure and characterize the population of a given location exists and has grown more and more these days. The information that can be collected from a specific audience is central to businesses that depend on the knowledge that organizations are able to obtain from their potential customers.

Na maioria das vezes a medição e caracterização das audiências e do perfil dos potenciais consumidores é efetuada por pessoas, na forma de sondagens e estudos de mercado, o que levanta dois problemas fundamentais: a introdução do erro humano e os elevados custos de recursos humanos. Vários esforços têm sido efetuados para resolver estes problemas, tendo especial destaque a recente tendência em automatizar o processo de aquisição dos dados demográficos, utilizando soluções de visão computacional.Most of the time, the measurement and characterization of audiences and the profile of potential consumers is carried out by people, in the form of surveys and market studies, which raises two fundamental problems: the introduction of human error and the high costs of human resources. Several efforts have been made to solve these problems, with special emphasis on the recent trend to automate the process of acquiring demographic data, using computer vision solutions.

Existem já vários documentos de patentes que apresentam novas soluções.There are already several patent documents that present new solutions.

documento US 7,987,111 descreve um sistema para a caracterização demográfica de um espaço comercial com recurso a várias tecnologias de visão computacional. Engloba uma enorme quantidade de algoritmos para extrair múltiplas características da audiência mas não especifica como é que os sensores e os algoritmos transferem dados entre si, nem a arquitetura de software subjacente. Também não prevê situações em que é necessária uma dada configuração para mutar ou escalar, para se adaptar a novas necessidades do negócio.US 7,987,111 describes a system for the demographic characterization of a commercial space using various computer vision technologies. It encompasses a huge number of algorithms to extract multiple characteristics from the audience but it does not specify how the sensors and algorithms transfer data between themselves, nor the underlying software architecture. It also does not provide for situations in which a given configuration is required to mutate or climb, to adapt to new business needs.

documento US 7,921,036 descreve um sistema para exibir conteúdos num ecrã baseado no reconhecimento automático de caracteristicas demográficas predefinidas, utilizando uma sequência de imagens de uma transmissão de vídeo. Os conteúdos são selecionados de um conjunto previamente definido e de acordo com os atributos extraídos. Este sistema consiste em duas componentes: hardware, que captura as imagens, e software, que processa e extrai características da audiência. Não é, no entanto, especificada a forma como as duas componentes comunicam entre si.US 7,921,036 describes a system for displaying content on a screen based on automatic recognition of predefined demographic characteristics, using a sequence of images from a video stream. The contents are selected from a previously defined set and according to the extracted attributes. This system consists of two components: hardware, which captures images, and software, which processes and extracts characteristics from the audience. However, the way in which the two components communicate with each other is not specified.

O documento US 8,165,386 descreve um sistema para medição de audiências utilizando também transmissões de vídeo. Este sistema utiliza uma arquitetura de hardware modular e dinâmica, mas num espaço limitado, uma vez que se trata de um sistema embebido. A modularidade é conseguida ao nível dos componentes que compõem a unidade computacional.US 8,165,386 describes a system for measuring audiences also using video streams. This system uses a modular and dynamic hardware architecture, but in a limited space, since it is an embedded system. Modularity is achieved at the level of the components that make up the computational unit.

O documento US 2011/0239245 descreve métodos e arquiteturas para medir audiências. O sistema divulgado, apesar de ser modular, apenas garante a escalabilidade e tem o foco principal na forma como são agregados os dados dos vários dispositivos.US 2011/0239245 describes methods and architectures for measuring audiences. The disclosed system, despite being modular, only guarantees scalability and has the main focus on the way the data of the various devices are aggregated.

Os documentos US 2008/0294475 e WO 2008/134562 descrevem um método para determinar o fluxo de consumidores num espaço comercial e relacioná-lo com a atividade comercial desempenhada nesse mesmo espaço. Não tem por objetivo especificar a solução ao nível do hardware e/ou software, mas sim ao nível conceptual. O documento não especifica ainda os métodos para a monitorização do fluxo dos consumidores, podendo estes ser pessoas instruídas para efetuar essa medição, ou serem utilizados métodos completamente automáticos.US 2008/0294475 and WO 2008/134562 describe a method for determining the flow of consumers in a commercial space and relating it to the commercial activity performed in that same space. It does not aim to specify the solution at the hardware and / or software level, but at the conceptual level. The document does not yet specify the methods for monitoring the flow of consumers, who may be instructed to carry out this measurement, or be able to use fully automatic methods.

Por último, o documento USFinally, the US document

2012/0072939 descreve um sistema para medir a reação de uma audiência a um conteúdo multimédia.2012/0072939 describes a system for measuring an audience's reaction to multimedia content.

O documento centra-se exclusivamente na medição contínua das emoções do recetor do conteúdo e suas alterações, durante o tempo de exposição ao mesmo.The document focuses exclusively on the continuous measurement of the emotions of the recipient of the content and its changes, during the time of exposure to it.

Todas as invenções descritas nos documentos acima enumerados procuram, de alguma forma, automatizar o processo de aquisição de dados demográficos. No entanto, a sua realização envolve bastantes desafios, do ponto de vista do desenvolvimento das soluções. Primeiro, os sensores utilizados são muito diversificados quer do ponto de vista do seu tipo, isto é câmaras Web, câmaras analógicas, digitais ou 3D, quer dos seus fabricantes e respetivo software controlador. Segundo, os algoritmos são também diversos e na maior parte das vezes não utilizam normas ou protocolos comuns na entrada e saída dos seus dados. Por fim, dada a complexidade destes algoritmos, por vezes é necessário distribuir o processamento e separar a aquisição das imagens do seu processamento e apresentação. A presente invenção tem por objetivo ultrapassar as limitações do estado da técnica acima descrito.All the inventions described in the documents listed above seek, in some way, to automate the process of acquiring demographic data. However, its realization involves many challenges, from the point of view of developing solutions. First, the sensors used are very diverse, either from the point of view of their type, that is, Web cameras, analog, digital or 3D cameras, or from their manufacturers and their respective control software. Second, the algorithms are also diverse and for the most part do not use common standards or protocols for entering and leaving your data. Finally, given the complexity of these algorithms, it is sometimes necessary to distribute the processing and separate the acquisition of the images from their processing and presentation. The present invention aims to overcome the limitations of the state of the art described above.

Sumário da invençãoSummary of the invention

A presente invenção consiste numa arquitetura modular e escalável e na API que a implementa, que cria uma camada de abstração para unificar o acesso aos diferentes periféricos e/ou algoritmos utilizados em soluções baseadas em visão computacional, independentemente do servidor onde os periféricos e/ou algoritmos estão ligados e/ou em execução e da plataforma onde as soluções são desenvolvidas.The present invention consists of a modular and scalable architecture and the API that implements it, which creates an abstraction layer to unify access to the different peripherals and / or algorithms used in solutions based on computer vision, regardless of the server where the peripherals and / or algorithms are linked and / or running and the platform where the solutions are developed.

As soluções baseam-se numa arquitetura de hardware que compreende apenas um servidor principal, periféricos de visão computacional e dispositivo de apresentação ou uma rede de servidores ligados através de um comutador de rede, switch, cada um com os seus periféricos e dispositivos de apresentação.The solutions are based on a hardware architecture that comprises only a main server, computer vision peripherals and presentation device or a network of servers connected through a network switch, switch, each with its peripherals and presentation devices.

A nível do software, a presente invenção define a arquitetura que consiste num conjunto de módulos configuráveis que comunicam entre si, utilizando mesmo protocolo para debitar, debitar consumir ou apenas consumir dados dos periféricos e/ou algoritmos de visão computacional.At the software level, the present invention defines the architecture that consists of a set of configurable modules that communicate with each other, using the same protocol to debit, debit consume or just consume data from peripherals and / or computer vision algorithms.

Estes módulos podem ser configurados e agrupados de maneira metadados requisitados a produzir exatamente os dados e para o desenvolvimento da solução.These modules can be configured and grouped in the metadata required to produce exactly the data and for the development of the solution.

Em qualquer arquitetura de hardware adotada, há sempre um servidor, denominado servidor principal, que detém uma tabela de configurações dos módulos e das ligações entre os módulos de todos os servidores que compõem a solução.In any adopted hardware architecture, there is always a server, called the main server, which holds a table of module configurations and the connections between the modules of all servers that make up the solution.

A arquitetura descrita nesta invenção inclui um módulo de entrada, denominado gerador de eventos, que se liga a todos os módulos em execução num determinado ambiente e correlaciona e armazena os dados de audiências para serem posteriormente processados ou analisados estatisticamente.The architecture described in this invention includes an input module, called an event generator, which connects to all modules running in a given environment and correlates and stores the audience data for further processing or statistical analysis.

Descreve-se um sistema de visão computacional com uma arquitetura modular, compreendendo um servidor de computador principal e um conjunto de módulos de visão computacional que publicam as suas capacidades de enviar e/ou de receber dados para e/ou selecionados de um conjunto de algoritmos de visão em hardware e em computador, caracterizado por o conjunto das definições de algoritmos de visão em hardware e em computador e as referidas ligações de módulos entre os módulos serem armazenadas no referido servidor principal, e em que uma ligação de módulos entre qualquer um dos dois módulos referidos, um módulo de origem e um módulo de destino, é estabelecida peer-to-peer, assim que as definições do módulo de destino são obtidas pelo módulo de origem a partir do servidor principal.A computer vision system with a modular architecture is described, comprising a main computer server and a set of computer vision modules that publish their ability to send and / or receive data to and / or selected from a set of algorithms hardware and computer vision, characterized in that the set of hardware and computer vision algorithm definitions and said module connections between modules are stored on said main server, and in which a module connection between any of the two referred modules, a source module and a target module, are established peer-to-peer, as soon as the target module definitions are obtained by the source module from the main server.

Numa realização, o conjunto de módulos de visão computacional é executado no mesmo servidor físico, utilizando a memória partilhada do servidor físico para as referidas ligações de módulos.In one embodiment, the set of computer vision modules runs on the same physical server, using the shared memory of the physical server for said module connections.

Numa realização, em que o conjunto de módulos de visão computacional é executado em diferentes servidores físicos, utilizando sockets de rede para as referidas ligações de módulos.In one embodiment, in which the set of computer vision modules is executed on different physical servers, using network sockets for the referred module connections.

Uma realização compreende diferentes servidores de computador, em que qualquer um dos diferentes servidores de computador referidos possui a capacidade de assumir automaticamente, de uma forma controlada, o papel de servidor principal, no caso de o servidor principal deixar de responder.An embodiment comprises different computer servers, where any one of the different computer servers referred to has the ability to automatically assume, in a controlled manner, the role of primary server, in the event that the primary server stops responding.

Numa realização, os diferentes servidores referidos estão referenciados numa lista ordenada armazenada no referido servidor principal, estando a referida lista ordenada de acordo com a ordem em que os referidos servidores vão assumir o papel de servidor principal, no caso de o servidor principal deixar de responder.In one embodiment, the different referred servers are referenced in an ordered list stored on said main server, said list being ordered according to the order in which said servers will assume the role of main server, in case the main server stops responding .

Numa realização, o referido servidor principal é configurado de tal modo que, ao receber um pedido de configuração de qualquer outro servidor dos diferentes servidores referidos, armazena o referido outro servidor na segunda posição na lista ordenada referida, tornando o referido outro servidor no próximo candidato para o papel de servidor principal.In one embodiment, said main server is configured in such a way that, upon receiving a configuration request from any other server of the different referred servers, it stores said other server in the second position in the referred ordered list, making said other server the next candidate for the role of primary server.

Numa realização, o servidor principal é o mesmo servidor de computador ou um dos servidores de computador, onde alguns ou todos os módulos baseados em visão computacional são executados.In one embodiment, the main server is the same computer server or one of the computer servers, where some or all modules based on computer vision are executed.

Uma realização compreende uma interface de programação de aplicações, API, para instanciar os módulos de visão computacional referidos selecionados do referido conjunto de definições de algoritmos de visão em hardware e em computador; para ligar e desligar os referidos módulos de visão computacional instanciados; e para terminar os referidos módulos de visão computacional instanciados.One embodiment comprises an application programming interface, API, to instantiate the aforementioned computer vision modules selected from said set of vision algorithms in hardware and computer; to turn on and off said instantiated computer vision modules; and to finish the instantiated computer vision modules.

Numa realização, em que cada um dos referidos módulos de visão computacional é selecionado a partir de módulos de entrada, módulos de saída ou módulos de entrada-saída.In an embodiment, in which each of these computer vision modules is selected from input modules, output modules or input-output modules.

Numa realização, um módulo de entrada compreende uma entrada ou entradas de visão computacional; em que um módulo de saída compreende uma saída ou saídas de visão computacional; em que um módulo de entrada-saída compreende uma entrada ou entradas de visão computacional e compreende também saída ou saídas de visão computacional.In one embodiment, an input module comprises a computer vision input or inputs; wherein an output module comprises a computer vision output or outputs; wherein an input-output module comprises a computer vision input or inputs and also comprises computer vision output or outputs.

Numa realização In a realization , cada each entrada input referida e referred and cada each saída output referida é referred is individualmente individually endereçável addressable por per um one identificador. identifier. Numa realização In a realization , cada each entrada input referida e referred and cada each saída output referida é referred is individualmente individually endereçável addressable por per um one identificador. identifier.

Descreve-se também um módulo de visão computacional para utilização num sistema de visão computacional com uma arquitetura modular, compreendendo o referido sistema um servidor de computador principal e um conjunto de módulos de visão computacional referido, em que os referidos módulos publicam as suas capacidades de enviar e/ou de receber dados para e/ou selecionados de um conjunto de algoritmos de visão em hardware e em computador, caracterizado por o conjunto das definições de algoritmos de visão em hardware e em computador e as referidas ligações de módulos entre os módulos serem armazenadas no referido servidor principal, e em que uma ligação de módulos entre qualquer um dos dois módulos referidos, um módulo de origem e um módulo de destino, é estabelecida peer-to-peer, assim que as definições do módulo de destino são obtidas pelo módulo de origem a partir do servidor principal.A computer vision module for use in a computer vision system with a modular architecture is also described, the system comprising a main computer server and a set of computer vision modules, in which the said modules publish their capabilities send and / or receive data to and / or selected from a set of hardware and computer vision algorithms, characterized in that the set of hardware and computer vision algorithms definitions and said module connections between modules are stored on said main server, and in which a module connection between any of the two referred modules, a source module and a destination module, is established peer-to-peer, once the definitions of the destination module are obtained by the source module from the main server.

Descreve-se ainda um método de operação de um sistema de visão computacional com uma arquitetura modular, compreendendo o referido sistema um servidor de computador principal e um conjunto de módulos de visão computacional que publicam as suas capacidades de enviar e/ou de receber dados para e/ou selecionados de um conjunto de algoritmos de visão em hardware e em computador, caracterizado por o referido método compreender: armazenamento do conjunto das definições de algoritmos de visão em hardware e em computador e as referidas ligações de módulos entre os módulos no referido servidor principal;A method of operating a computer vision system with a modular architecture is also described, the system comprising a main computer server and a set of computer vision modules that publish its ability to send and / or receive data to and / or selected from a set of hardware and computer vision algorithms, characterized in that said method comprises: storage of the set of hardware and computer vision algorithm definitions and the said module connections between the modules on said server main;

e estabelecimento peer-to-peer de uma ligação de módulos entre qualquer um dos dois módulos referidos, um módulo de origem e um módulo de destino, assim que as definições do módulo de destino são obtidas pelo módulo de origem a partir do servidor principal; utilização, para os módulos de visão computacional que são executados no mesmo servidor físico, da memória partilhada do servidor físico para as referidas ligações de módulos; utilização, para os módulos de visão computacional que são executados em diferentes servidores físicos, de sockets de rede para as referidas ligações de módulos; estabelecimento da ligação entre qualquer um dos dois módulos referidos, ao automaticamente comutar entre memória partilhada e sockets, dependendo de estar a ser executado no mesmo servidor físico ou em diferentes servidores físicos; e compressão automática de dados no caso de servidores físicos diferentes.and peer-to-peer establishment of a module connection between any of the two modules mentioned, a source module and a destination module, once the definitions of the destination module are obtained by the source module from the main server; use, for computer vision modules that run on the same physical server, of the shared memory of the physical server for said module connections; use, for computer vision modules that run on different physical servers, of network sockets for said module connections; establishing the connection between any of the two modules mentioned, by automatically switching between shared memory and sockets, depending on whether it is running on the same physical server or on different physical servers; and automatic data compression for different physical servers.

Uma realização compreende qualquer um dos diferentes servidores de computador referidos, automaticamente assumindo, principal, de uma forma controlada, o papel de servidor no caso de o servidor principal deixar de responder.An embodiment comprises any of the different computer servers referred to, automatically assuming, principally, in a controlled manner, the role of server in case the main server fails to respond.

Uma realização compreende uma interface de programação de aplicações, API, que compreende instanciação dos módulos de visão computacional referidos selecionados a partir do conjunto de definições de algoritmos em hardware e em computador; ligação e desligamento dos módulos baseados em visão computacional instanciados referidos; ligação e desligamento dos módulos baseados em visão computacional instanciados referidos.One realization comprises an application programming interface, API, which comprises instantiation of the referred computer vision modules selected from the set of algorithm definitions in hardware and in computer; connection and disconnection of the instantiated computer-based modules referred to; connection and disconnection of the instantiated computer-based modules referred to.

Descrição das FigurasDescription of the Figures

Para uma mais fácil compreensão da invenção juntam-se em anexo as figuras, as quais, representam realizações preferenciais da invenção que, contudo, não pretendem limitar o objeto da presente invenção.For an easier understanding of the invention, the figures are attached, which represent preferred embodiments of the invention which, however, are not intended to limit the object of the present invention.

A Fig. 1 representa um diagrama de uma configuração de hardware em concordância com uma arquitetura definida.Fig. 1 represents a diagram of a hardware configuration in accordance with a defined architecture.

A Fig. 2 representa elementos fundamentais de uma arquitetura de software.Fig. 2 represents fundamental elements of a software architecture.

A Fig. 3 representa uma vista detalhada do servidor principal, mais concretamente da sua tabela de configurações.Fig. 3 represents a detailed view of the main server, more specifically its configuration table.

A Fig. 4 representa uma sequência das mensagens trocadas entre os servidores no estabelecimento de uma ligação entre dois módulos.Fig. 4 represents a sequence of messages exchanged between servers in establishing a connection between two modules.

Descrição detalhada da invençãoDetailed description of the invention

A presente invenção é agora descrita em detalhe, utilizando-se para o efeito as figuras anexadas a este documento.The present invention is now described in detail, using the figures attached to this document for this purpose.

A Fig.Fig.

apresenta um diagrama de blocos onde se identificam as componentes de hardware de uma possível solução que implementa a arquitetura definida na invenção.presents a block diagram where the hardware components of a possible solution that implement the architecture defined in the invention are identified.

As componentes de hardware são tipicamente utilizados no comércio. A solução contém três servidores 2, um dos quais é o servidor principal 1, ligados por um switch de rede 3, uma câmara 4, que pode ser IP, analógica ou USB, um sensorHardware components are typically used in commerce. The solution contains three servers 2, one of which is the main server 1, connected by a network switch 3, a camera 4, which can be IP, analog or USB, a sensor

3D 5 e um dispositivo de apresentação 6.3D 5 and a display device 6.

Não existe um limite máximo para o número de servidores 2, mas todos devem pertencer à mesma rede local. Há pelo menos um servidor 2 com o papel de servidor principal 1. Também não existe um limite máximo ou mínimo de periféricos de visão computacional 4, 5 por solução nem por servidor 2, sendo este limite imposto pela capacidade de processamento do servidor 2 em questão.There is no maximum limit for the number of servers 2, but they must all belong to the same local network. There is at least one server 2 with the role of primary server 1. There is also no maximum or minimum limit for computer vision peripherals 4, 5 per solution or per server 2, this limit being imposed by the processing capacity of the server 2 in question .

A Fig.Fig.

representa elementos fundamentais de uma arquitetura de software. Há módulos de saida 7, módulos de entrada e/ou módulos de saida 8, e módulos de entrada.represents fundamental elements of a software architecture. There are output modules 7, input modules and / or output modules 8, and input modules.

Os módulos de saída 7 têm apenas saídas 10 e adquirem dados de periféricos de visão computacional 4, 5, tais como câmaras web, câmaras IP, câmaras analógicas, sensores 3D, e outros, e disponibiliza-os nas suas saídas 10; os módulos de entrada e/ou saída 8, que têm pelo menos uma entrada 11 e pelo menos uma saída 10, são responsáveis por processar dados de uma ou mais entradas 11, transformá-los num novo tipo de dados, utilizando os vários algoritmos de visão computacional, tais como a deteção de género, idade, altura, emoções, direção do olhar, pose, composição de cores de um objeto, análise da direção do movimento e outros, e disponibilizá-los nas suas saídas 10; e módulos de entrada 9, que apenas consomem dados das suas entradas 11, processados por outros módulos, com o objetivo armazenar, despoletar alguma ação, gerar e apresentar num dispositivo de apresentação 6 um conteúdo multimédia, entre outras aplicações.Output modules 7 have only outputs 10 and acquire data from computer vision peripherals 4, 5, such as web cameras, IP cameras, analog cameras, 3D sensors, and others, and make them available on their outputs 10; the input and / or output modules 8, which have at least one input 11 and at least one output 10, are responsible for processing data from one or more inputs 11, transforming them into a new type of data, using the various algorithms of computer vision, such as the detection of gender, age, height, emotions, look direction, pose, color composition of an object, analysis of the direction of movement and others, and make them available in your outputs 10; and input modules 9, which only consume data from their inputs 11, processed by other modules, with the aim of storing, triggering some action, generating and presenting multimedia content, among other applications, in a presentation device 6.

No contexto da arquitetura descrita, um módulo um processo que corre num servidor 2.In the context of the described architecture, a module is a process that runs on a server 2.

Cada módulo tem uma chave de identificação única pela qual é conhecido na solução que se insere.Each module has a unique identification key for which it is known in the solution to be inserted.

Um módulo é uma instância de um controlador, driver, que pode ser visto como o programa de computador desenvolvido em conformidade com a arquitetura e utilizando a interface de programação apresentada.A module is an instance of a controller, driver, which can be seen as the computer program developed in accordance with the architecture and using the presented programming interface.

Cada driver especifica um conjunto de parâmetros que os módulos ou instâncias devem configurar, e que alteram o funcionamento das mesmas.Each driver specifies a set of parameters that the modules or instances must configure, and which change their functioning.

Um driver especifica ainda o conjunto de saídas 10 e entradas que os módulos, a partir de si instanciados, possuem.A driver also specifies the set of outputs 10 and inputs that the modules, from instantiated, have.

Cada módulo pode ser configurado para ligar ou desligar essas saídas 10 ou entradas 11. Cada saída 10 e entrada 11 tem uma chave de identificação única pela qual é conhecida no módulo a que pertence. As saídas 10 e entradas possuem um formato, isto é, nome atribuído à estrutura de dados que deve ser conhecida pelos vários módulos e que especifica o tamanho e tipos de dados que vão ser transferidos entre eles.Each module can be configured to turn on or off these outputs 10 or inputs 11. Each output 10 and input 11 has a unique identification key for which it is known in the module to which it belongs. Outputs 10 and inputs have a format, that is, a name assigned to the data structure that must be known by the various modules and that specifies the size and types of data that will be transferred between them.

Os formatos dos dados não são cobertos pela invenção, e ficam ao critério do programador que desenvolve o driver, devendo estes ser públicos, para assim outros programadores poderem consumi-los nos seus módulos.The data formats are not covered by the invention, and are at the discretion of the programmer who develops the driver, which must be public, so that other programmers can consume them in their modules.

A Fig. 3 representa a tabela de configurações 12 do servidor principal 1. Esta tabela detém a configuração de todos os módulos 7, 8 e 9, dos servidores 2 onde estão a ser executados, das entradas 11 e saídas 10, e das ligações entre elas. Uma ligação só pode ser estabelecida entre a saída 10 de um módulo e a entrada 11 de outro, e se ambas possuírem o mesmo formato.Fig. 3 represents the configuration table 12 of the main server 1. This table contains the configuration of all modules 7, 8 and 9, of the servers 2 where they are being executed, of the inputs 11 and outputs 10, and of the connections between they. A connection can only be established between the output 10 of one module and the input 11 of another, and both have the same format.

A tabela de configurações mantém os servidores 2 numerados de forma crescente, pela ordem em que assumirão o papel de servidor principal 1, que se encontra sempre em primeiro lugar, no caso de este deixar de responder aos pedidos.The configuration table keeps servers 2 numbered in an increasing order, in the order in which they will assume the role of primary server 1, which is always in first place, in case the server fails to respond to requests.

O servidor principal 1 propaga a sua tabela de configurações 12 para todos os servidores 2, sempre que este recebe um pedido de alteração de qualquer configuração. Tal garante que todos os servidores 2 mantêm a configuração mais recente e estão preparados para o substituir, se o servidor principal deixar de responder.Primary server 1 propagates its configuration table 12 to all servers 2, whenever it receives a request to change any configuration. This ensures that all servers 2 maintain the most recent configuration and are prepared to replace it if the primary server stops responding.

Sempre que o servidor principal recebe um pedido de configurações de um servidor 2, o servidor principal 1Whenever the primary server receives a configuration request from a server 2, the primary server 1

coloca-o Put the em in segundo second lugar na ordem de place in the order of sucessão 13 antes de succession 13 before propagar propagate a The tabela table de in configurações settings 12, tornando esse 12, making this servidor server 2 2 no próximo in the next candidato ao candidate for papel de servidor server role principal main 1 1 A Fig. 4 Fig. 4 representa represents as at mensagens 15, messages 15, 16, 17, 18, 19, 20, 16, 17, 18, 19, 20, 21, 22, 23 21, 22, 23 trocadas exchanged para estabelecer to establish a ligação entre dois the connection between two módulos, modules, envolvendo involving sempre o servidor always the server principal 1 para a main 1 for the

aquisição das configurações de ambos os módulos. Este fluxo é totalmente transparente para o programador e é na sua totalidade implementado pela interface de programação apresentada. Do ponto de vista da interface de programação, todos os servidores 2 são iguais, na medida em que possuem uma tabela de configurações 12 e uma ordem de sucessão 13 que indica qual o endereço de rede do atual servidor principal 1. No caso do servidor principal 1, a ordem de sucessão 13 deve indicar o próprio em primeiro lugar.acquisition of the configurations of both modules. This flow is completely transparent to the programmer and is implemented in its entirety by the programming interface presented. From the point of view of the programming interface, all servers 2 are the same, in that they have a configuration table 12 and a sequence order 13 that indicates the network address of the current main server 1. In the case of the main server 1, the order of succession 13 must indicate itself first.

Quando um módulo inicia num determinado servidor 2, é consultada a ordem de sucessão 13 do próprio servidor 2, para obter o endereço do servidor principal, 1, 15. De seguida, o módulo estabelece uma ligação com o servidor principal 1 e regista-se, ou atualiza, caso já se tenha registado anteriormente, a sua informação no servidor principal 16. A informação enviada é uma chave de hardware, o endereço físico e de rede. Desta forma, o servidor principal 1 passa a incluir na sua tabela de configurações informação atual sobre a localização na rede de qualquer servidor 2 que tenha executado um módulo em toda a solução. Caso o servidor principal 1 não responda, o pedido é enviado ao segundo servidor 2 na ordem de sucessão 13, que assume o papel de servidor principal 1, atualizando um identificador de linhagem. Este identificador garante que se o antigo servidor principal 1 voltar a responder, por possuir um identificador diferente, não volta assumir o papel servidor principal 1, sem antes atualizar a sua tabela de configurações 12.When a module starts on a given server 2, the order of succession 13 of the server 2 itself is consulted, to obtain the address of the main server, 1, 15. Then, the module establishes a connection with the main server 1 and registers itself , or update, if you have already registered, your information on the main server 16. The information sent is a hardware key, the physical and network address. In this way, the main server 1 starts to include in its configuration table current information about the location on the network of any server 2 that has executed a module in the entire solution. If the main server 1 does not respond, the request is sent to the second server 2 in succession order 13, which assumes the role of main server 1, updating a lineage identifier. This identifier guarantees that if the old main server 1 responds again, as it has a different identifier, it will not assume the role of main server 1 again, without first updating its configuration table 12.

Depois de atualizadas as configurações, o servidor principal altera a ordem de sucessão passando a incluir em segundo lugar o servidor 2 do qual recebeu o pedido de registo 16. Desta forma, esse servidor, por ter demonstrado que está ativo, passa a ser o próximo candidato ao papel de servidor principal 1, 17. Imediatamente após esta alteração, o servidor principal 1 propaga a tabela de configurações 12 por todos os servidores 2 da solução 18, tornando-os a todos aptos a assumir o seu papel, no caso de este deixar de responder.After the configurations are updated, the main server changes the order of succession to include server 2 from which it received the registration request in second place. Thus, this server, having demonstrated that it is active, becomes the next candidate for the role of primary server 1, 17. Immediately after this change, primary server 1 propagates the configuration table 12 to all servers 2 of solution 18, making them all able to assume their role, in the event of this fail to respond.

No passo seguinte, o módulo estabelece uma nova ligação com o servidor principal 1 e pede informação sobre si próprio 19. Em resposta, o módulo obtém os parâmetros de configuração, as suas entradas 11 e saídas 10 e o nome dos módulos a que se liga 20.In the next step, the module establishes a new connection with the main server 1 and asks for information about itself 19. In response, the module obtains the configuration parameters, its inputs 11 and outputs 10 and the name of the modules to which it connects 20.

No quarto passo, o módulo estabelece uma nova ligação com o servidor principal 1 e pede informação sobre o módulo a que se vai ligar 21. Em resposta obtém o endereço de rede do servidor 2 onde este está a ser executado, bem como os parâmetros da ligação 22. O servidor principal 1 detém esta informação porque o módulo de destino da ligação efetuou o mesmo procedimento, e portanto registou-se na tabela de configurações 12. Por fim, o módulo de origem efetua a ligação peer-to-peer com o módulo de destino 23. A técnica utilizada para estabelecer a comunicação entre os módulos é selecionada automaticamente. A partir do momento em que o módulo de origem detém informação sobre o servidor 2 onde executa o módulo de destinoIn the fourth step, the module establishes a new connection with the main server 1 and asks for information about the module to be connected 21. In response, it obtains the network address of the server 2 where it is being executed, as well as the parameters of the connection 22. Main server 1 holds this information because the destination module of the connection performed the same procedure, and therefore registered in the configuration table 12. Finally, the source module performs the peer-to-peer connection with the target module 23. The technique used to establish communication between the modules is selected automatically. From the moment the source module holds information about server 2 where it executes the target module

22, seleciona memória partilhada, se o servidor 2 for o mesmo onde o módulo de origem está a ser executado, caso contrário, seleciona os sockets. A compressão automática dos dados funciona da mesma forma, sendo utilizada apenas no caso de os módulos se executarem em servidores 2 distintos.22, select shared memory, if server 2 is the same where the source module is being executed, otherwise it selects the sockets. Automatic data compression works in the same way, being used only in case the modules are executed on 2 different servers.

Para assegurar uma implementação simples, flexível e que promova a escalabilidade, a presente invenção utiliza algumas técnicas, tais como a configuração centralizada do sistema que, no caso de ser utilizada uma arquitetura de hardware que compreenda vários servidores, é unificada no servidor principal 1 toda a configuração da solução;To ensure a simple, flexible implementation that promotes scalability, the present invention uses some techniques, such as the centralized configuration of the system which, in the case of using a hardware architecture that comprises several servers, is unified in the main server 1 the solution configuration;

propagação automática das configurações por todos os servidores 2 da solução nominação automática de um novo servidor principal 1, no caso de falha no servidor em utilização; o redirecionamento automático dos pedidos de configuração para o servidor principal 1 ; a descoberta automática de módulos; a escolha automática do protocolo de comunicação entre sockets e memória partilhada, dependendo do servidor onde os módulos intervenientes estão a ser executados; a compressão e descompressão automática dos dados para garantir uma utilização ótima da rede.automatic propagation of configurations to all servers 2 of the solution automatic naming of a new primary server 1, in case of failure in the server in use; the automatic redirection of configuration requests to the main server 1; automatic module discovery; the automatic choice of the communication protocol between sockets and shared memory, depending on the server where the intervening modules are being executed; automatic compression and decompression of data to ensure optimal use of the network.

As realizações atrás descritas são combináveis entre si. As seguintes reivindicações definem adicionalmente realizações preferenciais da presente invenção.The achievements described above are combinable with each other. The following claims further define preferred embodiments of the present invention.

Claims (16)

1. Sistema arquitetura detém uma responsável1. System architecture holds a responsible REIVINDICAÇÕES de visão computacional que compreende uma modular constituída por: um servidor principal que tabela de configuração do sistema; um módulo pela correlação dos dados adquiridos/processados pelo conjunto de módulos que constituem o sistema;CLAIMS of computer vision that comprises a modular consisting of: a main server that table of system configuration; a module for the correlation of data acquired / processed by the set of modules that make up the system; um conjunto de módulos que publicam as suas capacidades de enviar e/ou receber dados, de e/ou para um conjunto de hardware e algoritmos de visão computacional; caracterizado por as definições e ligações entre os módulos são armazenados num servidor principal e conexão entre módulos é estabelecida diretamente entre eles, com escolha automática de protocolo de comunicação, depois das definições do módulo de destino serem obtidas pelo módulo de origem da conexão, a partir do servidor principal.a set of modules that publish their capabilities to send and / or receive data, to and / or to a set of hardware and computer vision algorithms; characterized by the definitions and connections between the modules are stored on a main server and the connection between modules is established directly between them, with automatic choice of communication protocol, after the definitions of the destination module are obtained by the source module of the connection, from the main server. 2. Sistema de visão computacional, de acordo com a reivindicação2. Computer vision system, according to the claim 1, em que o conjunto de módulos de visão computacional executado no mesmo utilizando a memória partilhada do servidor físico (2) para as referidas ligações de módulos.1, in which the set of computer vision modules is executed using the shared memory of the physical server (2) for said module connections. 3.3. Sistema de visão computacional, de acordo com a reivindicação 1, em que o conjunto de módulos de visão computacional é executado em diferentes servidores físicos (2) , utilizando sockets de rede para as referidas ligações de módulos.Computer vision system, according to claim 1, in which the set of computer vision modules is executed on different physical servers (2), using network sockets for said module connections. 4. Sistema de visão computacional, de acordo com a reivindicação 1, compreendendo diferentes servidores de computador, em que qualquer um dos diferentes servidores de computador referidos (1, 2) possui a capacidade de assumir automaticamente, de uma forma controlada, o papel de servidor principal (1), no caso de o servidor principal (1) deixar de responder.4. Computer vision system, according to claim 1, comprising different computer servers, in which any of the different computer servers referred to (1, 2) has the ability to automatically assume, in a controlled manner, the role of main server (1), in case the main server (1) stops responding. 5. Sistema de visão computacional, de acordo com a reivindicação anterior, em que os diferentes servidores referenciados numa lista ordenada armazenada no referido estando a referida lista ordenada de acordo com a ordem em que os referidos servidores (1, vão assumir o papel de servidor principal de o responder.5. Computer vision system, according to the previous claim, in which the different servers referenced in an ordered list stored in said one, said list being ordered according to the order in which said servers (1, will assume the role of server main answer. 6. Sistema de visão computacional, de acordo com a reivindicação anterior, em que o referido servidor principal (1) é configurado de tal modo que, ao receber um pedido de configuração de qualquer outro servidor dos diferentes servidores (1, 2) referidos, armazena o referido outro servidor (2) na segunda posição na lista ordenada referida, tornando o referido outro servidor (2) no próximo candidato para o papel de servidor principal (1).6. Computer vision system, according to the previous claim, in which said main server (1) is configured in such a way that, upon receiving a configuration request from any other server of the different servers (1, 2) referred to, stores said other server (2) in the second position in said ordered list, making said other server (2) the next candidate for the role of primary server (1). 7. Sistema de visão computacional, de acordo com a reivindicação 1, em que o servidor principal (1) é o mesmo servidor de computador ou um dos servidores de computador (1,2), onde alguns ou todos os módulos baseados em visão computacional são executados.7. Computer vision system, according to claim 1, in which the main server (1) is the same computer server or one of the computer servers (1,2), where some or all modules based on computer vision are performed. 8. Sistema de visão computacional, de acordo com a reivindicação 1, compreendendo uma interface de programação de aplicações, API, para instanciar os módulos de visão computacional referidos selecionados do referido conjunto de definições de algoritmos de visão em hardware e em computador; para ligar e desligar os referidos módulos de visão computacional instanciados; e para terminar os referidos módulos de visão computacional instanciados.8. Computer vision system, according to claim 1, comprising an application programming interface, API, to instantiate the referred computer vision modules selected from said set of vision algorithms in hardware and in computer; to turn on and off said instantiated computer vision modules; and to finish the instantiated computer vision modules. 9. Sistema de visão computacional, de acordo com reivindicação 1, em que cada um dos referidos módulos de visão computacional é selecionado a partir de módulos de entrada (6), módulos de saída (4,9. Computer vision system, according to claim 1, in which each of these computer vision modules is selected from input modules (6), output modules (4, 5) ou módulos de entrada-saída.5) or input-output modules. 10. Sistema de visão computacional, de acordo com a reivindicação anterior, em que um módulo de entrada (6) compreende uma entrada ou entradas de visão computacional; em que um módulo de saída (4, 5) compreende uma saída ou saídas de visão computacional; em que um módulo de entrada-saída compreende uma entrada ou entradas de visão computacional e compreende também saída ou saídas de visão computacional.10. Computer vision system, according to the previous claim, in which an input module (6) comprises a computer vision input or inputs; wherein an output module (4, 5) comprises a computer vision output or outputs; wherein an input-output module comprises a computer vision input or inputs and also comprises computer vision output or outputs. 11. Sistema de visão computacional, de acordo com a reivindicação anterior, em que cada entrada referida e cada saída referida é individualmente endereçável por um identificador.11. Computer vision system, according to the previous claim, in which each referred input and each referred output is individually addressable by an identifier. 12. Sistema de visão computacional, de acordo com a reivindicação anterior, em que cada entrada referida e cada saída referida é individualmente endereçável por um identificador.12. Computer vision system, according to the previous claim, in which each referred input and each referred output is individually addressable by an identifier. 13. Módulo de visão computacional para utilização num sistema de visão computacional com uma arquitetura modular, compreendendo o referido sistema um servidor de computador principal (1) e um conjunto de módulos de visão computacional referido, em que os referidos módulos publicam as suas capacidades de enviar e/ou de receber dados para e/ou selecionados de um conjunto de algoritmos de visão em hardware e em computador, caracterizado por o conjunto das definições de algoritmos de visão em hardware e em computador e as referidas ligações de módulos entre os módulos serem armazenadas no referido servidor principal (1), e em que uma ligação de módulos entre qualquer um dos dois módulos referidos, um módulo de origem e um módulo de destino, é estabelecida peer-to-peer, assim que as definições do módulo de destino são obtidas pelo módulo de origem a partir do servidor principal (1).13. Computer vision module for use in a computer vision system with a modular architecture, said system comprising a main computer server (1) and a set of computer vision modules referred to, in which said modules publish their capabilities of send and / or receive data to and / or selected from a set of hardware and computer vision algorithms, characterized in that the set of hardware and computer vision algorithms definitions and said module connections between modules are stored on said main server (1), and in which a module connection between any of the two referred modules, a source module and a destination module, is established peer-to-peer, as soon as the definitions of the destination module are obtained by the source module from the main server (1). 14. Método de operação de um sistema de visão computacional com uma arquitetura modular, compreendendo o referido sistema um servidor de computador principal (1) e um conjunto de módulos de visão computacional que publicam as suas capacidades de enviar e/ou de receber dados para e/ou selecionados de um conjunto de algoritmos de visão em hardware e em computador, caracterizado por o referido método compreender:14. Method of operation of a computer vision system with a modular architecture, the system comprising a main computer server (1) and a set of computer vision modules that publish its capabilities to send and / or receive data to and / or selected from a set of hardware and computer vision algorithms, characterized in that the referred method comprises: - armazenamento do conjunto das definições de algoritmos de visão em hardware e em computador e as referidas ligações de módulos entre os módulos no referido servidor principal (1) ; e- storage of the set of vision algorithm definitions in hardware and in computer and the referred module connections between the modules in said main server (1); and - estabelecimento peer-to-peer de uma ligação de módulos entre qualquer um dos dois módulos referidos, um módulo de origem e um módulo de destino, assim que as definições do módulo de destino são obtidas pelo módulo de origem a partir do servidor principal (1);- peer-to-peer establishment of a module connection between any of the two mentioned modules, a source module and a destination module, once the definitions of the destination module are obtained by the source module from the main server ( 1); - utilização, para os módulos de visão computacional que são executados no mesmo servidor fisico (2), da memória partilhada do servidor fisico (2) para as referidas ligações de módulos;- use, for computer vision modules that run on the same physical server (2), of the shared memory of the physical server (2) for said module connections; - utilização, para os módulos de visão computacional que são executados em diferentes servidores físicos (2), de sockets de rede para as referidas ligações de módulos;- use, for computer vision modules that run on different physical servers (2), of network sockets for said module connections; - estabelecimento da ligação entre qualquer um dos dois módulos referidos, ao automaticamente comutar entre memória partilhada e sockets, dependendo de estar a ser executado no mesmo servidor físico (2) ou em diferentes servidores físicos (2); e- establishing the connection between any of the two modules mentioned, by automatically switching between shared memory and sockets, depending on whether it is running on the same physical server (2) or on different physical servers (2); and - compressão automática de dados no caso de servidores físicos (2) diferentes.- automatic data compression in the case of different physical servers (2). 15. Método, de acordo com a reivindicação 14, que compreende qualquer um dos diferentes servidores de computador referidos (1, 2), automaticamente assumindo, de uma forma c controlada, o papel de servidor principal (1), no caso de o servidor principal (1) deixar de responder.15. Method according to claim 14, which comprises any one of the different computer servers referred to (1, 2), automatically assuming, in a controlled way, the role of primary server (1), in case the server main (1) stop responding. 16. Método, de acordo com a reivindicação 14, para uma interface de programação de aplicações, API, que compreende:16. Method, according to claim 14, for an application programming interface, API, comprising: instanciação dos módulos de visão computacional referidos selecionados a partir do conjunto de definições de algoritmos em hardware e em computador;instantiation of the referred computer vision modules selected from the set of algorithm definitions in hardware and in computer; - ligação e desligamento dos módulos baseados em visão computacional instanciados referidos;- connection and disconnection of the instantiated computer-based modules referred to; - ligação e desligamento dos módulos baseados em visão computacional instanciados referidos.- connection and disconnection of the instantiated computer-based modules referred to.
PT10755914A 2014-03-31 2014-03-31 COMPUTATIONAL VISION SYSTEM OF MODULAR ARCHITECTURE AND RESPECTIVE APPLICATION PROGRAMMING INTERFACE METHOD PT107559B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PT10755914A PT107559B (en) 2014-03-31 2014-03-31 COMPUTATIONAL VISION SYSTEM OF MODULAR ARCHITECTURE AND RESPECTIVE APPLICATION PROGRAMMING INTERFACE METHOD
BR102014009660A BR102014009660A2 (en) 2014-03-31 2014-04-23 Modular architecture computer vision system and its application programming interface method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PT10755914A PT107559B (en) 2014-03-31 2014-03-31 COMPUTATIONAL VISION SYSTEM OF MODULAR ARCHITECTURE AND RESPECTIVE APPLICATION PROGRAMMING INTERFACE METHOD

Publications (2)

Publication Number Publication Date
PT107559A PT107559A (en) 2015-09-30
PT107559B true PT107559B (en) 2016-04-11

Family

ID=54320755

Family Applications (1)

Application Number Title Priority Date Filing Date
PT10755914A PT107559B (en) 2014-03-31 2014-03-31 COMPUTATIONAL VISION SYSTEM OF MODULAR ARCHITECTURE AND RESPECTIVE APPLICATION PROGRAMMING INTERFACE METHOD

Country Status (2)

Country Link
BR (1) BR102014009660A2 (en)
PT (1) PT107559B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005071961A1 (en) * 2004-01-14 2005-08-04 Nielsen Media Research, Inc. Portable audience measurement architectures and methods for portable audience measurement
US20070006250A1 (en) * 2004-01-14 2007-01-04 Croy David J Portable audience measurement architectures and methods for portable audience measurement
US20080109397A1 (en) * 2002-07-29 2008-05-08 Rajeev Sharma Automatic detection and aggregation of demographics and behavior of people

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080109397A1 (en) * 2002-07-29 2008-05-08 Rajeev Sharma Automatic detection and aggregation of demographics and behavior of people
WO2005071961A1 (en) * 2004-01-14 2005-08-04 Nielsen Media Research, Inc. Portable audience measurement architectures and methods for portable audience measurement
US20070006250A1 (en) * 2004-01-14 2007-01-04 Croy David J Portable audience measurement architectures and methods for portable audience measurement

Also Published As

Publication number Publication date
BR102014009660A2 (en) 2015-12-08
PT107559A (en) 2015-09-30

Similar Documents

Publication Publication Date Title
Wöbker et al. Fogernetes: Deployment and management of fog computing applications
US9906589B2 (en) Shared management service
JP6261079B2 (en) Workflow management device, workflow management method, and workflow management program
US10713026B2 (en) Heterogeneous distributed runtime code that shares IOT resources
Pati et al. HeartFog: fog computing enabled ensemble deep learning framework for automatic heart disease diagnosis
TW201516874A (en) Baseboard management controller providing peer system identification
US7966394B1 (en) Information model registry and brokering in virtualized environments
Familiar et al. IoT and microservices
US20190220783A1 (en) Automated distribution of models for execution on a non-edge device and an edge device
Dieber et al. Ella: Middleware for multi-camera surveillance in heterogeneous visual sensor networks
Pouladzadeh et al. A virtualization mechanism for real-time multimedia-assisted mobile food recognition application in cloud computing
PT107559B (en) COMPUTATIONAL VISION SYSTEM OF MODULAR ARCHITECTURE AND RESPECTIVE APPLICATION PROGRAMMING INTERFACE METHOD
Demongivert et al. A distributable event-oriented architecture for activity recognition in smart homes
US9288177B2 (en) Inventory updating of an internet protocol (IP) alias within a highly available computing cluster
Higashino et al. Cepaas: Complex event processing as a service
Ngankam et al. Nears-hub, a lightweight edge computing for real-time monitoring in smart environments
WO2017071279A1 (en) Network reconstruction method and system
Aloulou et al. Simplifying installation and maintenance of ambient intelligent solutions toward large scale deployment
US20210144232A1 (en) Computing pod services simulator
Mouine et al. Event-driven approach for monitoring and orchestration of cloud and edge-enabled iot systems
Lehikoinen AWS Greengrass in Building IoT Applications
Bhardwaj et al. Increasing reliability and availability in smart spaces: A novel architecture for resource and service management
Franke et al. Enabling virtual, cloud-based sensors in assisted living environments
Juan Ferrer Cognitive Resource Management in Ad-hoc Edge Clouds
Muhammad et al. Intelligent mailbox with centralized parallel processing

Legal Events

Date Code Title Description
BB1A Laying open of patent application

Effective date: 20140903

FG3A Patent granted, date of granting

Effective date: 20160406