USPatentGranted
B2

Image processing method and image processing apparatus for extracting heading region from image of document

Granted 17 Sep 2013 · 2 office actions

Current assignee: KONICA MINOLTA BUSINESS TECHNOLOGIES, INC. · originally Konica Minolta

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Yoshio Komaki · Examiner: Chan S Park · AU 2669 · TC 2600

Life of the patent

9 dated events
⤢ drag to zoom20102012201420162018202020222024202620282030ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

An image processing apparatus analyzes an image of a document to thereby extract a heading region from the image. The image processing apparatus detects candidates for the heading region from the image, and defines a predetermined range in the image as a range to be processed. The apparatus further groups the candidates in the range to be processed, based on a feature quantity corresponding to a feature in terms of style of a character string. The apparatus selects a representative group from the resultant groups, and divides the range to be processed, at the position of a candidate belonging to the representative group. The apparatus newly defines each of the portions generated by the division as a range to be processed.

Description

14 parts
›This application is based on Japanese Patent Application…

This application is based on Japanese Patent Application No. 2009-223031 filed with the Japan Patent Office on Sep. 28, 2009, the entire content of which is hereby incorporated by reference.

›BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an image processing method and an image processing apparatus, and particularly to an image processing method and an image processing apparatus for extracting a heading region from an image of a document.

2. Description of the Related Art

There has conventionally been a method of extracting, from character string element regions in the whole image of a document, headings (title heading, section heading) by means of a common extraction rule that is based on a feature quantity.

For example, Document 1 (Japanese Laid-Open Patent Publication No. 11-238096) describes extraction of listed elements (corresponding to headings) from all rows on the row-by-row basis that are included in an image of a document, based on a specific feature quantity.

The technique of Document 1, however, is applied to all rows included in a document for extracting headings by means of a specific feature quantity from the whole document defined as one range. A resultant problem has therefore been that the style of a document from which headings can be appropriately extracted is significantly restricted.

In other words, in the case of a document style including background characters and repeatedly appearing small character string elements (such as itemized elements, header and footer added to a page or slide to be displayed), heading regions cannot be appropriately extracted if the same rule is applied to the whole document without exception.

Conventionally, in order to appropriately extract headings of a plurality of different levels from a document of such a style, it is necessary to add a process of extracting a feature quantity and to sophisticate the rule. The addition of a feature quantity extraction process and the sophistication of the rule, however, add the cost and increase the processing time, and thus fail in practice.

›SUMMARY OF THE INVENTION

The present invention has been made to solve the problems as described above, and an object of the invention is to provide an image processing method and an image processing apparatus with which a heading region can appropriately be extracted even from a document of a style including background characters and/or repeatedly appearing small character string elements.

According to the present invention, an image processing method is performed by an image processing apparatus for extracting a heading region from an image of a document, and includes the steps of storing the image by the image processing apparatus, and analyzing the image by the image processing apparatus. The step of analyzing the image includes the steps of: detecting candidates for the heading region, from a plurality of character string element regions in the image; defining a range including a plurality of the character string element regions as a range to be processed; grouping into groups the candidates within the range to be processed, based on a feature quantity corresponding to a feature in terms of style of a character string; detecting, for each of the groups included in the range to be processed, to what extent each group includes a characteristic of the heading region; selecting, from the groups included in the range to be processed, a group based on the extent, as a representative group; determining that the candidate belonging to the representative group is the heading region; dividing the range to be processed, at a position of the heading region; and newly defining each of portions generated by dividing the range to be processed, as the range to be processed.

According to the present invention, a computer-readable non-transitory medium is encoded with a computer program for executing the image processing method as described above.

According to the present invention, an image processing apparatus for extracting a heading region from an image of a document includes a storage unit for storing the image, and an analysis unit for analyzing the image. The analysis unit detects candidates for the heading region, from a plurality of character string element regions in the image; defines a range including a plurality of the character string element regions as a range to be processed; groups into groups the candidates within the range to be processed, based on a feature quantity corresponding to a feature in terms of style of a character string; detects, for each of the groups included in the range to be processed, to what extent each group includes a characteristic of the heading region; selects, from the groups included in the range to be processed, a group based on the extent, as a representative group; determines that the candidate belonging to the representative group is the heading region; divides a portion other than the candidate belonging to the representative group in the defined range, at a position of the candidate belonging to the representative group; and newly defines each of portions other than the candidate belonging to the representative group that are generated by dividing the portion, as the range to be processed.

The foregoing and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.

›BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic configuration diagram of a system including an image processing apparatus according to an embodiment of the present invention.

FIG. 2 is a block diagram showing a schematic configuration of the image processing apparatus according to the embodiment of the present invention.

FIG. 3 is a block diagram showing a schematic configuration of a personal computer included in the system shown in FIG. 1 .

FIG. 4 is a block diagram showing a functional configuration of the image processing apparatus according to the embodiment of the present invention.

FIG. 5 is a diagram showing an example of a data structure of an electronic document generated by the image processing apparatus according to the embodiment of the present invention.

FIG. 6 is a diagram showing an example of a data structure of bookmark data included in the electronic document in the embodiment of the present invention.

FIG. 7 is a flowchart illustrating an image analysis process in the embodiment of the present invention.

FIG. 8 is a flowchart illustrating a character string element determination process in the embodiment of the present invention.

FIG. 9 is a diagram showing an example of character string element regions.

FIG. 10 is a diagram showing a sample document.

FIG. 11 is a diagram showing an example of character string element regions defined for the sample document in FIG. 10 .

FIG. 12 is an enlarged diagram of FIG. 11 .

FIG. 13 is a diagram illustrating the result of classification of character string element regions of the sample document shown in FIG. 10 .

FIG. 14 is a flowchart illustrating a heading extraction process in the embodiment of the present invention.

FIG. 15 is a diagram illustrating the result of grouping of heading candidates in a range that is the whole sample document shown in FIG. 10 .

FIG. 16 is a table illustrating the result of determination about heading that is made for groups in a range shown by (A) of FIG. 15 .

FIG. 17 is a diagram illustrating the result of grouping of heading candidates in each of ranges generated by dividing the range shown by (A) of FIG. 15 .

FIG. 18 is a table illustrating the result of determination about heading that is made for groups in ranges shown by (A) of FIG. 17 .

