Patent Description:
Surveillance of the public using imaging, in particular video imaging, is common in many areas around the world. Areas that may need monitoring are for example banks, stores, and other areas where security is needed. However, it is illegal to mount cameras in many places without having a license/permission. Sometimes it can be costly and time consuming to get the license. By distorting a video image in such a way that it will be impossible to identify persons it should be possible to mount cameras in many more places, e.g. for surveilling schools.

However, the requirement to not be able to identify persons may be in contrast to the requirement of being able to determine what is happening in the video.

For example, it may be of interest to perform people counting or queue monitoring on anonymous image data. In practice, there is a trade-off between meeting these two requirements: non-identifiable video, and extracting large amounts of data for different purposes such as people counting.

Several image-processing techniques have been described to avoid identifying persons while still being able to recognize activities. For example, edge detection/representation, edge enhancement, silhouetting objects, and different sorts of "colour blurring", such as colour variation or dilation are such examples of manipulations.

Image processing refers to any processing that is applied to an image. The processing can include application of various effects, masks, filters or the like, to the image. In this manner, the image can e.g. be sharpened, converted to grey scale, or altered in some way. The image has typically been captured by a video camera, a still image camera or the like.

<NPL> discloses a method for clothing colour de-identification in image records. The de-identification is done by modifying components of HSV colour space upon segmented clothing. The process of de-identification is reversible, i.e. original clothing colour can be restored in case of transformation parameters that were used are known.

An object may thus be how to de-identify or anonymize persons in a digital image, e.g. a video image, while still being able to determine what is happening in the digital image, specifically in the video image. A further object may be to irreversibly anonymize persons in the digital image, while still being able to determine what is happening in the digital image.

Even though embodiments have been summarized below, the claimed subject matter is defined by the accompanying claims <NUM>-<NUM>. According to an aspect, the object is achieved by a method for anonymizing a digital colour image according to claim <NUM>.

According to another aspect, the object is achieved by an image processing device configured to perform the above method.

According to further aspects, the object is achieved by a computer program and a computer program carrier corresponding to the aspects above.

By applying the linear random function, which varies over the pixels of the digital colour image, to the respective colour vector, persons in the digital colour image are anonymized while it is still possible to determine what is happening in the digital colour image.

A further advantage of embodiments herein is that it is difficult to reverse the operations of the anonymization, such as the linear random function, to be able to identify the persons in the image after the anonymization has taken place. Thus, it may be possible to irreversibly anonymize persons in the digital image, while still being able to determine what is happening in the digital image. This increases the security of the method, and thus increases the possibility of obtaining a license/permission to use video surveillance in a certain place.

In the Figures, features that appear in some embodiments are indicated by dashed lines.

The various aspects of embodiments disclosed herein, including particular features and advantages thereof, will be readily understood from the following detailed description and the accompanying drawings, in which:.

As mentioned above it may be of interest to perform people counting or queue monitoring on anonymous image data. Therefore, an object of embodiments herein may be to anonymize persons in a digital image, while still being able to determine what is happening in the digital image.

Embodiments herein may be implemented in one or more image processing devices. <FIG> depicts various exemplifying image processing devices, which can perform image processing on a digital image <NUM>, <NUM>, <NUM>, such as a digital video image. The image processing device may be an image capturing device, such as a video recorder, a surveillance camera <NUM>, a digital camera, a smartphone <NUM> including an image sensor, or a car <NUM> including an image sensor. The image processing device, e.g. a wired or wireless device, may also obtain the image, for example from the image capturing device over a network or the like. This may for example be the case for a video server <NUM> in <FIG>.

A video server is a computer-based device that is dedicated to delivering video. Video servers are used in a number of applications, and often have additional functions and capabilities that address the needs of particular applications. For example, video servers used in security, surveillance and inspection applications typically are designed to capture video from one or more cameras and deliver the video via a computer network. In video production and broadcast applications, a video server may have the ability to record and play recorded video, and to deliver many video streams simultaneously. In <FIG>, a video server <NUM> is connected, e.g. over a network, to the image processing devices: the surveillance camera <NUM>, the smartphone <NUM> and the car <NUM>. The video server <NUM> may further be connected to a video storage <NUM> for storage of video images, and/or connected to a monitor <NUM> for display of video images.

