Abstract:
Aspects of the present invention include an apparatus comprising a memory storing instructions, and a control unit configured to execute the instructions to detect an image of an object of interest within an image of real space, detect an orientation of the real space object image with respect to a real space user perspective, generate a modified image comprising an image of a modified object, corresponding to the real space object, such that an orientation of the modified object image corresponds to a desired user perspective, and display the modified image.

Description:
BACKGROUND 
     The present disclosure contains subject matter related to that disclosed in Japanese Priority Patent Application JP 2011-078076 filed in the Japan Patent Office on Mar. 31, 2011, the entire content of which is hereby incorporated by reference. 
     The present disclosure relates to an image processing apparatus, an image processing method, and a program. 
     Various types of information expressed in the form of texts, diagrams, symbols, images, or the like are present in the real world. These pieces of information are often presented in a manner best viewed from the front and/or from a particular orientation. 
     For example, JP 2010-202018A discloses a technology for assisting driving by recognizing the characters of traffic signs present in the periphery of a car. Also in this technology, the characters on the boards are assumed to be captured from the front. That it is preferable to view information from the front when visually reading the information is equally true for a case where the subject that reads the information is a person and a case where the subject is a computer. 
     SUMMARY 
     However, in the real world, users of information may not be optimally oriented with respect to the objects to receive printed or other information. Therefore, it would be beneficial if the surface of a real object expressing information can be easily made to face the direction of the reader or user of the information. 
     Aspects of the present invention include an apparatus comprising a memory storing instructions, and a control unit. The control unit may be configured to execute the instructions to detect an image of an object of interest within an image of real space, detect an orientation of the real space object image with respect to a real space user perspective, generate a modified image comprising an image of a modified object, corresponding to the real space object, such that an orientation of the modified object image corresponds to a desired user perspective, and display the modified image. 
     Aspects of the present invention also include a method comprising detecting an image of an object of interest within an image of real space. The method may further comprise detecting an orientation of the real space object image with respect to a real space user perspective, generating a modified image comprising an image of a modified object, corresponding to the real space object, such that an orientation of the modified object image corresponds to a desired user perspective, and displaying the modified image. 
     Aspects of the present invention further include a tangibly embodied non-transitory computer-readable medium storing instructions which, when executed by a processor, perform a method comprising detecting an image of an object of interest within an image of real space. The method may further comprise detecting an orientation of the real space object image with respect to a real space user perspective, generating a modified image comprising an image of a modified object, corresponding to the real space object, such that an orientation of the modified object image corresponds to a desired user perspective, and displaying the modified image. 
     The technology disclosed in the present specification enables to easily make the surface of a real object expressing information face the direction of the reader, for example a user of information. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a diagram for describing an overview of an image processing apparatus according to an embodiment; 
         FIG. 2  is a block diagram showing an example of the hardware configuration of an image processing apparatus according to an embodiment; 
         FIG. 3  is a block diagram showing an example of the configuration of the logical function of an image processing apparatus according to an embodiment; 
         FIG. 4  is a diagram for describing an example of the result of recognition by an image recognition unit; 
         FIG. 5A  is a first diagram for describing a first example of a generation method of an aligned image by a generation unit, in which a modified user perspective is implemented; 
         FIG. 5B  is a second diagram for describing the first example of the generation method of an aligned image by the generation unit, in which an image of a modified object having an orientation different from an orientation of the real space object image is implemented; 
         FIG. 6  is a diagram for describing a second example of the generation method of an aligned image by the generation unit; 
         FIG. 7  is a diagram showing an example of an input image displayed by an image processing apparatus according to an embodiment; 
         FIG. 8  is a first diagram for describing a process on the input image illustrated in  FIG. 7 ; 
         FIG. 9  is a second diagram for describing a process on the input image illustrated in  FIG. 7 ; 
         FIG. 10  is a diagram showing an example of an aligned image generated from the input image illustrated in  FIG. 7 ; 
         FIG. 11  is a diagram for describing an example of operation of a virtual object related to the aligned image illustrated in  FIG. 10 ; and 
         FIG. 12  is a flow chart showing an example of the flow of a process by an image processing apparatus according to an embodiment. 
     
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     Hereinafter, preferred embodiments of the present disclosure will be described in detail with reference to the appended drawings. Note that, in this specification and the appended drawings, structural elements that have substantially the same function and configuration are denoted with the same reference numerals, and repeated explanation of these structural elements is omitted. 
     1. Overview 
       FIG. 1  is an explanatory diagram for describing an overview of an embodiment of the technology disclosed in the present specification. Referring to  FIG. 1 , an image processing apparatus  100  carried by a user in a real space  1  is shown. 
     The image processing apparatus  100  may display an image obtained by capturing the real space on a screen. The image processing apparatus  100  may be a user device such as a smartphone, a PDA (Personal Digital Assistant), a game terminal, or a portable music player, or it may be an information processing apparatus such as a PC (Personal Computer) or a workstation, for example. The image may also include other devices such as servers, which may be remotely accessed by a user 
     The real space  1  is an example of a space in which the image processing apparatus  100  can be used. Real objects  12   a  and  12   b  are present in the real space  1 . The real object  12   a  is a board for announcements. It is to be understood, however, that real objects  12   a  and  12   b , and the other real object provided in the description that follows, are merely exemplary. A real object may be any object of interest to a user. A symbol mark  13   a  is attached to the real object  12   a . The real object  12   b  is a bulletin board for information display. The image processing apparatus  100  acquires an image obtained by capturing such a real space  1 , and displays the acquired image on the screen of the image processing apparatus  100 . The front faces of the real object  12   a  and  12   b  do not necessarily coincide with the optical axis direction of a device capturing an image. Here the optical axis direction of a device capturing the image may determine a user perspective, if the device capturing the image is a user image capture device. As used herein, “perspective” means the appearance of objects in a scene, as viewed by a user at a specified position and direction of view. Accordingly, if the captured image is displayed on the screen as it is, a user may not be able to correctly read the information shown on the image (for example, the information drawn on the real object  12   a  or the information presented by the real object  12   b ). Such may happen if, for example, a user perspective (e.g., the optical axis direction of the device, in certain cases) and an orientation of real object  12   a  are not in a proper relationship. Thus, as will be described in detail from the following section, the image processing apparatus  100  according to the present embodiment processes the image to create a “modified image” so that the base plane of the real object (e.g., “orientation of the object”) shown in the image faces the image plane (e.g., a desired user perspective), and thereby increases the visibility of the information shown in the image, e.g., by aligning the orientation of the object with the desired user perspective. Generating a “modified image” may also or alternatively include modifying an orientation of the object. The modifying of the orientation of the object may include any of the example modifications described herein as well as any other suitable modification. For example, the modifying of the orientation of the object may include applying a “pseudo-modification”of the orientation of the object within an image of real space, such as by applying a transformation to the image of real space. It is to be understood that any of the operations described herein (e.g., image processing, etc.) may be performed locally on a user device and/or may be performed remotely, such as by a server that is remote to the user device (e.g., a “remote server”). 
     2. Example Configuration of Image Processing Apparatus According to an Embodiment 
     2-1. Hardware Configuration 
       FIG. 2  is a block diagram showing an example of the hardware configuration of the image processing apparatus  100  according to the present embodiment. Referring to  FIG. 2 , the image processing apparatus  100  includes an imaging unit  102 , a sensor unit  104 , an input unit  106 , a storage unit  108 , a display unit  112 , a communication unit  114 , a bus  118 , and a control unit  120 . 
     Imaging Unit 
     The imaging unit  102  may include a camera module for capturing an image. The imaging unit  102  captures an image of real space by using an image sensor such as a CCD (Charge Coupled Device) or a CMOS (Complementary Metal Oxide Semiconductor), and generates a captured image. The imaging unit  102  may also include both or one of an imaging circuit for video input and an imaging circuit for still image input. 
     Sensor Unit 
     The sensor unit  104  is a group of sensors for supporting recognition of the position and the attitude of the image processing apparatus  100 , and detecting a part of user inputs to the image processing apparatus  100 . For example, the sensor unit  104  may include a GPS sensor that receives a GPS (Global Positioning System) signal and measures the latitude, the longitude, and the altitude of the image processing apparatus  100 . Also, the sensor unit  104  may include a positioning sensor that measures the position of the image processing apparatus  100  based on, for example, the intensity of a radio signal received from a wireless access point. Furthermore, the sensor unit  104  may include a motion sensor, such as an acceleration sensor that measures the three-axis acceleration of the image processing apparatus  100  or a gyro sensor that measures the tilt angle. 
     Input Unit 
     The input unit  106  is an input device used by a user to operate the image processing apparatus  100  or to input information to the image processing apparatus  100 . Typically, the input unit  106  includes a touch sensor that detects a touch of a user on the screen of the display unit  112 . Alternatively (or in addition thereto), the input unit  106  may include a pointing device such as a mouse or a touchpad, a gesture recognition module that recognizes the gesture of a user shown in the image, or a line-of-sight detection module that detects the direction of the line of sight of a user wearing a head-mounted display (HMD). Furthermore, the input unit  106  may include other types of input devices such as a keyboard, a key pad, a button, a switch, and the like. 
     Storage Unit 
     The storage unit  108  may include a storage medium such as a semiconductor memory, a hard disk, or the like, and stores program and data to be used for processing by the image processing apparatus  100 . The data to be stored in the storage unit  108  may include, for example, image data generated by the imaging unit  102  and sensor data generated by the sensor unit  104 . Data to be stored in the storage unit  108  may also include, for example, model data used at the time of recognition of a real object shown in the image. 
     Display Unit 
     The display unit  112  is a display module that is configured from an LCD (Liquid Crystal Display), an OLED (Organic Light-Emitting Diode), a CRT (Cathode Ray Tube), or the like. The display unit  112  displays on a screen an image captured by the imaging unit  102  or an image to be processed by the control unit  120 , for example. 
     Communication Unit 
     The communication unit  114  may include a communication interface that intermediates communication by the image processing apparatus  100  with another device. The communication unit  114  may support an arbitrary wireless communication protocol or wired communication protocol, and establishes a communication connection to another device. 
     Bus 
     The bus  118  may connect the imaging unit  102 , the sensor unit  104 , the input unit  106 , the storage unit  108 , the display unit  112 , the communication unit  114 , and the control unit  120  with each other. 
     Control Unit 
     The control unit  120  may include a processor such as a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or the like. The control unit  120  executes a program stored in the storage unit  108  or in another storage medium, and causes various functions of the image processing apparatus  100 . 
     2-2. Functional Configuration 
       FIG. 3  is a block diagram showing an exemplary configuration of logical function realized by the storage unit  108  and the control unit  120  of the image processing apparatus  100  shown in  FIG. 2 . Referring to  FIG. 3 , the image processing apparatus  100  includes an image acquisition unit  130 , a frame memory  132 , a model database (DB)  138 , an image recognition unit  140 , a detection unit  150 , a generation unit  160 , an image DB  162 , and a display control unit  170 . 
     (1) Image Acquisition Unit 
     The image acquisition unit  130  may acquire an image showing a real space as an input image. The image acquisition unit  130  may also acquire the latest frame of a video input from the imaging unit  102  as the input image, for example. The image acquisition unit  130  may also acquire as the input image each frame of a video input that was captured in the past and that is stored in the storage unit  108  or a still image captured as a snapshot. The image acquisition unit  130  outputs the acquired input image to the image recognition unit  140 . 
     (2) Model DB 
     The model DB  138  may include database in which model data regarding the shapes or appearances of real or other objects which are the targets of recognition by the image processing apparatus  100  is accumulated in advance. In the present embodiment, the targets of recognition by the image processing apparatus  100  are typically real objects having a surface on which certain information may be expressed, such as a board for advertisement, a board for announcements, a bulletin board, a poster, a screen, a traffic sign, and the like. The model data may include data defining the shapes of these real objects. The model data may also include image data of a symbol mark, a text label, or the like attached to these real objects. Furthermore, the model data may also include the data of feature quantity sets extracted from known images relating to these real objects. 
     (3) Image Recognition Unit 
     The image recognition unit  140  recognizes which real object is shown in the input image input from the image acquisition unit  130 , and also the three-dimensional position and attitude of the real object shown in the input image. The position and attitude of the real object recognized by the image recognition unit  140  may include the relative position and attitude to the image plane of the device which has captured the input image. The image recognition unit  140  may check the set of feature points extracted from the input image against the shape of a real object that may be defined by the model data, for example. The image recognition unit  140  may also check image data of a symbol mark, a text label or the like that may be defined by the model data against the input image. The image recognition unit  140  may also check the feature quantity of the image of a known real object that may be defined by the model data against the feature quantity extracted from the input image. In any of the cases, the image recognition unit  140  may recognize that a real object having a more desirable match score than a threshold is shown in the input image at the position and with the attitude corresponding to the match score. Also, the image recognition unit  140  may simply recognize, without using the model data, a four-sided pattern appearing in the input image as a real object having a certain rectangular pattern, for example. 
       FIG. 4  is a diagram for describing an example of the result of recognition by the image recognition unit  140 . Referring to  FIG. 4 , an exemplary input image Im 0  to be input to the image recognition unit  140  is shown. The position X a  and the attitude W a  of the real object  12   a , and the position X b  and the attitude W b  of the real object  12   b  shown in the input image Im 0  may be recognized as a result of image recognition by the image recognition unit  140 . The position X of each real object may be given as the position of the reference point (for example, the origin of a model coordinate system) of each real object by a three-dimensional global coordinate system (x, y, z). Global coordinate system may be a coordinate system indicating relative positional coordinates having the position of the image processing apparatus  100  as the origin. Alternatively, the global coordinate system may be a coordinate system that is fixedly defined in the real space. The attitude W of each real object may be given as a rotation matrix or a quaternion indicating the rotation of each real object relative to the global coordinate system. Additionally, in the present specification, the position X and the attitude W of each real object will be described as separate variates, for the sake of simplicity of explanation. However, the position X and the attitude W of each real object may also be expressed by one homogeneous transformation matrix with four rows and four columns indicating transformation between the global coordinate system and the model coordinate system of each real object. In this case, the position X and the attitude W of each real object may be extracted as necessary from the one homogeneous transformation matrix and be used. The image recognition unit  140  outputs an identifier, the position, and the attitude of each real object shown in the input image, which has been recognized in the above manner, to the generation unit  160 , and the display control unit  170 . 
     (4) Detection Unit 
     The detection unit  150  detects a user input, and outputs user input information to the generation unit  160 . The user input (or “user operation”) to be detected by the detection unit  150  may include, for example, various touch inputs to the touch sensor of the input unit  106  shown in  FIG. 2  (for example, a touch, a tap, a double-tap, a drag, a flick, a pinch in, a pinch out, and the like). Furthermore, the user input to be detected by the detection unit  150  may also include the motion of the image processing apparatus  100  (for example, tilting, shaking, or the like) measured by the sensor group of the sensor unit  104  shown in  FIG. 2 , for example. 
     In the present embodiment, a first user input detected by the detection unit  150  may indicate a trigger for shifting from a normal display mode to an aligned display mode. Whereas an input image is displayed by a display device in the normal display mode, an image generated by the generation unit  160  described below may be displayed in the aligned display mode. A second user input detected by the detection unit  150  indicates the end of the aligned display mode. When the aligned display mode is over, the state of the image processing apparatus  100  is returned to the normal display mode, and an input image is again displayed. The first user input and the second user input may be any combination of various types of user inputs described above. 
     (5) Generation Unit 
     In the aligned display mode, the generation unit  160  processes an input image so that the base plane of the real object recognized by the image recognition unit  140  faces the image plane of the device which has captured the input image, and thereby generates a processed image. That a first plane “faces” a second plane means that the first plane appears substantially parallel with the second plane, for example. In the following description, a case will be mainly referred to in which the base plane of a real object is the front face of the real object and the processed image is an aligned image which has been processed such that the front face of the real object is aligned in parallel with the image plane. In the case the real object has a plane expressing certain information, the normal direction of the plane may correspond to the front face of the real object. As can be understood from the example of  FIG. 4 , if the attitude of the real object is determined, the direction of the front face of the real object can be determined based on the attitude. However, the base plane of the real object is not limited to such an example, and it may be a plane seen from the direction of the side, the top, the back, or the bottom of the real object, or from an angle. The base plane of the real object may be defined in advance in the model data using a model coordinate system unique to the real object, for example. 
     (5-1) Aligned Image Generation Method 
     As described above, in the present embodiment, many of the real objects recognized by the image recognition unit  140  are substantially planar real objects having a rectangular pattern on their shapes or appearances. However, in a state where the front face of the real object is not aligned in parallel with the image plane, the rectangular pattern of the real object indicates, in the image, a four-sided shape other than a rectangle. The generation unit  160  generates the aligned image in such a way that such a rectangular pattern of the real object appears substantially rectangular in the aligned image. In the following, two examples of the generation method of the aligned image by the generation unit  160  will be described with reference to  FIGS. 5 and 6 . 
     A first method takes as a premise that the image processing apparatus  100  uses three-dimensional rendering. In the three-dimensional rendering, a virtual graphics of a real object may be displayed based on the shape of the real object that is defined in three dimensions (model) and a virtual viewpoint (camera position). Accordingly, in the first method, the generation unit  160  generates the aligned image by three-dimensionally rotating the viewpoint or the recognized real object such that the viewpoint in the three-dimensional rendering is positioned in the front direction of the real object. 
       FIGS. 5A and 5B  are explanatory diagrams for describing a first example of the aligned image generation method. On the left of  FIG. 5A , the positional relationship between a real object  12  shown in an input image and an image plane  103  of the image processing apparatus  100  is schematically shown. The viewpoint of the three-dimensional rendering is positioned behind the image plane  103 . X 1  and W 1  each show the relative position and attitude of the real object  12  to the image plane  103 . The position X 1  and the attitude W 1  are acquired as the results of recognition by the image recognition unit  140 . The generation unit  160  rotates, in the virtual space of the three-dimensional rendering, the position of the viewpoint by the amount of rotation a corresponding to the attitude W 1 . Thus, a modified image is generated, as viewed from a modified user perspective. The viewpoint is thereby placed in the front of the real object  12 , and the aligned image can be generated by the rendering. 
     On the left of  FIG. 5B , the positional relationship between the real object  12  and the image plane  103  of the image processing apparatus  100  that are the same as those of  FIG. 5A  is again shown. The generation unit  160  may rotate, in the virtual space of the three-dimensional rendering, the real object by the amount of rotation a corresponding to the attitude W 1 . Thus, an image is generated of a modified object having an orientation different from the orientation of a real space object image. Also in this case, the viewpoint may be placed in front of the real object  12 , and the aligned image can be generated by rendering. As a result, the rectangular pattern on the front face of the real object  12  may be displayed to be rectangular on the aligned image. 
     In a second method, the generation unit  160  generates the aligned image by applying two-dimensional Affine transformation on a partial region, in the input image, corresponding to the recognized real object. Referring to  FIG. 6 , a state is shown where the rectangular pattern on the front face of the real object  12  is shown in the input image in a skewed manner. Here, two basis vectors in the plane of the real object  12  are taken as x e  and y e . Also, two basis vectors that are orthogonal within the image plane are taken as x′ e  and y′ e . Then, a transformation matrix M trans  of Affine transformation for changing the shape of the partial region corresponding to the real object  12  such that the partial region appears rectangular may be derived by the following formula.
 
 M   trans =( x′   e   ,y′   e )( x   e   ,y   e ) −1   (1)
 
     The generation unit  160  can generate the aligned image by mapping, using such transformation matrix M trans , the pixel position of each pixel in the partial region, in the input image, corresponding to the real object  12  to a pixel position after processing in the aligned image. In the example of  FIG. 6 , a case is shown in which a pixel position P 0  in the partial region in the input image is mapped to a pixel position P 0 ′ in the aligned image by the transformation matrix M trans . 
     Additionally, the first method and the second method described above may also be applied to a case in which the base plane of the real object is a plane other than the front face of the real object. Also, in both of the first method and the second method, the generation unit  160  may enlarge (or reduce) the size of the real object  12  in the aligned image so that information expressed by the real object  12  will be of a size suitable for reading. 
     Also, the generation unit  160  may also process a peripheral region of the partial region according to the amount of processing on the real object which is the target of alignment, from the input image to the aligned image. In the first method, the amount of processing from the input image of the real object to the aligned image means the amount of rotation of the three-dimensional rotation of the viewpoint or the real object in the three-dimensional rendering. In the second method, the amount of processing from the input image of the real object to the aligned image means the amount of translation and rotation of the pixel position by the transformation matrix M trans . When such processing is performed, although the image of the peripheral region will be skewed, the visual continuity between the real object shown in the input image and its periphery can be maintained in the aligned image. A user is thereby enabled to easily understand which real object shown in the input image has been processed. 
     Furthermore, in the case reading of information expressed by the real object is expected to be difficult also in the aligned image, the generation unit  160  may replace the image of the partial region of the real object with another image. For example, the image DB  162  stores in advance, in association with each other, an image obtained by capturing at a high resolution the front face of each real object that is the target of recognition by the image processing apparatus  100  and the identifier of each real object. The generation unit  160  can thereby acquire from the image DB  162  an image related to a real object input from the image recognition unit  140  using the identifier of the real object, and replace the image of the partial region with the acquired image. 
     (5-2) Specifying of Target Real Object 
     As illustrated in  FIG. 4 , a plurality of real objects may be recognized in the input image. In such a case, the generation unit  160  may determine the real object to be aligned in parallel according to explicit specifying by a user. Specifying of a real object may be performed by a touch on the touch sensor or a click using a pointing device, on a determination area that is associated with the real object, for example. Also, the generation unit  160  may specify a real object whose base plane has the largest angle to the image plane or a real object with the largest partial region in the input image as the real object to be aligned in parallel. Also, the generation unit  160  may align in the aligned image all of the plurality of real objects in the input image in parallel with the image plane. 
     (6) Display Control Unit 
     In the normal display mode, the display control unit  170  displays the input image on the screen of the display unit  112 . Also, in the aligned display mode, the display control unit  170  displays the aligned image generated by the generation unit  160  on the screen of the display unit  112 . 
     The trigger for shifting from the normal display mode to the aligned display mode may be the detection of the first user input described above. The first user input may include a touch input to the touch sensor or a motion of the image processing apparatus  100  detected by the motion sensor, for example. Also, the display control unit  170  may shift to the aligned display mode when either of the following conditions is satisfied: 
     a) the angle of the base plane of the real object shown in the input image (the “angle of orientation” of the real object) to the image plane exceeds a threshold, or 
     b) the size of the partial region, in the input image, corresponding to the recognized real object falls below a threshold. 
     If these conditions are satisfied, it is indicated that reading of information expressed by each real object is difficult. Thus, it is beneficial to automatically display, even without a user input, the aligned image suitable for reading information if either of the conditions is satisfied. 
     Also, in the case the second user input is detected in the aligned display mode, the display control unit  170  ends the display of the aligned image, and returns to the normal display mode. The second user input may be a user input of the same type as the first user input, or may be a user input of a different type from the first user input. Furthermore, the display control unit  170  may return to the normal display mode in the case a time has passed after shifting to the aligned display mode. 
     At the time of shifting from the normal display mode to the aligned display mode, the display control unit  170  may display by the display device an animation according to which the input image is gradually changed into a processed image. This animation is an animation according to which the base plane of the target real object is gradually aligned to be in parallel with the image plane, for example. In this case, a plurality of intermediate images in which the attitude of the real object is gradually changed between the input image and the aligned image are generated by the generation unit  160 , and these intermediate images are sequentially displayed by the display device by the display control unit  170 . The continuity between the input image and the aligned image sensed by the user may be thereby enhanced. Accordingly, the user can intuitively and easily understand which real object shown in the input image has been processed. 
     Also, in the aligned display mode, the display control unit  170  may further display on the screen a virtual object related to the target real object that is displayed in parallel with the image plane, and may make the virtual object operable by the user. The virtual object here may be an annotation of the so-called Augmented Reality (AR), and may include an object expressing information content (for example, navigation information, advertisement information, shop information, news, or the like) related to each real object. For example, the display control unit  170  changes the state of the virtual object in the case a third user input for the virtual object is detected by the detection unit  150 . The state of the virtual object may include the position, the attitude, the size, the scroll position, or the like of the virtual object (for example, the information content is scrolled in the case the virtual object is dragged, and the information content is enlarged in the case the virtual object is pinched out). In the present embodiment, the visibility of information expressed by the real object is enhanced by the display of the aligned image, and thus operation of the virtual object related to the real object is also made easier for the user. 
     3. Example of Image to be Displayed 
     Next, examples of an image that may be displayed in the present embodiment will be described with reference to  FIGS. 7 to 11 . 
     Referring to  FIG. 7 , an input image Im 1   a  is displayed on the screen of the image processing apparatus  100 . A real object  12   d  and a real object  12   e  are shown in the input image Im 1   a . The image recognition unit  140  of the image processing apparatus  100  recognizes that the real object  12   d  and the real object  12   e  are shown in the input image Im 1   a , and also the position and the attitude of each real object. It is assumed that a first user input (e.g., a tap by the user on a determination area of the real object  12   d , for example) which is the trigger for display of an aligned image is detected in this situation by the detection unit  150 . Then, the generation unit  160  generates an aligned image which has been processed such that the front face of the real object  12   d  is aligned in parallel with the image plane. 
     Referring to  FIG. 8 , a partial region of the real object  12   d  recognized within the input image Im 1   a  is surrounded by a frame  13   d . The partial region of the real object  12   d  includes a rectangular pattern  14   d  that is shown being shaded by diagonal lines in the drawing. The generation unit  160  generates an aligned image in such a way that the rectangular pattern  14   d  of the real object  12   d  appears substantially rectangular within the aligned image. Referring to  FIG. 9 , the rectangular pattern  14   d  and the frame  13   d  surrounding the partial region of the real object  12   d  within an aligned image Im 1   b  generated from the input image Im 1   a  are shown. The rectangular pattern  14   d  is substantially rectangular in the aligned image Im 1   b . Furthermore, in the present embodiment, the generation unit  160  processes not only the partial region of the real object which is to be aligned in parallel but also the peripheral region of the partial region. In the example of  FIG. 9 , it is shown that not only the partial region of the real object  12   d  surrounded by the frame  13   d  but also the peripheral region where a real object  12   e  is shown is processed. 
     Referring to  FIG. 10 , the aligned image Im 1   b  generated by the generation unit  160  is displayed on the screen of the image processing apparatus  100 . The user can view information expressed by the real object  12   d  from the front of the real object  12   d  by referring to the aligned image Im 1   b  as above. 
     Furthermore, the display control unit  170  of the image processing apparatus  100  may superimpose, in a state where the aligned image is displayed, a virtual object related to the real object that is aligned in parallel with the image plane onto the aligned image and display the same. Furthermore, the virtual object may be operable by the user. Referring to  FIG. 11 , a virtual object  15   d  is superimposed onto the real object  12   d  shown in the aligned image Im 1   b  illustrated in  FIG. 10 . A state is shown in  FIG. 11  where the virtual object  15   d  is scrolled to the left by the user dragging the virtual object  15   d  on the screen, for example. Additionally, the virtual object to be superimposed onto the aligned image may be a real object image of a higher resolution, a real object image with added amount of information, texts, an icon or an image expressing certain information related to the real object, or the like. 
     4. Flow of Process 
       FIG. 12  is a flow chart showing an example of the flow of a process by the image processing apparatus  100  according to the present embodiment. Additionally, the image processing apparatus  100  is assumed to be in the state of the normal display mode at the time of start of the process shown in  FIG. 12 . 
     Referring to  FIG. 12 , first, the image acquisition unit  130  acquires as an input image, for example, an image showing the real space (step S 102 ). Next, the image recognition unit  140  recognizes which real object(s) are shown in the input image acquired by the image acquisition unit  130 , and also recognizes the three-directional position and attitude of the real object(s) shown in the input image (step S 104 ). 
     Then, the display control unit  170  may determine whether the trigger for shifting to the aligned display mode has been detected or not (step S 106 ). In the case the trigger for the aligned display mode has not been detected, the display control unit  170  causes the input image acquired by the image acquisition unit  130  to be displayed on the screen (step S 108 ). The display control unit  170  may then superimpose a certain virtual object onto the input image. For example, auxiliary virtual object(s) (such as the frame  13   d  in  FIG. 8 ) indicating the position and attitude of the real object(s) recognized by the image recognition unit  140 , or an auxiliary virtual object indicating the above-described determination area of each real object may be superimposed onto the input image. Then, the process returns to step S 102 . 
     In the case the trigger for shifting to the aligned display mode has been detected in step S 106 , the process proceeds to step S 110 . In step S 110 , the generation unit  160  determines which real object shown in the input image is to be aligned in parallel, according to explicit specifying by the user or the size or the attitude of each real object in the input image (step S 110 ). Then, the generation unit  160  generates an aligned image by processing the input image such that the base plane (for example, the front face) of the determined real object is aligned in parallel to the image plane (step S 112 ). Then, the display control unit  170  causes the aligned image generated by the generation unit  160  to be displayed on the screen (step S 114 ). 
     Then, when a trigger for ending the aligned display mode (for example, the second user input described above, lapse of a time, or the like) is detected, the state of the image processing apparatus  100  is returned to the normal display mode, and the process returns to step S 102  (step S 116 ). 
     5. Summary 
     In the foregoing, an embodiment of the present technology has been described in detail with reference to  FIGS. 1 to 12 . According to the above-described embodiment, an input image is processed such that the base plane of a real object shown in the input image faces the image plane, and the processed image is displayed. Accordingly, the base plane of a real object expressing certain information in the real world can be easily turned to the direction of the reader. Display of the processed image may be performed with a touch on the screen, a motion of the terminal, or the like as the trigger. Also, since the visibility of the information expressed by the real object is enhanced by the display of the processed image, operation of a virtual object (for example, an annotation of an AR application) displayed in association with the real object shown in the processed image also becomes easy for the user. 
     Furthermore, according to the present embodiment, the processed image may be displayed also when the angle of the base plane of the recognized real object to the image plane exceeds a threshold, or when the size of a partial region, in the input image, corresponding to the real object falls below a threshold. Accordingly, in a situation where reading of information expressed by each real object is difficult, an image suitable for reading of the information can be provided to the user without waiting for a user input. 
     Furthermore, according to the present embodiment, at the time of generation of the processed image, not only the partial region corresponding to the real object but also a peripheral region of the partial region is also processed likewise to the real object. Accordingly, the visual continuity between the real object shown in the input image and its periphery is maintained also in the processed image. The user is thereby enabled to easily understand which real object shown in the input image has been processed. 
     Furthermore, the process by the image processing apparatus  100  described in the present specification may be realized by using any of software, hardware, and a combination of software and hardware. Programs configuring the software are stored in advance in a storage medium provided within or outside the device, for example. Each program is loaded into a RAM (Random Access Memory) at the time of execution, and is executed by a processor such as a CPU (Central Processing Unit), for example. 
     Additionally, in the present embodiment, an example has been mainly described where the processed image is displayed on the screen of the display unit  112  of the image processing apparatus  100 . However, as another embodiment, the processed image may be generated from the input image at an image processing apparatus that receives the input image from a terminal device carried by the user, based on the recognition result of the attitude of the real object shown in the input image. In this case, the generated processed image may be transmitted from the image processing apparatus to the terminal device, and the processed image may be displayed on the screen of the terminal device. 
     It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and alterations may occur depending on design requirements and other factors insofar as they are within the scope of the appended claims or the equivalents thereof. 
     Additionally, the present technology may also be configured as below. 
     (1) 
     An image processing apparatus including: 
     an image acquisition unit for acquiring an input image showing a real space; 
     a recognition unit for recognizing an attitude of a real object shown in the input image; 
     a generation unit for generating from the input image a processed image which has been processed such that a base plane of the real object recognized by the recognition unit faces an image plane of the input image; and 
     a display control unit for causing a display device to display the processed image generated by the generation unit. 
     (2) 
     The image processing apparatus according to (1), 
     wherein the base plane is a front face of the real object, and 
     wherein the processed image is an aligned image which has been processed such that the front face of the real object is aligned in parallel to the image plane. 
     (3) 
     The image processing apparatus according to (2), 
     wherein the real object is a substantially planar real object having a rectangular pattern, and 
     wherein the aligned image is an image which has been processed such that the rectangular pattern appears substantially rectangular. 
     (4) 
     The image processing apparatus according to (3), 
     wherein the generation unit generates the aligned image by three-dimensionally rotating a viewpoint for three-dimensional rendering or the real object such that the viewpoint will be positioned in a front direction of the real object. 
     (5) 
     The image processing apparatus according to (3), 
     wherein the generation unit generates the aligned image by applying a two-dimensional Affine transformation on a partial region, within the input image, corresponding to the real object. 
     (6) 
     The image processing apparatus according to (4) or (5), 
     wherein the generation unit also processes a peripheral region of the partial region corresponding to the real object within the input image according to an amount of processing on the real object from the input image to the aligned image. 
     (7) 
     The image processing apparatus according to any of (1) to (6), 
     wherein the display control unit causes the display device to display the processed image in a case a first user input is detected in a state where the real object is recognized. 
     (8) 
     The image processing apparatus according to (7), 
     wherein the display control unit causes the display device to display the input image in a case a second user input is detected in a state where the processed image is displayed. 
     (9) 
     The image processing apparatus according to any of (1) to (6), 
     wherein the display control unit causes the display device to display the processed image in a case an angle of a front face of the real object to the image plane exceeds a predetermined threshold. 
     (10) 
     The image processing apparatus according to any of (1) to (6), 
     wherein the display control unit causes the display device to display the processed image in a case a size of a partial region corresponding to the real object in the input image falls below a predetermined threshold. 
     (11) 
     The image processing apparatus according to any of (1) to (10), 
     wherein the display control unit causes the display device to display, at a time of display of the processed image, an animation in which the input image is gradually changed into the processed image. 
     (12) 
     The image processing apparatus according to any of (1) to (11), 
     wherein, in a case the processed image is displayed, the display control unit causes the display device to display a virtual object related to the real object, and causes the virtual object to be operable by a user. 
     (13) 
     An image processing method including: 
     acquiring an input image showing a real space; 
     recognizing an attitude of a real object shown in the input image; 
     generating from the input image a processed image which has been processed such that a base plane of the recognized real object faces an image plane of the input image; and 
     causing a display device to display the generated processed image. 
     (14) 
     A program for causing a computer for controlling an image processing apparatus to function as: 
     an image acquisition unit for acquiring an input image showing a real space; 
     a recognition unit for recognizing an attitude of a real object shown in the input image; 
     a generation unit for generating from the input image a processed image which has been processed such that a base plane of the real object recognized by the recognition unit faces an image plane of the input image; and 
     a display control unit for causing a display device to display the processed image generated by the generation unit.