FIG. 19 is a diagram illustrating the result of grouping of heading candidates in each of ranges generated by dividing a range shown by (A) of FIG. 17 .

FIG. 20 is a table illustrating the result of determination about heading that is made for groups in ranges shown in FIG. 19 .

FIG. 21 is a diagram illustrating the result of grouping of heading candidates in each of ranges generated by dividing a range shown in FIG. 19 .

FIG. 22 is a table illustrating the result of determination about heading made for groups in ranges shown in FIG. 21 .

FIG. 23 is a diagram schematically illustrating the result of the heading extraction process in the embodiment of the present invention.

FIG. 24 is a diagram showing heading regions and non-heading regions defined for the sample document shown in FIG. 10 .

FIG. 25 is a diagram for illustrating a comparative example of the heading extraction process in the embodiment of the present invention.

›DESCRIPTION OF THE PREFERRED EMBODIMENTS · 1 of 3

An embodiment of the present invention will be described in detail with reference to the drawings. In the drawings, the same or corresponding components are denoted by the same reference characters, and a description thereof will not be repeated.

In the present embodiment, an image processing apparatus defines ranges (step by step) to which a heading extraction rule is applied for extracting a heading from heading candidates in a document image. For the defined ranges each, a heading extraction rule is applied to thereby appropriately extract a heading region from a document image having a variety of document styles including headings of multiple levels.

The image processing apparatus in the present embodiment will hereinafter be described in detail.

As to Configuration

Entire System Configuration

In connection with the present embodiment, an MFP (Multi Function Peripheral) will exemplarily be described as a form of the image processing apparatus of the present invention. It should be noted that the image processing apparatus of the present invention is not limited to the MFP, and is applicable as well to a copier, a facsimile apparatus, a scanner apparatus, and the like.

Referring to FIG. 1 , an MFP 1 according to the present embodiment includes an image reader unit 104 for reading an original 300 , and a printer unit 106 for performing a printing process on a paper medium and the like.

Especially, MFP 1 according to the present embodiment obtains a document image by reading original 300 with image reader unit 104 , and generates an electronic document 400 containing this document image. Typically, a format such as PDF (Portable Document Format) can be used for electronic document 400 . Here, MFP 1 extracts at least one heading region from the document image, and generates viewing navigation information for identifying the position where the extracted heading region is located in the document image.

“Viewing navigation information” refers to information for assisting a user in viewing a document image contained in an electronic document, and more specifically to information for identifying the position where a heading region or the like contained in the document image is located. By way of example, such viewing navigation information includes “bookmark”, “annotation”, “thread”, “link” and the like, and may also include a thumbnail (size-reduced image) or the like of a corresponding heading region, in addition to the information for identifying the position of the heading region. In connection with the present embodiment, a description will be given of a configuration using “bookmark” as a representative example of “viewing navigation information”.

MFP 1 stores generated electronic document 400 in its storage unit (not shown), and also transmits the electronic document to personal computers PC 1 , PC 2 , and PC 3 (also referred to collectively as “personal computer PC” hereinafter) and a mobile terminal MT through a network. In an exemplary form of use, MFP 1 directly transmits electronic document 400 to personal computers PC 1 and PC 2 connected to a LAN (Local Area Network) that is a network installed in the same office in which MFP 1 is installed. A server apparatus SRV is provided at a point where the LAN and a WAN (Wide Area Network) are connected, and electronic document 400 is transmitted through server apparatus SRV from MFP 1 to personal computer PC 3 and the like in an office located away from MFP 1 . Furthermore, electronic document 400 is transmitted from MFP 1 to mobile terminal MT through a wireless network such as the WAN, public mobile telephone network and wireless LAN (not shown). Here, server apparatus SRV exemplarily includes mail server, FTP (File Transfer Protocol) server, Web server, SMB server, and the like.

Image reader unit 104 includes a set tray for setting an original thereon, a platen glass, a conveyer unit automatically conveying the original set on the set tray to the platen glass one by one, and a discharge tray for discharging the read original (all are not shown). Thus, a plurality of originals can be successively read to generate one electronic document 400 .

Schematic Configuration of MFP

Referring to FIG. 2 , MFP 1 includes a control unit 100 , a memory 102 , image reader unit 104 , printer unit 106 , a communication interface 108 , and a data storage unit 110 .

Control unit 100 is exemplarily configured as a processing device such as CPU (Central Processing Unit), and executes a program to thereby implement document image processing according to the present embodiment. Memory 102 is exemplarily a volatile memory device such as DRAM (Dynamic Random Access Memory), and stores for example a program to be executed by control unit 100 and data required to execute the program. Communication interface 108 is exemplarily a component for transmitting and receiving data to and from personal computer PC ( FIG. 1 ) and mobile terminal MT through a network (LAN shown in FIG. 1 for example), and includes a LAN adaptor and driver software for controlling the LAN adaptor. Printer unit 106 is a component for performing a printing process, and includes a control device for controlling operation of each component in addition to a hardware configuration for the printing process. Data storage unit 110 is exemplarily a hard disk device or a nonvolatile memory device such as flash memory, and stores electronic document 400 and the like generated by control unit 100 .

Configuration of Personal Computer

Referring to FIG. 3 , personal computer PC includes a CPU (Central Processing Unit) 201 executing various kinds of programs including an operating system (OS), a memory 213 temporarily storing data required to execute a program by CPU 201 , and a hard disk drive (HDD) 211 storing a program to be executed by CPU 201 in a nonvolatile manner. In addition, hard disk drive 211 stores a viewing application for displaying an electronic document generated by MFP 1 , and such a program is read from a memory card (SD card for example) 217 a or a CD-ROM (Compact Disk-Read Only Memory) 215 a by an input/output interface 217 or a CD-ROM drive 215 , or the like.

›DESCRIPTION OF THE PREFERRED EMBODIMENTS · 2 of 3

CPU 201 receives an instruction from a user through an input device 209 such as keyboard and mouse, and outputs a screen output generated through execution of a program to a display unit 205 . CPU 201 also obtains an electronic document from MFP 1 and server SRV ( FIG. 1 ) connected to the LAN and the WAN through a communication interface 207 including a LAN card or the like, and stores the electronic document in hard disk drive 211 or the like. Further, the above components exchange data with each other through an internal bus 203 .