Thus, the image processing device is capable of processing the digital image. The image may have been captured by the image processing device itself or it may have been received from another device, which captured the image, or from a memory, such as hard drive or the like.

In order to better appreciate the following detailed description, some terms will be explained.

When the image has been captured, data representing the image can be stored in any known existing or future format. Typically, each pixel of the captured image is represented by one or more values representing the intensity of the captured light within a certain wavelength band. These values are usually referred to as colour components, or colour channels.

For example colours of the image can be represented by colour components in a colour space, such as Red, Green and Blue in an RGB colour space or Cyan, Magenta, Yellow, and Key in a CMYK colour space, or the like.

A colour component may thus refer to one of the components of RGB, one of CMYK or the like. Further known formats include, but are not limited to, Hue Saturation Luminance (HSL) Colour Format, Luminance and Chrominance (YUV) Colour Format etc..

Embodiments herein will now be described using the RGB colour space for exemplary purposes. It is to be understood that the embodiments also apply to other colour spaces.

A common implementation of the RGB colour model is the <NUM>-bit implementation, with <NUM> bits, or <NUM> discrete levels of colour per channel. Any colour space based on such a <NUM>-bit RGB model is thus limited to a range of <NUM>×<NUM>×<NUM> ≈ <NUM> million colours.

Moreover, as used herein, the term "image" may refer to an image frame including information originating from an image sensor that has captured the image.

<FIG> illustrates an exemplifying digital colour image <NUM> in a two-dimensional space, which may also be referred to as colour image <NUM>, or even image <NUM> in the following. The pixels of the colour image <NUM> consisting of w × h pixels may be referred to using their coordinates x and y, with <MAT>. A coordinate x, y may also be referred to as a pixel position. For example, a pixel <NUM> may be referred to with the coordinates (x=-w/<NUM>, y = h/<NUM>). A second pixel <NUM> is also illustrated along with several other pixels.

<FIG> illustrates colour content or colour components of pixel <NUM>, e.g. within a range <NUM>-<NUM>. For example, a red colour component R1 may have the value <NUM>, a green colour component G1 may have the value <NUM> and a blue colour component B1 may also have the value <NUM>. Likewise, the second pixel <NUM> may also be represented by colour components within the same range <NUM>-<NUM>. For example, a second red colour component may have the value <NUM>, a second green colour component may have the value <NUM> and a second blue colour component may also have the value <NUM>.

<FIG> illustrates a colour vector v201 in a three-dimensional colour space represented by three colour space axes R, G and B. An RG-plane is also illustrated with stripes. The three colour components R1, G1 and B1 are also illustrated and dotted lines have been added to help visualize the decomposition of the colour vector v201 into its colour components.

Exemplifying methods according to embodiments herein will now be described with reference to <NUM>) a flowchart of <FIG>, and <FIG>) colour vectors of <FIG> and <FIG>, and <NUM>) colour component intensity values of <FIG> and <FIG>. There will also be further references to the digital colour image <NUM> of <FIG> and <FIG> already presented. The methods are implemented in the image processing device, e.g. in any of the image processing devices <NUM>-<NUM> of <FIG>. The image processing device thus generally performs a method for anonymizing a digital colour image, such as the digital colour image <NUM>. Anonymizing the digital colour image <NUM> may for example mean to make it more difficult to identify humans and/or other beings and/or objects present in the digital colour image <NUM>.

One or more of the following actions may be performed in the following exemplifying order. In other examples, the order may differ from what is described below.

The image processing device obtains the digital colour image <NUM>.

In some embodiments, the image processing device obtains the digital colour image <NUM> by receiving the digital colour image <NUM> from an image capturing device or by receiving the digital colour image <NUM> from a memory, such as an internal memory, an external memory, a hard drive or the like. In some examples, this means that the image processing device may be included in a computer system, such as a cloud server or the like.

As mentioned above, the colour of a respective pixel of the digital colour image <NUM>, such as pixel <NUM>, may be represented with a respective colour vector comprising colour intensity values for the different colour components of the colour space, such as the RGB colour space. For example, the colour vector v201 of pixel <NUM> may be written as [R1, G1, B1], where R1, G1 and B1 each can take on intensity values between <NUM> and <NUM>. In the following actions, reference is made to the colour vector v201 of pixel <NUM>, but it is to be understood that the actions are equally applicable to any pixel and that pixel's colour vector.

