The present invention, in some embodiments thereof, relates to system and method for detecting inappropriate content on a device and, more particularly, but not exclusively, filtering content on a variety of media.
International Patent Publication no. WO2010022185 appears to disclose that, “Mobile phones and other portable devices are equipped with a variety of technologies by which existing functionality can be improved, and new functionality can be provided. Some aspects relate to visual search capabilities, and determining appropriate actions responsive to different image inputs. Others relate to processing of image data. Still others concern metadata generation, processing, and representation. Yet others concern user interface improvements. Other aspects relate to imaging architectures, in which a mobile phone's image sensor is one in a chain of stages that successively act on packetized instructions/data, to capture and later process imagery. Still other aspects relate to distribution of processing tasks between the mobile device and remote resources (“the cloud”). Elemental image processing (e.g., simple filtering and edge detection) can be performed on the mobile phone, while other operations can be referred out to remote service providers. The remote service providers can be selected using techniques such as reverse auctions, through which they compete for processing tasks. A great number of other features and arrangements are also detailed.”
U.S. Pat. No. 8,701,137 appears to disclose, “Systems and methods . . . for enabling an administrator to monitor and control usage of media content in a locale. In one embodiment, the locale includes one or more media devices that have access to media content from one or more local and/or remote content sources. Usage data defining usage of the media content by a user is obtained. A pattern including two or more media segments consumed by the user is detected based on the usage data and one or more predefined pattern detection rules. The administrator is then enabled to review the pattern and choose whether to block usage. Usage of at least one of the media segments included in the pattern is then blocked at the one or more media devices at the locale in response to the administrator choosing to block usage of the at least one of the media segments included in the pattern.”
U.S. Pat. No. 8,108,923 appears to disclose, “Controlling access to a protected network . . . In some embodiments, one or more events that occur will a host is disconnected from the protected network arc logged. The log is provided to one or more devices associated with the protected network when the host requests access to the protected network after a period in which it was not connected. In some embodiments, a network access control or other device or process uses the log to determine whether and/or an extent to which the host should be permitted to connect to the network.”
US Patent Publication no. 20080270233 appears to disclose, “Architecture that leverages enabling technologies for tracking offline activity of a user, and rating performance of offline/online publishers of content and/or advertisements. Knowledge about user offline interests can be accumulated and used to target the user with smart advertisements when offline or online. Moreover, the performance of publishers of the offline content computed by merchants who contract with publishers to provide the best exposure. In support thereof, rate information in the form of response rate and conversion rate can be computed and analyzed for each offline publisher. A publisher referral ID for a publisher is inserted into detectable indicia associated with offline media such as print media, audio media, video media, etc. When a user interacts with the offline content using a cell phone, the captured information is forwarded to an online advertisement component framework for responding to the user interaction (e.g., a purchase transaction or request for further information).”
U.S. Pat. No. 9,762,462appears to disclose, “An approach . . . for an anti-bullying service. A service platform monitors interaction data from one or more applications, wherein the interaction data is associated with an interaction between a source and a target. The service platform analyzes the interaction data to parse one or more indicators of a monitored conduct between the source and the target. The service platform then initiates at least one of (a) a recording of the interaction data; (b) a transmission of an alert message, the one or more indicators, the interaction data, the monitored conduct, or a combination thereof to a third party; and (c) a pushing of an anti-conduct application to a source device associated with the source, a target device associated with the target, or a combination thereof based on the monitored conduct, the one or more indicators, or a combination thereof.”
US Patent Publication no. 20090288131 appears to disclose, “Systems and methods . . . for providing advance content alerts during playback of a media item. In one embodiment, the advance content alerts arc provided to a mobile device, such as a mobile telephone, of an associated user. More specifically, a user registers his or her mobile device with a media player and configures the types of content for which the user would like to receive advance content alerts. Thereafter, during playback of a media item, the media player identifies upcoming content for which the user desires an advance content alert. In response, the media player generates an advance content alert and sends the advance content alert to the mobile device of the user via, for example, a local wireless communication link.”
U.S. Pat. No. 8,725,746 appears to disclose that, “A method for filtering user information takes into account not only specific keywords in the user information, but also related user-characteristic data (e.g., user activity data), and allows targeted user characteristics to be determined from multiple aspects of user activities. In one aspect, the disclosed method adopts different filtering schemes for different types of targeted users to improve the recognition accuracy with respect to the target user information. The method determines a suitable filtering scheme using a correspondence relationship between the filtering scheme and keywords and user-characteristic data. The method uses modeling of sample users and multiple candidate filtering schemes to formulate targeted filtering scheme. An apparatus for implementing the method is also disclosed.”
Additional background art includes U.S. Pat. Nos. 8,984,581, 7,046,139, 984,581, 8,285,118, US Patent Publication no. 20170289624, U.S. Pat. Nos. 8,826,322, 8,984,581, 6,065,056, US Patent Publication no. 20170061248, US Patent Publication no. 20090087015, U.S. Pat. No. 7,996,005, US Patent Publication no. 20060177198, U.S. Patent No. 9,330,274
According to an aspect of some embodiments of the invention, there is provided a method of local content filtering for a mobile device including: sampling a display of the device to produce a sample; preprocessing the sample using a local processor and locally stored software to determine if the sample is a likely candidate to include objectionable content; in response to the sample if found to be a likely candidate, analyzing the sample using an artificial intelligence routine running on the local processor.
According to some embodiments of the invention, the method further includes sampling only a portion of the display.
According to some embodiments of the invention, the portion includes a video window, an image window, or a live video window.
According to some embodiments of the invention, a rate of the sampling is dependent on a foreground application running on the device.
According to some embodiments of the invention, the rate is greater when the foreground application is one of a social network, a live camera display application, an image display application, a video display application, and an Internet browser than when the application is not likely to contain inappropriate content such as a navigation application.
According to some embodiments of the invention, the method further includes checking a resource availability on the device and performing the analyzing when there are at least a minimum free resource and not performing the analyzing when there are less than the minimum free resources.
According to some embodiments of the invention, the preprocessing includes at least one of white balance correction, a gamma correction, an edge enhancement, image resolution adjustment, an FFT, edge detection, pattern extraction, texture classification, a color histogram, motion detection, feature recognition, entropy measuring, signature detection and skin tone recognition.
According to some embodiments of the invention, the method further includes sending a content item to an external server for further processing when the analyzing produces ambiguous results.
According to some embodiments of the invention, the method further includes sending a content item to an external server when the content is determined to be objectionable.
According to some embodiments of the invention, a single content item is sent to a large number of devices, such that the analyzing is divided between the devices.
According to some embodiments of the invention, the preprocessing and the analyzing arc performed by an application running on under an operating system Android, windows, IOS.
According to some embodiments of the invention, the preprocessing is performed by pretrained routines.
According to some embodiments of the invention, the sampling is more heavy based on active or background applications, regions of a display, regions of storage, type of application or source of the content, particularly social networks, search results, instant messaging and entertainment media.
According to some embodiments of the invention, the software includes a hash function or signatures for identifying previously recognized undesirable content.
According to some embodiments of the invention, the software includes a hash function or signatures for generating signatures for recognition of newly recognized undesirable content.
According to some embodiments of the invention, personalized instructions define how strictly to sample and analyze content, how many resources to use in analysis, and how to act when objectionable content is identified.
According to an aspect of some embodiments of the invention, there is provided a system for local content filtering for a mobile device including: computer code for sampling a display of the device to produce a sample and preprocessing the sample using a local processor and locally stored software to determine if the sample is a likely candidate to include objectionable content; and an artificial intelligence routine running on the local processor analyzing the sample for a sought content in response to the sample if found to be a likely candidate; wherein the system is a self-contained application or exists as an add-on to an existing application. 18 The system described above, wherein the application is self-updating when new content is detected or updates of the application are including with updates of the device or the existing application.
According to some embodiments of the invention, the preprocessing includes prefiltering that uses low computational cost methodologies to eliminate images with a low likelihood of undesirable content.
According to some embodiments of the invention, the preprocessing uses meta data to set a sampling rate and/or low resource prefilter.
Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments of the invention, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting.
As will be appreciated by one skilled in the art, some embodiments of the present invention may be embodied as a system, method or computer program product. Accordingly, some embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, some embodiments of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon. Implementation of the method and/or system of some embodiments of the invention can involve performing and/or completing selected tasks manually, automatically, or a combination thereof. Moreover, according to actual instrumentation and equipment of some embodiments of the method and/or system of the invention, several selected tasks could be implemented by hardware, by software or by firmware and/or by a combination thereof, e.g., using an operating system.
For example, hardware for performing selected tasks according to some embodiments of the invention could be implemented as a chip or a circuit. As software, selected tasks according to some embodiments of the invention could be implemented as a plurality of software instructions being executed by a computer using any suitable operating system. In an exemplary embodiment of the invention, one or more tasks according to some exemplary embodiments of method and/or system as described herein are performed by a data processor, such as a computing platform for executing a plurality of instructions. Optionally, the data processor includes a volatile memory for storing instructions and/or data and/or a non-volatile storage, for example, a magnetic hard-disk and/or removable media, for storing instructions and/or data. Optionally, a network connection is provided as well. A display and/or a user input device such as a keyboard or mouse are optionally provided as well.
Any combination of one or more computer readable medium(s) may be utilized for some embodiments of the invention. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium and/or data used thereby may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for some embodiments of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) and/or a mesh network (meshnet, emesh) and/or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Some embodiments of the present invention may be described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Some of the methods described herein are generally designed only for use by a computer, and may not be feasible or practical for performing purely manually, by a human expert. A human expert who wanted to manually perform similar tasks might be expected to use completely different methods, e.g., making use of expert knowledge and/or the pattern recognition capabilities of the human brain, which would be vastly more efficient than manually going through the steps of the methods described herein.
Data and/or program code may be accessed and/or shared over a network, for example the Internet. For example, data may be shared and/or accessed using a social network. A processor may include remote processing capabilities for example available over a network (e.g., the Internet). For example, resources may be accessed via cloud computing. The term “cloud computing” refers to the use of computational resources that are available remotely over a public network, such as the internet, and that may be provided for example at a low cost and/or on an hourly basis. Any virtual or physical computer that is in electronic communication with such a public network could potentially be available as a computational resource. To provide computational resources via the cloud network on a secure basis, computers that access the cloud network may employ standard security encryption protocols such as SSL and PGP, which are well known in the industry.
Some embodiments of the invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.
In the drawings:
The present invention, in some embodiments thereof, relates to system and method for detecting inappropriate content on a device and, more particularly, but not exclusively, filtering content on a variety of media.
An aspect of some embodiments of the current invention relates to real time filtering of images on a screen using local resources of a low power computing device (e.g., a cell phone, a device running operating system such as Android, IOS, Solaris, Unix, Linux, AmigaOS and/or Windows, Minix operating systems, smart TV's, Internet of Things (IoT) devices, any display device). In some embodiments, a local processor samples images on a display screen of the device. For example, the sampling is configured to detect undesirable images while avoiding unnecessary analyzing of non-significant pixels. For example, samples may be taken from a part of the screen that is likely to contain undesirable content while other parts of the screen are not sampled and/or arc sampled at a lower frequency. For example, samples may be taken when the foreground includes an application having a high probability to contain undesirable content while other applications are not sampled and/or are sampled at a lower frequency. For example, the system includes a prefilter that uses low computational cost methodologies to eliminate images with a low likelihood of undesirable content. In some embodiments, a pretrained artificial intelligence routine (for example using a Convolutional Neural Network CNN) is used to detect undesired image content using local resources on a low powered device (e.g., a cellphone running on battery) and/or a device having an Android operating system.
There has been a great deal of interest in supervision of use of mobile devices. Interest comes from parents trying to protect their children and/or content providers trying to protect their intellectual property from unapproved distribution and/or corporations trying to protect their intellectual property from industrial espionage and/or police trying to detect or prevent organized crime and terrorism and/or governments trying to detect and prevent spying. Many content filtering systems use an external server to monitor and/or control data transmitted to and/or from a device over a network. The use of a network server for content filtering has some significant disadvantages. Use of a network server to filter content may entail a great deal of computing power on a dedicated server. Another issue may be access to data. For example, data may be transferred in an encrypted form, and/or analysis of content of encrypted data may entail a decryption stage on the local machine which presents problems for server access. Another potential problem is that many mobile devices have multiple ports that can receive and/or transmit data without the data passing through the network and/or the supervising network server. Monitoring such data from an external server would require the server to control local ports of the device and/or send data passing through the local port to the external server for analysis. Such external oversight may be cumbersome and/or unfeasible for various reasons. For example, a network server may not be able to monitor data that is transferred and/or viewed while the device is off-line. For example, monitoring non-network content with an external server may result in sending large quantities of local data to an external server for analysis. The increased use of network bandwidth and battery power from data transmissions may be prohibitively expensive in terms of resource use, time and/or inconvenience for a device user.
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and the arrangement of the components and/or methods set forth in the following description and/or illustrated in the drawings and/or the Examples. The invention is capable of other embodiments or of being practiced or carried out in various ways.
In some embodiments, the device may include a wireless port 114 connected to a public data carrier 118 (for example a cellular network). The public data carrier 118 may give access to individual connections 122 (for example phone connections and/or SMS messaging). The public data carrier may also give access to networks such as the Internet and/or various networks that work over the Internet. For example, communication over the Internet may be over an Internet Service Provider (ISP) 116. In some embodiments, a server 120 and/or private network 124 may intervene to control access to some networks (e.g., the Internet).
In some embodiments, the device may include a private port 114 (e.g., a hard-wired connector and/or a short-range wireless port [e.g., Bluetooth and/or infra-red (IR) port and/or a near field connector (NFC)]).
In some embodiments, a device may include a media reader 104. Optionally, a removable media such as a memory card may be read by the media reader allowing access and/or allowing collecting of large quantities of data quickly.
In some embodiments, a device may include a sensor 110 (for example a camera and/or a microphone) that collects data from the environment 112.
In some embodiments, private data from a private connection 106, a media reader 104, an individual connection 122 and/or a sensor 110 may allow the device to receive and/or export data in a manner that bypasses a server 120. Optionally, a local program 102 may monitor such data. For example, the local monitoring program 102 may send data to the server 120 for content analysis and/or filtering. Sending such local data to a server may be expensive in terms of resources. For example, sending data to the server may use up bandwidth and/or battery power (for example, when the data is transmitted over a cellular network 124 to the server). Alternatively or additionally, data from private data sources may be analyzed locally. In some cases, (for example, where data is generated fast for example, when user makes a video and/or inserts a removable media into a reader) a large quantity of data may be generated quickly and/or present a serious challenge to local resources for analysis. In some embodiments, a local content scanning application may scan data as it is accessed. For example, the application may sample and/or scan images from a display of the device and/or images that are accessed by another application. For example, the application may sample sounds played to a user and/or sound files that are accessed by another application.
In some embodiments a monitoring application may run on a mobile device to detect undesirable content (for example, violence, pornography, misappropriation of intellectual property etc.). Optionally, the application may be a standard and/or self- contained application. Alternatively or additionally, the application may exist as an add-on (e.g., an SDK add-on) to an existing application (for example a social network and/or messenger application (e.g., Facebook and/or WhatsApp)).
In some embodiments, software loaded on to a mobile device may include one or more modules 246. For example, a module may be configured to perform a repetitive task efficiently. For example, modules 246 may include a white balance correction module, a gamma correction module, an edge enhancement module, a JPEG compression module, an FFT module, an edge detection module, a pattern extraction module, a Fourier-Mellin module, a texture classifier module, a color histogram module, motion detection module, a feature recognition module, and/or a skin tone detection module (for example to grade a percentage of skin tones in an image). In some embodiments, the device may include a private port 114 (e.g., a hard-wired connector and/or a short-range wireless port [e.g., Bluetooth and/or infra-red (IR) port and/or a near field connector (NFC)]).
In some embodiments, content coming from sources other than the network may also be screened. For example, a content filtering program may monitor content 412 on removable media and/or images captured by a camera and/or transmitted over a local communication medium 410 (e.g., Bluetooth and/or a hard-wired communication port).
In embodiments various strategies may be employed to facilitate scanning of images with limited computing power. In some embodiments, parallel processing may be used over multiple devices. For example, a video may have been distributed to multiple users (e.g., over a social network). Optionally, a server may divide scanning of the video between the devices of different users who received the video. For example, one device may analyze one portion of a video while another device analyzes another portion. For example, one device may analyze a certain frame (e.g., one or more key frames) while the other device analyzes another frame. For example, a preprocessing step 414 may make a coarse examination and/or eliminate frames/images that are not candidates 416 for evaluation (for example using a CNN routine). For example, images unlikely to hold unique objectionable content may be eliminated and/or may not be candidates 416 for evaluation. For example, this may reduce the computational burden of compared to a full analysis of the entire sample. For example, the preprocessing may include elemental image processing, simple filtering, skin tone detection, a General Classification Function (GCF) for example an Edge Histogram Distnbution (EHD), comparison of scalar and/or vector quantities may facilitate quick elimination of redundant images and/or low quality images and/or images that are unlikely to have undesirable content. Meta data may also be used in preprocessing to set a sampling rate and/or low resource prefilter. For example. GPS data may be used to determine if a picture was taken in a location likely to include objectionable content.
In some embodiments, a method of local content filtering may be configured to reduce the amount of data transferred over a network. Optionally, functions, such as preprocessing and/or AI analysis may be done locally on a user device. For example, an image may not be transferred to a server unless it has been recognized as undesirable content and/or the local machine failed to positively determine the presence of undesirable content (for example, an image with suspected but unconfirmed undesirable content may be sent for further processing for example by a server).
In some embodiments, when an image is evaluated 422 and positively identified as objectionable 426 various actions 428 may be taken 430, 432, 434. For example, a signature (e.g., a hash function and/or hash value) may be derived and/or sent to other devices for example to facilitate recognition of the content without requiring full analysis and/or without requiring transferring of the offending image over a network to another machine. Optionally the objectionable content may be disabled 420 (e.g., deleted and/or quarantined). Alternatively or additionally, objectional content may be uploaded to a server. In some embodiments, various actions of sampling and/or scanning are performed in real time (e.g., before and/or while the content is accessed). Optionally, certain functions (for example uploading content to a server) may be performed off-line (e.g., in the background and/or at times when resources arc available). In some cases, when suspicious content is found, it may be quarantined 424 at a time of low system resources 418 and/or later evaluated 436 when more resources are available. Additionally or alternatively, the rate of sampling may be adjusted due to the availability of system resource 418 (for example battery power, memory, spare processing power). Optionally the content monitoring system may self update when new content is detected and/or updates of the content monitoring system may be including with other updates of the device, for example, operating systems updates and/or updates of other components of the monitoring application. For example, training updates may be sent to a CNN routine with updates of routing.
In some embodiments, the monitoring routine will check only specific areas and not the entire device. For example, only certain applications and/or within the application certain areas for example video playback in a video window, an image window, or a live video window.
It is expected that during the life of a patent maturing from this application many relevant new technologies, artificial intelligence methodologies, computer user interfaces, image capture devices, viewing devices, low power computing devices, personal computing devices etc. will be developed and the scope of the terms for design elements, analysis routines, user devices is intended to include all such new technologies a priori.
Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments of the invention, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples arc illustrative only and arc not intended to be necessarily limiting.
As will be appreciated by one skilled in the art, some embodiments of the present invention may be embodied as a system, method or computer program product. Accordingly, some embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, some embodiments of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Implementation of the method and/or system of some embodiments of the invention can involve performing and/or completing selected tasks manually, automatically, or a combination thereof. Moreover, according to actual instrumentation and equipment of some embodiments of the method and/or system of the invention, several selected tasks could be implemented by hardware, by software or by firmware and/or by a combination thereof, e.g., using an operating system.
For example, hardware for performing selected tasks according to some embodiments of the invention could be implemented as a chip or a circuit. As software, selected tasks according to some embodiments of the invention could be implemented as a plurality of software instructions being executed by a computer using any suitable operating system. In an exemplary embodiment of the invention, one or more tasks according to some exemplary embodiments of method and/or system as described herein are performed by a data processor, such as a computing platform for executing a plurality of instructions. Optionally, the data processor includes a volatile memory for storing instructions and/or data and/or a non-volatile storage, for example, a magnetic hard-disk and/or removable media, for storing instructions and/or data. Optionally, a network connection is provided as well. A display and/or a user input device such as a keyboard or mouse are optionally provided as well.
Any combination of one or more computer readable medium(s) may be utilized for some embodiments of the invention. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium and/or data used thereby may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for some embodiments of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Some embodiments of the present invention may be described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Data and/or program code may be accessed and/or shared over a network, for example the Internet. For example, data may be shared and/or accessed using a social network. A processor may include remote processing capabilities for example available over a network (e.g., the Internet). For example, resources may be accessed via cloud computing. The term “cloud computing” refers to the use of computational resources that are available remotely over a public network, such as the internet, and that may be provided for example at a low cost and/or on an hourly basis. Any virtual or physical computer that is in electronic communication with such a public network could potentially be available as a computational resource. To provide computational resources via the cloud network on a secure basis, computers that access the cloud network may employ standard security encryption protocols such as SSL and PGP, which are well known in the industry.
Some of the methods described herein are generally designed only for use by a computer, and may not be feasible or practical for performing purely manually, by a human expert. A human expert who wanted to manually perform similar tasks might be expected to use completely different methods, e.g., making use of expert knowledge and/or the pattern recognition capabilities of the human brain, which would be vastly more efficient than manually going through the steps of the methods described herein.
The terms “comprises”, “comprising”, “includes”, “including”, “having” and their conjugates mean “including but not limited to”.
The term “consisting of” means “including and limited to”.
The term “consisting essentially of” means that the composition, method or structure may include additional ingredients, steps and/or parts, but only if the additional ingredients, steps and/or parts do not materially alter the basic and novel characteristics of the claimed composition, method or structure.
As used herein, the singular form “a”, “an” and “the” include plural references unless the context clearly dictates otherwise.
Throughout this application, various embodiments of this invention may be presented in a range format. It should be understood that the description in range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1, 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.
Whenever a numerical range is indicated herein, it is meant to include any cited numeral (fractional or integral) within the indicated range. The phrases “ranging/ranges between” a first indicate number and a second indicate number and “ranging/ranges from” a first indicate number “to” a second indicate number are used herein interchangeably and are meant to include the first and second indicated numbers and all the fractional and integral numerals therebetween.
It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the invention. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.
Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.
All publications, patents and patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention. To the extent that section headings are used, they should not be construed as necessarily limiting.
This application claims the benefit of priority under 35 USC § 119(e) of U.S. Provisional Patent Application No. 63/029,520 filed May 24, 2020, the contents of which are incorporated herein by reference in their entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IL2021/050538 | 5/11/2021 | WO |
Number | Date | Country | |
---|---|---|---|
63029520 | May 2020 | US |