Here, since mobile terminal MT is substantially equivalent to the one shown in FIG. 3 from which CD-ROM drive 215 for example is removed, the detailed description will not be repeated.

Functional Configuration of MFP

Referring to FIG. 4 , a functional configuration of MFP 1 includes image reader unit 104 , an image pre-processing unit 12 , an image buffer unit 13 , a compression processing unit 14 , an electronic document generation unit 15 , an image analysis unit 16 , a bookmark data generation unit 17 , a transmission unit 18 , an image processing unit 19 , and printer unit 106 . The functions of MFP 1 are mainly implemented by control unit 100 and memory 102 ( FIG. 2 ) for example of MFP 1 .

Image reader unit 104 obtains a document image by reading original 300 , and outputs the document image to image pre-processing unit 12 . Image pre-processing unit 12 adjusts display characteristics and the like of the document image mainly for making them suitable for display on personal computer PC and the like. Furthermore, image pre-processing unit 12 may remove noise contained in the document image. Then, the document image having undergone image processing by image pre-processing unit 12 is transmitted to image buffer unit 13 .

Image buffer unit 13 is a component temporarily storing the data of the obtained document image, and outputs the temporarily stored document image to compression processing unit 14 , image analysis unit 16 , and image processing unit 19 .

Compression processing unit 14 compresses the document image that is output from image buffer unit 13 , and outputs the resultant document image to electronic document generation unit 15 . The degree of compression by this compression processing may be changed depending on the size of an electronic document to be generated and a required resolution of the document image for example. Further, the compression processing may be irreversible conversion such as JPEG (Joint Photographic Experts Group). In addition, where a high resolution is required for example, the compression processing may not be performed.

Image analysis unit 16 analyzes the document image that is output from image buffer unit 13 , and extracts a heading region. Image analysis unit 16 includes a detection unit 161 and a heading extraction unit 162 as its functions.

Detection unit 161 divides the document image into a plurality of character string element regions, and detects heading candidates among the plurality of character string element regions. In the present embodiment, a plurality of character string element regions are classified into a small region and a large region, and a small region is detected as a heading candidate, and a large region is detected as text. The classification into a small region and a large region is based on, for example, the size of a region (such as the number of rows, the area, the number of characters), and whether or not the region contains specific characters (such as characters less frequently used for a heading, period, and other punctuation marks).

In the present embodiment, “character string element regions” refer to regions each surrounding one or a series of rows and distinguished from other regions by the preceding and following spaces and/or punctuation marks, and correspond to paragraph (text), heading, and header and footer regions. A specific example of how to define the character string element regions will be described hereinafter.

Heading extraction unit 162 extracts heading regions from the heading candidates detected by detection unit 161 . For this purpose, heading extraction unit 162 performs the following process.

For detected heading candidates, heading extraction unit 162 defines a range (step by step) to which a heading extraction rule is applied. Heading candidates (small regions) within the defined range are grouped based on a feature quantity representing a predetermined style type.

“Style type” refers to an item for identifying a feature in terms of the style of a character string, and includes the amount of indent, the height of a row, the color of characters, the background color, the central position of a region, justification, the line width of characters, respective distances from the preceding character string element region and the following character string element region, character string modifications (underline, border), the character size, the character spacing, font, character modifications (bold, italic), and the like. In the present embodiment, it is desirable to determine in advance a style type that is effective in distinguishing logical elements from each other, as a style type to be used for grouping heading candidates. Specifically, for example, “amount of indent (left-side starting position)” and “height of a row” are used as style types. A region having respective feature quantities of these style types (namely the value indicating the left-side starting position and the value indicating the height of a row) and a region having feature quantities similar to the aforementioned feature quantities are identified as belonging to the same group. For example, regions having a distribution of the feature quantity (value) of the left-side starting position and a distribution of the feature quantity (value) of the height of a row that fall within respective predetermined ranges are identified as belonging to the same group.

Heading extraction unit 162 detects group characteristics group by group, applies a predetermined heading extraction rule (described hereinafter) to the results of detection of the group characteristics, and thereby selects (detects) a group representing the range (hereinafter “representative group”). The representative group is a group of heading candidates having characteristics (features) that are most like those of a heading, in the defined range.

›DESCRIPTION OF THE PREFERRED EMBODIMENTS · 3 of 3

“Group characteristics” refer to information about likelihood/unlikelihood that a candidate is a heading, namely information that is effective in determining whether a heading candidate belonging to a group is a heading representing a range. The group characteristics include the above-described feature quantities of the style types used for grouping candidates, namely i) “left-side starting position” and ii) “height of a row”, and further include, as features that depend on a defined range, at least one of the uppermost position of a heading candidate in the defined range, and the relation in terms of the order between a heading candidate and a text (large region) in the defined range. Specifically, as the former feature, iii) “position of the most upstream heading candidate within a group” is used. As the latter feature, iv) “whether a heading candidate located upstream of all text regions in the range is included” and v) “whether a heading candidate without being followed by a text located downstream in the range is included” are used.

It is desirable that heading extraction unit 162 excludes, from the representative group, a group that does not satisfy a predetermined criterion when a heading extraction rule is applied to the results of detection of the group characteristics (less than a predetermined threshold for example). Such a process can be added to avoid erroneous determination about the heading.

Heading extraction unit 162 determines that a heading candidate included in the representative group is a heading region. It may be determined that a heading candidate belonging to the group excluded from the representative group is a non-heading-candidate. Namely, it may be determined that a heading candidate within a range including only the group excluded from the representative group is not a heading.

Heading extraction unit 162 divides the original range based on the position of the heading candidate included in the representative group. Specifically, the defined range is divided at a position before or after the heading candidate belonging to the representative group. Among ranges generated by dividing the original range, only a range(s) including a heading candidate for which the determination about whether the heading candidate is a heading or not has not been made is a newly defined range(s).

Heading extraction unit 162 performs again the process similar to the above-described one on the ranges generated by the division, Thus, the process from the grouping of heading candidates to the division of the range is repeated until there is no range that can be defined.

In this way, the results of detection of group characteristics that depend on the defined range is used to select the representative group that is most likely to be a heading. Heading regions can therefore be extracted appropriately from a document image having a variety of document styles including headings of multiple levels.