The image processing device applies a linear random function f to a respective colour vector V201, V501 representing colour components R, G, B of a respective pixel of the digital colour image <NUM> to obtain a monochrome image. In linear algebra, a linear function is a map between two vector spaces that preserves vector addition and scalar multiplication. However, for embodiments herein applicable to a three-dimensional real valued colour space, the linear function may comprise a matrix multiplication of the colour vector V201, V501 with a 3x3 matrix. Thus, for a respective pixel, the linear random function operates on the colour vector v201 and linearly transforms it into a one-dimensional colour component. <FIG> illustrates such a linear transform of the colour vector v501, v201 onto the G-component axis. This produces a monochrome image since the same colour component is used for all pixels. For example, the colour vector v201 may comprise the values [<NUM>, <NUM>, <NUM>] which may be transformed into [<NUM>, <NUM>, <NUM>], which means that the resulting one-dimensional colour component G502 is a G-component with value <NUM>.

Below, in the following actions 402a, 402b and 402c, two different ways of linearly transforming the colour vector v201 into the one-dimensional colour component will be presented in more detail. For example, in some embodiments the linear random function f is a rotation function that linearly rotates the colour vector v201 in action 402a. Action 402a is then followed by a projection, of a thus formed rotated colour vector, onto the one-dimensional colour component in action 402b. In some other embodiments, the linear random function is a random projection function that projects the colour vector v201 onto the one-dimensional colour component in action 402c.

The linear function is random since it is dependent on at least one random parameter, coefficient and/or variable. Thus, another way of defining the function f is that it is a linear function of at least one random parameter, coefficient and/or variable. In some embodiments the value of the at least one random parameter, coefficient and/or variable will be the same for all the pixels, i.e. the at least one random parameter may be invariant over the pixels <NUM>, <NUM>, while for other embodiments the at least one random parameter will take on different values for the respective pixel, e.g. the random parameters associated with pixel <NUM> may be different from the random parameters associated with the second pixel <NUM>. In some other embodiments the at least one random parameter do vary over the pixels, but may be the same for some of the pixels, e.g. it may be the same for neighbouring pixels, it may further be different for every second pixel, or every fifth or tenth pixel. An advantage of using different random values for different pixels, such as pixels <NUM> and <NUM>, is that it is more difficult to reverse the anonymization, as there are more random values that has to be figured out.

Further, the linear random function varies over the pixels <NUM>, <NUM> of the digital colour image <NUM>. Thus, the linear random function f is also dependent on the pixel position x, y within the digital colour image <NUM>. An example of such a random function will be presented further below.

In this manner, persons in the digital colour image <NUM> are anonymized while it is still possible to determine what is happening in the digital colour image <NUM>. For example, the method allows for performing people counting or queue monitoring on anonymous image data.

A further advantage of embodiments herein is that after the anonymization has taken place by applying the linear random function it is difficult to reconstruct the original image and thereby identify the persons in the image. The difficulty in reversing the transformation of the image resides both in the drawing of the random numbers that the linear function depends on, and on a discard of data. In the original colour image, colour data is represented by three values, while in the transformed image colour data is represented by one value, hence data is discarded during the transformation. This increases the security of the method, and thus increases the possibility of obtaining a license/permission to use video surveillance in a certain place.

However, there is a trade-off between how anonymous the transformed image is and how useful the transformed image is for analysing what is going on in the image. A linear random function that varies little over the pixels of the colour image will make the transformed image more useful but less anonymous. On the other hand, the more the linear random function varies over the pixels of the colour image, the more anonymous the transformed image becomes, but also less useful.

In some embodiments, the linear random function f varies smoothly over pixels <NUM>, <NUM> of the digital colour image <NUM>. In other words, the linear random function f may vary slowly and/or softly over the pixels <NUM>, <NUM> of the digital colour image <NUM>. For example, the linear random function f may vary smoothly over close by or neighbouring pixels, such as pixels <NUM> and <NUM>, of the digital colour image <NUM>.

