scanner
The scanner improves blank page detection accuracy by transmitting scan data to a trained model for judgment, reducing misjudgment through server-assisted analysis.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-09
- Publication Date
- 2026-03-19
AI Technical Summary
Conventional scanners face misjudgment issues in determining blank pages, necessitating improved blank sheet detection accuracy.
A scanner that utilizes a trained model via a communication interface to assess scan data from a server for accurate blank page detection, excluding pages marked as blank by the server's judgment.
Enhances the accuracy of blank page detection by leveraging a trained model, reducing the likelihood of misjudgment compared to self-detection methods.
Smart Images

Figure 2026049888000001_ABST
Abstract
Description
Technical Field
[0001] The technical field disclosed in this specification relates to a scanner that reads an image of a document and performs an output based on scan data indicating the read image.
Background Art
[0002] Conventionally, a scanner that reads a document and determines whether the read document is a blank sheet of paper is known. For example, in the scanner disclosed in Patent Document 1, for each page, both a blank sheet determination using a histogram and a blank sheet determination using edge detection are performed based on image data representing an image of the document, and when both are determined to be blank sheets, that page is set as a blank sheet. [[ID=1�]]
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the blank sheet determination performed by a scanner, there is a possibility of misjudgment. Therefore, there is room for improvement in the technology related to the blank sheet determination of the scan result.
Means for Solving the Problems
[0005] A scanner designed to solve this problem comprises a reading engine, a user interface, and a communication interface, wherein the scanner can access a server using a trained model via the communication interface, the trained model has learned image information classified as blank or not, and can output determination information indicating whether or not a page is blank based on the input data, and the scanner is further configured to perform a scan process when a predetermined scan instruction is received via the user interface, which involves scanning the document using the reading engine and generating scan data showing an image based on the scan result, and a transmission process which involves sending image information showing the scan result for each page, based on the scan data generated in the scan process, to the server via the communication interface, and after performing the transmission process, receive the determination information from the server via the communication interface, and according to the received determination information, exclude pages indicating blank pages and output based on the scan data generated in the scan process.
[0006] The scanner disclosed herein, after scanning a document, transmits image information showing the scan result for each page to a server utilizing a trained model. Subsequently, upon receiving judgment information from the server indicating the result of the blank page detection by the trained model, the scanner excludes the blank pages according to that judgment information and outputs based on the scanned data. This allows for more accurate blank page detection by the trained model compared to when the scanner performs the blank page detection itself, increasing the likelihood of obtaining appropriate judgment results.
[0007] The control method, computer program, and storage medium readable by the computer that stores the above-mentioned scanner's functions are also novel and useful. [Effects of the Invention]
[0008] The technology disclosed herein enables the realization of a technology that can be expected to accurately determine whether a scanned document is blank. [Brief explanation of the drawing]
[0009] [Figure 1] This is an explanatory diagram showing the schematic configuration of the MFP in this configuration. [Figure 2] This is a flowchart illustrating an example of the AI scanning process. [Figure 3] This flowchart shows an example of the procedure for extracting blank pages. [Figure 4] This flowchart shows an example of the procedure for determining which page is on a single page. [Figure 5] This is an explanatory diagram showing an example of a histogram. [Figure 6] This is an explanatory diagram showing an example of a confirmation screen. [Figure 7] This flowchart shows an example of the procedure for determining which page is on a single page. [Figure 8] This is an explanatory diagram showing an example of a histogram. [Figure 9] This flowchart shows an example of the procedure for determining which page is on a single page. [Figure 10] This flowchart shows an example of the procedure for extracting blank pages. [Figure 11] This is an explanatory diagram showing an example of a threshold set. [Modes for carrying out the invention]
[0010] The first embodiment of the scanner will be described in detail below with reference to the attached drawings. This specification discloses a multifunction printer (hereinafter referred to as "MFP") having various functions, including an image reading function and a communication function.
[0011] In this configuration, the MFP1 includes a controller 10 that includes a CPU 11 and memory 12, as shown in Figure 1, for example. The MFP1 also includes a user interface (hereinafter referred to as "user IF") 13, a communication interface (hereinafter referred to as "communication IF") 14, a print engine 15, and a read engine 16, all of which are electrically connected to the controller 10. The MFP1 is an example of a scanner. Note that the controller 10 in Figure 1 is a general term for the hardware and software used to control the MFP1, and does not necessarily represent a single piece of hardware actually present in the MFP1.
[0012] The CPU 11 of the MFP1 executes various processes according to the program read from memory 12 and based on user operations. Memory 12 of the MFP1 stores various programs and data, including the operating system (hereinafter referred to as "OS") 21, a blank page removal program 22, a threshold set 23, and confirmation setting information 24. Memory 12 is also used as a workspace when various processes are executed. The buffer provided by the CPU 11 is also an example of memory 12. Details of the programs and data will be described later.
[0013] The memory 12 is not limited to ROM, RAM, HDD, etc., built into the MFP1; it may be any storage medium that the CPU 11 can read and write to. For example, external memory such as a USB memory stick or HDD connected to the MFP1, or memory or HDDs provided in a device connected to the MFP1 via the communication IF 14, are also examples of memory 12.
[0014] A computer-readable storage medium is a non-transitory medium. Non-transitory media include, in addition to the above examples, recording media such as CD-ROMs and DVD-ROMs. Also, non-transitory media are tangible media. On the other hand, an electrical signal that conveys a program downloaded from a server on the Internet, etc. is a computer-readable signal medium, which is a type of computer-readable medium, but is not included in non-transitory computer-readable storage media.
[0015] User interface 13 includes, for example, a touch panel. The touch panel includes hardware for displaying a screen for notifying a user of information and hardware for receiving operations by the user. User interface 13 may include a combination of a display and hardware buttons, etc.
[0016] Communication interface 14 includes hardware for communicating with an external device. Communication interface 14 includes functions corresponding to communication standards such as Wi-Fi (registered trademark), Ethernet (registered trademark), and USB. MFP 1 may be provided with a plurality of communication interfaces 14 corresponding to a plurality of communication standards.
[0017] Printing engine 15 includes a configuration for printing an image on a printing medium such as a sheet. The image forming method of printing engine 15 is, for example, an electrophotographic method or an inkjet method. Printing engine 15 may be configured for multi-color printing or may be configured to perform only monochromatic printing.
[0018] The reading engine 16 includes a configuration for scanning an image of a document placed on a flatbed, or a document placed on a document feeder and transported to the reading position, generating scan data as the scan result, and outputting based on the generated scan data. The MFP1 in this embodiment may be equipped with a reading engine 16 capable of performing color scanning to read the document as a color image, or it may be equipped with a reading engine 16 capable of performing monochrome scanning only.
[0019] MFP1 can connect to the Internet 100 via the communication IF 14, and can access the generation AI server 200 via the Internet 100, for example, as shown in Figure 1. The generation AI server 200 is equipped with a trained model 201. The generation AI server 200 is an example of a server that utilizes a trained model. The generation AI server 200 may be a dedicated server provided by the MFP1 vendor, or it may be a server of an AI service provider that is publicly available on the Internet 100. An example of an AI service provider is OpenAI.
[0020] The pre-trained model 201 has been trained on image information classified as either blank or not, and can output judgment information indicating whether or not an image is blank based on the input data. The image information required for training can be image data such as scanned data, or data such as a histogram showing the distribution of brightness values. For example, a pre-trained model on a server provided by an AI provider may have been trained on image information classified as either blank or not using big data. Therefore, it can be expected that the model can analyze the input data and determine with high accuracy whether or not the image shown by the data is a blank image. The pre-trained model 201 may be a model provided by the MFP1 vendor, etc.
[0021] The generation AI server 200 may be provided with an API for instructing the trained model 201 to output judgment information indicating whether or not it is a blank page. For example, MFP1 may instruct the trained model 201 to output judgment information indicating whether or not it is a blank page by using the API provided on the generation AI server 200 for instructing the trained model 201 to output judgment information indicating whether or not it is a blank page.
[0022] Alternatively, the generation AI server 200 may accept instructions in the form of a prompt, that is, in the form of a string. For example, MFP1 may instruct the trained model 201 to output a determination information indicating whether or not the data is blank by inputting the input data and a prompt instructing the generation AI server 200 to output the determination information indicating whether or not the data is blank.
[0023] Next, we will explain the procedure for outputting data while excluding blank pages. Note that the following processes basically represent CPU processing according to the instructions written in the program. That is, processes such as "judgment," "extraction," "selection," "calculation," "decision," "identification," "acquisition," "reception," and "control" in the following explanation represent CPU processing. CPU processing also includes hardware control using the OS API. In this specification, the description of the OS is omitted when explaining the operation of each program. That is, in the following explanation, a statement to the effect of "Program B controls hardware C" may also mean "Program B controls hardware C using the OS API." In addition, CPU processing according to the instructions written in the program may be described using abbreviated language. For example, it may be written as "performed by the CPU." Also, CPU processing according to the instructions written in the program may be described using abbreviated language such as "performed by Program A."
[0024] Furthermore, in this specification, terms such as "notification," "information," "notice," "reply," "response," and "answer" are used not only to mean the transmission of information to a person, but also to mean communication and exchange of information between devices or between components within a device. Note that the components within a device include software.
[0025] Furthermore, "acquisition" is used in a sense that does not necessarily require a request. That is, the process of the CPU receiving data without a request is also included in the concept of "the CPU acquiring data." Also, "data" in this specification is represented by a bit sequence that can be read by a computer. Data with the same substantial meaning but different formats will be treated as the same data. The same applies to "information" in this specification. Also, "request" and "instruct" are concepts that indicate that information indicating a request or instruction is being output to the other party. Information indicating a request or instruction may also be simply referred to as "request" or "instruction."
[0026] Furthermore, the process by which the CPU determines whether information A indicates event B is sometimes conceptually described as "determining from information A whether it is event B or not." Similarly, the process by which the CPU determines whether information A indicates event B or event C is sometimes conceptually described as "determining from information A whether it is event B or event C."
[0027] Furthermore, in this specification, setting items may be simply referred to as "settings." Similarly, setting values may also be simply referred to as "settings." Setting values may also be referred to as "parameters." Additionally, storing setting values in memory or elsewhere may be simply referred to as "settings." Furthermore, the operation for setting or the input for setting may also be simply referred to as "settings."
[0028] The procedure for the AI scanning process in the first embodiment will be described below with reference to the flowchart in Figure 2. When the MFP1 receives a scan command via the user IF13, it is configured to generate scan data by reading the document using the reading engine 16 and to output based on the generated scan data. The MFP1 is also configured to exclude blank pages, that is, to not output based on scan data that reads blank pages from the document.
[0029] Furthermore, when excluding blank pages, MFP1 can utilize the trained model 201 of the generation AI server 200 to determine whether or not a page is a blank page to be excluded. The AI scan process is executed by the CPU 11 of MFP1 in order to exclude blank pages using the generation AI server 200. For convenience, the operation that instructs the execution of the AI scan process, which is received before the AI scan process, will also be referred to as an AI scan instruction. An AI scan instruction is an example of a predetermined scan instruction. In addition to AI scan instructions, MFP1 can also accept various other instructions and can execute various processes based on the received instructions.
[0030] The operation to instruct a scan may also include the operation to instruct a copy. When an operation to instruct a copy is received, MFP1 prints the generated scan data as output. Furthermore, MFP1 should perform the same process when it receives an operation to instruct a scan from an external device such as a personal computer or smartphone.
[0031] In the AI scanning process, the CPU 11 uses the reading engine 16 to read the image of a single document (S101). When the CPU 11 reads multiple documents placed on a document feeder, for example, it first transports one document and reads its image. Then, based on the reading result, the CPU 11 generates scan data for one page (S102). S101 and S102 are examples of the scanning process.
[0032] The CPU 11 associates sequential page numbers with each page in the reading order and temporarily stores the generated scan data. When double-sided scanning is performed, the CPU 11 generates scan data for one page for each side of the original document that has been scanned. The CPU 11 repeats steps S101 to S102, for example, until there are no more documents in the document feeder (S103: YES), or until it receives an instruction to finish scanning.
[0033] Once all documents have been read and the scanned data has been generated (S103:NO), the CPU 11 executes the blank page extraction process (S111). The procedure for the blank page extraction process will be explained with reference to the flowchart in Figure 3.
[0034] The CPU 11 reads the threshold set 23 (see Figure 1) stored in memory 12 (S201). The threshold set 23 is used by the CPU 11 to determine whether a page is blank or not based on the scanned data of one page, and includes a combination of a range threshold Thb, a mode threshold Thq, and a block threshold Thr. Details of each threshold will be described later.
[0035] Then, the CPU 11 uses the read threshold set 23 to execute a one-page determination process (S211) on the scan data for one page generated in S102 of the AI scan process. The procedure for the one-page determination process will be explained with reference to the flowchart in Figure 4. The one-page determination process is a process in which the MFP 1 determines whether each page is blank or not, and is an example of a self-determination process.
[0036] In the page detection process, the CPU 11 divides the scanned data to be detected into blocks of a predetermined size (S301). For example, the CPU 11 divides scanned data read at 300 dpi into blocks of 18 pixels x 18 pixels. As a result, scanned data from, for example, an A4-sized document is divided into approximately 26,900 blocks.
[0037] The CPU 11 creates a histogram for each divided block, with brightness values as classes and the number of pixels as frequencies (S311). For example, the CPU 11 divides the brightness value of each pixel into 64 classes based on the scan data and obtains the number of pixels corresponding to each class. Furthermore, based on the created histogram, the CPU 11 obtains the mode M of the brightness value, that is, the class with the largest number of pixels, as shown in Figure 5 (S312).
[0038] Next, the CPU 11 obtains the number of pixels in the classes that fall within the range from the mode M to the range threshold Thb, based on the range threshold Thb included in the threshold set 23 read in S201 of the blank page extraction process (S313). That is, the CPU 11 obtains the total number of pixels P included within the range from class (M-Thb) to class (M+Thb), for example, as shown by the diagonal lines in Figure 5. The range from class (M-Thb) to class (M+Thb) is an example of a specific range. If the brightness value is set to 64 classes, the range threshold Thb is, for example, 12. The range threshold Thb is a threshold used to determine the size of a specific range.
[0039] Then, the CPU 11 determines in S314 whether the ratio of the number of pixels P obtained in S313 to the total number of pixels in one block exceeds the mode threshold Thq included in the threshold set 23. The mode threshold Thq is, for example, 90%. The mode threshold Thq is an example of a second-rate threshold. If one block is 18 pixels × 18 pixels, then 324 pixels × 90% = 291.6, so the CPU 11 determines YES in S314 if the number of pixels P is 292 pixels or more.
[0040] Based on the judgment result in S314, the CPU 11 determines whether or not there is printing in that block. For example, as shown in Figure 5(A), if it is determined that many pixels have brightness values near the mode M and the proportion of pixels P exceeds the mode threshold Thq (S314: YES), the CPU 11 determines that the block is a white block with no printing (S315). On the other hand, for example, as shown in Figure 5(B), if it is determined that many pixels have brightness values that are not near the mode M and the proportion of pixels P does not exceed the mode threshold Thq (S314: NO), the CPU 11 determines that the block has printing and is not a white block.
[0041] After S315, or if it is determined that the block is not a white block (S314: NO), the CPU 11 determines whether there are any blocks whose status as a white block has not yet been determined (S316). If there are any more blocks (S316: YES), the CPU 11 proceeds to S311 and makes the same determination for the next block. The CPU 11 executes S311 to S315 for each block until it has determined whether all blocks are white blocks.
[0042] If the CPU determines that it has determined whether all blocks are white blocks or not (S316: NO), it determines whether the ratio of the number of blocks determined to be white blocks to the total number of blocks on a page exceeds the block threshold Thr included in the threshold set 23 (S321). The block threshold Thr is, for example, 93.60%. The block threshold Thr is an example of a first percentage and an example of a predetermined percentage.
[0043] If the CPU 11 determines that the proportion of white blocks exceeds the block threshold Thr (S321: YES), it determines that the page is a blank page (S322). If the CPU 11 determines that the proportion of white blocks does not exceed the block threshold Thr (S321: NO), it determines that the page is not a blank page (S323). After S322 or S323, the CPU 11 terminates the page determination process and returns to the blank page extraction process.
[0044] In this single-page determination process, the likelihood of a page being determined as blank varies depending on the threshold included in threshold set 23. For example, threshold set 23 with a range threshold Thb of 12, a mode threshold Thq of 90%, and a block threshold Thr of 93.60% is suitable for use with documents containing many non-white fibers, such as recycled paper, or documents prone to bleed-through, such as thin paper. By applying threshold set 23, the CPU 11 is more likely to determine blocks containing fibers but not printed, or blocks with bleed-through but not printed, as white blocks. On the other hand, applying threshold set 23 also increases the likelihood of determining blocks with lightly colored printing as white blocks. In other words, applying threshold set 23 presents a challenge: even documents with lightly colored printing are more likely to be determined as blank.
[0045] On the other hand, a threshold set 23, for example, with a range threshold Thb of 4, a mode threshold Thq of 90%, and a block threshold Thr of 99.99%, is suitable for printed materials with light-colored printed areas. By applying this threshold set 23, the CPU 11 is more likely to determine that blocks with printed areas, even if light-colored, are not white blocks. However, applying this threshold set 23 increases the likelihood that blocks containing fibers but not printed, or blocks with bleed-through but not printed, are not white blocks. In other words, applying this threshold set 23 presents a problem: even unprinted documents are more likely to be judged as not being blank.
[0046] In other words, with the MFP1's blank page detection, whether or not a document is easily identified as blank depends on the threshold setting. However, for MFP1 users, selecting a threshold that yields an appropriate result for the document being scanned is difficult.
[0047] Each threshold included in threshold set 23 may be a fixed value or a variable value controlled by the user. For example, MFP1 may accept a selection between a threshold that is more likely to be judged as blank and a threshold that is less likely to be judged as blank. Also, if the thresholds are variable values, for example, the range of configurable values for each threshold may be predetermined.
[0048] Returning to the explanation of the blank page extraction process in Figure 3, the CPU 11 determines whether the page has been determined to be a blank page by the page determination process in S211 (S212). If it is determined to be a blank page (S212: YES), the CPU 11 sends the scanned data of that page to the generating AI server 200 (S221) and requests that it send information indicating the determination result of whether or not it is a blank page by the trained model 201. S221 is an example of the transmission process.
[0049] CPU 11 instructs the generation AI server 200 to analyze the scanned data using the trained model 201, determine whether it is a blank page or not, and respond. CPU 11 may instruct the generation AI server 200 by sending the scanned data via a dedicated API, or by prompting. The scanned data sent from MFP1 to the generation AI server 200 may be the raw data obtained from the reading engine 16, or it may be data after MFP1 has performed processing such as format conversion. CPU 11 may also send a histogram for each block generated in S311 of the page determination process instead of the scanned data, and instruct the server to determine whether it is a blank page or not and respond.
[0050] Furthermore, the generating AI server 200 may perform various processing on the scan data received from MFP1, without significantly altering its content, before inputting it into the trained model 201. In this specification, the case in which the scan data transmitted by MFP1 is input into the trained model 201 after undergoing various processing is also included in the category of MFP1 inputting scan data into the trained model 201.
[0051] After sending S221, CPU11 waits until it receives information indicating the judgment result from the generating AI server 200 (S222: NO). Once it receives information from the generating AI server 200 (S222: YES), CPU11 determines whether the information received from the generating AI server 200 indicates that the page has been judged as blank (S223). The trained model 201 of the generating AI server 200 is highly likely to perform blank page judgment using a different algorithm than MFP1. Therefore, the information received from the generating AI server 200 is highly likely to be a more accurate judgment result than the judgment result from MFP1.
[0052] In addition, similar to the case of input data, the generating AI server 200 may perform various processing on the data output by the trained model 201, to the extent that it does not significantly alter its content, before transmitting it to the MFP1. In this specification, even when the MFP1 receives data that has been processed after being output by the trained model 201, this is included in the category of the MFP1 receiving data output by the trained model.
[0053] If the CPU 11 determines that the judgment information received from the generating AI server 200 indicates a blank page judgment (S223: YES), it determines whether or not confirmation is required (S224). The MFP 1 can accept a setting, for example, in the AI scan instruction, that indicates whether or not to confirm the result of the blank page judgment by the trained model 201. The MFP 1 then stores confirmation setting information 24 (see Figure 1) indicating the accepted setting in the memory 12.
[0054] Based on the confirmation setting information 24, if it is determined that the setting indicates confirmation is required (S224: YES), the CPU 11 displays a confirmation screen to the user IF 13 (S225) and accepts the user's selection. S225 is an example of the confirmation process. The CPU 11 asks the user whether or not to exclude pages that have been determined to be blank by the trained model 201 as blank.
[0055] The CPU 11 displays a confirmation screen 60, for example, as shown in Figure 6, which includes information indicating the page has been determined to be blank, a message asking whether or not to exclude the page, and two buttons for receiving user instructions. The "No" button 61 displayed on the confirmation screen 60 is for receiving instructions not to exclude this page. The "Yes" button 62 is for receiving instructions to exclude this page as blank. The CPU 11 then accepts the user's input to either the "No" button 61 or the "Yes" button 62. These various buttons may also be called icons.
[0056] If the CPU determines that the setting does not indicate confirmation is required (S224: NO), or if it determines that an instruction to exclude this page has been received by pressing the "Yes" button 62 (S226: YES), the CPU 11 determines that this page is a blank page (S227).
[0057] On the other hand, if the page determination process in S211 determines that the page is not blank (S212: NO), or if the determination information received from the generation AI server 200 indicates that the page is not blank (S223: NO), or if the operation of the "No" button 61 indicates that an instruction not to exclude this page has been received (S226: NO), then the CPU 11 determines that this page is not a blank page (S228).
[0058] In other words, even if the CPU 11 determines that a page is blank through its own page detection process, if the generating AI server 200 determines that it is not a blank page, the CPU 11 will decide that it is not a blank page. Furthermore, even if the page is determined to be blank by both the page detection process and the generating AI server 200, the CPU 11 can change the result of the page detection process and decide that it is a blank page based on the user's confirmation.
[0059] On the other hand, if the one-page determination process determines that a page is not blank, the CPU 11 does not send the scanned data of that page to the generation AI server 200 and decides that it is not a blank page. For example, if a threshold that is likely to be determined as blank in the one-page determination process of S211 is used, then pages that are determined not to be blank in the one-page determination process are highly likely to be blank. After executing the scan, the CPU 11 performs a one-page determination process on its own device before sending data to the generation AI server 200, and does not send scanned data of pages that are determined not to be blank in the one-page determination process to the generation AI server 200, thereby suppressing an increase in communication load.
[0060] MFP1 displays a confirmation screen 60 in S225 to ask the user whether or not to exclude pages that have been determined to be blank by the trained model 201. In other words, if the user of MFP1 is unsure about the accuracy of the trained model 201's blank page detection, they can check the confirmation screen 60 to avoid excluding pages that have been determined to be blank by the trained model 201 from the output. By requiring the user to confirm only the pages that have been determined to be blank by the trained model 201, the effort required of the user is reduced compared to having them confirm all pages.
[0061] Furthermore, for users who find the verification process cumbersome, the system can be set to not require verification, allowing the pre-trained model 201 to be used for judgments without displaying a verification screen or operating any buttons, making it very user-friendly.
[0062] After S227 or S228, CPU 11 determines whether there is a next page that has not yet been determined to be blank (S231). If it determines that there is a next page (S231: YES), CPU 11 proceeds to S211 to determine the next page. If it determines that it has finished determining all pages (S231: NO), CPU 11 terminates the blank page extraction process and returns to the AI scan process shown in Figure 2.
[0063] Furthermore, if no information is received from the generation AI server 200 after a predetermined time has elapsed since sending S221, or if the information received from the generation AI server 200 is unclear or does not indicate a judgment result, the CPU 11 may apply the judgment result from S211, or it may request user confirmation as it is impossible to make a judgment. Also, after sending S221 or after displaying the confirmation screen 60 in S225, the CPU 11 may start processing the next page in parallel without waiting for the judgment result to be received or for user input.
[0064] Returning to the explanation of the AI scanning process in Figure 2, the CPU 11 determines whether or not there are any pages that were determined to be blank pages in the blank page extraction process in S111 (S121). If it is determined that there are no pages that were determined to be blank pages (S121: NO), the CPU 11 generates image data for all pages based on the scan data of all the pages that were read (S125). The image data is output data and may be data whose file format, etc., has been changed based on the scan data. The CPU 11 may also use the scan data as is as the image data for output.
[0065] On the other hand, if it is determined that there are pages that have been determined to be blank (S121: YES), the CPU 11 excludes the pages determined to be blank from the scanned data of the reading results and generates image data based on the scanned data of the pages other than those determined to be blank (S126). The CPU 11 may also use the scanned data of the pages other than those determined to be blank as output image data. Pages that have been determined to be blank in the blank page extraction process in S111 have also been determined to be blank in the single-page determination process in the MFP1 (see Figure 4) (S322), and furthermore, they have been determined to be blank by the trained model 201 of the generating AI server 200, so there is a high probability that they are blank.
[0066] After S125 or S126, the CPU 11 outputs the generated image data to the output destination specified in the scan settings (S128), and terminates the AI scan process. For example, if the received AI scan instruction is a copy instruction, the CPU 11 uses the print engine 15 to perform printing based on the image data. Also, for example, if the received AI scan instruction is an instruction to save the scan result to a storage location, the CPU 11 saves the generated image data to the specified storage location.
[0067] Image data can be stored in various locations, such as memory 12 of the MFP1, a USB memory device attached to the MFP1, an information processing device connected to the MFP1, an email recipient indicated by an email address registered to the MFP1, or cloud storage to which the MFP1 can upload. The MFP1 may also accept the user's preference for the file format of the image data to be saved. Possible file formats include JPEG, PDF, TIFF, and RAW. If the MFP1 accepts the preference for a specific file format, it converts the scanned data to that format and saves the converted scanned data to the specified storage location. The ability to specify the storage location and file format makes it easier for the user to access and use the saved image data.
[0068] Note that the single-page determination process (S211 in Figure 3) performed in the blank page extraction process S111 in Figure 2 only needs to be a process that determines whether a page is blank or not using the MFP1 based on the scanned data for that page, and does not have to be the procedure shown in Figure 4. The CPU 11 may, for example, determine whether a page is blank or not using the histogram for that page, or it may determine whether a page is blank or not using the number of edges for each block. These methods will be explained below.
[0069] First, the procedure for the one-page determination process, which uses a histogram for one page, will be explained with reference to the flowchart shown in Figure 7. In this one-page determination process, the CPU 11 creates a histogram for one page, using brightness values as classes and pixel counts as frequencies (S401). Furthermore, the CPU 11 divides the created histogram into multiple groups within a predetermined range of brightness values (S402).
[0070] The CPU 11 then determines for each group whether there are any luminance values where the number of pixels exceeds a predetermined data threshold, and obtains the number of groups in which there are luminance values where the number of pixels exceeds the predetermined data threshold (S403). The data threshold is an example of a predetermined number. For example, as shown in Figure 8, the CPU 11 divides the histogram for one page into multiple groups and determines for each group whether there are any luminance values where the number of pixels exceeds the data threshold.
[0071] The CPU 11 then determines whether there is one group in which the number of pixels exceeds the data threshold for brightness (S404). If it determines that there is one group in which the number of pixels exceeds the predetermined data threshold (S404: YES), the CPU 11 determines that this page is blank (S405). In a blank page, there are many pixels with brightness values close to the brightness value of the background color of the original document, and few pixels with brightness values far from the background color. As shown in Figure 8(A), if there is one peak, there is one group in which the number of pixels exceeds the data threshold, and the CPU 11 determines that this page is blank.
[0072] On the other hand, if the CPU determines that there is more than one group with brightness values exceeding the data count threshold (S404: NO), the CPU 11 determines that this page is not blank (S406). For example, as shown in Figure 8(B), if there are two peaks, there are two or more groups with a pixel count exceeding the data count threshold, and the CPU 11 determines that this page is not blank.
[0073] After S405 or S406, the CPU 11 terminates the page detection process and returns to the blank page extraction process. The page detection process shown in Figure 7 is also an example of a self-detection process.
[0074] When using this single-page determination process, the CPU 11 may send the scanned data to the generating AI server 200 in S221 of Figure 3, or it may send the single-page histogram created in S401.
[0075] Next, the procedure for determining one page using the number of edges per block will be explained with reference to the flowchart shown in Figure 9. In this one-page determination process, the CPU 11 divides the scanned data for one page into multiple blocks (S501).
[0076] The CPU 11 then detects edges in each block based on the difference in brightness values between each pixel and its neighboring pixels, and obtains the number of detected edges (S502). The number of edges is an example of the number of detected edges. Furthermore, the CPU 11 calculates the difference in the number of edges between the block with the maximum number of edges and the block with the minimum number of edges (S503), and determines whether the difference in the number of edges is smaller than a predetermined edge count threshold (S504). The edge count threshold is an example of a predetermined difference.
[0077] If the CPU determines that the difference in the total number of edges is less than the edge count threshold (S504: YES), it determines that this page is blank (S505). For example, even if the number of edges is relatively high, if the edges are evenly distributed throughout the page, it is possible that the paper is recycled paper or other paper with uneven background color.
[0078] On the other hand, if the CPU determines that there is a difference in the number of edges that exceeds the edge count threshold (S504: NO), the CPU 11 determines that this page is not blank (S506). After S505 or S506, the CPU 11 terminates the single-page determination process and returns to the blank page extraction process. The single-page determination process shown in Figure 9 is also an example of a self-determination process. Even when using this single-page determination process, the CPU 11 executes the blank page extraction process described above.
[0079] As described in detail above, the MFP1 of the first embodiment, after scanning the document, transmits image information showing the scan result for each page to the generating AI server 200 which utilizes the trained model 201. The trained model 201 can output judgment information indicating whether or not a page is blank. When the MFP1 receives the judgment information from the trained model 201 from the generating AI server 200, it excludes pages that are blank according to the received judgment information and outputs based on the scanned data. As a result, compared to the case where only the MFP1 performs blank page judgment, highly accurate judgment by the trained model 201 can be expected, and there is a high possibility of obtaining an appropriate judgment result.
[0080] Next, a second embodiment of the scanner will be described in detail with reference to the attached drawings. In the second embodiment, when the MFP1 receives an AI scan instruction, it executes the AI scan process shown in the flowchart of Figure 2, similar to the first embodiment. However, in the AI scan process executed by the MFP1 of the second embodiment, the procedure for the blank page extraction process in S111 differs from that of the first embodiment. Components and procedures that are the same as in the first embodiment are denoted by the same reference numerals as in the first embodiment, and their explanation is omitted.
[0081] The procedure for extracting blank pages in this configuration will be explained with reference to the flowchart in Figure 10. The CPU 11 reads two types of threshold sets from the threshold set 23 stored in memory 12 (S601). Memory 12 stores two types of threshold sets, set A and set B, which each contain a combination of a range threshold Thb, a mode threshold Thq, and a block threshold Thr, for example, as shown in Figure 11. Sets A and B are examples of predetermined judgment criteria.
[0082] Specifically, in set A, for example, the range threshold Thb is 12, the mode threshold Thq is 90%, and the block threshold Thr is 93.60%. In set B, for example, the range threshold Thb is 4, the mode threshold Thq is 90%, and the block threshold Thr is 99.99%. The range threshold Thb in set B is smaller than the range threshold Thb in set A. The range threshold Thb is a threshold used to determine a specific range, and the range of the mode ± range threshold Thb is an example of a specific range. The smaller the range threshold Thb, the narrower the specific range, so the specific range in set B is narrower than the specific range in set A. Also, the block threshold Thr is an example of the first proportion, and the block threshold Thr in set B is larger than the block threshold Thr in set A.
[0083] The CPU 11 uses the A set read in S601 as a threshold to perform a one-page determination process (S611). In S611, the CPU 11 performs a one-page determination process similar to the process shown in Figure 4. S611 is an example of the first self-determination process. Then, the CPU 11 determines whether or not the page was determined to be blank in the one-page determination process of S611 (S612).
[0084] If the judgment using set A determines that the page is blank (S612: YES), the CPU 11 uses set B, which was read in S601, as a threshold and executes a one-page determination process (S613). In S613, the CPU 11 also executes a one-page determination process similar to the process shown in Figure 4. S613 is an example of a second self-determination process. Then, the CPU 11 determines whether or not the page was determined to be blank in the one-page determination process in S613 (S614).
[0085] As mentioned above, in the page determination process shown in Figure 4, the CPU 11 identifies blocks where the proportion of pixels P within the range threshold Thb from the mode M exceeds the mode threshold Thq as white blocks, and determines that a page is blank if the proportion of white blocks in the page exceeds the block threshold Thr. Since the block threshold Thr of set B is greater than the block threshold Thr of set A, for example, if the number of white blocks is between the block threshold Thr of set B and the block threshold Thr of set A, the page will be determined to be blank in S611 using set A, but not in S613 using set B.
[0086] Furthermore, since the range threshold Thb of set B is smaller than the range threshold Thb of set A, for blocks with the same histogram, the number of pixels P using set B is smaller than the number of pixels P using set A. In other words, when using set B, there is a high probability that the number of blocks judged as white will be smaller than when using set A. And the smaller the number of white blocks, the less likely the page is to be judged as blank.
[0087] In other words, Set A is a threshold set that is more likely to be judged as blank than Set B, and Set B is a threshold set that is less likely to be judged as blank than Set A. Set A is an example of the first judgment criterion, and Set B is an example of the second judgment criterion. Then, in S611, the CPU 11 performs the one-page judgment process using the judgment criterion that is more likely to be judged as blank, and in S613, the CPU 11 performs the one-page judgment process using the judgment criterion that is less likely to be judged as blank.
[0088] Note that in Figure 11, the most frequent proportion threshold Thq for set A and the most frequent proportion threshold Thq for set B are assumed to be the same value, but this is not the only option. For example, the most frequent proportion threshold Thq for set B may be larger than the most frequent proportion threshold Thq for set A. The most frequent proportion threshold Thq is an example of a second proportion. If the most frequent proportion threshold Thq is large, there is a possibility that the image will not be classified as a white block even if the number of pixels P is the same. In other words, a threshold set with a large most frequent proportion threshold Thq is a threshold set that is less likely to be judged as a blank image.
[0089] If the judgment using set A determines that the page is blank (S612: YES), and the judgment using set B determines that the page is not blank (S614: NO), the CPU 11 uses the blank page judgment by the trained model 201 of the generation AI server 200, as in the first embodiment. A page that is judged YES in S612 and NO in S614 is an example of a specific page.
[0090] Specifically, if the judgment result using set A differs from the judgment result using set B, the CPU 11 sends the scanned data of that page to the generating AI server 200 (S221) and requests that it send information indicating whether or not the page is blank according to the trained model 201. When the CPU 11 receives the judgment information from the generating AI server 200 (S222: YES), it determines whether or not the judgment information indicates a blank page (S223).
[0091] If the CPU 11 determines that the information received from the generation AI server 200 indicates a blank page (S223: YES), it determines whether or not confirmation is required (S224). If it determines that confirmation is required (S224: YES), the CPU 11 displays a confirmation screen to the user interface 13 (S225) and accepts the user's selection.
[0092] If the B set check determines that the page is blank (S614:YES), or if it determines that the setting does not indicate confirmation (S224:NO), or if it determines that an instruction to exclude has been received (S226:YES), the CPU 11 determines that this page is a blank page (S227). If the B set check determines that the page is blank, the CPU 11 determines that it is blank without requesting a check from the generating AI server 200, as there is a high probability that the page is blank.
[0093] On the other hand, if the judgment using set A determines that the page is not blank (S612: NO), or if the judgment information received from the generation AI server 200 determines that the page is not blank (S223: NO), or if the CPU 11 determines that it has received an instruction not to exclude the page (S226: NO), the CPU 11 decides that the page is not blank (S228). If the judgment using set A determines that the page is not blank, the CPU 11 determines that the page is not blank without requesting a judgment from the generation AI server 200, as there is a high probability that the page is not blank.
[0094] If the judgment results differ between the judgment using set A and the judgment using set B, the CPU 11 requests a blank judgment from the generating AI server 200, which increases the likelihood of an appropriate judgment. On the other hand, if the judgment using set A determines that it is not a blank, or if the judgment using set B determines that it is a blank, the CPU 11 does not request a blank judgment from the generating AI server 200, thus suppressing an increase in communication load.
[0095] Once it has determined whether all pages are blank or not (S231: NO), the CPU 11 terminates the blank page extraction process and returns to the AI scanning process. The steps of the AI scanning process, excluding the blank page extraction procedure, are the same as in the first embodiment.
[0096] Alternatively, instead of pre-storing threshold sets A and B in memory 12 as threshold set 23, MFP1 may accept the selection of the threshold set to be used. That is, when MFP1 receives an AI scan instruction, it may also accept an operation to select a threshold set and determine the combination of threshold sets based on the accepted operation. For example, MFP1 may store three or more sets as threshold set 23 and accept the selection of a threshold set to be used in S611 and a threshold set to be used in S613 from among them. Or, MFP1 may accept a user operation to select one of the threshold sets to be used in S611 and the threshold set to be used in S613, and automatically determine the other based on the accepted selection. Or, MFP1 may accept a choice between using a combination of threshold sets that is likely to result in a blank state or a combination of threshold sets that is unlikely to result in a blank state, and determine the combination of threshold sets based on the accepted selection. By determining the criteria for blank page detection within the device based on user input, the user can adjust the frequency with which the generation AI server 200 performs blank page detection.
[0097] In this configuration, MFP1 may, instead of performing the same processing as the one-page determination process shown in Figure 4 in steps S611 and S613 of the blank page extraction process, perform the same processing as the one-page determination process shown in Figure 7, or the same processing as the one-page determination process shown in Figure 9.
[0098] When using the page determination process shown in Figure 7, the MFP1 in this embodiment uses two different data count thresholds in S611 and S613. In S611, the CPU11, similar to the first embodiment, uses a data count threshold that makes it easier to determine a page as blank, even if there are two peaks in the histogram, for example, as shown in Figure 8(B). Even if there are two peaks, if one of the peaks is smaller than the data count threshold, there will only be one group where the number of pixels exceeds the data count threshold, and therefore this page will be determined to be blank.
[0099] In contrast, in S613, CPU11 uses a smaller data count threshold than the example shown in Figure 8. When blank page detection is performed using a smaller data count threshold, even if one peak is small, the number of groups where the number of pixels exceeds the data count threshold is likely to be two or more. In other words, when determining whether a page is blank or not using a smaller data count threshold, if there is even a small area of a color different from the background color, it is highly likely that it will be determined not to be blank.
[0100] The data count threshold used in S613 is smaller than the data count threshold used in S611, and is less likely to be judged as a blank page than the data count threshold used in S611. The data count threshold used in S611 is an example of the first judgment criterion, and the data count threshold used in S613 is an example of the second judgment criterion.
[0101] Furthermore, when using the single-page determination process shown in Figure 7, if the CPU 11 determines that the page is blank in the determination in S611 (YES in S612) and also determines that it is not blank in the determination in S613 (NO in S614), it sends the scanned data of that page to the generation AI server 200 to perform a blank page determination. In this way, if the determination results for whether or not the page is blank differ using two different data thresholds, the CPU 11 requests a blank page determination from the trained model 201 of the generation AI server 200. Therefore, it is highly likely that an appropriate determination result can be obtained while suppressing an increase in communication load.
[0102] Next, when using the page determination process shown in Figure 9, the MFP1 in this embodiment uses two different edge count thresholds in S611 and S613. In S611, the CPU11 determines whether a page is blank or not using an edge count threshold that is more likely to be determined as blank, similar to the first embodiment. If the difference in the number of edges between blocks within the page is not greater than the edge count threshold, the page is determined to be blank.
[0103] On the other hand, in S613, the CPU 11 uses an edge count threshold that is smaller than the edge count threshold used in the first embodiment. When blank page detection is performed using a smaller edge count threshold, a blank page is not detected unless the difference in the number of edges between blocks within the page is even smaller than in the case of S611.
[0104] The edge count threshold used in S613 is smaller than the edge count threshold used in S611, and is less likely to be judged as a blank page than the edge count threshold used in S611. The edge count threshold used in S611 is an example of the first judgment criterion, and the edge count threshold used in S613 is an example of the second judgment criterion.
[0105] Furthermore, even when using the single-page determination process shown in Figure 9, if the CPU 11 determines that the page is blank in the determination in S611 (YES in S612) and also determines that it is not blank in the determination in S613 (NO in S614), it sends the scanned data of that page to the generating AI server 200 to perform a blank page determination. In this way, if the determination results for whether or not the page is blank differ when using two different edge count thresholds, the CPU 11 requests a blank page determination from the trained model 201 of the generating AI server 200. Therefore, it is highly likely that an appropriate determination result can be obtained while suppressing an increase in communication load.
[0106] As explained in detail above, even with the MFP1 of the second embodiment, compared to the case where blank page detection is performed using only the MFP1, high-precision detection by the trained model 201 can be expected, and there is a high probability of obtaining an appropriate detection result. Furthermore, in the second embodiment, the communication load is reduced because the number of times data is sent to the generating AI server 200 is less than in the first embodiment. On the other hand, the algorithm of the first embodiment is simpler than that of the second embodiment.
[0107] It should be noted that each embodiment is merely illustrative and does not limit the present invention in any way. Therefore, the technology disclosed herein can naturally be improved and modified in various ways without departing from its essence. For example, the scanner may be any device having an image reading function and a communication function, and is not limited to an MFP1; it may also be a copier or a fax machine.
[0108] Furthermore, while each embodiment assumes that the MFP1 first performs a blank page detection within its own device, this is not limited to this. In other words, the MFP1 may perform the scan and send the scanned data of all pages generated to the generation AI server 200 without performing a blank page detection within its own device. In this case, the MFP1 may send the scanned data one page at a time, or it may send the scanned data of all pages of the reading result all at once.
[0109] Furthermore, in each embodiment, the device sends scanned data for one page to the generation AI server 200 if it determines that a page is to be transmitted based on the result of its own blank page detection. However, the MFP1 may perform a blank page detection on all pages of the document and then send the scanned data for each page that is to be transmitted to the generation AI server 200 all at once.
[0110] Furthermore, the information that MFP1 sends to the generation AI server 200 is not limited to scan data; it may also include data created by MFP1 based on the scan data. For example, MFP1 may send histograms for each block, histograms for each page, and the number of edges per block. This information is likely to have a smaller data size than the scan data, and therefore is likely to have a lower communication load. However, if this information is sent, the algorithm for blank page detection in the trained model 201 may be similar to that used by MFP1.
[0111] Furthermore, in each embodiment, if the trained model 201 of the generating AI server 200 determines that a page is blank, user confirmation is possible (S224-S226 of the blank page extraction process (Figure 3, etc.)), but the confirmation procedure is not required. Also, the confirmation screen shown in Figure 6 is just an example, and the displayed messages and buttons are not limited to those shown in this figure. In addition, in each embodiment, it is possible to accept a setting to confirm or not, but MFP1 does not have to accept a confirmation setting. For example, MFP1 may exclude pages that the trained model 201 determines to be blank from the output.
[0112] Furthermore, in the second embodiment, the MFP1 uses two threshold sets, A and B, in the page determination process, where the block threshold Thr and the range threshold Thb are different from each other. However, it is not limited to this. Set B may be a threshold set that is less likely to be determined as a blank page than Set A. It may be a set where only the block threshold Thr is different, or a set where only the range threshold Thb is different, or a set where only the most frequent threshold Thq is different. Also, Set A and Set B may have two different thresholds, including the most frequent threshold Thq, or all three thresholds may be different. Furthermore, in the second embodiment, the same threshold set as in the first embodiment is used as Set A, which is a threshold that is more likely to be determined as a blank page. However, it is not required to be the same.
[0113] Furthermore, when MFP1 receives an operation to instruct a scan, it may also be able to receive an instruction on whether or not to exclude blank pages. If MFP1 receives both a scan instruction and an instruction to exclude blank pages, it may execute the AI scan process of each embodiment, and if it does not receive an instruction to exclude blank pages, it may output based on all scanned data without excluding blank pages.
[0114] Furthermore, the MFP1 may be able to receive instructions to exclude blank pages via the user interface 13 or from external devices such as personal computers or smartphones, even before receiving an operation to instruct a scan, and may store information indicating the received instruction, such as setting information, in memory 12. In that case, when the MFP1 receives an operation to instruct a scan, it may execute the AI scan process if setting information indicating the exclusion of blank pages is stored in memory 12. Alternatively, the MFP1 may be configured to execute the AI scan process when it receives an operation to instruct a scan, without requiring the acceptance of an operation such as an instruction to exclude blank pages.
[0115] Furthermore, the instruction to exclude blank pages may include information indicating whether to exclude blank pages using the generation AI server 200 or to exclude blank pages without using the generation AI server 200. If MFP1 receives an instruction to exclude blank pages using the generation AI server 200, it may execute the AI scan process, and if it receives an instruction to exclude blank pages without using the generation AI server 200, it may exclude blank pages without using the generation AI server 200. When excluding blank pages without using the generation AI server 200, MFP1 may determine a page to be blank if it is determined to be blank in the 1-page determination process (see Figure 4). Specifically, in the MFP1 of the first embodiment, if CPU11 determines YES in S212 of the blank page extraction process (see Figure 3), it may proceed to S227. In the MFP1 of the second embodiment, if the CPU 11 determines YES in S611 of the blank page extraction process (see Figure 10), it may proceed to S227.
[0116] Furthermore, the generating AI server 200 is not limited to having its own trained model 201; it may also be able to use a trained model 201 owned by another server. In that case, the generating AI server 200 passes the various data it receives to the other server equipped with the trained model 201, and based on the response from that trained model 201, sends the response data to the MFP1.
[0117] Furthermore, while each embodiment illustrates a configuration that utilizes the trained model 201 of the generation AI server 200, it is also possible to apply this to a program created based on the programmer's coding instead of the trained model 201.
[0118] Furthermore, in any flowchart or sequence diagram disclosed in each embodiment, the execution order of any multiple processes in any multiple steps can be arbitrarily changed or executed in parallel, as long as no inconsistencies arise in the processing content.
[0119] Furthermore, the processes disclosed in each embodiment may be executed by a single CPU, multiple CPUs, ASICs or other hardware, or a combination thereof. Also, the processes disclosed in the embodiments can be implemented in various ways, such as by recording a program for executing the process on a recording medium or by a method. [Explanation of Symbols]
[0120] 1 MFP 12 memory 13 User Interface 14 Communication IF 16 Reading Engine 200 AI Generator Servers 201 Pre-trained models
Claims
1. Reading engine and User interface and Communication interface, A scanner equipped with, The aforementioned scanner, The communication interface allows access to a server utilizing a pre-trained model, and the pre-trained model has been trained to classify image information as either blank or not, and can output judgment information indicating whether or not a page is blank based on the input data. The aforementioned scanner further, When a predetermined scan instruction is received via the user interface, A scanning process that scans a document using the aforementioned reading engine and generates scan data showing an image based on the scan result, A transmission process that transmits image information showing the scan results for each page, based on the scan data generated in the scan process, to the server via the communication interface. Execute, After executing the transmission process, the determination information is received from the server via the communication interface. Based on the received determination information, pages indicating blank pages are excluded, and output is generated based on the scan data produced in the scanning process. A scanner configured in such a way.
2. A scanner as described in claim 1, The aforementioned scanner, After the scan process is performed, and before the transmission process is performed, Based on the scan data generated in the aforementioned scanning process, an automatic determination process is performed to determine whether each page is blank or not. The transmission process is executed for pages determined to be blank in the self-determination process, and the transmission process is not executed for pages not determined to be blank in the self-determination process. In the transmission process, the image information of the pages determined to be blank in the self-determination process is transmitted to the server via the communication interface. After executing the transmission process, the server receives the determination information for the page that was determined to be blank in the self-determination process via the communication interface. Pages that receive the judgment information indicating a blank page from the server are excluded, and output is generated based on the scan data produced by the scan process. A scanner configured in such a way.
3. A scanner according to claim 2, In the aforementioned self-determination process, Each page of the scanned data generated in the scanning process is divided into multiple blocks, and for each block, it is determined whether or not there is any printed material. If the proportion of blocks determined to have no printed material exceeds a first proportion, it is determined to be a blank page, and if it does not exceed the first proportion, it is determined to be a non-blank page. A scanner configured in such a way.
4. A scanner as described in claim 3, In the aforementioned self-determination process, For each page of the scanned data generated in the scanning process, the data is divided into multiple blocks. For each block, a histogram is created with brightness values as classes and the number of pixels as frequencies. If the proportion of pixels within a specific range from the mode of the brightness values shown in the histogram exceeds a second proportion, the block is determined to have no printed material. If it does not exceed the second proportion, the block is determined to have printed material. If the proportion of the blocks determined to have no printed material exceeds a first proportion, the block is determined to be blank. If it does not exceed the first proportion, the block is determined to be non-blank. A scanner configured in such a way.
5. A scanner according to claim 2, In the aforementioned self-determination process, For each page of the scanned data generated in the scanning process, a histogram is created with brightness values as classes and the number of pixels as frequencies. The histogram is divided into multiple groups within a predetermined range of brightness values. For each group, it is determined whether or not there are brightness values with a number of pixels exceeding a predetermined number. If there is only one group with a brightness value with a number of pixels exceeding the predetermined number, it is determined to be a blank page. If there is more than one group with a brightness value with a number of pixels exceeding the predetermined number, it is determined to be a non-blank page. A scanner configured in such a way.
6. A scanner according to claim 2, In the aforementioned self-determination process, Each page of the scanned data generated in the scanning process is divided into multiple blocks, and for each block, edges are detected based on the brightness values of adjacent pixels. If the difference in the number of edges detected in each block is smaller than a predetermined difference, it is determined to be a blank page; if it is not smaller than the predetermined difference, it is determined to be a non-blank page. A scanner configured in such a way.
7. A scanner as described in claim 1, The aforementioned scanner, Based on the scan data generated in the aforementioned scanning process, an automatic determination process can be performed to determine whether each page is blank or not using predetermined criteria. After the scan process is performed, and before the transmission process is performed, The process includes: a first self-determination process which uses a first determination criterion as the predetermined determination criterion; and a second self-determination process which uses a second determination criterion which is less likely to be determined as blank than the first determination criterion. The transmission process is executed for specific pages that are determined to be non-blank in the second self-determination process and that are determined to be blank in the first self-determination process, and the transmission process is not executed for pages that are determined to be non-blank in the first self-determination process or that are determined to be blank in the second self-determination process, and in the transmission process, the image information of the specific page is transmitted to the server via the communication interface. After executing the transmission process, the server receives the determination information for the specific page via the communication interface. Pages that have received the judgment information indicating a blank page from the server and pages that have been determined to be blank in the second self-determination process are excluded, and output is performed based on the scan data generated in the scan process. A scanner configured in such a way.
8. A scanner as described in claim 7, In the aforementioned self-determination process, Each page of the scanned data generated in the scanning process is divided into multiple blocks, and for each block, the presence or absence of printed material is determined. If the proportion of blocks determined to have no printed material exceeds the predetermined first percentage, it is determined to be a blank page; if it does not exceed the first percentage, it is determined to be a non-blank page. The first percentage that serves as the second judgment criterion used in the second self-determination process is greater than the first percentage that serves as the first judgment criterion used in the first self-determination process. A scanner configured in such a way.
9. A scanner according to claim 8, There are multiple predetermined criteria, In the aforementioned self-determination process, For each page of the scanned data generated in the scanning process, it is divided into multiple blocks. For each block, a histogram is created with brightness values as classes and the number of pixels as frequencies. If the proportion of pixels within a specific range, which is one of the predetermined judgment criteria, exceeds a second proportion, the block is determined to have no printed material. If it does not exceed the second proportion, the block is determined to have printed material. If the proportion of the blocks determined to have no printed material exceeds a first proportion, which is one of the predetermined judgment criteria, the block is determined to be blank. If it does not exceed the first proportion, the block is determined to be non-blank. The first percentage that serves as the second judgment criterion used in the second self-determination process is greater than the first percentage that serves as the first judgment criterion used in the first self-determination process. The specified range that serves as the second judgment criterion used in the second self-determination process is narrower than the specified range that serves as the first judgment criterion used in the first self-determination process. A scanner configured in such a way.
10. A scanner as described in claim 7, In the aforementioned self-determination process, For each page of the scanned data generated in the scanning process, it is divided into multiple blocks. For each block, a histogram is created with brightness values as classes and the number of pixels as frequencies. If the proportion of pixels within a specific range from the mode of the brightness values shown in the histogram exceeds a predetermined second percentage, it is determined that the block has no printed material. If it does not exceed the second percentage, it is determined that the block has printed material. If the proportion of the blocks determined to have no printed material exceeds a predetermined percentage, it is determined that the block is blank. If it does not exceed the predetermined percentage, it is determined that the block is not blank. The second percentage that serves as the second judgment criterion used in the second self-determination process is greater than the second percentage that serves as the first judgment criterion used in the first self-determination process. A scanner configured in such a way.
11. A scanner as described in claim 7, In the aforementioned self-determination process, For each page of the scanned data generated in the scanning process, a histogram is created with brightness values as classes and the number of pixels as frequencies. The histogram is divided into multiple groups within a predetermined range of brightness values. For each group, it is determined whether or not there is a brightness value where the number of pixels exceeds a predetermined number, which is a predetermined criterion. If there is only one group where the number of pixels exceeds the predetermined number, it is determined to be a blank page. If there is more than one group where the number of pixels exceeds the predetermined number, it is determined to be a non-blank page. The predetermined number that serves as the second determination criterion used in the second self-determination process is smaller than the predetermined number that serves as the first determination criterion used in the first self-determination process. A scanner configured in such a way.
12. A scanner as described in claim 7, In the aforementioned self-determination process, Each page of the scanned data generated in the scanning process is divided into multiple blocks, and for each block, edges are detected based on the brightness values of adjacent pixels. If the difference in the number of detected edges in each block is smaller than a predetermined difference which is a predetermined judgment criterion, it is determined to be a blank page; if it is not smaller than the predetermined difference, it is determined to be a non-blank page. The predetermined difference that serves as the second judgment criterion used in the second self-determination process is smaller than the predetermined difference that serves as the first judgment criterion used in the first self-determination process. A scanner configured in such a way.
13. A scanner as described in claim 7, The aforementioned scanner, Based on user operations via the user interface, at least one of the first criterion and the second criterion is determined. A scanner configured in such a way.
14. A scanner as described in claim 1, The aforementioned scanner, After executing the transmission process, if the determination information is received from the server via the communication interface, In accordance with the received determination information, a confirmation process is performed via the user interface to accept a selection of whether or not to leave a page blank. In the aforementioned confirmation process, the pages selected to be left blank are excluded, and output is generated based on the scan data produced in the aforementioned scanning process. A scanner configured in such a way.
15. A scanner according to claim 14, The aforementioned scanner, The setting for whether or not to perform the aforementioned verification process is stored in the scanner's memory. After executing the transmission process, if the determination information is received from the server via the communication interface, If the settings for executing the confirmation process are stored in the memory, the confirmation process is executed, and the page for which the selection to be left blank was accepted in the confirmation process is excluded, and output is generated based on the scan data generated in the scan process. If the setting to not perform the aforementioned confirmation process is stored in the memory, the confirmation process will not be performed, and the output will be generated based on the scan data generated by the scan process, excluding pages indicating blank pages according to the received determination information. A scanner configured in such a way.
16. A scanner according to claim 14, The aforementioned scanner, After executing the transmission process, if the determination information is received from the server via the communication interface, For pages that receive the judgment information indicating a blank page from the server, the confirmation process is executed; for pages that receive the judgment information indicating a non-blank page from the server, the confirmation process is not executed. In the aforementioned confirmation process, the pages selected to be left blank are excluded, and output is generated based on the scan data produced in the aforementioned scanning process. A scanner configured in such a way.
17. A scanner as described in claim 1, The aforementioned scanner, The user interface can accept the specification of the destination save location for the output. The aforementioned scanner further, As output based on the scan data generated in the aforementioned scanning process, the scan data from which blank pages have been excluded is saved to the specified storage location. A scanner configured in such a way.
18. A scanner according to claim 17, The aforementioned scanner, The user interface can accept the specification of a file format for saving the scan data. The aforementioned scanner further, As output based on the scan data generated in the aforementioned scanning process, the scan data from which blank pages have been excluded is converted to a specified file format, and the converted scan data is output to the specified storage location and saved. A scanner configured in such a way.
19. A scanner as described in claim 1, Equipped with a printing engine, The aforementioned scanner, As output based on the scan data generated in the scanning process, the printing of the scan data, with blank pages excluded, is performed using the printing engine. A scanner configured in such a way.
Citation Information
Patent Citations
Image reading device
JP2021044664A