Heading extraction unit 162 outputs information about the heading candidates identified as heading regions (such as positional information) to bookmark data generation unit 17 .

Bookmark data generation unit 17 generates bookmark data based on the information about the heading regions that is output from image analysis unit 16 . Bookmark data generation unit 17 may also include, in the bookmark data, information about a specific logical element (such as figure, table, and caption) other than the heading. Bookmark data generation unit 17 outputs the generated bookmark data to electronic document generation unit 15 .

Electronic document generation unit 15 generates an electronic document by adding the bookmark data from bookmark data generation unit 17 to the document image compressed by compression processing unit 14 . Then, the generated electronic document is stored in data storage unit 110 or output to transmission unit 18 , depending on for example the setting by a user. Transmission unit 18 is implemented by communication interface 108 , and transmits the electronic document generated by electronic document generation unit 15 to personal computer PC ( FIG. 1 ) for example through the network such as LAN.

Meanwhile, image processing unit 19 converts the document image that is output from image buffer unit 13 into an image suitable for the printing operation by printer unit 106 , in accordance with a user's operation. In an exemplary case, a document image defined by the RGB display system is converted into image data of the CMYK display system or the like suitable for color printing. At this time, the color may be adjusted based on the characteristics of printer unit 106 . Printer unit 106 performs a printing process on a paper medium or the like based on the image data that is output from image processing unit 19 .

It should be noted that the operation of each functional block may be implemented by execution of software stored in memory 102 , or at least one of functional blocks may be implemented by hardware.

›Example of Data Structure of Electronic Document · 1 of 5

Referring to FIG. 5 , electronic document 400 includes a header section 402 , a document image section 404 , a bookmark data section 406 , and a footer section 408 . Header section 402 and footer section 408 store information about attributes of electronic document 400 such as date and time of creation, creator, and copyright information. Document image section 404 stores a document image corresponding to each page. This document image may be stored in the compressed state as described above. Bookmark data section 406 stores the bookmark data for specifying a heading region included in the document image, that is, a character string element region (small region) identified as a heading.

Referring to FIG. 6 , the bookmark data stores, in association with each heading region, the page number, the region's upper left coordinates, the region's lower right coordinates, and the type of the element, for example. The page number is positional information for specifying a page where the associated heading region is present. The region's upper left coordinates and the region's lower right coordinates are positional information for specifying the position (rectangle) of the associated heading region in the page. The type of the element is information for specifying the type of the associated heading region. It should be noted that the bookmark data may further include positional information about a document element (region) of a type other than the heading.

As to Operation

The process executed by image analysis unit 16 (hereinafter referred to as “image analysis process”) is the most characteristic process among the processes executed by MFP 1 . Therefore, details of the image analysis process will hereinafter be described.

Referring to a flowchart shown in FIG. 7 , a description will be given of the image analysis process in this embodiment of the present invention. The process shown in the flowchart of FIG. 7 is stored as a program in advance in memory 102 , and control unit 100 reads and executes this program and thereby the function of the image analysis process is implemented.

Referring to FIG. 7 , image analysis unit 16 inputs data of a document image (step S 2 ). The input data of the document image is stored on an internal memory page by page.

Then, the data of each page on the internal memory is read and a content region is determined (step S 4 ). The content region is a partial region of each page and each content region includes characters of one paragraph.

“Content region” refers to a region corresponding to one paragraph on a page, and is set at the same position with respect to each page. The content region can be determined by any of various existing methods.

For example, a projection histogram in the vertical direction is generated for a density image of a page, and lateral positions of the content region are obtained from the position having the lower total density. Similarly, a projection histogram in the lateral direction is generated, and vertical start and end positions of the content region are obtained.

Then, image analysis unit 16 determines a row region (step S 6 ). The row region can be determined by any of various existing methods. For example, a projection histogram in the lateral direction is generated for the density image of the content region, and the positions of upper and lower ends of each row region are determined from the position having the lower total density.

Subsequently, image analysis unit 16 determines a character string element region (character string element determination process) (step S 8 ). The character string element region is generated by integrating row regions. Image analysis unit 16 controls the integration using the size of the rightmost space of each row region and the type of the last character of the row.

Referring to a flowchart of FIG. 8 , a description will be given of the character string element determination process in this embodiment of the present invention.

With reference to FIG. 8 , one character string element region in an initial state is generated first (step S 102 ). Then, one unprocessed row region is obtained, following the order of reading (step S 104 ). More specifically, the row region located uppermost in the leftmost content region on the page of the smallest page number is obtained.

Here, it is determined whether or not the row region has been successfully obtained in step S 104 (step S 106 ). When there is no unprocessed row region, it is determined that the row region has not been obtained successfully (NO in step S 106 ), and the process proceeds to step S 114 .

In contrast, when the row region has been obtained successfully (YES in step S 106 ), the obtained row region is integrated into the character string element region (step S 108 ).

Next, image analysis unit 16 determines whether or not the obtained row region is the last row (step S 110 ). More specifically, it is determined whether the rightmost space of the obtained row region is of a predetermined value or more, or whether the type of the last character of the row is a period. The predetermined value of the rightmost space is set for example to the height of characters included in the row region. When it is determined that the obtained row region is the last row (YES in step S 110 ), the process proceeds to step S 112 . Otherwise (NO in step S 110 ), the process returns to step S 104 , and the above steps are repeated.

In step S 112 , image analysis unit 16 completes the character string element region. After this step, the process proceeds to step S 114 .

In step S 114 , it is determined whether or not all content regions have been processed. When there is an unprocessed content region (NO in step S 114 ), the process returns to step S 102 . When there is no unprocessed content region (YES in step S 114 ), the character string element determination process is completed.

Referring to FIG. 9 , an example of the character string element region will be described.

It is supposed that (A) of FIG. 9 shows a part of row regions determined in step S 6 of FIG. 7 . (B) of FIG. 9 shows the result of the determination of character string element regions performed on the row regions shown by (A) of FIG. 9 .

›Example of Data Structure of Electronic Document · 2 of 5