That the function is smoothly and/or slowly varying over neighbouring pixels may mean that the value of the function at one pixel <NUM> is close to the value of the function at the neighbouring pixel <NUM>. In other words, the function varies less than a predetermined extent/degree/magnitude over the given pixels. For example, the values of the function at neighbouring pixels may be within a certain range, or in other words, the difference of the values of the function at neighbouring pixels may be within a threshold value, such as below a constant multiplied with a distance between the pixels. The constant may be application specific and chosen in order to make a suitable trade-off between anonymization and usability of the image for a particular image and/or for a particular application, such as people counting.

In some embodiments, neighbouring pixels comprises adjacent pixels <NUM>, <NUM>, while in other embodiments neighbouring pixels comprises pixels closer than a certain distance in the digital colour image <NUM>. For example, neighbouring pixels may be pixels closer than the width of a person in the digital colour image <NUM>.

In some embodiments, the linear random function f varies smoothly over the digital colour image <NUM>.

A random function varying smoothly over image <NUM> may for example be generated by generating a polynomial with random parameters of the polynomial.

An example of such a polynomial function is the function f(x, y) below.

f (x, y) is a third degree polynomial of the pixel position, i.e. f(x, y) is dependent on the pixel position x, y.

Further, f(x, y) above is also dependent on random parameters ck, k = <NUM>. The values of the random parameters, ck, may be generated by drawing <NUM> random numbers uniformly distributed between -<NUM> and <NUM>. In some embodiments the parameters ck are fixed for a given image frame, e.g. for the digital colour image <NUM>, while the pixel position, x, y, is different for every pixel which will make the result of the function, f(x, y) vary over the pixels.

Another way would be to generate the random function in the frequency plane by Fourier analysis, e.g. by applying a discrete Fourier transform, such as a fast Fourier transform. That could for example be done by randomly choosing a respective amplitude of the four lowest frequencies, used to represent the function f(x, y) in the frequency domain, uniformly between -<NUM> and <NUM>, and setting all higher frequencies to zero. This frequency representation may be turned into a smoothly varying function over the pixel position x, y using an inverse transform, such as an inverse discrete Fourier transform.

In some embodiments, the linear random function comprises one or more rotation functions. The respective rotation function varies over the pixels <NUM>, <NUM> of the digital colour image <NUM>, and is dependent on at least one random parameter. Then applying the linear random function comprises rotating the colour vector v501 with the one or more rotation functions, thereby obtaining a rotated colour vector v502.

<FIG> illustrates such a linear rotation of the colour vector v501, v201 onto the rotated colour vector v502.

In the following, the one or more rotation functions will be exemplified with three rotation functions, respectively representing a rotation about a respective one of the axes B, G and R of the colour space coordinate system using the right-hand rule.

Generally, each rotation function may be dependent on a random rotation angle. Thus, the at least one random parameter may comprise the random rotation angle. The random rotation angle may in turn be dependent on a further random parameter and/or coefficient and/or variable. Further, the rotation angles may vary over the pixels <NUM>, <NUM> of the digital colour image <NUM>. For example, the rotation angles may be given by the above polynomial function. For example, a rotation angle α may be given or calculated by a third degree polynomial of the pixel position x, y with random paramaters ck. <MAT> β and γ may be calculated in a corresponding way. The random parameters, ck, which may be generated by drawing <NUM> random numbers uniformly distributed between -<NUM> and <NUM>, may be different for each rotation angle, or they may be the same. As explained above in relation to the variability of the random parameters over the pixels, an advantage of using different random values for different angles, is that it is more difficult to reverse the anonymization, as there are more random values that has to be figured out. However, there is a trade-off with complexity.

In some embodiments, a blue rotation function RB is dependent on a blue rotation angle α, representing a rotation about the B component axis, while a green rotation function RG is dependent on a green rotation angle β, representing a rotation about the G component axis, and finally a red rotation function RR is dependent on a red rotation angle γ, representing a rotation about the R component axis.

Embodiments will now be described with three rotation matrices RB, RG, RR, which represent the three random rotation angles α, β and γ, e.g. corresponding to yaw, pitch and roll. A three-dimensional rotation matrix R may be formed as <MAT> where RB, RG and RR respectively is a basic rotation matrix (also called elemental rotation) representing a rotation about a respective one of the axes B, G and R of the colour space coordinate system using the right-hand rule as described above.

