Method and system for storing images
The on-device image classification model intercepts and filters inappropriate images on computing devices, ensuring efficient prevention of inappropriate content display and storage by replacing them with placeholders, thus optimizing resource usage.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- CILTER TECH LTD
- Filing Date
- 2026-01-09
- Publication Date
- 2026-07-16
AI Technical Summary
Existing methods struggle to efficiently filter and prevent inappropriate images, such as those containing nudity, from being stored persistently on computing devices, particularly in user interfaces accessible to minors, without burdening computational resources.
An on-device image classification model, like TensorFlow Lite, intercepts and filters images before storage, replacing inappropriate images with placeholders, using surface texture processing and graphic pipelines to minimize resource usage.
Efficiently prevents inappropriate images from being displayed or distributed, saving computational resources by processing images at an earlier stage and replacing them with placeholders.
Smart Images

Figure EP2026050483_16072026_PF_FP_ABST
Abstract
Description
Method and System for Storing ImagesTechnical Field
[0001] The invention is directed to a method, device and computer readable programmable medium for storing images, such as filtered images, in a computing device.Background Art
[0002] Filtering images is a task of increasing importance when a considerable number of applications for computing devices (such as WhatsApp®, TikTok®, Instagram®, Facebook® or Telegram®) are used. There is a need to avoid presenting images with inappropriate content on a user interface, such as a user interface screen and / or distributing them to users of other computing devices. This is of particular concern especially where applications are accessible to minors.
[0003] However, when images are written to persistent storage, it may be burdensome to keep a user of a computing device from accessing the images (for instance, in the gallery of the computing device) or sending them away (for example, through one of the mentioned applications). It would therefore be desirable to provide a method that intercepts and filters inappropriate images before they are persistently stored in the computing device.Summary of invention
[0004] The invention is described herein with reference to the appended claims.
[0005] A method for storing images performed by a computing device is provided. The method comprises:detecting an instruction to save an image to persistent storage on the computing device;prior to saving the image, intercepting an image bitmap corresponding to the image and applying an on-device image classification model to the image bitmap, wherein the image classification model is configured to detect whether the image bitmap corresponds to an invalid image; andupon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, saving an image placeholder to a persistent storage on the computing device.
[0006] Since the method may apply the on-device classification model to the image bitmap before the image is persistently stored in the computing device, the method may provide an efficient detection of invalid images, in which such images may be efficiently hidden from the user, for example to prevent that invalid images are shown in the computing device gallery, in a file explorer application or in any other application. Put another way, the method may allow for interception and replacement of invalid images before such images can be viewed by the user of the computing device or distributed to other users.Moreover, since the invalid image may be quickly processed (for example, without being processed at an operational level of a Ul layer), computational resources of the computing device may be saved.
[0007] Saving the image placeholder to a persistent storage on the computing device may comprise: replacing the image bitmap with a placeholder bitmap; processing the placeholder bitmap to obtain image placeholder data; processing the image placeholder data to obtain the image placeholder; and saving the image placeholder to the persistent storage on the computing device.
[0008] Processing the placeholder bitmap may comprise applying surface texture processing to the placeholder bitmap to obtain image placeholder data.
[0009] In other words, the method may advantageously enable an efficient generation of the image placeholder, for example because any processing by a Ul layer of the computing device may be directly applied to the placeholder bitmap instead of the image bitmap.
[0010] Processing the image placeholder data to obtain the image placeholder may be performed by a graphic pipeline.
[0011] The invalid image may be an image comprising nudity. Since images comprising nudity may typically be one of the most common types of images to be labelled as invalid for certain applications and / or types of user, nudity detection is a particularly useful application of the methods disclosed herein. Several degrees of nudity may be detected and labelled by the image classification model, for instance by defining one or more nudity thresholds. In an example, the image bitmap is detected to correspond to an invalid image if the image bitmap is detected to comprise a degree of nudity above the nudity threshold.
[0012] The on-device image classification model may be applied to an image bitmap that has not reached a Ul layer. For example, the application may be performed without the image bitmap or the image corresponding to the image bitmap having ever been displayed by the UL This may allow for a more efficient and accurate determination of invalid images and may prevent that the invalid image is displayed to the user whatsoever, not even briefly.
[0013] The on-device image classification model may be a TensorFlow Lite model.Although TensorFlow Lite models are an appropriate choice as the image classification model of the methods disclosed herein, other models are also appropriate. In an example, the on-device image classification model may be a vision model like a convolutional neural network (CNN) or a captioning model. Such visions models may extract features or generate text descriptions of the image bitmap. These text representations may be input into a language model, which may classify the image based on the text descriptions. Hence, the vision models may reshape image classification as a text-processing task for a language model.
[0014] The method may further comprise transforming image data into the image bitmap, wherein the image data is captured by a camera hardware of the computing device. Accordingly, the method may advantageously filter invalid images that are directly taken by the camera of the computing device, for example before having ever being saved in the gallery of the computing device.
[0015] An application programming interface, API, may be installed in the computing device. The API may be configured to obtain the image data from the camara hardware.
[0016] The camera hardware may comprise camera sensors configured to capture the image data.
[0017] The image bitmap may be obtained from a raster-based image or a vector-based image received, by the computing device, from a different computing device. Therefore, the method may advantageously filter invalid images that are received from a different computing device (such as via SMS, a chat application, Bluetooth® or any other form of transferring files between devices), for example before having ever being saved in the gallery of the computing device.
[0018] The method may further comprise updating the image classification model by means of an over-the-air, OTA, update. Since the detection is performed by a classification model that can be continuously updated, the detection of invalid images may be improved. For instance, a banned image may be purposely updated in the computing device for a certain type of application and / or a certain type of user.
[0019] The method may further comprise, upon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, displaying, by a user interface, Ul, the image placeholder. Since the image placeholder is saved to the persistent storage on the computing device instead of the corresponding invalid image, the method enables the image placeholder to be displayed quickly and with a low consumption of computational resources. To put it differently, the computing device may process the image placeholder as easily as it would obtain an image persistently stored in the computing device.
[0020] Displaying, by the Ul, the image placeholder may be controlled by one or more of a graphic processing unit, GPU, or a central processing unit, CPU. Therefore, the processor of the GPU can be used to lighten the workload of the processor of the CPU.
[0021] The image placeholder may be displayed, by the Ul, at a user display of a chat application. Hence, the method may advantageously filter invalid images before having ever being displayed in the user display of the chat application.
[0022] The computing device may be a mobile computing device. The computing device may be a mobile phone, a tablet, a laptop computer, an intelligent watch, a gaming console or any other computing device.
[0023] The method may further comprise, upon detecting, by the image classification model, that the image bitmap corresponds to a valid image, saving the image corresponding to the image bitmap to a persistent storage on the computing device. This may ensure that only image bitmaps that are detected to correspond to an invalid image are filtered, whilst the remaining image bitmaps (that is, image bitmaps that are not detected, by the image classification model, to correspond to invalid images) may be processed to be saved as the corresponding image by the Ul.
[0024] Saving the image corresponding to the image bitmap to a persistent storage on the computing device may comprise: processing the image bitmap to obtain second image data; processing the second image data to obtain the image corresponding to the image bitmap; and saving the image corresponding to the image bitmap to a persistent storage on the computing device.
[0025] Processing the image bitmap may comprise applying surface texture processing to the image bitmap.
[0026] The method may also comprise, upon detecting, by the image classification model, that the image bitmap corresponds to a valid image, displaying, by a user interface, Ul, the image corresponding to the image bitmap.
[0027] There is also provided a computer readable programmable medium carrying a computer programme stored thereon which, when executed by a processor, implements any of the methods disclosed herein. The computer readable programmable medium may be embodied, for instance, on a record medium, carrier signal or read-only memory.
[0028] There is also provided a computing device for storing images comprising:a memory; andone or more processors operatively coupled to the memory, the one or more processors configured to:detect an instruction to save an image to persistent storage on the computing device;prior to saving the image, intercept an image bitmap corresponding to the image and apply an on-device image classification model to the image bitmap, wherein the image classification model is configured to detect whether the image bitmap corresponds to an invalid image; andupon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, save an image placeholder to a persistent storage on the computing device.
[0029] The computing devices disclosed herein may be advantageous for the same reasons as set forth for or derivable from the methods performed by computing devices disclosed herein. Likewise, the one or more processors of the computingdevice may be configured to carry out any of the actions disclosed herein for the methods performed by computing devices.
[0030] It is appreciated that all combinations of the foregoing concepts and additional concepts discussed in greater detail below (provided such concepts are not mutually inconsistent) are contemplated as being part of the subject matter disclosed herein. In particular, all combinations of claimed subject matter appearing at the end of this disclosure are contemplated as being part of the subject matter disclosed herein. It should also be appreciated that terminology explicitly employed herein that also may appear in any disclosure incorporated by reference should be accorded a meaning consistent with the particular concepts disclosed herein.Brief description of drawings
[0031] These and other features and advantages of the invention will become more evident in the light of the following detailed description of preferred embodiments, given only by way of illustrative and non-limiting example, in reference to the attached figures:
[0032] Figure 1 describes a computing device.
[0033] Figure 2 illustrates an exemplary method performed by a computing device according to this disclosure from an operational point of view.
[0034] Figure 3 includes a flow-chart illustrating an example method performed by a computing device according to this disclosure.Description of embodiments
[0035] In the embodiment of figure 1, a computing device 10 is shown. The computing device 10 comprises a memory 11 and a processor 12 operatively coupled to the memory. The processor 12 is configured to perform any of the methods disclosed herein in connection with the computing device, such as the methods of figure 3. For example, the processor 12 may be configured to perform the actions of elements 101 to 122 of figure 3. The processor 12 may applying an on-device image classification model to an image bitmap.
[0036] In this embodiment, when the image bitmap is detected to correspond to an invalid image, the processor 12 is also configured to replace the image bitmap with a placeholder bitmap, process the placeholder bitmap, for example by applying surface texture processing, to obtain image placeholder data and process the image placeholder data to obtain the image placeholder.
[0037] The processor 12 of the embodiment of figure 1 is configured to save the resulting image placeholder to a persistent storage of the memory 11 of the computing device 10. The processor 12 may then display the stored image placeholder on a screen 13 of the computing device 10.
[0038] The processor 12 and any other processors described herein (which are comprised in the one or more processors disclosed herein), generally include circuitry for implementing communication and / or logic functions of the computing device. For example, the one or more processors may include a digital signal processor, a microprocessor and various analog to digital converters, digital to analog converters and / or other support circuits. Control and signal processing functions of the computing device may be allocated between these devices according to their respective capabilities. The one or more processors thus may also include the functionality to encode and interleave messages and data prior to modulation and transmission. The one or more processors can additionally include an internal data modem. Further, the one or more processors may include functionality to operate one or more software programs, which may be stored in the memory 11. For example, the one or more processors may be capable of operating a connectivity program, such as a web browser application. The web browser application may then allow the computing device to transmit and receive web content, such as, for example, location-based content and / or other web page content, according to a Wireless Application Protocol (WAP), Hypertext Transfer Protocol (HTTP), and / or the like.
[0039] The memory 11 or any other storage unit can each also store any of a number of pieces of information, and data, used by the computing device and the applications and devices that facilitate functions of the computing device, or are in communication with it, to implement the functions described herein andothers not expressly described. For example, the memory 11 may include such data as user authentication information, etc.
[0040] The one or more processors, in various examples, can operatively perform calculations, can process instructions for execution, and can manipulate information. The one or more processors can execute machine-executable instructions stored in the memory 11 to thereby perform methods and functions as described or implied herein, for example by one or more corresponding flow charts expressly provided or implied as would be understood by one of ordinary skill in the art to which the subject matters of these descriptions pertain. The one or more processors can be or can include, as non-limiting examples, a central processing unit (CPU), a microprocessor, a graphics processing unit (GPU), a microcontroller, an application-specific integrated circuit (ASIC), a programmable logic device (PLD), a digital signal processor (DSP), a field programmable gate array (FPGA), a state machine, a controller, gated or transistor logic, discrete physical hardware components and combinations thereof. In some embodiments, particular portions or steps of methods and functions described herein are performed in whole or in part by way of the one or more processors, while in other embodiments methods and functions described herein include cloud-based computing in whole or in part such that the one or more processors facilitates local operations including, as non-limiting examples, communication, data transfer, and user inputs and outputs such as receiving commands from and providing displays to the user.
[0041] Figure 2 outlines the exemplary method performed by the computing device 10 of figure 1 from an operational point of view.
[0042] When an image bitmap is intercepted (for example, generated) by a computing device to be displayed, by an application installed on the computing device, on a Ul screen, the application generally performs a process to produce the image that is viewed by a user on the Ul screen. In some solutions to filter invalid images, or if no filter image is applied, the produced image is saved to a persistent storage on the computing device integrally, which may cause that images with undesired content can be viewed and distributed by the user of the computing device.
[0043] By contrast, the computing device 10 of figure 1 is configured to detect whether the image bitmap 41 corresponds to an invalid image after the image bitmap is either obtained 40 from a raster-based image or a vector-based image received, by the computing device 10, from a different computing device or obtained 40 from image data captured by the computing device 10, but before the image bitmap (and / or the image corresponding to the image bitmap) is saved 45 on the persistent storage of the computing device. In figure 2, operation 42 comprises any of the features of the methods disclosed herein to detect that the image bitmap corresponds to an invalid image.
[0044] In the embodiment of figure 2, when it is detected that the image bitmap corresponds to an invalid image, the image bitmap is replaced 43 with a placeholder bitmap. The placeholder bitmap is then pushed 44 to a Ul layer. It can be appreciated that, in this embodiment, the detection of invalid images is made by the computing device 10 before a component of a Ul layer performs any actions on the image bitmap. Put another way, it is only the placeholder bitmap that is processed at the operational level of the Ul layer when the invalid image has been detected, which may be more efficient and precise than image filter methods in which an invalid image is processed at the operational level of the Ul layer, for example by recognising (such as by a view manager of the computing device) that the inappropriate image is actually displayed on a Ul screen.
[0045] As used herein, a "Ul layer" of a computer device should be construed as a layer that comprises an operational set of processing elements to convert application data changes into a form that the Ul can display.
[0046] In this embodiment, when the placeholder bitmap is processed at the operational level of the Ul layer, the image placeholder is obtained from the placeholder bitmap according to the rendering techniques disclosed herein. Subsequently, the image placeholder may be saved 45 in the persistent storage on the computing device. Finally, the image placeholder may be displayed 46 by the Ul screen 13 of figure 1.
[0047] Figure 3 shows a flow-chart of an example method 100, performed by a computing device. The computing device is any of the computer devices disclosed herein, such as the computing device 10 of figure 1.
[0048] The method 100 comprises detecting 101 an instruction to save an image to persistent storage on the computing device. As used herein, an "instruction to save an image to persistent storage on the computing device" may be construed as a command generated by a hardware or software component of the computing device to instruct the computing device to store the image in a persistent manner. In an example, the instruction may be generated when image data is captured by camera hardware of the computing device. The hardware raises an action or event to instruct the saving of the image to persistent storage. In another example, the instruction may be generated when a message comprising an image is received by the computing device, for example via a message application. The instruction to save an image to persistent storage on the computing device may also be referred to as an image capture event.
[0049] The method comprises, prior to saving the image, intercepting an image bitmap corresponding to the image and applying 106 an on-device image classification model to the image bitmap, wherein the image classification model is configured to detect whether the image bitmap corresponds to an invalid image.
[0050] As used herein, "intercepting an image bitmap" should be construed as detecting, by the computing device (such as by the one or more processors of the computing device) an image bitmap that is generated in the computing device, for example as a result of the instruction to save an image to persistent storage on the computing device.
[0051] As used herein, "image bitmap" should be construed as a bitmap resulting from digitalising image data. The image data may be captured by camera hardware of the computing device. The image data may be captured by camera hardware of any other device. The image data may be a drawn image. The image data may be an artificial intelligence (Al) image.
[0052] As used herein, an image bitmap is construed to correspond to an image when the bitmap is obtained from digitalising the image and / or when the image is displayed by a Ul after processing the bitmap.
[0053] As used herein, an "invalid image" should be construed as a banned image or a banned section of an image. In an example, the banned image may be purposely input into the image classification model for a certain type of application and / or acertain type of user. As used herein, a "valid image" should be construed as an image which is not entirely or partially banned.
[0054] The invalid image may be an image comprising nudity. As used herein, an "invalid image comprising nudity" should be construed as an image comprising one or several body parts that are banned for a certain type of application and / or a certain type of user.
[0055] The image bitmap may be obtained by transforming 102 image data into the image bitmap. The image data may be captured by a camera hardware of the computing device. In this example, the image bitmap is this intercepted as a result of the transformation of the image data into the image bitmap.
[0056] The image bitmap may be obtained 104 from a raster-based image or a vectorbased image received, by the computing device, from a different computing device. In this example, the image bitmap is this intercepted as a result of the reception of the raster-based image or the vector-based image.
[0057] Upon detecting 108, by the image classification model, that the image bitmap corresponds to an invalid image, the method may comprise replacing 110 the image bitmap with a placeholder bitmap. The method may comprise applying 112 image processing, for example surface texture processing, to the placeholder bitmap to obtain image placeholder data. The method may comprise processing 114 the image placeholder data to obtain the image placeholder.
[0058] The method may comprise saving the image placeholder to a persistent storage on the computing device. As used herein, "persistent storage" should be construed as a storage item of the computing device that retains data after power to the computing device is shut off. Persistent storage is sometimes referred to as non-volatile storage. The persistent storage may be a magnetic media, such as a hard disk drive and a tape.
[0059] The method may comprise displaying 116, by the Ul, the image placeholder.
[0060] As used herein, "surface texture processing" is deemed to refer to an intermediary action between processing a bitmap and displaying an image corresponding to the bitmap. In general, this refers to hardware accelerated transition of image data from a production source to a graphics processing context. The processing may encompass the following stages in any combination, namely:
[0061] Buffer Acquisition: The act of acquiring the image data reference for the original source image from the camera device or media in the form of an "Image Bitmap". This involves a hand-off between a producer (the entity generating the image) and a consumer (the graphics pipeline), allowing the consumer to access the hardware-backed memory without redundant data duplication.
[0062] Context Binding: The mapping of the image buffer into a texture object (such as an OpenGL ES or Metal texture) within a Graphics Processing Unit (GPU) memory space.
[0063] Coordinate Normalization: The application of a transformation matrix to the image data. This includes, but is not limited to, correcting for hardware-specific orientations, aspect ratio scaling, and vertical / horizontal flipping (e.g., Y-axis inversion).
[0064] Format Transcoding: The conversion of the image data from a hardware- optimized format (e.g., YUV or RAW) to a standardized coordinate-ready format (e.g., RGB).
[0065] In the case of computing devices using Android, surface texture processing may be carried out by means of SurfaceView, TextureView, SurfaceTexture or ImageView, among others, and in the case of Apple iOS, UllmageView, MTKView (Metal), or CAMetalLayer would be the equivalent intermediary views.
[0066] Processing the image placeholder data to obtain the image placeholder may be performed by a graphic pipeline. As used herein, a "graphic pipeline" should be construed as a framework within computer graphics that outlines the necessary procedures for transforming a three-dimensional (3D) scene into a two- dimensional (2D) representation on a UL The graphic pipeline may comprise a rasterizer. The graphic pipeline may be based on a graphics application programming interface (API) used for rendering, such as one or more of: OpenGL, Vulkan, Quartz or any other compatible graphics API. A graphics API may enable software applications to leverage advanced graphical complexities through integration with on-device hardware. A graphics API may serve as a bridge between applications and a Graphics Processing Unit (GPU).
[0067] Upon detecting 108, by the image classification model, that the image bitmap does not correspond to an invalid image (that is, the image bitmap entirely correspondsto a valid image), the method may comprise applying 118 image processing, for example surface texture processing, to the image bitmap to obtain second image data. The method may comprise processing 120 the second image data to obtain the image corresponding to the image bitmap.
[0068] The method may comprise saving 121 the image corresponding to the image bitmap to a persistent storage on the computing device.
[0069] The method may comprise displaying 122, by the Ul, the image corresponding to the image bitmap.
[0070] Processing the second image data to obtain the image corresponding to the image bitmap may be performed by a graphic pipeline.
[0071] The Ul may be a Ul screen.
[0072] The invention is defined in the claims. However, below there is provided a non- exhaustive list of non-limiting aspects. Any one or more of the features of these aspects may be combined with any one or more features of another example, embodiment or disclosure described herein.Aspect 1. A method for storing images performed by a computing device, the method comprising:detecting an instruction to save an image to persistent storage on the computing device;prior to saving the image, intercepting an image bitmap corresponding to the image and applying an on-device image classification model to the image bitmap, wherein the image classification model is configured to detect whether the image bitmap corresponds to an invalid image; andupon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, saving an image placeholder to a persistent storage on the computing device.Aspect 2. The method of aspect 1, wherein saving the image placeholder to a persistent storage on the computing device comprises:replacing the image bitmap with a placeholder bitmap;processing the placeholder bitmap to obtain image placeholder data; processing the image placeholder data to obtain the image placeholder; andsaving the image placeholder to the persistent storage on the computing device. Aspect 3. The method of aspect 2, wherein processing the image placeholder data to obtain the image placeholder is performed by a graphic pipeline.Aspect 4. The method of any one of aspects 1 to 3, wherein the invalid image is an image comprising nudity.Aspect 5. The method of any one of aspects 1 to 4, wherein the on-device image classification model is applied to an image bitmap that has not reached a Ul layer.Aspect 6. The method of any one of aspects 1 to 5, wherein the on-device image classification model is a TensorFlow Lite model.Aspect 7. The method of any one of aspects 1 to 6, further comprising:transforming image data into the image bitmap, wherein the image data is captured by a camera hardware of the computing device.Aspect 8. The method of aspect 7, wherein an application programming interface, API, is installed in the computing device, and wherein the API is configured to obtain the image data from the camara hardware.Aspect 9. The method of any one of aspects 7 to 8, wherein the camera hardware comprises camera sensors configured to capture the image data.Aspect 10. The method of any one of aspects 1 to 6, wherein the image bitmap is obtained from a raster-based image or a vector-based image received, by the computing device, from a different computing device.Aspect 11. The method of any one of aspects 1 to 10, further comprising updating the image classification model by means of an over-the-air, OTA, update.Aspect 12. The method of any one of aspects 1 to 11, further comprising, upon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, displaying, by a user interface, Ul, the image placeholder.Aspect 13. The method of any aspect 12, wherein displaying, by the Ul, the image placeholder is controlled by one or more of a graphic processing unit, GPU, or a central processing unit, CPU.Aspect 14. The method of any one of aspects 12 to 13, wherein the image placeholder is displayed, by the Ul, at a user display of a chat application.Aspect 15. The method of any one of aspects 1 to 14, wherein the computing device is a mobile computing device.Aspect 16. The method of any one of aspects 1 to 14, wherein, upon detecting, by the image classification model, that the image bitmap corresponds to a valid image, saving the image corresponding to the image bitmap to a persistent storage on the computing device.Aspect 17. The method of aspect 16, wherein saving the image corresponding to the image bitmap to a persistent storage on the computing device comprises:applying surface texture processing to the image bitmap to obtain second image data;processing the second image data to obtain the image corresponding to the image bitmap; andsaving the image corresponding to the image bitmap to a persistent storage on the computing device.Aspect 18. The method of any one of aspects 16 to 17, further comprising, upon detecting, by the image classification model, that the image bitmap corresponds to a valid image, displaying, by a user interface, Ul, the image corresponding to the image bitmap. Aspect 19. A computer readable programmable medium carrying a computer programme stored thereon which, when executed by a processor, implements the method according to any of claims 1 to 18.Aspect 20. A computing device for storing images comprising:a memory; andone or more processors operatively coupled to the memory, the one or more processors configured to:detect an instruction to save an image to persistent storage on the computing device;prior to saving the image, intercept an image bitmap corresponding to the image and apply an on-device image classification model to the image bitmap, wherein the image classification model is configured to detect whether the image bitmap corresponds to an invalid image; andupon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, save an image placeholder to a persistent storage on the computing device.Aspect 21. The computing device of aspect 20, wherein saving the image placeholder to a persistent storage on the computing device comprises:replacing the image bitmap with a placeholder bitmap;applying surface texture processing to the placeholder bitmap to obtain image placeholder data;processing the image placeholder data to obtain the image placeholder; and saving the image placeholder to the persistent storage on the computing device. Aspect 22. The computing device of aspect 21, wherein processing the image placeholder data to obtain the image placeholder is performed by a graphic pipeline.Aspect 23. The computing device of any one of aspects 20 to 22, wherein the invalid image is an image comprising nudity.Aspect 24. The computing device of any one of aspects 20 to 23, wherein the on-device image classification model is applied to an image bitmap that has not reached a Ul layer. Aspect 25. The computing device of any one of aspects 20 to 24, wherein the on-device image classification model is a TensorFlow Lite model.Aspect 26. The computing device of any one of aspects 20 to 25, wherein the one or more processors are further configured to:transform image data into the image bitmap, wherein the image data is captured by a camera hardware of the computing deviceAspect 27. The computing device of aspect 26, wherein an application programming interface, API, is installed in the computing device, and wherein the API is configured to obtain the image data from the camara hardware.Aspect 28. The computing device of any one of aspects 26 to 27, wherein the camera hardware comprises camera sensors configured to capture the image data.Aspect 29. The computing device of any one of aspects 20 to 25, wherein the image bitmap is obtained from a raster-based image or a vector-based image received, by the computing device, from a different computing device.Aspect 30. The computing device of any one of aspects 20 to 29, wherein the one or more processors are further configured to:update the image classification model by means of an over-the-air, OTA, update. Aspect 31. The computing device of any one of aspects 20 to 30, wherein the one or more processors are further configured to:upon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, displaying, by a user interface, Ul, the image placeholder.Aspect 32. The computing device of aspect 31, wherein displaying, by the Ul, the image placeholder is controlled by one or more of a graphic processing unit, GPU, or a central processing unit, CPU.Aspect 33. The computing device of any one of aspects 31 to 32, wherein the image placeholder is displayed, by the Ul, at a user display of a chat application.Aspect 34. The computing device of any one of aspects 20 to 33, wherein the computing device is a mobile computing device.Aspect 35. The computing device of any one of aspects 20 to 34, wherein the one or more processors, upon detecting, by the image classification model, that the image bitmap corresponds to a valid image, are further configured to:save the image corresponding to the image bitmap to a persistent storage on the computing device.Aspect 36. The computing system of aspect 35, wherein saving the image corresponding to the image bitmap to a persistent storage on the computing device comprises:applying surface texture processing to the image bitmap to obtain second image data;processing the second image data to obtain the image corresponding to the image bitmap; andsaving the image corresponding to the image bitmap to a persistent storage on the computing device.Aspect 37. The method of any one of aspects 35 to 36, wherein the one or more processors, upon detecting, by the image classification model, that the image bitmap corresponds to a valid image, are further configured to:display, by a user interface, Ul, the image corresponding to the image bitmap.
[0073] The invention is not limited to the embodiments hereinbefore described but may be varied in both construction and detail.
[0074] The words "comprises / comprising" and the words "having / including" when used herein with reference to the present invention are used to specify the presence ofstated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof. 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 sub-combination.
Claims
CLAIMS1. A method for storing images performed by a computing device, the method comprising:detecting an instruction to save an image to persistent storage on the computing device;prior to saving the image, intercepting an image bitmap corresponding to the image and applying an on-device image classification model to the image bitmap, wherein the image classification model is configured to detect whether the image bitmap corresponds to an invalid image; andupon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, saving an image placeholder to a persistent storage on the computing device.
2. The method of claim 1, wherein saving the image placeholder to a persistent storage on the computing device comprises:replacing the image bitmap with a placeholder bitmap;processing the placeholder bitmap to obtain image placeholder data; processing the image placeholder data to obtain the image placeholder; and saving the image placeholder to the persistent storage on the computing device.
3. The method of claim 2, wherein processing the image placeholder data to obtain the image placeholder is performed by a graphic pipeline.
4. The method of claim 1, wherein the invalid image is an image comprising nudity.
5. The method of claim 1, wherein the on-device image classification model is applied to an image bitmap that has not reached a Ul layer.
6. The method of claim 1, wherein the on-device image classification model is a TensorFlow Lite model.
7. The method of claim 1, further comprising:transforming image data into the image bitmap, wherein the image data is captured by a camera hardware of the computing device.
8. The method of claim 7, wherein an application programming interface, API, is installed in the computing device, and wherein the API is configured to obtain the image data from the camara hardware.
9. The method of claim 7, wherein the camera hardware comprises camera sensors configured to capture the image data.
10. The method of claim 1, wherein the image bitmap is obtained from a raster-based image or a vector-based image received, by the computing device, from a different computing device.
11. The method of claim 1, further comprising updating the image classification model by means of an over-the-air, OTA, update.
12. The method of claim 1, further comprising, upon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, displaying, by a user interface, Ul, the image placeholder.
13. The method of claim 12, wherein displaying, by the Ul, the image placeholder is controlled by one or more of a graphic processing unit, GPU, or a central processing unit, CPU.
14. The method of claim 12, wherein the image placeholder is displayed, by the Ul, at a user display of a chat application.
15. The method of claim 1, wherein the computing device is a mobile computing device.
16. The method of claim 1, wherein, upon detecting, by the image classification model, that the image bitmap corresponds to a valid image, saving the image corresponding to the image bitmap to a persistent storage on the computing device.
17. The method of claim 16, wherein saving the image corresponding to the image bitmap to a persistent storage on the computing device comprises:applying surface texture processing to the image bitmap to obtain second image data;processing the second image data to obtain the image corresponding to the image bitmap; andsaving the image corresponding to the image bitmap to a persistent storage on the computing device.
18. The method of claim 16, further comprising, upon detecting, by the image classification model, that the image bitmap corresponds to a valid image, displaying, by a user interface, Ul, the image corresponding to the image bitmap.
19. The method of claim 17 wherein processing the image bitmap to obtain second image data comprises applying surface texture processing to the image bitmap to obtain second image data.
20. The method of claim 2, wherein processing the placeholder bitmap to obtain image placeholder data comprises applying surface texture processing to the placeholder bitmap.
21. A computer readable programmable medium carrying a computer programme stored thereon which, when executed by a processor, implements the method according to any of claims 1 to 20.
22. A computing device for storing images comprising:a memory; andone or more processors operatively coupled to the memory, the one or more processors configured to:detect an instruction to save an image to persistent storage on the computing device;prior to saving the image, intercept an image bitmap corresponding to the image and apply an on-device image classification model to the image bitmap, wherein the image classification model is configured to detect whether the image bitmap corresponds to an invalid image; andupon detecting, by the image classification model, that the image bitmap corresponds to an invalid image, save an image placeholder to a persistent storage on the computing device.