It is determined in step S 110 that row regions LE 1 , LE 11 , LE 14 , LE 15 , and LE 23 , each have a rightmost space. Row regions LE 1 and LE 15 thus form respective character string element regions CE 1 # and CE 4 # by themselves. Row regions LE 2 to LE 11 , LE 12 to LE 14 , and LE 16 to LE 23 are integrated in the vertical direction to generate character string element regions CE 2 #, CE 3 #, and CE 5 #, respectively.

It should be noted that, in the case where a character string element region has a rightmost space, the region except for the rightmost space is set as a character string element region.

In the present embodiment, the character string element regions are defined by the above-described method. The method is not limited to the particular one, and the character string element regions may be defined by a known method.

A process executed by image analysis unit 16 after the character string element regions are defined will be described using an exemplary sample document shown in FIG. 10 .

FIG. 10 is a diagram showing sample document 30 in which background characters are inserted. Sample document 30 shown in FIG. 10 is an image obtained by image reader unit 104 and stored in image buffer unit 13 . In sample document 30 , background characters “PROJECT A” and “2009 ACTIVITIES” are repeatedly inserted. As such background characters are inserted, a reader who sees only a part of the document can confirm a subject of the document.

An example of character string element regions defined for sample document 30 in FIG. 10 is shown in FIG. 11 .

Referring to FIG. 11 , for sample document 30 , character string element regions CE 1 to CE 21 are defined. FIG. 12 is a partially enlarged diagram of FIG. 11 .

Character string element regions CE 1 to CE 21 shown in FIG. 11 will be used as an example to describe a subsequent process.

Referring again to FIG. 7 , when the character string element determination process is completed, detection unit 161 of image analysis unit 16 classifies the character string element regions into a large region and a small region (step S 10 ). More specifically, the area of each character string element region, the average height of characters in the whole document, and the average width of the content region in the whole document, for example, are determined. When the area of the character string element region is larger than (average height of characters in the whole document)×(average width of the content region in the whole document)×2, it is determined that the character string element region is a large region, and otherwise, it is determined that the character string element region is a small region.

Alternatively, it may be determined that a character string element region is a small region when the region is smaller than a predetermined value (one row for example). Likewise, it may be determined that a character string element region is a large or small region, from the number of characters in the region.

FIG. 13 is a diagram illustrating the result of classification of character string element regions CE 1 to CE 21 in sample document 30 . In FIG. 13 , (A) schematically shows character string element regions CE 1 to CE 21 each in a rectangular form in sample document 30 , and (B) illustrates the result of classification of character string element regions CE 1 to CE 21 shown by (A).

Referring to FIG. 13 , it is determined that character string element regions CE 5 , CE 10 , CE 16 , CE 18 , and CE 21 are large regions BE 1 to BE 5 , respectively. It is also determined that remaining regions CE 1 to CE 4 , CE 6 to CE 9 , CE 11 to CE 15 , CE 17 , CE 19 , and CE 20 are small regions SE 1 to SE 16 , respectively.

Small regions SE 1 to SE 16 are treated as candidates for heading regions (hereinafter referred to as “heading candidates”). Large regions BE 1 to BE 5 are treated as text regions.

Then, a process of extracting heading regions from heading candidates SE 1 to SE 16 which are small regions (heading extraction process) is executed (step S 12 ).

FIG. 14 is a flowchart illustrating the heading extraction process in the present embodiment.

Referring to FIG. 14 , heading extraction unit 162 first defines the whole document as a range to be processed (step S 102 ). Specifically, the range including all character string element regions CE 1 to CE 21 in the document image (namely heading candidates SE 1 to SE 16 and text regions BE 1 to BE 5 ) is defined as a range to be processed.

Heading extraction unit 162 groups heading candidates SE 1 to SE 16 in the defined range into groups each constituted of heading candidates having respective feature quantities of a predetermined style type that are similar to each other (step S 104 ). Namely, heading candidates that are identical or within a predetermined range in terms of both of the left-side starting position and the height of a row are defined as belonging to the same group.

FIG. 15 is a diagram illustrating the result where the whole of sample document 30 is defined as a range R 1 and heading candidates SE 1 to SE 16 in range R 1 are grouped into groups. (A) of FIG. 15 illustrates an example where all character string element regions, namely range R 1 including heading candidates SE 1 to SE 16 and text regions BE 1 to BE 5 , are defined as a range to be processed. (B) of FIG. 15 illustrates the result of grouping of heading candidates (small regions) SE 1 to SE 16 in range R 1 shown by (A) of FIG. 15 .

Referring to (B) of FIG. 15 , heading candidates SE 1 , SE 2 , SE 5 , SE 6 , SE 9 , SE 10 , SE 12 , SE 13 , SE 15 , and SE 16 belong to “Group 1”. Heading candidate SE 3 belongs to “Group 2”. Heading candidates SE 4 , SE 7 , and SE 14 belong to “Group 3”. Heading candidates SE 8 and SE 11 belong to “Group 4”.

Heading extraction unit 162 detects group characteristics group by group (step S 106 ), In the present embodiment, for each group, i) “left-side starting position”, ii) “height of a row”, and iii) “position of a heading candidate located most upstream in the group” are used as the group characteristics. Then, it is detected iv) “whether a heading candidate located upstream of all text regions in the range is included” and v) “whether a heading candidate without followed by a text region located downstream in the range is included”.

›Example of Data Structure of Electronic Document · 3 of 5

After detecting these group characteristics, heading extraction unit 162 compares the results of detection following a predetermined heading extraction rule and accordingly selects a group representing the range (step S 108 ). A heading candidate included in the selected group is confirmed as a heading region.

The heading extraction rule is applied to determine whether the results of detection of the group characteristics i) to v) indicate the likelihood that a heading candidate is a heading. Here, the rule is defined as adding or subtracting a point in advance to each result of detection. Heading extraction unit 162 determines that a group having the maximum total point is a group representing the range (representative group). Here, the condition applied to each of the group characteristics i) to v) and the point to be added or subtracted are as follows:

i) a group where “left-side starting position” is located leftmost (small indent amount): point +1; ii) a group where “height of a row” is largest: point +1; iii) a group where the position of the most upstream heading candidate is located uppermost in the range: point +1; iv) a group including a heading candidate located upstream relative to all texts in the range: point +5; and v) a group including a heading candidate without followed by a text located downstream in the range: point −10.

It should be noted that the weight of the point to be added/subtracted for each of the above-described group characteristics is not limited to the above-described one.