Mathematically the colour vector v501 is rotated by multiplying a corresponding column vector v501T with the rotation matrix R, i.e. R*v501T.

In accordance with the above the respective rotation function is dependent on the pixel position x, y and may be generated with the above exemplified polynomial function or the like. For example, different rotation angles may be dependent on the pixel position and may be generated with the above-exemplified polynomial function or the like. The ten random numbers may be different for each rotation function.

The respective rotation function may for example correspond to a random rotation angle of the colour vector v501. The random rotation angles may for example be angles corresponding to yaw, pitch and roll.

As a result of the rotation of the colour vector v501 the relative intensities of the RGB components or RGB channels changes. This is illustrated in <FIG> illustrates the values of the colour components of the colour vector v501 before rotation, while <FIG> illustrates the values of the colour components of the rotated colour vector v502, i.e. after rotation. In this example, after rotation the values R2 and B2 of the R and B components are smaller than before the rotation, while the value G502 of the G component is larger than before rotation.

After rotation, the rotated colour vector v502 is projected onto a one-dimensional colour component G. For example, the rotated colour vector v502 may be projected onto one of the axes of the colour space, such as the G-component axis. This is for example illustrated in <FIG>, where the rotated colour vector v502 has been projected onto the G-component resulting in a value G3.

All pixels are projected to the same one-dimensional colour component, e.g. projection onto the G-component for all pixels. This produces a monochrome image <NUM> illustrated in <FIG> further illustrates the colour content of two pixels <NUM> and <NUM> of the monochrome image <NUM>, i.e. <FIG> illustrates the intensity value of the G-component.

Since the projection discards some data, e.g. R- and B-components of the rotated colour vector v502, the image transformation is more secure as it is more difficult to reverse the transformation.

In some embodiments projecting the rotated colour vector v502 onto the one-dimensional colour component G comprises selecting a rotated colour component G of the rotated colour vector v502, and discarding the other colour components R, B of the rotated colour vector v502. That is, in this case the obtained monochrome image <NUM> comprising the one dimensional colour component G comprises the selected colour component G of the rotated colour vector v502 for the respective pixel. For these embodiments, the resulting intensity value G3 in <FIG> would equal the intensity value G502 of the G-component of the rotated colour vector v502. A corresponding matrix formulation would be to multiply the rotated colour vector v502 with a column vector [<NUM>, <NUM>, <NUM>]T. However, other projections onto the selected colour component G may also be envisioned, resulting in a projected intensity value G3 that is different from the intensity value of the selected colour component of the rotated colour vector v502. For example, the projected intensity value G3 may be calculated as a weighted sum of the individual intensity values of the rotated colour vector v502, e.g. G3 = R2+G2+B2 if (R2+G2+B2) < <NUM>, and G3 = <NUM> if G3 is above or equal to the maximum value, e.g. <NUM>. The corresponding matrix formulation would be [p1, p2, p3]T × [R2, G2, B2], where p1, p2 and p3 represent different projection weights. In another example, it is possible to combine two of the colour channels and remove one colour channel in order to find another trade-off between anonymization and keeping information. This may be advantageous for some applications, while less advantageous for other applications, since different trade-offs may be needed for different applications.

A random colour space-rotation followed by a fix projection could be combined into a random projection. As mentioned above in action 402a, the random rotation may be parameterized with three angles, e.g. α, β, γ representing yaw, pitch and roll. The random projection may likewise be parameterized with three weights, so there are three degrees of freedom in both cases. These parameters should in both cases vary smoothly over the image.

Thus, in some alternative embodiments, the linear random function f comprises one or more random projection weight functions, which respectively varies over the pixels <NUM>, <NUM> of the digital, colour image <NUM>, and is dependent on at least one random parameter. Then applying the linear random function f comprises projecting the colour vector v501 with the one or more random projection weight functions onto the one-dimensional colour component G.

Here the case of combining the rotation and the projection into one operation is exemplified with three such random functions: w_r representing a weight function for the red component, w_g representing a weight function for the green component, and w_b representing a weight function for the blue component. For a respective pixel x, y the colour vector v501 with elements R1, G1 and B1 are projected into a scalar value of the projected image according to: <MAT> w_r, w_b, and w_g may also be given by a polynomial function of the pixel position x, y. For example, w_r may be given or calculated by the above third degree polynomial of the pixel position x, y with random paramaters ck. <MAT> w_g, and w_b may be calculated in a corresponding way. The random parameters, ck, which may be generated by drawing <NUM> random numbers uniformly distributed between - <NUM> and <NUM>, may be different for each weight function, or they may be the same.