FIG. 16 is a table illustrating the result of determination about the heading made for Groups 1 to 4 in range R 1 . The information as shown in FIG. 16 is temporarily recorded on a work area of memory 102 for example in the heading extraction process.

In the table of FIG. 16 , Groups 1 to 4 are described in the column direction. In the row direction, seven items namely the number of headings, i) left-side starting position, ii) height of a row, iii) most upstream position, iv) whether or not a candidate region (heading candidate) located upstream of all texts is included, and v) whether or not a candidate region (heading candidate) without followed by a text located downstream is included, and the total point are described.

For the item of the number of headings, the number of included heading candidates is recorded for each group.

In the cells under the items from i) left-side starting position to v) whether or not a candidate region (heading candidate) without followed by a text located downstream is included, the results of detection are recorded in the upper row, and the points for the results to which the above-condition (extraction rule) is applied are recorded in the lower row.

For the item of the total point, the total point is recorded for each group.

Heading extraction unit 162 determines whether a representative group is present in the range (step S 110 ). Specifically, when there is no group having the total point of not less than a predetermined threshold (point 5 for example) in the range, it is determined that a representative group is absent in the range. In other words, when the total point of a group having the maximum total point in the range is less than the threshold, this group is excluded from the representative group. Thus, it is determined that the range does not include a representative group.

When a representative group is present in the range (YES in step S 110 ), namely when a group having the total point of not less than 5 is present, it is determined that a heading candidate belonging to the representative group is a heading region (step S 112 ). In range R 1 , Group 2 has the total point of 7. It is therefore determined that Group 2 is a representative group, and it is determined that a heading candidate in Group 2 is a heading region.

In contrast, when it is determined that a representative group is not present in the range (NO in step S 110 ), namely there is no group having the total point of not less than 5, it is determined that the range does not include a group of a heading candidate that is likely to be a heading, and the process proceeds to step S 118 .

In step S 118 , it is determined whether or not an unprocessed range remains. When an unprocessed range is present (YES in step S 118 ), heading extraction unit 162 defines the unprocessed range as a range to be processed (step S 120 ). When an unprocessed range is not present (NO in step S 118 ), the heading extraction process is ended.

In this way, a threshold is set for the total point, and a range assumed to include no group of a heading candidate that is likely to be a heading is excluded from the determination about the heading. Thus, the time for the heading extraction process can be shortened.

After step S 112 , heading extraction unit 162 outputs the positional information about the heading region to bookmark data generation unit 17 (step S 114 ).

Subsequently, original range R 1 is divided at the position of the heading region belonging to the representative group (step S 116 ). Ranges generated by the division are newly defined as unprocessed ranges. One of the defined unprocessed ranges (a range located upstream for example) is defined as a range to be processed. In the present embodiment, original range R 1 is divided by removing the portion between the upper side and the lower side of the heading region belonging to the representative group.

After the range is divided, the process returns to step S 104 and the above-described process is repeated for the range to be processed.

Thus, for the two ranges generated by dividing range R 1 shown by (A) of FIG. 15 , the process in steps S 104 to S 116 is executed again.

FIG. 17 is a diagram illustrating the result of grouping of heading candidates SE 1 to SE 2 and SE 4 to SE 16 in two ranges R 11 and R 12 respectively generated by dividing range R 1 shown by (A) of FIG. 15 (step S 104 ). (A) of FIG. 17 illustrates an example where two ranges R 11 and R 12 are defined with respect to the position of the heading (small region SE 3 ) belonging to the representative group (Group 2) in the original range R 1 . (B) of FIG. 17 illustrates the result of grouping of heading candidates (small regions) in each of ranges R 11 and R 12 shown by (A) of FIG. 17 .

›Example of Data Structure of Electronic Document · 4 of 5

In range R 11 , heading candidates SE 1 and SE 2 belong to “Group 1 — 1”. In range R 12 , heading candidates SE 5 , SE 6 , SE 9 , SE 10 , SE 12 , SE 13 , SE 15 , and SE 16 belong to Group 1 — 2”. Groups 3 and 4 in range R 12 are the same as those in range R 1 .

The result of determination about the heading made for the groups in ranges R 11 and R 12 is illustrated in FIG. 18 .

(A) of FIG. 18 shows a table illustrating the result of determination about the heading made for Group 1 — 1 in range R 11 . Referring to (B) of FIG. 17 and (A) of FIG. 18 , range R 11 includes Group 1 — 1 only, and no text region is present in range R 11 . Therefore, for such Group 1 — 1 in range R 11 , the determination about the heading may be ended without applying the heading extraction rule.

(B) of FIG. 18 shows a table illustrating the result of determination about the heading made for Group 1 — 2, Group 3, and Group 4 in range R 12 , In range R 12 , Group 3 has the maximum total point that is not less than the threshold (point 5). From range R 12 , therefore, Group 3 is selected as a representative group (step S 108 , YES in step S 110 ). Accordingly, it is determined that heading candidates SE 4 , SE 7 , and SE 14 belonging to Group 3 are heading regions, and the positional information about these regions SE 4 , SE 7 , and SE 14 is output to bookmark data generation unit 17 (steps S 112 , S 114 ).

FIG. 19 is a diagram illustrating an example where original range R 12 is divided into three ranges R 21 , R 22 , and R 23 with respect to respective positions of the headings (regions SE 4 , SE 7 , SE 14 ) belonging to the representative group (Group 3) in range R 12 .

For ranges R 21 , R 22 , and R 23 each, heading candidates are again grouped (step S 104 ). In range R 21 , heading candidates SE 5 and SE 6 belong to “Group 1 — 2 — 1” In range R 22 , heading candidates SE 9 , SE 10 , SE 12 , and SE 13 belong to “Group 1 — 2 — 2”. In range R 22 , Group 4 is the same as that in range R 1 . In range R 23 , heading candidates SE 15 and SE 16 belong to “Group 1 — 2 — 3”.

The result of determination about the heading for the groups in ranges R 21 , R 22 , and R 23 is illustrated in FIG. 20 .

In FIG. 20 , (A) shows a table illustrating the result of determination about the heading made for Group 1 — 2 — 1 in range R 21 , (B) shows a table illustrating the result of determination about the heading made for Group 1 — 2 — 2 and Group 4 in range R 22 , and (C) shows a table illustrating the result of determination about the heading made for Group 1 — 2 — 3 in range R 23 .

Referring to (A) of FIG. 20 , range R 21 includes text region BE 1 , and text region BE 1 is located most upstream in range R 21 . The total point of Group 1 — 2 — 1 is therefore a small value of −7. Thus, because the total point of Group 1 — 2 — 1 is less than the threshold (point 5), it is determined that range R 21 does not include a representative group (NO in step S 110 ). Accordingly, Group 1 — 2 — 1 is excluded from heading candidates.

Referring to (B) of FIG. 20 , Group 4 in range R 22 has the maximum total point that is not less than point 5. Therefore, from range R 22 , Group 4 is selected as a representative group (step S 108 , YES in step S 110 ). Thus, it is determined that heading candidates SE 8 and SE 11 belonging to Group 4 are heading regions, and the positional information about these regions SE 8 and SE 11 is output to bookmark data generation unit 17 (steps S 112 , S 114 ).

Referring to (C) of FIG. 20 , the total point of Group 1 — 2 — 3 in range R 23 is 3 that is less than the threshold (point 5). It is therefore determined that range R 23 does not include a representative group (NO in step S 110 ). As a result, Group 1 — 2 — 3 is excluded from heading candidates.

FIG. 21 is a diagram illustrating an example where original range R 22 including the representative group is divided into two ranges R 31 and R 32 with respect to respective positions of the headings (regions SE 8 , SE 11 ) belonging to the representative group (Group 4) in range R 22 .

For ranges R 31 and R 32 each, the heading candidates are grouped again (step S 104 ). In range R 31 , heading candidates SE 9 and SE 10 belong to “Group 1 — 2 — 3 — 1”. In range R 32 , heading candidates SE 12 and SE 13 belong to “Group 1 — 2 — 3 — 2”.

The result of determination about the heading made for the groups in ranges R 31 and R 32 is illustrated in FIG. 22 .

(A) of FIG. 22 shows a table illustrating the result of determination about the heading made for Group 1 — 2 — 3 — 1 in range R 31 . (B) of FIG. 22 shows a table illustrating the result of determination about the heading made for Group 1 — 2 — 3 — 2 in range R 32 .

Referring to (A) of FIG. 22 , range R 31 includes text region BE 2 , and text region BE 2 is located most upstream in range R 31 . Therefore, the total point of Group 1 — 2 — 3 — 1 is a small value of −7. Thus, because the total point of Group 1 — 2 — 3 — 1 is less than the threshold (point 5), it is determined that range R 31 does not include a representative group (NO in step S 110 ). As a result, Group 1 — 2 — 3 — 1 is excluded from heading candidates.

Referring to (B) of FIG. 22 , the total point of Group 1 — 2 — 3 — 2 in range R 32 is 8 which is not less than point 5. It is therefore determined that Group 1 — 2 — 3 — 2 is a representative group of range R 32 (step S 108 , YES in step S 110 ). Accordingly, it is determined that heading candidates SE 12 and SE 13 belonging to Group 1 — 2 — 3 — 2 are heading regions, and the positional information about these regions SE 12 and SE 13 is output to bookmark data generation unit 17 (steps S 112 , S 114 ).

New ranges defined at the positions of the headings belonging to Group 1 — 2 — 3 — 2, however, include no heading candidate, and therefore invalid.

FIGS. 23 and 24 show heading regions defined for sample document 30 shown in FIG. 10 .

Referring to FIG. 23 , among the small regions (heading candidates) SE 1 to SE 16 shown by (B) of FIG. 13 , regions SE 3 , SE 4 , SE 7 , SE 8 , and SE 11 to SE 14 except for the gray regions are identified as heading regions. These regions belong to Group 2, Group 3, Group 4, and Group 1 — 2 — 3 — 2 extracted as groups (representative groups) of headings as a result of the above-described process.

›Example of Data Structure of Electronic Document · 5 of 5

Small regions SE 1 , SE 2 , SE 5 , SE 6 , SE 9 , SE 10 , SE 15 , and SE 16 that are gray regions are the regions belonging to Group 1 — 1, Group 1 — 2 — 1, Group 1 — 2 — 3, and Group 1 — 2 — 3 — 1 excluded from heading candidates as a result of the above-described process.

Referring to FIG. 24 , it is seen that heading candidates SE 1 , SE 2 , SE 5 , SE 6 , SE 9 , SE 10 , SE 15 , and SE 16 that are identified as non-headings correspond to regions of background characters.

As heretofore described, according to the present embodiment, headings can be extracted appropriately, even from a document in which background characters are repeatedly inserted, by narrowing the range step by step and using feature quantities of a few style types (the left-side starting position and the height of a row) for which calculation is easy.

›COMPARATIVE EXAMPLE · 1 of 2

A description will be given of determination about the heading made for the whole document defined as one range without being narrowed for sample document 30 shown in FIG. 10 , as a comparative example of the present embodiment.

For the comparative example as well, it is supposed that character string element regions (small regions) SE 1 to SE 16 that are heading candidates as shown by (B) of FIG. 13 are detected.

FIG. 25 is a diagram for illustrating the comparative example of the heading extraction process in the embodiment of the present invention.

In FIG. 25 , for heading candidates SE 1 to SE 16 each, respective feature quantities of the above-described style types “left-side starting position” and “height of a row” are indicated.

Conventional grouping applies, to all of heading candidates SE 1 to SE 16 , a rule of grouping heading candidates similar to each other in terms of the left-side starting position and the height of a row into the same group. The result of this grouping is illustrated in the rightmost column of FIG. 25 . It is noted that the result of grouping in the comparative examine is the same as that for range R 1 in the present embodiment.

In the comparative example, Group 1 includes both of background characters and headings. Therefore, in this state, headings cannot be extracted appropriately. Even if the rule of selecting a group is subsequently applied, it is not determined that heading candidates SE 12 and SE 13 are headings or it is erroneously determined that background characters are headings.

While a feature quantity of a style type that can distinguish heading candidates SE 12 and SE 13 from the background characters may possibly be added, selection of an effective style type depends on the document type and is therefore not easy. Further, addition of a style type used for the determination requires addition of a new process, resulting in increase in cost and processing time.