Further exemplifying methods according to embodiments herein will now be described with reference to <FIG>, and again with further reference to the digital colour image of <FIG> and <FIG> and the colour space representation of <FIG>.

As described above in relation to action <NUM> of <FIG> the image processing device obtains the digital colour image <NUM>.

In addition to applying the linear random function according to action <NUM> above a histogram equalization of the digital colour image <NUM> and/or of the monochrome image <NUM> may also be performed. The histogram equalization may be performed before, during or after applying the linear random function. For example, when the histogram equalization is performed on the digital colour image <NUM> it may be performed on each colour channel, or colour component.

Since the histogram equalization is a non-linear transform it makes it more difficult for someone to figure out what the original image looked like, i.e. the security of the anonymization increases. The histogram equalization also gives higher contrast in the image, which makes it easier to see what is going on in the scene.

In order to make it easier to see what is going on in the scene it is also possible to apply edge enhancement to the monochrome image. Edge enhancement may for example be an image processing filter that enhances the edge contrast of an image or video in an attempt to improve its acutance (apparent sharpness). Basically, it increases the contrast at the edges to make them appear sharper.

In those cases, an edge detection may be performed before the edge enhancement. The edge detection may for example take place before applying the linear random function according to action <NUM> above. For example, edge detection may be performed on the original colour image before applying the linear random function. It may also be performed on the colour image before applying the linear random function, but after the histogram equalization. As an alternative, edge detection may also be performed after transforming the colour image <NUM> to the monochrome image <NUM>.

As described above in relation to action <NUM> of <FIG> the image processing device applies the linear random function f to the respective colour vector v201, v501 representing the colour components R, G, B of the respective pixel of the digital colour image <NUM> to obtain the monochrome image <NUM>.

As described above in action <NUM> the image processing device may enhance one or more edges present in the digital colour image <NUM> to make it easier to see what is going on in the scene. The enhancement of the one or more edges may take place after the linear transformation of the colour image <NUM>. The one or more edges detected above in action <NUM> and later enhanced may then be merged with the monochrome image <NUM>.

In order to make it even more difficult to find out too much from the information that is actually left in the transformed image it is possible to pseudo-colour pixels of the monochrome image <NUM> using a colour scheme.

An example of pseudo-colouring the pixels of the monochrome image <NUM> using the colour scheme is to generate a pseudo-coloured colour vector for a respective pixel <NUM>, <NUM> of the monochrome image <NUM> by mapping a range of intensities of the one-dimensional colour component G to the pseudo-coloured colour vector. For example, a first range of intensities <NUM>-<NUM> may be mapped to a first pseudo-coloured colour vector <NUM>, <NUM>, <NUM>, while a second range of intensities <NUM>-<NUM> may be mapped to a second pseudo-coloured colour vector <NUM>, <NUM>, <NUM> and so on.

<FIG> illustrates an image after application of the linear random function and after pseudo-colouring. It is possible to observe several persons in the image. However, identification of the persons is difficult.

This pseudo-colouring of the image would be possible to perform at the client side, for example at monitor <NUM> in <FIG>. For example, the camera <NUM> may send out a one-channel image, such as image <NUM>, to for example the server <NUM>. The image <NUM> may then be mapped to pseudo-colours locally when it is to be shown, e.g. at monitor <NUM>. Therefore, it is possible to save bandwidth over a network by only saving a one-channel intensity image, such as the monochrome image <NUM>.

With reference to <FIG>, a schematic block diagram of embodiments of an image processing device <NUM> corresponding to the different image processing devices of <FIG> is shown. The image processing device <NUM> is configured to anonymize the digital colour image <NUM>.

The image processing device <NUM> may comprise a processing module <NUM>, such as a means for performing the methods described herein. The means may be embodied in the form of one or more hardware modules and/or one or more software modules.

The image processing device <NUM> may further comprise a memory <NUM>. The memory may comprise, such as contain or store, instructions, e.g. in the form of a computer program <NUM>, which may comprise computer readable code units which when executed on the image-processing device <NUM> causes the image-processing device <NUM> to perform the method of anonymizing the digital colour image.

According to some embodiments herein, the image processing device <NUM> and/or the processing module <NUM> comprises a processing circuit <NUM> as an exemplifying hardware module, which may comprise one or more processors. Accordingly, the processing module <NUM> may be embodied in the form of, or realized by', the processing circuit <NUM>. The instructions may be executable by the processing circuit <NUM>, whereby the image processing device <NUM> is operative to perform the methods of <FIG> and <FIG>. As another example, the instructions, when executed by the image processing device <NUM> and/or the processing circuit <NUM>, may cause the image processing device <NUM> to perform the method according to <FIG> and <FIG>.

In view of the above, in one example, there is provided an image processing device <NUM> for anonymizing the digital colour image. Again, the memory <NUM> contains the instructions executable by said processing circuit <NUM> whereby the image processing device <NUM> is operative for performing the method according to <FIG> and <FIG>:.

The image processing device <NUM> may further be operative to perform the methods according to the detailed embodiments described above in connection to <FIG> and <FIG>.

<FIG> further illustrates a carrier <NUM>, or program carrier, which comprises the computer program <NUM> as described directly above. The carrier <NUM> may be one of an electronic signal, an optical signal, a radio signal and a computer readable medium.

In some embodiments, the image processing device <NUM> and/or the processing module <NUM> may comprise one or more of an obtaining module <NUM>, a linear random function module <NUM>, a rotation module <NUM>, a projection module <NUM>, a pseudo-colouring module <NUM>, an edge enhancing module <NUM>, a histogram equalization module <NUM>, as exemplifying hardware modules. In other examples, one or more of the aforementioned exemplifying hardware modules may be implemented as one or more software modules.

Moreover, the processing module <NUM> comprises an Input/Output unit <NUM>. According to an embodiment, the Input/Output unit <NUM> may comprise an image sensor configured for capturing the image <NUM>.

Accordingly, the image processing device <NUM> is configured for anonymizing the digital colour image.

Therefore, according to the various embodiments described above, the image processing device <NUM> and/or the processing module <NUM> and/or the obtaining module <NUM> is configured for obtaining the digital colour image <NUM>.

The image processing device <NUM> and/or the processing module <NUM> and/or the linear random function module <NUM> is configured for applying the linear random function f to the respective colour vector v201, v501 representing colour components R, G, B of the respective pixel <NUM>, <NUM> of the digital colour image <NUM> to obtain the monochrome image <NUM>.

The linear random function f varies over the pixels <NUM>, <NUM> of the digital colour image <NUM>. Further, the linear random function f is dependent on at least one random parameter.

The image processing device <NUM> and/or the processing module <NUM> and/or the rotation module <NUM> may be configured for rotating the colour vector v201, v501 with the one or more rotation functions, dependent on at least one random parameter, thereby obtaining the rotated colour vector v502.

The image processing device <NUM> and/or the processing module <NUM> and/or the projection module <NUM> may be configured for projecting the rotated colour vector v502 onto the one-dimensional colour component G.

In some embodiments projecting the rotated colour vector v502 onto the one-dimensional colour component G comprises selecting the rotated colour component G of the rotated colour vector v502, and discarding the other colour components R, B of the rotated colour vector.

In some other embodiments when the linear random function f comprises one or more projection weight functions which respectively varies over the pixels <NUM>, <NUM> of the digital colour image <NUM> and is dependent on at least one random parameter, then the image processing device <NUM> and/or the processing module <NUM> and/or the projection module <NUM> may be configured for applying the linear random function f by:
projecting the colour vector v501 with the one or more random projection weight functions onto the one-dimensional colour component G.

The image processing device <NUM> and/or the processing module <NUM> and/or the pseudo-colouring module <NUM> may be configured for pseudo-colouring pixels <NUM>, <NUM> of the monochrome image <NUM> using the colour scheme.

The image processing device <NUM> and/or the processing module <NUM> and/or the enhancing module <NUM> may be configured for enhancing the one or more edges present in the digital colour image <NUM>.