In contrast, the present embodiment appropriately defines a range to which the heading extraction rule is applied, and group characteristics in the range are used to extract headings. Therefore, MFP 1 is also adaptable to a plurality of headings of different levels.

Modifications

Depending on the level of refinement in defining the ranges which is performed in the heading extraction process, heading regions may be layered. This will be described using above-described sample document 30 as an example. It is supposed that range R 1 first defined for sample document 30 is level 1, ranges R 11 and R 12 into which range R 1 is divided are level 2, ranges R 21 , R 22 , and R 23 into which range R 12 is divided are level 3, and ranges R 31 and R 32 into which range R 22 is divided is level 4. Thus, the heading regions can be layered in such a manner that heading regions of level 1 (namely heading regions extracted from range R 1 ) belong to the highest layer, and heading regions of level 2 (namely heading regions extracted from range R 12 ) belong to the layer subsequent to that of the heading regions of level 1, for example. In other words, the range can be divided (narrowed) to detect the relation between the headings in terms of which heading region belong to which heading region.

In the case where heading regions are layered in the above-described manner, data about the layer of each heading region may also be output to bookmark data generation unit 17 . Bookmark data generation unit 17 may layer bookmark to be attached to PDF based on the layer data about each heading region.

Further, bookmark data generation unit 17 may attach, as the bookmark, only heading regions of a layer selected by a user (heading regions of layers 1 to 3 for example). Alternatively, before the heading extraction process, a user may specify the number of layers for the heading extraction, and then the heading extraction may be ended when the level of the layer specified by the user is reached. In this way, the form of use may be changed for each layer of headings to improve the convenience in creation of the bookmark.

While the above-described embodiment uses the left-side starting position and the height of a row, as style types to be used for grouping, other style types that are significant in terms of the layout may be used as well. For example, the color of characters, the background color, the central position of a region, difference between regions in justification (left justification, right justification, and center justification are identified to group them into different groups), the line width of characters, respective distances to regions immediately above and below, and the like may also be used. From these style types, a user may select those used for grouping. The user can select style types appropriate for grouping, taking into consideration differences in characteristic (attribute) between a heading and those other than the heading (such as background characters) in a document to be processed. In this way, a document of a wider variety of styles can be processed.

Further, the above-described embodiment may use other features (items) that depend on a defined range, as group characteristics used for a rule for evaluating groups.

For example, the features include to what degree the number of heading candidate regions in a group is small (a higher point is given to the smaller number of regions), the magnitude of the distance along the direction of reading from the most upstream heading candidate region and the most downstream heading candidate region in a group (a higher point is given to a larger distance), and the like. Thus, items depending on a defined range may further be used so that a document of a wider variety of styles can be processed. Accordingly, the precision in heading extraction can further be improved.

Moreover, the present embodiment supposes that the contents of a document proceed from the top toward the bottom. In the case where the contents of a document proceed between the top and the bottom like a multi-column layout or the like, whether a region of interest is located upstream or downstream along the direction in which the contents proceed may be determined so that such a document can be processed as well.

›COMPARATIVE EXAMPLE · 2 of 2

In addition, the image processing method performed by the image processing apparatus in the present embodiment may be provided in the form of a program. Such a program can also be provided in the form of a program product recorded on an optical medium such as CD-ROM (Compact Disc-ROM) or a computer-readable non-transitory recording medium such as memory card. Further, the program can also be provided by being downloaded through a network.

Furthermore, the program according to the present invention may be executed by calling a necessary module in a predetermined arrangement at a predetermined timing, among program modules provided as a part of an operating system (OS) of a computer. In this case, the program itself does not include the module and the process is executed in cooperation with the OS. Such a program without module may also be included in the program according to the present embodiment.

In addition, the program according to the present embodiment may be incorporated in another program and then provided. In this case as well, the program itself does not include a module included in the other program, and the process is executed in cooperation with the other program. Such a program incorporated in another program may also be included in the program according to the present embodiment.

The program product as provided is installed in a program storage such as hard disk and then executed. It should be noted that the program product includes a program itself and a storage medium where the program is stored.

Although the present invention has been described and illustrated in detail, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, the scope of the present invention being interpreted by the terms of the appended claims.

1 of 14 part labels are ours — the grant heads the rest

Claims

12 · 2 independent · depth 5
123456789101112
12 granted claims

Classifications

5 codes
IPC · International Patent Classification
Section G — Physics
  • G06K9/34
USPC · US Patent Classification
382/175382/190382/176707/736

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this patent are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJan 2011Jul 2011Jan 2012Jul 2012Jan 2013Jul 2013USPTOApplicantNon-final rejectionResponse after non-final
USPTOApplicanthover for detail · click to open
Pendency
3.0 y
1,089 days filing → grant
Office actions
1
non-final + final
Responses
1
no RCE
Interviews
1
examiner interview summaries
Examiner
Chan S Park
art unit 2669 · TC 2600
Citations: 3 back · 0 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Chain of title

⤢ drag to zoom20102012201420162018202020222024202620282030Owner 1
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock

Term & fees

See the term timeline — pendency span, in-force span, the maintenance fees paid and both computed expiry dates.

Log in to unlock

Priority chain

1 priority documents
›Priority documents — 1
TypeDocumentDate
related publicationUS 20110075932 A131 Mar 2011

Worldwide family

3 members · 2 offices
US2JP1
this patentIP5 & PCTother officessolid = grantedhover for detail · click to open
Members
3
DOCDB simple family 43780471
Offices
2
US · JP
Granted
1 of 3
grant date present
›IP5 & PCT — 3 members
OfficePublicationKindPublishedFiledStatusTitle
USUS-2011075932-A1A131 Mar 201124 Sep 2010publishedImage processing method and image processing apparatus for extracting heading region from image of document
USthis patentUS-8538154-B2B217 Sep 201324 Sep 2010grantedImage processing method and image processing apparatus for extracting heading region from image of document
JPJP-2011070558-AA7 Apr 201128 Sep 2009publishedDocument image processor, document image processing method and document image processing program

Validity challenges

See the validity challenges on record — reexaminations, IPRs and PGRs, with their institution decisions and outcomes.

Log in to unlock

Citations

See every patent this one cites and every patent that cites it back — publication, assignee, and how each one was found.

Log in to unlock