The image processing device <NUM> and/or the processing module <NUM> and/or the histogram equalization module <NUM> may be configured for performing <NUM> the histogram equalization of the digital colour image <NUM> and/or of the monochrome image <NUM>.

As used herein, the term "module" may refer to one or more functional modules, each of which may be implemented as one or more hardware modules and/or one or more software modules and/or a combined software/hardware module. In some examples, the module may represent a functional unit realized as software and/or hardware.

As used herein, the term "computer program carrier", "program carrier", or "carrier", may refer to one of an electronic signal, an optical signal, a radio signal, and a computer readable medium. In some examples, the computer program carrier may exclude transitory, propagating signals, such as the electronic, optical and/or radio signal. Thus, in these examples, the computer program carrier may be a non-transitory carrier, such as a non-transitory computer readable medium.

As used herein, the term "processing module" may include one or more hardware modules, one or more software modules or a combination thereof. Any such module, be it a hardware, software or a combined hardware-software module, may be a obtaining means, linear function or transform means, rotation means, projecting means, pseudo-colouring means, edge enhancing means or the like as disclosed herein. As an example, the expression "means" may be a module corresponding to the modules listed above in conjunction with the figures.

As used herein, the term "software module" may refer to a software application, a Dynamic Link Library (DLL), a software component, a software object, an object according to Component Object Model (COM), a software component, a software function, a software engine, an executable binary software file or the like.

The terms "processing module" or "processing circuit" may herein encompass a processing unit, comprising e.g. one or more processors, an Application Specific integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA) or the like. The processing circuit or the like may comprise one or more processor kernels.

As used herein, the expression "configured to/for" may mean that a processing circuit is configured to, such as adapted to or operative to, by means of software configuration and/or hardware configuration, perform one or more of the actions described herein.

As used herein, the term "action" may refer to an action, a step, an operation, a response, a reaction, an activity or the like. It shall be noted that an action herein may be split into two or more sub-actions as applicable. Moreover, also as applicable, it shall be noted that two or more of the actions described herein may be merged into a single action.

As used herein, the term "memory" may refer to a hard disk, a magnetic storage medium, a portable computer diskette or disc, flash memory, Random Access Memory (RAM) or the like. Furthermore, the term "memory" may refer to an internal register memory of a processor or the like.

As used herein, the term "computer readable medium" may be a Universal Serial Bus (USB) memory, a DVD-disc, a Blu-ray disc, a software module that is received as a stream of data, a Flash memory, a hard drive, a memory card, such as a MemoryStick, a Multimedia Card (MMC), Secure Digital (SD) card, etc. One or more of the aforementioned examples of computer readable medium may be provided as one or more computer program products.

As used herein, the term "computer readable code units" may be text of a computer program, parts of or an entire binary file representing a computer program in a compiled format or anything there between.

As used herein, the terms "number" and/or "value" may be any kind of number, such as binary, real, imaginary or rational number or the like. Moreover, "number" and/or "value" may be one or more characters, such as a letter or a string of letters. "Number" and/or "value" may also be represented by a string of bits, i.e. zeros and/or ones.

As used herein, the expression "in some embodiments" has been used to indicate that the features of the embodiment described may be combined with any other embodiment disclosed herein.

Claim 1:
A method for anonymizing a digital colour image (<NUM>), wherein the method comprises:
obtaining (<NUM>, <NUM>) the digital colour image (<NUM>), and
applying (<NUM>, <NUM>) a linear random function (f) to a respective colour vector (v201, v501) representing colour components (R, G, B) of a respective pixel (<NUM>, <NUM>) of the digital colour image (<NUM>), wherein the linear random function varies over the pixels (<NUM>, <NUM>) of the digital colour image (<NUM>), and wherein the linear random function (f) further is dependent on at least one random parameter,
and wherein the method is characterized in that the linear random function (f) is:
a linear random projection function, or
a linear random rotation function,
and wherein the method is further characterized in that a monochrome image (<NUM>) is obtained by:
projecting (402c) the colour vector (v501) with the random projection function onto a one-dimensional colour component (G), or
rotating (402a) the colour vector (v501) with the random rotation function, thereby obtaining a rotated colour vector (v502), and
projecting (402b) the rotated colour vector (v502) with a projection function onto the one-dimensional colour component (G).