WO2024098325A1 - Image processing method, three-dimensional measurement method, and electronic device - Google Patents
Image processing method, three-dimensional measurement method, and electronic device Download PDFInfo
- Publication number
- WO2024098325A1 WO2024098325A1 PCT/CN2022/131130 CN2022131130W WO2024098325A1 WO 2024098325 A1 WO2024098325 A1 WO 2024098325A1 CN 2022131130 W CN2022131130 W CN 2022131130W WO 2024098325 A1 WO2024098325 A1 WO 2024098325A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image processing
- plug
- function
- algorithm
- function modules
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Definitions
- the present disclosure relates to the field of computer technology, and in particular to an image processing method, a three-dimensional measurement method, an information processing method, an electronic device, a non-volatile computer-readable storage medium, and a computer program.
- Industrial vision is an important data collection portal for the Industrial Internet and an important part of the Industrial Internet.
- the industrial production process cannot be separated from the various functional supports of vision. From the storage of production materials, pre-line inspection, quality monitoring and online inspection during production, final product inspection, delivery to overall traceability, all these links cannot be separated from the application of industrial vision.
- an image processing method comprising: in response to a first operation of a user in a flowchart, determining multiple algorithm function modules required to perform an image processing task and a connection relationship between the multiple algorithm function modules to generate a process of the image processing task, wherein the algorithm function modules are encapsulated in the form of plug-ins; parsing multiple plug-ins corresponding to the multiple algorithm function modules to record the connection relationship between the multiple algorithm function modules; and driving and executing the process of the image processing task according to the recorded connection relationship.
- the image processing method also includes obtaining at least one newly added algorithm function module in response to the user's second operation in the flowchart; monitoring whether the newly added algorithm module meets the definition specifications; and if it meets the definition specifications, importing the newly added algorithm function module into the process of the image processing task.
- determining multiple algorithm function modules required to perform an image processing task and the connection relationship between the multiple algorithm function modules includes: determining multiple algorithm function modules corresponding to new functions of the host program, and the new functions are used to process image processing tasks; the process of driving and executing image processing tasks includes: using the host program to load multiple plug-ins corresponding to the multiple algorithm function modules, and importing the multiple plug-ins into the host program; calling the host program that has imported multiple plug-ins to drive and execute the process of image processing tasks.
- the plug-in has a common interface defined in the process, and the common interface is used for the plug-in to interact with the process.
- parsing multiple plug-ins corresponding to multiple algorithm function modules includes: after the process is started, monitoring whether there are plug-ins that meet the definition specifications in a preset storage location; if there are plug-ins that meet the definition specifications, parsing the plug-ins.
- parsing the plug-in includes: parsing the plug-in to obtain relevant information of the plug-in; and the process of driving and executing the image processing task includes: loading the plug-in when the relevant information meets the requirements of the process.
- loading the plug-in includes: determining whether the user has permission to call the plug-in; and loading the plug-in if the user has permission to call the plug-in.
- the image processing method further includes: using a process engine function to set input interfaces and output interfaces for multiple plug-ins.
- recording the connection relationship between multiple algorithm function modules includes: recording the connection relationship in XML (eXtensible Markup Language) format to generate relevant information records of the process; according to the recorded connection relationship, driving and executing the process of image processing tasks includes: generating a driver program according to the relevant information records; using the driver program to drive and execute the process of image processing tasks.
- XML eXtensible Markup Language
- parsing multiple plug-ins corresponding to multiple algorithm function modules includes: parsing description information of the multiple plug-ins, where the description information is used to determine whether the multiple plug-ins meet the definition specifications.
- the plug-in adopts separate storage of the view part and the logic part, and the view part and the logic part have a binding relationship.
- the image processing task includes at least one of a guidance function, a measurement function, a detection function, and a recognition function.
- the guidance function includes at least one of a precise alignment function, an alignment and fitting function, a hand-eye calibration function, or a robot guidance function;
- the measurement function includes at least one of a distance measurement function, an angle measurement function, a thickness measurement function, or a flatness measurement function;
- the detection function includes at least one of a defect detection function, a defect classification function, a defect location function, or a flaw detection function;
- the recognition function includes at least one of a barcode recognition function, a character recognition function, a size recognition function, or a color recognition function.
- each algorithm function module corresponds to each sub-function included in a plurality of image processing algorithms.
- multiple algorithm function modules are selected from candidate algorithm function modules included in multiple image processing function sets, and different image processing function sets correspond to image processing algorithms with different image processing functions.
- the candidate algorithm function module is obtained by decomposing the image processing algorithm corresponding to the image processing function set where the candidate algorithm function module is located into multiple sub-functions.
- the candidate algorithm function module is a DLL (Dynamic Link Library), and the multiple sub-functions are multiple function functions decomposed from the corresponding image processing algorithm, and the DLL is obtained by encapsulating the function functions.
- DLL Dynamic Link Library
- each image processing function set includes multiple groups, there is an interactive relationship between the candidate algorithm function modules in the same group, there is no interactive relationship between the candidate algorithm function modules in different groups, each group includes multiple layers, and the multiple layers are divided according to the execution order of the image processing algorithms corresponding to the image processing function set to which each group belongs.
- the image processing method further includes: in response to the first operation, determining the hardware access module required for the image processing task and the connection relationship between the hardware access module and multiple algorithm function modules, different hardware access modules are used to access different hardware devices; parsing the plug-in corresponding to the hardware access module to record the connection relationship between the hardware access module and multiple algorithm function modules.
- the process of driving and executing the image processing task includes: executing multiple plug-ins based on the execution relationship type between multiple algorithm function modules in the image processing program, and the execution relationship type includes at least one of serial, parallel, branch execution, conditional execution, and logical judgment.
- a three-dimensional measurement method including: in response to a first operation of a user in a flowchart, determining multiple algorithm function modules required to perform a three-dimensional measurement task and a connection relationship between the multiple algorithm function modules to generate a process of the three-dimensional measurement task, the algorithm function modules are packaged in the form of plug-ins, and the multiple algorithm function modules include at least one of an image filtering function module, a cross-section function module, or a flatness function module; parsing multiple plug-ins corresponding to the multiple algorithm function modules to record the connection relationship between the multiple algorithm function modules; and driving and executing the process of the three-dimensional measurement task according to the recorded connection relationship.
- the three-dimensional measurement method further includes obtaining at least one newly added algorithm function module in response to the user's second operation in the flowchart; monitoring whether the newly added algorithm module meets the definition specifications; and importing the newly added algorithm function module into the process of the three-dimensional measurement task if it meets the definition specifications.
- determining multiple algorithm function modules required to perform a three-dimensional measurement task and the connection relationship between the multiple algorithm function modules includes: determining multiple algorithm function modules corresponding to new functions of a host program, where the new functions are used to process the three-dimensional measurement task; the process of driving and executing the three-dimensional measurement task includes: using the host program to load multiple plug-ins corresponding to the multiple algorithm function modules, and importing the multiple plug-ins into the host program; calling the host program into which the multiple plug-ins have been imported, and driving and executing the process of the three-dimensional measurement task.
- the three-dimensional measurement method also includes: in response to the first operation, determining the hardware access module required for the three-dimensional measurement task and the connection relationship between the hardware access module and multiple algorithm function modules, different hardware access modules are used to access different hardware devices; parsing the plug-in corresponding to the hardware access module to record the connection relationship between the hardware access module and multiple algorithm function modules.
- an information processing method comprising: in response to a first operation of a user in a flowchart, determining multiple algorithm function modules required to perform an information processing task and a connection relationship between the multiple algorithm function modules to generate a process of the information processing task, wherein the algorithm function modules are encapsulated in the form of plug-ins; parsing multiple plug-ins corresponding to the multiple algorithm function modules to record the connection relationship between the multiple algorithm function modules; and driving and executing the process of the information processing task according to the recorded connection relationship.
- an electronic device comprising: a memory; and a processor coupled to the memory, wherein the processor is configured to execute the image processing method, three-dimensional measurement method or information processing method in any one of the above-mentioned embodiments based on instructions stored in the memory device.
- a non-volatile computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, an image processing method, a three-dimensional measurement method, or an information processing method is implemented.
- a computer program comprising: instructions, which, when executed by a processor, cause the processor to execute an image processing method, a three-dimensional measurement method, or an information processing method.
- FIG1 is a flowchart showing an image processing method according to some embodiments of the present disclosure
- FIGS. 2a-2b show schematic diagrams of a plug-in framework according to some embodiments of the present disclosure
- FIG3a shows a flowchart of an image processing method according to some other embodiments of the present disclosure
- FIG3 b shows a flow chart of an image processing method according to yet other embodiments of the present disclosure
- FIG3c is a schematic diagram showing an image processing method according to some embodiments of the present disclosure.
- FIG4 shows a schematic diagram of an image processing device or an information processing device according to some embodiments of the present disclosure
- FIG5 illustrates a block diagram of some embodiments of an electronic device according to some embodiments of the present disclosure
- FIG6 shows a block diagram of some other embodiments of an electronic device according to some embodiments of the present disclosure.
- FIG. 7 shows a schematic diagram of an image processing method according to some other embodiments of the present disclosure.
- the inventor of the present disclosure has found that the above-mentioned related technologies have the following problems: low development efficiency and high cost.
- the present disclosure proposes a technical solution for image processing, which can improve the development efficiency of image processing tools and reduce costs.
- the software platform used for processing tool development has the following technical problems at the architectural and functional levels: the scalability is not flexible enough, and the development process is not convenient and efficient when end customers encounter slight adjustments to the process and scenario when using the product; during the algorithm design and programming process, the code needs to be adjusted and complex configurations need to be performed; the deep learning function is not rich enough; when using the deep learning function, image annotation relies on manual work without sample enhancement; and model training relies on powerful local hardware.
- Image processing algorithms will be enriched with the continuous development of technology; in addition, combined with numerous application scenarios, visual tools for different scenarios are needed to quickly solve related problems.
- the main program needs to be constantly updated, which brings challenges to the flexibility and expansion of the program.
- the image processing tool development system disclosed in the present invention fully considers technical convenience and actual customer needs.
- the characteristics of the development system include lightweight, easy to use, rich functions, strong scalability, process editing, easy to use and operate, and easy to deploy.
- a deep learning software system based on a plug-in architecture and process engine drive is proposed, involving core algorithms and technologies including image processing and deep learning. It mainly solves the various functional supports of industrial vision in the industrial production process. From the warehousing of production materials, pre-line inspection, quality monitoring and online inspection during production, final product inspection, delivery to overall traceability, the application of industrial vision is indispensable, contributing to the intelligent upgrading and development of the manufacturing industry.
- FIG. 1 shows a flowchart of an image processing method according to some embodiments of the present disclosure.
- step 110 in response to the user's first operation in the flowchart (such as dragging, pulling, dropping, clicking, etc.), multiple algorithm function modules required to perform the image processing task and the connection relationship between the multiple algorithm function modules are determined to generate the process of the image processing task.
- the algorithm function module is encapsulated in the form of a plug-in.
- the core functions that can be implemented by the plug-in may include various image processing algorithms, business implementation logic, etc.
- a flowchart can be a template for program development. Based on this template, users can select plug-ins by dragging, dropping, clicking, etc., to form a process containing multiple nodes (encapsulated by plug-ins) in the process editing area of the program development interface; different processes can be generated according to the business to be performed (such as image processing tasks); the host program can record relevant information of the process (such as the number of nodes, execution order, dependencies, etc.).
- the lines connecting the nodes in a flowchart are used to represent the relationships between the nodes, including execution order, logical relationships (such as parallel, branching, conditions, etc.), etc.
- a visual scene may require several or even dozens of processes to work together to complete the entire scene. Based on this, a process engine is needed to manage many functions and processes.
- a process is an instance of a flowchart at runtime.
- a flowchart can be understood as a "class”, and a process can be understood as an "object” driven by a process engine. In this way, it is possible to support the import and export of processes so that they can be referenced in other programs.
- multiple plug-ins are sequentially imported into the same process, and the image processing task is processed using the process.
- multiple plug-ins are compiled into DLLs, and the DLLs are imported into the same host program using the parsing information of the DLLs.
- the image processing task may include at least one of a guidance function, a measurement function, a detection function, and a recognition function.
- the guiding function includes at least one of the precise alignment function, the alignment and fitting function, the hand-eye calibration function or the robot guiding function;
- the measuring function includes at least one of the distance measurement function, the angle measurement function, the thickness measurement function or the flatness measurement function;
- the detection function includes at least one of the defect detection function, the defect classification function, the defect location function or the flaw detection function;
- the recognition function includes at least one of the barcode recognition function, the character recognition function, the size recognition function or the color recognition function.
- the interface of the plug-in needs to comply with the interface specifications of the host program and be able to implement the interface functions defined by the host program.
- multiple algorithm function modules required to perform an information processing task and the connection relationship between the multiple algorithm function modules are determined to generate a process for the information processing task, and the algorithm function modules are encapsulated in the form of plug-ins.
- information processing tasks include image processing tasks, guidance functions, measurement functions, detection functions, and recognition functions, etc.
- information processing algorithms corresponding to the information processing tasks include image processing algorithms, deep learning algorithms, etc.
- the information processing algorithm includes a machine learning algorithm.
- the machine learning model corresponding to the machine learning algorithm is trained by: performing image transformation processing on the annotated first sample image to generate a second sample image; and using the first sample image and the second sample image to train the machine learning model corresponding to the machine learning algorithm.
- the machine learning model corresponding to the machine learning algorithm is trained in the following manner: obtaining a product image containing product defects; generating a background image of the product image; and generating a sample image for training the machine learning model based on the product image and the background image.
- the machine learning model corresponding to the machine learning algorithm is trained in the following manner: the machine learning model corresponding to the machine learning algorithm is trained in the cloud; and the trained machine learning model is sent to the edge to process the image processing task.
- the hardware access module required for the image processing task and the connection relationship between the hardware access module and the plurality of algorithm function modules are determined, and different hardware access modules are used to access different hardware devices.
- At least one newly added algorithm function module is obtained. For example, multiple algorithm function modules corresponding to the newly added functions of the host program are determined, and the newly added functions are used to process image processing tasks.
- a process with new functions (such as a process with a three-dimensional measurement function) can be formed by adding plug-ins, thereby reducing development costs and improving development efficiency.
- the host program has the ability to display packaged plug-ins and their functions in an interface. After the plug-ins are packaged, they can form nodes in the process; the nodes can be loaded into a list of the process engine (for example, the plug-ins can appear in the list in the form of icons or lists) for the user to select (such as by dragging, pulling, dropping, clicking, etc.).
- the host program has the function of encapsulating plug-ins into nodes.
- the host program has the function of a process engine, which can encapsulate the loaded plug-ins into nodes in each process.
- the host program can encapsulate the entire plug-in into a node with an input interface and an output interface in the interface.
- the output type of the node can be the type of the plug-in (such as text type, script type, program type, etc.), and the input type can be defined in the business function (such as image type or numeric type).
- the host program may also have the function of selecting the plug-in by dragging, pulling, dropping, clicking, etc. After selecting the plug-in in the list area, the user may drag it to the process editing area to form a node in the process (for example, having at least one input interface and one output interface).
- the plug-in has a common interface defined in the process, and the common interface is used for the plug-in to interact with the process.
- the process engine function of the host program is used to set input interfaces and output interfaces for multiple plug-ins.
- the host program has the ability to define the interface of the plug-in.
- the host program can define the common interface of the plug-in to be connected to the host program, which is equivalent to defining a "contract" with the plug-in.
- the plug-in can interact with the host program through the interface defined in the host program to complete the image processing task.
- the overall framework of the present disclosure is a plug-in framework including an algorithm layer at the bottom.
- the algorithm layer is used to implement multiple information processing algorithms, including core algorithms such as image processing, computer vision, and deep learning.
- core algorithms such as image processing, computer vision, and deep learning.
- each information processing algorithm is implemented in C++ as a programming language.
- each algorithm function module corresponds to each sub-function included in a plurality of image processing algorithms.
- the plurality of algorithm function modules are selected from candidate algorithm function modules included in a plurality of image processing function sets, and different image processing function sets correspond to image processing algorithms with different image processing functions.
- multiple information processing algorithms are divided into multiple image processing function sets; in each image processing function set, multiple candidate algorithm function modules are decomposed respectively.
- the information processing function includes the image processing function.
- the candidate algorithm function module is obtained by decomposing the image processing algorithm corresponding to the image processing function set where the candidate algorithm function module is located into multiple sub-functions.
- each image processing function set is divided into multiple sub-functions; and multiple candidate algorithm function modules are decomposed according to the multiple sub-functions.
- the information processing algorithm corresponding to each image processing function set is decomposed into multiple function functions as sub-functions; and the multiple function functions are encapsulated into multiple DLLs as multiple candidate algorithm function modules.
- the candidate algorithm function module is in the form of a DLL, and the multiple sub-functions are multiple functional functions decomposed from the corresponding image processing algorithm, and the DLL is obtained by encapsulating the functional functions.
- DLL is a library containing code and data that can be used by multiple programs at the same time.
- each image processing function set includes multiple groups, there is an interactive relationship between the candidate algorithm function modules in the same group, there is no interactive relationship between the candidate algorithm function modules in different groups, each group includes multiple layers, and the multiple layers are divided according to the execution order of the image processing algorithms corresponding to the image processing function set to which each group belongs.
- multiple candidate algorithm function modules are divided into multiple groups. There is no interaction between candidate algorithm function modules belonging to different groups, and candidate algorithm function modules belonging to the same group are divided into multiple layers according to the execution order of the image processing algorithms corresponding to the same group. For example, at least one plug-in is generated according to the grouping and layering of multiple algorithm function modules.
- the plug-in framework includes a plug-in layer.
- the plug-in layer is used to form a visual tool for processing information processing tasks.
- the visual tool is composed of a DLL in an underlying algorithm library and associated controls.
- the product adopts a plug-in structure to ensure the scalability and flexibility of the product.
- the plug-in structure mainly defines the plug-in specifications, plug-in manager, etc. in the framework.
- the plug-in specifications mainly define the plug-in UI (User Interface) specifications, interface specifications, etc.; the plug-in manager is mainly used for the main functions of plug-in discovery, registration, calling, uninstallation, hot update, etc.
- information processing tasks include 3D measurement tasks
- information processing algorithms include 3D measurement algorithms.
- the plug-in class includes the operating environment definition, plug-in function description, plug-in interface type, etc. defined in the implementation specification.
- Implement the basic functions in the plug-in interface including: discovery, registration, execution, exit, hot start, hot update and other interfaces; develop the interface of the 3D measurement algorithm, including the location and icon that appear in the host program (i.e., main program); develop multiple functional functions included in the 3D measurement algorithm, including: point cloud data processing, height measurement, thickness measurement, flatness measurement, etc.; compile the plug-in class and generate a DLL.
- an image processing function set corresponding to the information processing task is selected from multiple image processing function sets; and multiple algorithm function modules are selected from multiple candidate algorithm function modules of the corresponding image processing function set.
- the image processing algorithm can be divided into several image processing function sets, each of which includes multiple sub-functions. For each visual application scenario, multiple sub-functions need to be combined into a complete application process in different combinations and process sequences.
- the image processing function set of image processing algorithms includes: hardware access, image preprocessing, image segmentation, image measurement, image recognition, image positioning and other tools.
- hardware access can include: multiple sub-functions by camera type (area scan, line scan, etc.), brand (basler/AVT, Hikvision, Delsa), interface (1394/GIGE, USB, CAMLINK), etc.
- camera type area scan, line scan, etc.
- brand basic/AVT, Hikvision, Delsa
- interface 1394/GIGE, USB, CAMLINK
- Different cameras have different parameter settings and output formats. After selecting a camera, you need to set the corresponding output. The output of the camera restricts the application of a series of algorithms and operators.
- image preprocessing may include: filtering (such as median, mean, Gaussian, low-pass, etc.), chroma processing (RGB, YUV, YIQ, LAB, etc.), morphology (dilation, erosion, opening, closing, etc.), and other sub-functions.
- filtering such as median, mean, Gaussian, low-pass, etc.
- chroma processing RGB, YUV, YIQ, LAB, etc.
- morphology dilation, erosion, opening, closing, etc.
- image segmentation may include sub-functions such as edge segmentation (sobel, Canny, level division, level set, etc.), region segmentation (fixed threshold, inter-class difference, OSTU, etc.), etc.
- image measurement may include sub-functions such as line finding, circle finding, line fitting, circle fitting, distance measurement, and angle measurement.
- image recognition can include sub-functions such as QR code and OCR (optical character recognition).
- image positioning may include: BLOB (connected area in the image, used for image binarization), shape matching, edge matching, geometric features and other sub-functions.
- BLOB connected area in the image, used for image binarization
- shape matching shape matching
- edge matching geometric features and other sub-functions.
- other tools may include: glue detection, defect detection, classification, counting and other sub-functions.
- the image processing flow includes serial, parallel, branch, conditional execution, logical judgment and other processes. These processes need to be judged and executed by the process engine.
- a new process is first created, that is, this process is currently an empty process that does not contain any nodes, and is named, and the save path and whether to encrypt and permissions are set; in this empty process, a processing flow is formed by dragging and dropping each functional module in the toolbox of the main program.
- the function module select the image filter function module to filter out some noise points in the laser acquisition process, so that the data formed is smoother and is conducive to subsequent processing.
- a logic function module can be added to determine whether the product supports 3D point cloud data and cross-section tools, etc.
- the output of the cross-section function module is connected to the input of the flatness function module; the output of the flatness function module is connected to the final result output to form a processing flow.
- the process engine controls the operation of the entire process. If there are multiple processes, it is necessary to consider computer resources such as memory, CPU (central processing unit) and process optimization; the entire process can be exported as a ZIV file.
- ZIV file can be imported into other projects through encryption and serialization. It also supports secondary development and provides access to mainstream programming languages.
- the process engine controls the output and execution smoothness, logic, etc. of each functional tool.
- step 120 multiple plug-ins corresponding to multiple algorithm function modules are parsed to record the connection relationship between the multiple algorithm function modules.
- the process is started, it is monitored whether there is a plug-in that meets the definition specifications in the preset storage location; if there is a plug-in that meets the definition specifications, the plug-in is parsed.
- the host program has a plug-in discovery function. After the host program is started, the host program has the function of independently monitoring and discovering whether there is a plug-in that meets the host program definition specification in a specified location (for example, a folder ⁇ PlugIn that can be specified for the host program); if a new plug-in that meets the host program definition specification is found, the plug-in is parsed.
- a plug-in discovery function For example, the host program has a plug-in discovery function. After the host program is started, the host program has the function of independently monitoring and discovering whether there is a plug-in that meets the host program definition specification in a specified location (for example, a folder ⁇ PlugIn that can be specified for the host program); if a new plug-in that meets the host program definition specification is found, the plug-in is parsed.
- the plug-in is parsed to obtain relevant information of the plug-in so that the plug-in can be loaded if the relevant information meets the requirements of the process (such as step 130).
- the plug-in related information may include description information of the plug-in, such as the plug-in name, type, version, creator, etc.
- description information such as the plug-in name, type, version, creator, etc.
- connection relationship is recorded in XML format to generate relevant information records of the process; a driver is generated based on the relevant information records; and the driver is used to drive and execute the process of the image processing task.
- a driver is generated based on the relevant information records; and the driver is used to drive and execute the process of the image processing task.
- the description information of multiple plug-ins is parsed, and the description information is used to determine whether the multiple plug-ins meet the definition specifications.
- the generated DLL and its description files such as XML files, are copied to the designated file directory (such as the generally defined Plugin) of the host (ie, the original main program).
- the designated file directory such as the generally defined Plugin
- the host program when the hot update function is implemented, after the plug-in file is placed in the specified file directory, the host program actively discovers the new plug-in file; after discovering the plug-in file, the host program parses the description information in the XML file; if it meets the interface requirements defined by this product, the host program initiates loading of the corresponding DLL file, and then determines whether the DLL file is qualified; starts the loading function and performs the registration process; imports the interface, algorithm and other content into the main program according to the content implemented in the specification.
- the main program system will automatically update and display the new 3D measurement module in the function list of the main program according to the position or icon defined in the standard interface during design; the new 3D measurement module can realize the relevant functions of the new 3D measurement scene according to the customer's requirements.
- the host program has the ability to create a process engine and record the relationships between plug-ins in the process engine (such as execution order, logical relationships, type matching judgment, etc.).
- the host program supports the creation of a process (for example, the process includes input images, business processing of images, final output, and supported logical and geometric operations, etc.).
- the host program needs to record the number of dragged plug-ins, execution order, dependency relationships, type judgment, etc.
- the main program is used to determine whether the interface of the DLL meets the interface requirements based on the parsed information; if it meets the interface requirements, the main program is used to import the DLL into the main program through a registration process.
- the host program has the function of parsing plug-ins.
- a plug-in file such as a DLL file
- the host program needs to parse the plug-in and obtain relevant information about the plug-in.
- the relevant information may include the basic information of the parsed plug-in (such as name, version, type, creator, whether the interface implementation is complete, etc.). If the relevant information meets the requirements of the host program, the plug-in is loaded.
- the plug-in corresponding to the hardware access module is parsed to record the connection relationship between the hardware access module and the plurality of algorithm function modules.
- At the plug-in layer at least one plug-in is generated based on multiple algorithm function modules and their associated controls.
- the controls are stored in a manner of separating data from logic, and the controls have interfaces.
- the plug-in adopts separate storage of the view part and the logic part, and the view part and the logic part have a binding relationship.
- the plug-in can be stored visually, including the interface, input parameters, output results, icon form, location, etc.
- the input parameters and output results can also be edited to facilitate code-free parameter setting of the plug-in in the process engine.
- the host program loads the plug-in, the form and appearance of the plug-in can be defined.
- the algorithm function modules decomposed from the underlying algorithm exist in the form of DLL, and the control uses MVVM (Model-View-ViewMode) programmed by WPF (Windows Presentation Foundation) to separate the View (view) and Model (logic), and interact through ViewModel; the entire plug-in (DLL and its associated controls) is encapsulated in the form of PlugIn.
- MVVM Model-View-ViewMode
- WPF Windows Presentation Foundation
- a hardware access module corresponding to the information processing task is selected according to the information processing task. Different hardware access modules are used to access different hardware devices; and at least one plug-in is generated according to the hardware access module and multiple algorithm function modules.
- a profilometer when selecting hardware, select a profilometer from a 3D camera among multiple hardware; set the parameters of the profilometer, including field of view, exposure time, and output file format: including grayscale, depth map, 3D point cloud data, etc.
- step 130 the process of the image processing task is driven and executed according to the recorded connection relationship.
- the plug-in adopts a key-value pair structure.
- the key of the key-value pair structure includes the interface of the plug-in, and the value of the key-value pair structure includes the name of the plug-in.
- the newly added algorithm function module is imported into the process of the image processing task. For example, multiple plug-ins corresponding to multiple algorithm function modules are loaded by the host program, and the multiple plug-ins are imported into the host program; the host program with the imported multiple plug-ins is called to drive and execute the process of the image processing task.
- the host program has the function of loading plug-ins.
- the host program obtains relevant information of the plug-in by parsing the plug-in; the host program checks whether it has the authority to load the plug-in based on the relevant information (for example, the host program can limit the number, type, function, etc. of plug-ins that can be loaded through authority management); if it has the authority, the plug-in is loaded to load all functions of the plug-in (such as interface functions, business functions, visualization functions, etc.).
- the host program has the function of managing plug-ins.
- the host program has the function of managing loaded plug-ins, including adding them to the host program plug-in list, permission management, process call related information, etc.
- the host program has the function of uninstalling plug-ins.
- the loaded plug-in can be uninstalled.
- multiple plug-ins are executed according to the execution relationship type between multiple algorithm function modules in the image processing program, and the execution relationship type includes at least one of serial, parallel, branch execution, conditional execution, and logical judgment.
- the host program has the function of saving the entire process information of the process engine.
- the host layer can record the process-related information and generate the execution driver of the process engine according to the recorded information.
- the host program has the function of importing and exporting process information.
- the host program supports saving and exporting processes and their information, and also supports importing process information to form new processes.
- FIG. 2 a shows a schematic diagram of a plug-in framework according to some embodiments of the present disclosure.
- the overall architecture is a plug-in framework, which may include interactive configuration functions, core functions, and basic functions.
- the interactive configuration function may include an interface interaction system, system configuration management, etc.
- the core function may include multiple image processing function sets, each image processing function set may include multiple sub-functions
- the basic functions may include a core underlying algorithm library with multiple information processing algorithms, data access, communication management, accelerated computing, etc.
- the core of the overall architecture includes the underlying algorithm library and four derived functional partitions (such as guidance functional partition, measurement functional partition, detection functional partition and identification functional partition).
- the overall architecture fully considers the subsequent extensibility of UI and functions (adopting plug-in structure design, which can be flexibly edited according to specifications).
- flexible tool chain programming internal logic inspection, process recording, etc. is used to export projects to adapt to different platforms and development language environment calls.
- the basic functions of the overall architecture include core underlying algorithm library, data access, communication management, accelerated computing, etc.
- the core underlying algorithm library mainly includes core algorithms for image processing, computer vision, deep learning, etc., using C++ as the programming language, and encapsulating the corresponding algorithm functions into dll to form the underlying algorithm library.
- the core functions of the overall architecture include assembling various algorithm function modules decomposed from the algorithm in the underlying algorithm library to achieve various functions, that is, visual tools formed by assembling various algorithm function modules.
- the visual tool is composed of dll and matching controls in the underlying algorithm library.
- the underlying algorithm exists in the form of dll, and the control uses WPF programming MVVM to separate View and ViewModel, and the entire plug-in is encapsulated in the form of PlugIn.
- the interactive configuration function of the overall architecture that is, the entire main program framework, mainly includes the interface interaction system, system configuration management, etc.
- the main program framework can also include a plug-in manager, non-functional requirements, common functions, overall UI design, etc.
- the plug-in manager is used to discover plug-in objects, load, unload, layout and schedule plug-ins; non-functional requirements include settings, systems, help, etc.; common functions include communication modules, process execution, result display, project import and export, etc.; the overall UI design includes the overall UI of the MVVM architecture design except for plug-ins.
- the framework includes a plug-in structure.
- the overall UI uses WPF interface technology and .NET Framework 4.0.
- the main framework of the plug-in structure contains different class libraries; the UI control uses the MVVM data structure and uses data binding to separate the interface from the logic; all external open source controls used have their interfaces abstracted, so other controls with the same function can be used at any time without changing the upper-level code.
- the structure of the plugin adopts the storage method of key-value pairs.
- the key includes the interface that the plugin is required to implement, and the value includes the corresponding plugin name dictionary.
- the plugin manager can insert and delete (with security risks) data in the plugin dictionary at any time.
- the framework includes a process engine algorithm assembler.
- the complex information processing algorithm is decomposed into different algorithm function modules and then reassembled. Therefore, by simply designing different algorithm function modules and defining their interfaces, users can assemble and configure the modules according to different information processing tasks to solve complex technical problems in the development of actual processing tools.
- an algorithm function module can be understood as a box with input and output interfaces.
- An algorithm function module may contain multiple inputs or multiple outputs. Only when all inputs are satisfied can the corresponding algorithm be executed, but it may not be output to other algorithm function modules.
- Multiple algorithm function modules can be assembled into an algorithm network in a complex form to achieve automated processing.
- algorithm management system will implement stratification and grouping of modules. Algorithm function modules between different groups have no interaction, so they can be executed in parallel; algorithm function modules in the same group are executed from the first layer to the lower layer in sequence.
- FIG. 2 b shows a schematic diagram of a plug-in framework according to some embodiments of the present disclosure.
- the working process driven by the plug-in framework and the process engine includes the following steps.
- start the main program (.exe); start the authorization detection thread (always working, regularly detecting whether the authorization exists).
- the authorization thread reads the authorization permission and calls the corresponding configuration (mainly the plug-in function enablement flag).
- the authorization process may include two parts: the user's access rights to the various functions of the overall framework (such as various interactive configuration functions, various basic functions, etc.); and the user's access rights to the algorithm function module.
- the user's access rights to the various functions of the overall framework such as various interactive configuration functions, various basic functions, etc.
- the user's access rights to the algorithm function module may include two parts: the user's access rights to the algorithm function module.
- the plug-in manager loads the corresponding plug-in according to the authorized configuration information. For example, if there is an abnormality, an abnormality alarm is issued. After loading is completed, the corresponding visual tools and modules are displayed in the main program interface.
- business processing such as visual engineering programming, etc.
- generating process sequences For example, you can create new functions in the process editing area, perform process programming to form visual engineering; the system records the process in XML in real time to form process records.
- process records, visual tool parameter settings, images, files and other contents are packaged together for serialization and saved as a custom format file to form a visual engineering plan.
- the system automatically uninstalls the plug-in, stops authorization inspection, and exits the software.
- the process record file of the read content mainly includes the number, sequence, dependencies, etc. of the visual tools involved; the parameters set for each visual tool are read and restored; the images and files involved are read and restored; and the entire project is restored in the software.
- the model is verified by MD5 (Message-Digest Algorithm) to ensure that there are no problems in the data transmission process; the model's configuration information is checked to see if it matches the current business to ensure that the algorithm model does match the current business.
- MD5 Message-Digest Algorithm
- FIG. 3 a shows a flowchart of an image processing method according to some other embodiments of the present disclosure.
- step 310 a a solution (ie, a processing flow) related to an image processing task is loaded.
- step 320a the plan is edited to modify the parameters therein.
- step 330a the edited plan is saved.
- the scheme is maintained through steps 305a to 335a.
- step 305a the corresponding process control is initialized.
- step 315a an empty scheme is created.
- step 325a the scheme is built and edited.
- step 335a the process is disabled or deleted.
- step 340a the saved scheme is executed once; or in step 345a, the saved scheme is executed continuously, and in step 355, the execution is stopped.
- step 350a the results of each algorithm function module are obtained.
- step 360a the protocol is closed.
- the delivered product is a tool for customers to implement 2D dimension measurement functions.
- customers need to add 3D dimension measurement functions to existing products. That is, it includes not only length, width, distance measurement, etc., but also thickness, flatness, and slope angle measurement. This requires adding relevant algorithms and tool modules to the original product. Customers want to expand related functions without changing the operation of the existing program.
- the new functions required for the above-mentioned 3D measurement tasks include a new UI interface, an algorithm adapted to 3D measurement, and the newly added 3D measurement algorithm can be compatible and linked with the original algorithm module.
- the new algorithm function module needs to follow the product's plug-in specifications to design and define the interface; the new plug-in needs to use an independent class that can be discovered by the main program (host program) and loaded using the class loader.
- a plug-in class for a 3D measurement algorithm is created.
- the plug-in class includes the operating environment definition, plug-in function description, plug-in interface type, etc. defined in the implementation specification.
- Implement basic functions in the plug-in interface including: discovery, registration, execution, exit, hot start, hot update and other interfaces; develop the interface of the 3D measurement algorithm, including the location and icon of the host program; develop multiple functional functions included in the 3D measurement algorithm, including: point cloud data processing, height measurement, thickness measurement, flatness measurement, etc.; compile the plug-in class and generate DLL.
- the generated DLL and its description files such as XML files, are copied to the designated file directory (such as the generally defined Plugin) of the host (ie, the original main program).
- the designated file directory such as the generally defined Plugin
- the host program when the hot update function is implemented, after the plug-in file is placed in the specified file directory, the host program actively discovers the new plug-in file; after discovering the plug-in file, the host program parses the description information in the XML file; if it meets the interface requirements defined by this product, the host program initiates loading of the corresponding DLL file, and then determines whether the DLL file is qualified; starts the loading function and performs the registration process; imports the interface, algorithm and other content into the main program according to the content implemented in the specification.
- the main program system will automatically update and display the new 3D measurement module in the function list of the main program according to the position or icon defined in the standard interface during design; the new 3D measurement module can realize the relevant functions of the new 3D measurement scene according to the customer's requirements.
- FIG. 3 b shows a flowchart of an image processing method according to yet other embodiments of the present disclosure.
- step 310b the solution is loaded.
- step 305b may be executed to initialize the process control.
- step 315b may be executed to edit the solution and modify parameters.
- step 320b an algorithm function module is obtained.
- step 330b the parameter object of the algorithm function module is obtained.
- step 340b the parameters of the algorithm function module are set and obtained.
- step 325b may be executed to bind the algorithm function module with the corresponding parameter configuration control; and step 328b may be executed to edit the parameter configuration control and modify the parameters.
- step 350b the solution is saved.
- FIG. 3 c shows a schematic diagram of an image processing method according to some embodiments of the present disclosure.
- the image processing method may include the following process.
- the profilometer in the 3D camera when selecting hardware, select the profilometer in the 3D camera as the image source among multiple hardware; set the parameters of the profilometer, including field of view, exposure time, output file format: including grayscale, depth map, 3D point cloud data, etc.
- the function module select the image filter function module to filter out some noise points in the laser acquisition process, so that the data formed is smoother and is conducive to subsequent processing.
- a logic function module can be added to determine whether the product supports 3D point cloud data and cross-section tools, etc.
- the output of the cross-section function module is connected to the input of the flatness function module; the output of the flatness function module is connected to the final result output to form a processing flow.
- the process engine controls the operation of the entire process. If there are multiple processes, it is necessary to consider the computer resources such as memory, CPU and process optimization; the entire process can be exported as a ZIV file.
- ZIV file can be imported into other projects through encryption and serialization. It also supports secondary development and provides access to mainstream programming languages.
- the process engine controls the output and execution smoothness, logic, etc. of each functional tool.
- FIG. 4 shows a schematic diagram of an image processing device or an information processing device according to some embodiments of the present disclosure.
- the image processing device 4 includes: a selection unit 41, which is used to select a plurality of algorithm function modules corresponding to the image processing task according to the image processing task, and the plurality of corresponding algorithm function modules are obtained by decomposing the corresponding image processing algorithm of the image processing task; a generation unit 42, which is used to generate a plurality of plug-ins according to the plurality of corresponding algorithm function modules; and a processing unit 43, which is used to process the image processing task using the plurality of plug-ins.
- the image processing device 4 also includes: a decomposition unit 44, which is used to divide multiple image processing algorithms into multiple image processing function sets according to the image processing functions that can be realized, and decompose multiple candidate algorithm function modules in each image processing function set; a selection unit 41 selects an image processing function set corresponding to the image processing task from multiple image processing function sets according to the image processing function to be realized by the image processing task, and selects multiple algorithm function modules from multiple candidate algorithm function modules in the corresponding image processing function set.
- a decomposition unit 44 which is used to divide multiple image processing algorithms into multiple image processing function sets according to the image processing functions that can be realized, and decompose multiple candidate algorithm function modules in each image processing function set
- a selection unit 41 selects an image processing function set corresponding to the image processing task from multiple image processing function sets according to the image processing function to be realized by the image processing task, and selects multiple algorithm function modules from multiple candidate algorithm function modules in the corresponding image processing function set.
- the decomposition unit 44 divides each image processing function set into a plurality of sub-functions, and decomposes a plurality of candidate algorithm function modules according to the plurality of sub-functions.
- the decomposition unit 44 decomposes the image processing algorithm corresponding to each image processing function set into multiple functional functions as sub-functions at the algorithm layer, and encapsulates the multiple functional functions into multiple DLLs as multiple candidate algorithm function modules.
- multiple candidate algorithm function modules are divided into multiple groups, there is no interactive relationship between the candidate algorithm function modules belonging to different groups, and the candidate algorithm function modules belonging to the same group are divided into multiple layers according to the execution order of the corresponding image processing algorithms of the same group; the generation unit 42 generates at least one plug-in according to the grouping and layering of the multiple algorithm function modules.
- the generation unit 42 generates at least one plug-in at the plug-in layer according to a plurality of algorithm function modules and their associated controls.
- the image processing device 4 further includes: a storage unit 45 for storing controls in a manner of separating data from logic, and the controls have an interface.
- At least one plug-in includes multiple plug-ins, and the processing unit 43 imports the multiple plug-ins into the same processing flow in sequence, and processes the image processing task using the processing flow.
- the processing unit compiles multiple plug-ins into DLLs at the plug-in layer; and uses the parsing information of the DLLs to import the DLLs into the same main program.
- the processing unit 43 uses the main program to determine whether the interface of the DLL meets the interface requirements based on the parsing information. If it meets the interface requirements, the main program is used to import the DLL into the main program through a registration process.
- the plug-in adopts a key-value pair structure
- the key of the key-value pair structure includes the interface of the plug-in
- the value of the key-value pair structure includes the name of the plug-in
- the selection unit 41 selects a hardware access module corresponding to the image processing task according to the image processing task, and different hardware access modules are used to access different hardware devices; the generation unit 42 generates at least one plug-in according to the hardware access module and multiple algorithm function modules.
- the image processing algorithm includes an image processing algorithm based on a machine learning model, and the image processing tasks include guidance function, measurement function, detection function and recognition function.
- the machine learning model is trained in the following manner: performing image transformation processing on the labeled first sample image to generate a second sample image; and using the first sample image and the second sample image to train the machine learning model corresponding to the machine learning algorithm.
- the machine learning model corresponding to the machine learning algorithm is trained in the following manner: obtaining a product image containing product defects; generating a background image of the product image; and generating a sample image for training the machine learning model based on the product image and the background image.
- the machine learning model corresponding to the machine learning algorithm is trained in the following manner: the machine learning model corresponding to the machine learning algorithm is trained in the cloud; and the trained machine learning model is sent to the edge to process the image processing task.
- the information processing device 4 includes: a selection unit 41, used to select multiple algorithm function modules corresponding to the information processing task according to the information processing task, and the multiple algorithm function modules are obtained by decomposing multiple information processing algorithms; a generation unit 42, used to generate at least one plug-in according to the multiple algorithm function modules; a processing unit 43, used to use at least one plug-in to process the information processing task.
- the information processing device 4 also includes: a decomposition unit 44, which is used to divide multiple information processing algorithms into multiple image processing function sets according to the information processing functions that can be realized, and decompose multiple candidate algorithm function modules in each image processing function set; a selection unit 41 selects an image processing function set corresponding to the information processing task from multiple image processing function sets according to the information processing function to be realized by the information processing task, and selects multiple algorithm function modules from multiple candidate algorithm function modules of the corresponding image processing function set.
- a decomposition unit 44 which is used to divide multiple information processing algorithms into multiple image processing function sets according to the information processing functions that can be realized, and decompose multiple candidate algorithm function modules in each image processing function set
- a selection unit 41 selects an image processing function set corresponding to the information processing task from multiple image processing function sets according to the information processing function to be realized by the information processing task, and selects multiple algorithm function modules from multiple candidate algorithm function modules of the corresponding image processing function set.
- the decomposition unit 44 divides each image processing function set into a plurality of sub-functions, and decomposes a plurality of candidate algorithm function modules according to the plurality of sub-functions.
- the decomposition unit 44 decomposes the information processing algorithm corresponding to each image processing function set into multiple functional functions as sub-functions at the algorithm layer, and encapsulates the multiple functional functions into multiple DLLs as multiple candidate algorithm function modules.
- multiple candidate algorithm function modules are divided into multiple groups, there is no interactive relationship between the candidate algorithm function modules belonging to different groups, and the candidate algorithm function modules belonging to the same group are divided into multiple layers according to the execution order of the corresponding information processing algorithms of the same group; the generation unit 42 generates at least one plug-in according to the grouping and layering of the multiple algorithm function modules.
- the generation unit 42 generates at least one plug-in at the plug-in layer according to a plurality of algorithm function modules and their associated controls.
- the information processing device 4 further includes: a storage unit 45 for storing controls in a manner of separating data from logic, and the controls have an interface.
- At least one plug-in includes multiple plug-ins, and the processing unit 43 imports the multiple plug-ins into the same processing flow in sequence, and processes the information processing task using the processing flow.
- the processing unit compiles multiple plug-ins into DLLs at the plug-in layer; and uses the parsing information of the DLLs to import the DLLs into the same main program.
- the processing unit 43 uses the main program to determine whether the interface of the DLL meets the interface requirements based on the parsing information. If it meets the interface requirements, the main program is used to import the DLL into the main program through a registration process.
- the plug-in adopts a key-value pair structure
- the key of the key-value pair structure includes the interface of the plug-in
- the value of the key-value pair structure includes the name of the plug-in
- the selection unit 41 selects a hardware access module corresponding to the information processing task according to the information processing task, and different hardware access modules are used to access different hardware devices; the generation unit 42 generates at least one plug-in according to the hardware access module and multiple algorithm function modules.
- the information processing algorithm includes an image processing algorithm based on a machine learning model
- the information processing tasks include guidance function, measurement function, detection function and recognition function.
- the machine learning model is trained in the following manner: performing image transformation processing on the labeled first sample image to generate a second sample image; and using the first sample image and the second sample image to train the machine learning model corresponding to the machine learning algorithm.
- the machine learning model is trained by: acquiring a product image containing a product defect; generating a background image of the product image; and generating a sample image for training the machine learning model based on the product image and the background image.
- the machine learning model is trained in the following manner: training the machine learning model corresponding to the machine learning algorithm in the cloud; and sending the trained machine learning model to the edge to process the image processing task.
- FIG. 5 shows a block diagram of some embodiments of an electronic device according to some embodiments of the present disclosure.
- the electronic device 5 of this embodiment includes: a memory 51 and a processor 52 coupled to the memory 51 , and the processor 52 is configured to execute the image processing method or information processing method in any embodiment of the present disclosure based on instructions stored in the memory 51 .
- the memory 51 may include, for example, a system memory, a fixed non-volatile storage medium, etc.
- the system memory may store, for example, an operating system, an application program, a boot loader, a database, and other programs.
- FIG. 6 shows a block diagram of further embodiments of an electronic device according to some embodiments of the present disclosure.
- the electronic device 6 of this embodiment includes: a memory 610 and a processor 620 coupled to the memory 610 , and the processor 620 is configured to execute the image processing method or information processing method in any one of the aforementioned embodiments based on instructions stored in the memory 610 .
- the memory 610 may include, for example, a system memory, a fixed non-volatile storage medium, etc.
- the system memory may store, for example, an operating system, an application program, a boot loader, and other programs.
- the electronic device 6 may also include an input/output interface 630, a network interface 640, a storage interface 650, etc. These interfaces 630, 640, 650, the memory 610, and the processor 620 may be connected, for example, via a bus 660.
- the input/output interface 630 provides a connection interface for input/output devices such as a display, a mouse, a keyboard, a touch screen, a microphone, and a speaker.
- the network interface 640 provides a connection interface for various networked devices.
- the storage interface 650 provides a connection interface for external storage devices such as an SD card and a USB flash drive.
- FIG. 7 shows a schematic diagram of an image processing method according to some other embodiments of the present disclosure.
- the development of the processing flow of the business is plug-in-based, which is a dynamically extended software development architecture and a program written using a standardized application program interface.
- the plug-in is mainly implemented by relying on interfaces (such as business interfaces and plug-in interfaces) and their reflection mechanisms.
- the interface is actually a "contract”.
- the host program 71 uses this "contract" to constrain whether there is an object that meets the expectations (such as plug-in 72). If it does not meet the requirements, the object will not be loaded.
- Plug-in 72 is an object shared through dynamic links. It is a modular component with functions that can be reused and flexibly managed (such as maintenance, replacement, addition, deletion, etc.). Based on the extensibility of plug-in 72, the independence and decoupling of different functional modules of the business are realized, which increases the maintainability and extensibility of program development.
- the plug-in 72 can add new functions on the basis of the existing host program 71 without destroying its existing core functions. In this way, third-party developers can add value to the existing system configuration, and other developers can also cooperate with each other in collaborative development. Through multiple plug-ins 72, the focus points in the program development process can be processed separately, the implementation details can be hidden, and independent testing of each focus point can be performed. It should be understood by those skilled in the art that the embodiments of the present disclosure can be provided as methods, systems, or computer program products. Therefore, the present disclosure can take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present disclosure can take the form of a computer program product implemented on one or more computer-usable non-transient storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
- computer-usable non-transient storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- the method and system of the present disclosure may be implemented in many ways.
- the method and system of the present disclosure may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware.
- the above order of steps for the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above, unless otherwise specifically stated.
- the present disclosure may also be implemented as a program recorded in a recording medium, which includes machine-readable instructions for implementing the method according to the present disclosure. Therefore, the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Image Analysis (AREA)
Abstract
Description
本公开涉及计算机技术领域,特别涉及一种图像处理方法、三维测量方法、信息处理方法、电子设备、非易失性计算机可读存储介质和计算机程序。The present disclosure relates to the field of computer technology, and in particular to an image processing method, a three-dimensional measurement method, an information processing method, an electronic device, a non-volatile computer-readable storage medium, and a computer program.
随着时代发展,对产品质量要求越来越高,AI(Artificial Intelligence,人工智能)等新技术的快速应用,使得产品检测能力也不断增强。同时,AI等新技术的应用让所有竞争者都处于同一起跑线,工业视觉检测正迎来快速发展时代。With the development of the times, the requirements for product quality are getting higher and higher. The rapid application of new technologies such as AI (Artificial Intelligence) has continuously enhanced product inspection capabilities. At the same time, the application of new technologies such as AI has put all competitors on the same starting line, and industrial visual inspection is ushering in an era of rapid development.
工业视觉是工业互联网重要数据采集入口,是工业互联网的重要组成部分。工业生产过程中,离不开视觉的各种功能支持。从生产材料入库、入线前检测、生产过程中质量监控与在线检测、产品终检、出库到整体的溯源等环节,均离不开工业视觉的应用。Industrial vision is an important data collection portal for the Industrial Internet and an important part of the Industrial Internet. The industrial production process cannot be separated from the various functional supports of vision. From the storage of production materials, pre-line inspection, quality monitoring and online inspection during production, final product inspection, delivery to overall traceability, all these links cannot be separated from the application of industrial vision.
在相关技术中,针对具体的图像处理任务,独立地进行图像处理工具的开发。In the related art, image processing tools are developed independently for specific image processing tasks.
发明内容Summary of the invention
根据本公开的一些实施例,提供了一种图像处理方法,包括:响应于用户在流程图中的第一操作,确定执行图像处理任务所需的多个算法功能模块和多个算法功能模块之间的连接关系,以生成图像处理任务的流程,算法功能模块以插件形式进行封装;解析多个算法功能模块对应的多个插件,以记录多个算法功能模块之间的连接关系;根据记录的连接关系,驱动并执行图像处理任务的流程。According to some embodiments of the present disclosure, there is provided an image processing method, comprising: in response to a first operation of a user in a flowchart, determining multiple algorithm function modules required to perform an image processing task and a connection relationship between the multiple algorithm function modules to generate a process of the image processing task, wherein the algorithm function modules are encapsulated in the form of plug-ins; parsing multiple plug-ins corresponding to the multiple algorithm function modules to record the connection relationship between the multiple algorithm function modules; and driving and executing the process of the image processing task according to the recorded connection relationship.
在一些实施例中,图像处理方法还包括响应于用户在流程图中的第二操作,获取至少一个新增的算法功能模块;监控新增算法模块是否符合定义规范;在符合定义规范的情况下,将新增的算法功能模块导入图像处理任务的流程中。In some embodiments, the image processing method also includes obtaining at least one newly added algorithm function module in response to the user's second operation in the flowchart; monitoring whether the newly added algorithm module meets the definition specifications; and if it meets the definition specifications, importing the newly added algorithm function module into the process of the image processing task.
在一些实施例中,确定执行图像处理任务所需的多个算法功能模块和多个算法功能模块之间的连接关系包括:确定与宿主程序的新增功能相应的多个算法功能模块,新增功能用于处理图像处理任务;驱动并执行图像处理任务的流程包括:利用宿主程序加载多个算法功能模块对应的多个插件,将多个插件导入宿主程序;调用导入了多个插件的宿主程序,驱动并执行图像处理任务的流程。In some embodiments, determining multiple algorithm function modules required to perform an image processing task and the connection relationship between the multiple algorithm function modules includes: determining multiple algorithm function modules corresponding to new functions of the host program, and the new functions are used to process image processing tasks; the process of driving and executing image processing tasks includes: using the host program to load multiple plug-ins corresponding to the multiple algorithm function modules, and importing the multiple plug-ins into the host program; calling the host program that has imported multiple plug-ins to drive and execute the process of image processing tasks.
在一些实施例中,插件具有在流程中定义的通用接口,通用接口用于插件与流程进行交互。In some embodiments, the plug-in has a common interface defined in the process, and the common interface is used for the plug-in to interact with the process.
在一些实施例中,解析多个算法功能模块对应的多个插件包括:在流程启动后,监控是否在预设存储位置存在符合定义规范的插件;在存在符合定义规范的插件的情况下,对插件进行解析。In some embodiments, parsing multiple plug-ins corresponding to multiple algorithm function modules includes: after the process is started, monitoring whether there are plug-ins that meet the definition specifications in a preset storage location; if there are plug-ins that meet the definition specifications, parsing the plug-ins.
在一些实施例中,对插件进行解析包括:对插件进行解析,获取插件的相关信息;驱动并执行图像处理任务的流程包括:在相关信息符合流程的要求的情况下,加载插件。In some embodiments, parsing the plug-in includes: parsing the plug-in to obtain relevant information of the plug-in; and the process of driving and executing the image processing task includes: loading the plug-in when the relevant information meets the requirements of the process.
在一些实施例中,加载插件包括:判断用户是否具备调用插件的权限;在具备调用插件的权限的情况下,加载插件。In some embodiments, loading the plug-in includes: determining whether the user has permission to call the plug-in; and loading the plug-in if the user has permission to call the plug-in.
在一些实施例中,图像处理方法,还包括:利用流程引擎功能,为多个插件设置输入接口和输出接口。In some embodiments, the image processing method further includes: using a process engine function to set input interfaces and output interfaces for multiple plug-ins.
在一些实施例中,记录多个算法功能模块之间的连接关系包括:以XML(eXtensible Markup Language,可扩展标记语言)方式记录连接关系,生成流程的相关信息记录;根据记录的连接关系,驱动并执行图像处理任务的流程包括:根据相关信息记录,生成驱动程序;利用驱动程序,驱动并执行图像处理任务的流程。In some embodiments, recording the connection relationship between multiple algorithm function modules includes: recording the connection relationship in XML (eXtensible Markup Language) format to generate relevant information records of the process; according to the recorded connection relationship, driving and executing the process of image processing tasks includes: generating a driver program according to the relevant information records; using the driver program to drive and execute the process of image processing tasks.
在一些实施例中,解析多个算法功能模块对应的多个插件包括:解析多个插件的描述信息,描述信息用于判断多个插件是否符合定义规范。In some embodiments, parsing multiple plug-ins corresponding to multiple algorithm function modules includes: parsing description information of the multiple plug-ins, where the description information is used to determine whether the multiple plug-ins meet the definition specifications.
在一些实施例中,插件采用视图部分和逻辑部分的分离存储,视图部分和逻辑部分具有绑定关系。In some embodiments, the plug-in adopts separate storage of the view part and the logic part, and the view part and the logic part have a binding relationship.
在一些实施例中,图像处理任务包括引导功能、测量功能、检测功能和识别功能中的至少一项。In some embodiments, the image processing task includes at least one of a guidance function, a measurement function, a detection function, and a recognition function.
在一些实施例中,引导功能包括精确对位功能、对位贴合功能、手眼标定功能或者机器人引导功能中的至少一项;测量功能包括距离测量功能、角度测量功能、厚度测量功能或者平整度测量功能中的至少一项;检测功能包括缺陷检测功能、缺陷分类功能、缺陷定位功能或者瑕疵检测功能中的至少一项;识别功能包括条码识别功能、字符识别功能、尺寸识别功能或者颜色识别功能的至少一项。In some embodiments, the guidance function includes at least one of a precise alignment function, an alignment and fitting function, a hand-eye calibration function, or a robot guidance function; the measurement function includes at least one of a distance measurement function, an angle measurement function, a thickness measurement function, or a flatness measurement function; the detection function includes at least one of a defect detection function, a defect classification function, a defect location function, or a flaw detection function; the recognition function includes at least one of a barcode recognition function, a character recognition function, a size recognition function, or a color recognition function.
在一些实施例中,各算法功能模块分别对应多个图像处理算法包含的各子功能。In some embodiments, each algorithm function module corresponds to each sub-function included in a plurality of image processing algorithms.
在一些实施例中,多个算法功能模块从多个图像处理功能集合包括的候选算法功能模块中选取,不同的图像处理功能集合对应具有不同图像处理功能的图像处理 算法。In some embodiments, multiple algorithm function modules are selected from candidate algorithm function modules included in multiple image processing function sets, and different image processing function sets correspond to image processing algorithms with different image processing functions.
在一些实施例中,候选算法功能模块通过将候选算法功能模块所在图像处理功能集合对应的图像处理算法分解为多个子功能获取。In some embodiments, the candidate algorithm function module is obtained by decomposing the image processing algorithm corresponding to the image processing function set where the candidate algorithm function module is located into multiple sub-functions.
在一些实施例中,候选算法功能模块为DLL(Dynamic Link Library,动态链接库),多个子功能为从对应的图像处理算法分解出来的多个功能函数,DLL通过封装功能函数获取。In some embodiments, the candidate algorithm function module is a DLL (Dynamic Link Library), and the multiple sub-functions are multiple function functions decomposed from the corresponding image processing algorithm, and the DLL is obtained by encapsulating the function functions.
在一些实施例中,各图像处理功能集合包括多个分组,同一分组中的候选算法功能模块之间有交互关系,不同分组中的候选算法功能模块之间没有交互关系,各分组分别包括多个分层,多个分层根据各分组所在的图像处理功能集合对应的图像处理算法的执行顺序划分。In some embodiments, each image processing function set includes multiple groups, there is an interactive relationship between the candidate algorithm function modules in the same group, there is no interactive relationship between the candidate algorithm function modules in different groups, each group includes multiple layers, and the multiple layers are divided according to the execution order of the image processing algorithms corresponding to the image processing function set to which each group belongs.
在一些实施例中,图像处理方法,还包括:响应于第一操作,确定图像处理任务所需的硬件接入模块和硬件接入模块与多个算法功能模块之间的连接关系,不同的硬件接入模块用于接入不同的硬件设备;解析硬件接入模块对应的插件,以记录硬件接入模块与多个算法功能模块之间的连接关系。In some embodiments, the image processing method further includes: in response to the first operation, determining the hardware access module required for the image processing task and the connection relationship between the hardware access module and multiple algorithm function modules, different hardware access modules are used to access different hardware devices; parsing the plug-in corresponding to the hardware access module to record the connection relationship between the hardware access module and multiple algorithm function modules.
在一些实施例中,根据记录的连接关系,驱动并执行图像处理任务的流程包括:根据图像处理程序中多个算法功能模块之间的执行关系类型,执行多个插件,执行关系类型包括串行、并行、分支执行、条件执行、逻辑判断中的至少一项。In some embodiments, based on the recorded connection relationship, the process of driving and executing the image processing task includes: executing multiple plug-ins based on the execution relationship type between multiple algorithm function modules in the image processing program, and the execution relationship type includes at least one of serial, parallel, branch execution, conditional execution, and logical judgment.
根据本公开的另一些实施例,提供一种三维测量方法,包括:响应于用户在流程图中的第一操作,确定执行三维测量任务所需的多个算法功能模块和多个算法功能模块之间的连接关系,以生成三维测量任务的流程,算法功能模块以插件形式进行封装,多个算法功能模块包括图像滤波功能模块、横截面功能模块或者平整度功能模块中的至少一个;解析多个算法功能模块对应的多个插件,以记录多个算法功能模块之间的连接关系;根据记录的连接关系,驱动并执行三维测量任务的流程。According to some other embodiments of the present disclosure, a three-dimensional measurement method is provided, including: in response to a first operation of a user in a flowchart, determining multiple algorithm function modules required to perform a three-dimensional measurement task and a connection relationship between the multiple algorithm function modules to generate a process of the three-dimensional measurement task, the algorithm function modules are packaged in the form of plug-ins, and the multiple algorithm function modules include at least one of an image filtering function module, a cross-section function module, or a flatness function module; parsing multiple plug-ins corresponding to the multiple algorithm function modules to record the connection relationship between the multiple algorithm function modules; and driving and executing the process of the three-dimensional measurement task according to the recorded connection relationship.
在一些实施例中,三维测量方法,还包括响应于用户在流程图中的第二操作,获取至少一个新增的算法功能模块;监控新增算法模块是否符合定义规范;在符合定义规范的情况下,将新增的算法功能模块导入三维测量任务的流程中。In some embodiments, the three-dimensional measurement method further includes obtaining at least one newly added algorithm function module in response to the user's second operation in the flowchart; monitoring whether the newly added algorithm module meets the definition specifications; and importing the newly added algorithm function module into the process of the three-dimensional measurement task if it meets the definition specifications.
在一些实施例中,确定执行三维测量任务所需的多个算法功能模块和多个算法功能模块之间的连接关系包括:确定与宿主程序的新增功能相应的多个算法功能模块,新增功能用于处理三维测量任务;驱动并执行三维测量任务的流程包括:利用宿主程序加载多个算法功能模块对应的多个插件,将多个插件导入宿主程序;调用导入了多 个插件的宿主程序,驱动并执行三维测量任务的流程。In some embodiments, determining multiple algorithm function modules required to perform a three-dimensional measurement task and the connection relationship between the multiple algorithm function modules includes: determining multiple algorithm function modules corresponding to new functions of a host program, where the new functions are used to process the three-dimensional measurement task; the process of driving and executing the three-dimensional measurement task includes: using the host program to load multiple plug-ins corresponding to the multiple algorithm function modules, and importing the multiple plug-ins into the host program; calling the host program into which the multiple plug-ins have been imported, and driving and executing the process of the three-dimensional measurement task.
在一些实施例中,三维测量方法,还包括:响应于第一操作,确定三维测量任务所需的硬件接入模块和硬件接入模块与多个算法功能模块之间的连接关系,不同的硬件接入模块用于接入不同的硬件设备;解析硬件接入模块对应的插件,以记录硬件接入模块与多个算法功能模块之间的连接关系。In some embodiments, the three-dimensional measurement method also includes: in response to the first operation, determining the hardware access module required for the three-dimensional measurement task and the connection relationship between the hardware access module and multiple algorithm function modules, different hardware access modules are used to access different hardware devices; parsing the plug-in corresponding to the hardware access module to record the connection relationship between the hardware access module and multiple algorithm function modules.
根据本公开的又一些实施例,提供一种信息处理方法,包括:响应于用户在流程图中的第一操作,确定执行信息处理任务所需的多个算法功能模块和多个算法功能模块之间的连接关系,以生成信息处理任务的流程,算法功能模块以插件形式进行封装;解析多个算法功能模块对应的多个插件,以记录多个算法功能模块之间的连接关系;根据记录的连接关系,驱动并执行信息处理任务的流程。According to some other embodiments of the present disclosure, there is provided an information processing method, comprising: in response to a first operation of a user in a flowchart, determining multiple algorithm function modules required to perform an information processing task and a connection relationship between the multiple algorithm function modules to generate a process of the information processing task, wherein the algorithm function modules are encapsulated in the form of plug-ins; parsing multiple plug-ins corresponding to the multiple algorithm function modules to record the connection relationship between the multiple algorithm function modules; and driving and executing the process of the information processing task according to the recorded connection relationship.
根据本公开的再一些实施例,提供一种电子设备,包括:存储器;和耦接至存储器的处理器,处理器被配置为基于存储在存储器装置中的指令,执行上述任一个实施例中的图像处理方法、三维测量方法或者信息处理方法。According to some further embodiments of the present disclosure, there is provided an electronic device, comprising: a memory; and a processor coupled to the memory, wherein the processor is configured to execute the image processing method, three-dimensional measurement method or information processing method in any one of the above-mentioned embodiments based on instructions stored in the memory device.
根据本公开的再一些实施例,提供一种非易失性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图像处理方法、三维测量方法或者信息处理方法。According to some further embodiments of the present disclosure, a non-volatile computer-readable storage medium is provided, on which a computer program is stored, and when the program is executed by a processor, an image processing method, a three-dimensional measurement method, or an information processing method is implemented.
根据本公开的再一些实施例,还提供了一种计算机程序,包括:指令,指令当由处理器执行时使处理器执行图像处理方法、三维测量方法或者信息处理方法。According to some further embodiments of the present disclosure, there is further provided a computer program, comprising: instructions, which, when executed by a processor, cause the processor to execute an image processing method, a three-dimensional measurement method, or an information processing method.
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。Other features and advantages of the present disclosure will become apparent from the following detailed description of exemplary embodiments of the present disclosure with reference to the accompanying drawings.
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:The drawings described herein are used to provide a further understanding of the present disclosure and constitute a part of the present application. The illustrative embodiments of the present disclosure and their descriptions are used to explain the present disclosure and do not constitute an improper limitation on the present disclosure. In the drawings:
图1示出根据本公开一些实施例的图像处理方法的流程图;FIG1 is a flowchart showing an image processing method according to some embodiments of the present disclosure;
图2a~2b示出根据本公开一些实施例的插件式框架的示意图;2a-2b show schematic diagrams of a plug-in framework according to some embodiments of the present disclosure;
图3a示出根据本公开另一些实施例的图像处理方法的流程图;FIG3a shows a flowchart of an image processing method according to some other embodiments of the present disclosure;
图3b示出根据本公开又一些实施例的图像处理方法的流程图;FIG3 b shows a flow chart of an image processing method according to yet other embodiments of the present disclosure;
图3c示出根据本公开一些实施例的图像处理方法的示意图;FIG3c is a schematic diagram showing an image processing method according to some embodiments of the present disclosure;
图4示出根据本公开一些实施例的图像处理装置或信息处理装置的示意图;FIG4 shows a schematic diagram of an image processing device or an information processing device according to some embodiments of the present disclosure;
图5示出根据本公开一些实施例的电子设备的一些实施例的框图;FIG5 illustrates a block diagram of some embodiments of an electronic device according to some embodiments of the present disclosure;
图6示出根据本公开一些实施例的电子设备的另一些实施例的框图;FIG6 shows a block diagram of some other embodiments of an electronic device according to some embodiments of the present disclosure;
图7示出根据本公开另一些实施例的图像处理方法的示意图。FIG. 7 shows a schematic diagram of an image processing method according to some other embodiments of the present disclosure.
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。The technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are only part of the embodiments of the present disclosure, rather than all of the embodiments. The following description of at least one exemplary embodiment is actually only illustrative and is by no means intended to limit the present disclosure and its application or use. Based on the embodiments in the present disclosure, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present disclosure.
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。Unless otherwise specifically stated, the relative arrangement of the parts and steps described in these embodiments, numerical expressions and numerical values do not limit the scope of the present disclosure. At the same time, it should be understood that, for ease of description, the sizes of the various parts shown in the accompanying drawings are not drawn according to the actual proportional relationship. The technology, methods and equipment known to ordinary technicians in the relevant field may not be discussed in detail, but in appropriate cases, the technology, methods and equipment should be regarded as a part of the authorization specification. In all examples shown and discussed here, any specific value should be interpreted as being merely exemplary, rather than as a limitation. Therefore, other examples of exemplary embodiments may have different values. It should be noted that similar numbers and letters represent similar items in the following drawings, so once a certain item is defined in one drawing, it does not need to be further discussed in subsequent drawings.
本公开的发明人发现上述相关技术中存在如下问题:开发效率低、成本高。鉴于此,本公开提出了一种图像处理的技术方案,能够提高图像处理工具的开发效率,降低成本。The inventor of the present disclosure has found that the above-mentioned related technologies have the following problems: low development efficiency and high cost. In view of this, the present disclosure proposes a technical solution for image processing, which can improve the development efficiency of image processing tools and reduce costs.
如前所述,用于处理工具开发的软件平台,在架构和功能层面存在如下的技术问题:扩展性不够灵活,且终端客户在使用产品时,遇到工艺和场景轻微调整时,开发过程不便捷、不高效;在算法设计和编程过程中,还需要调整代码和进行复杂的配置;深度学习功能不够丰富;使用深度学习功能时,图像标注依靠手动,没有样本增强;模型训练依靠本地强大硬件。As mentioned earlier, the software platform used for processing tool development has the following technical problems at the architectural and functional levels: the scalability is not flexible enough, and the development process is not convenient and efficient when end customers encounter slight adjustments to the process and scenario when using the product; during the algorithm design and programming process, the code needs to be adjusted and complex configurations need to be performed; the deep learning function is not rich enough; when using the deep learning function, image annotation relies on manual work without sample enhancement; and model training relies on powerful local hardware.
图像处理的算法会随着技术的不断发展丰富;另外,结合众多的应用场景,需要针对不同场景的视觉工具才能快速的解决相关问题。当图像算法变化和不同的场景需求时,需要不断地更新主程序,这样给程序的灵活性和拓展带来挑战。Image processing algorithms will be enriched with the continuous development of technology; in addition, combined with numerous application scenarios, visual tools for different scenarios are needed to quickly solve related problems. When the image algorithm changes and different scene requirements are met, the main program needs to be constantly updated, which brings challenges to the flexibility and expansion of the program.
随着工业视觉在智能生产中的应用,场景不断变化,产品的使用客户也有对产品根据不同的需求进行调整和完善的需求。如果产品不采用灵活的架构方式,用户使用起来不够灵活,大大降低了产品的满意度。With the application of industrial vision in intelligent production, the scenarios are constantly changing, and customers who use the products also have the need to adjust and improve the products according to different needs. If the product does not adopt a flexible architecture, users will not be flexible enough to use it, which greatly reduces product satisfaction.
基于以上的技术问题,本公开的图像处理工具开发系统中充分考虑了技术便捷和客户实际需求,开发系统的特点包括轻量化、易用、功能丰富、扩展性强、流程编辑、使用和操作方便、容易部署等。Based on the above technical problems, the image processing tool development system disclosed in the present invention fully considers technical convenience and actual customer needs. The characteristics of the development system include lightweight, easy to use, rich functions, strong scalability, process editing, easy to use and operate, and easy to deploy.
在一些实施例中,提出了一种基于插件架构和流程引擎驱动的深度学习软件系统,涉及到核心算法和技术包括图像处理和深度学习等。主要解决了在工业生产过程中,工业视觉的各种功能支持。从生产材料入库、入线前检测、生产过程中质量监控与在线检测、产品终检、出库到整体的溯源等环节离不开工业视觉的应用,为制造业的智能升级发展做出贡献。In some embodiments, a deep learning software system based on a plug-in architecture and process engine drive is proposed, involving core algorithms and technologies including image processing and deep learning. It mainly solves the various functional supports of industrial vision in the industrial production process. From the warehousing of production materials, pre-line inspection, quality monitoring and online inspection during production, final product inspection, delivery to overall traceability, the application of industrial vision is indispensable, contributing to the intelligent upgrading and development of the manufacturing industry.
例如,可以通过如下的实施例实现本公开的技术方案。For example, the technical solution of the present disclosure can be implemented through the following embodiments.
图1示出根据本公开一些实施例的图像处理方法的流程图。FIG. 1 shows a flowchart of an image processing method according to some embodiments of the present disclosure.
如图1所示,在步骤110中,响应于用户在流程图中的第一操作(如拖、拉、拽、点击等选择操作),确定执行图像处理任务所需的多个算法功能模块和多个算法功能模块之间的连接关系,以生成图像处理任务的流程。例如,算法功能模块以插件形式进行封装。插件能够实现的核心功能可以包括各种图像处理算法、业务实现逻辑等。As shown in FIG1 , in
例如,流程图可以是一个程序开发的模板。基于该模板,用户可以通过拖、拉、拽、点击等对插件的选择操作,在程序开发界面的流程编辑区形成一个包含多个节点(由插件封装而成)的流程;根据要执行的业务(如图像处理任务),可以生成不同的流程;宿主程序可以记录该流程的相关信息(如节点数量、执行顺序、依赖关系等)。For example, a flowchart can be a template for program development. Based on this template, users can select plug-ins by dragging, dropping, clicking, etc., to form a process containing multiple nodes (encapsulated by plug-ins) in the process editing area of the program development interface; different processes can be generated according to the business to be performed (such as image processing tasks); the host program can record relevant information of the process (such as the number of nodes, execution order, dependencies, etc.).
例如,流程图中节点之间互相连接的线,用于表示节点之间的关系,包括执行顺序、逻辑关系(如并列、分支、条件等)等。For example, the lines connecting the nodes in a flowchart are used to represent the relationships between the nodes, including execution order, logical relationships (such as parallel, branching, conditions, etc.), etc.
在一些实施例中,一个视觉场景可能同时需要几个甚至几十个流程一起工作,才能完成整个场景。基于此,需要一个对众多功能和流程进行管理的一个流程引擎。流程是流程图运行时的一个实例。流程图可以理解成一个“类”,流程可以理解成通过流程引擎进行驱动执行的一个“对象”。这样,能够支持对流程的导入和导出,以便在其他程序中进行引用。In some embodiments, a visual scene may require several or even dozens of processes to work together to complete the entire scene. Based on this, a process engine is needed to manage many functions and processes. A process is an instance of a flowchart at runtime. A flowchart can be understood as a "class", and a process can be understood as an "object" driven by a process engine. In this way, it is possible to support the import and export of processes so that they can be referenced in other programs.
在一些实施例中,将多个插件,按顺序导入同一个流程;利用该流程,对图像处理任务进行处理。例如,在插件层,将多个插件编译为DLL;利用DLL的解析信息, 将DLL导入同一个宿主程序中。In some embodiments, multiple plug-ins are sequentially imported into the same process, and the image processing task is processed using the process. For example, at the plug-in layer, multiple plug-ins are compiled into DLLs, and the DLLs are imported into the same host program using the parsing information of the DLLs.
在一些实施例中,图像处理任务可以包括引导功能、测量功能、检测功能和识别功能中的至少一项。In some embodiments, the image processing task may include at least one of a guidance function, a measurement function, a detection function, and a recognition function.
例如,引导功能包括精确对位功能、对位贴合功能、手眼标定功能或者机器人引导功能中的至少一项;测量功能包括距离测量功能、角度测量功能、厚度测量功能或者平整度测量功能中的至少一项;检测功能包括缺陷检测功能、缺陷分类功能、缺陷定位功能或者瑕疵检测功能中的至少一项;识别功能包括条码识别功能、字符识别功能、尺寸识别功能或者颜色识别功能的至少一项。For example, the guiding function includes at least one of the precise alignment function, the alignment and fitting function, the hand-eye calibration function or the robot guiding function; the measuring function includes at least one of the distance measurement function, the angle measurement function, the thickness measurement function or the flatness measurement function; the detection function includes at least one of the defect detection function, the defect classification function, the defect location function or the flaw detection function; the recognition function includes at least one of the barcode recognition function, the character recognition function, the size recognition function or the color recognition function.
例如,插件的接口需要符合宿主程序的接口规范,能够实现宿主程序定义的接口功能。For example, the interface of the plug-in needs to comply with the interface specifications of the host program and be able to implement the interface functions defined by the host program.
在一些实施例中,响应于用户在流程图中的第一操作,确定执行信息处理任务所需的多个算法功能模块和多个算法功能模块之间的连接关系,以生成信息处理任务的流程,算法功能模块以插件形式进行封装。In some embodiments, in response to the user's first operation in the flowchart, multiple algorithm function modules required to perform an information processing task and the connection relationship between the multiple algorithm function modules are determined to generate a process for the information processing task, and the algorithm function modules are encapsulated in the form of plug-ins.
例如,信息处理任务包括图像处理任务、引导功能、测量功能、检测功能和识别功能等,信息处理任务对应的信息处理算法包括图像处理算法、深度学习算法等。For example, information processing tasks include image processing tasks, guidance functions, measurement functions, detection functions, and recognition functions, etc., and the information processing algorithms corresponding to the information processing tasks include image processing algorithms, deep learning algorithms, etc.
在一些实施例中,信息处理算法包括机器学习算法。机器学习算法对应的机器学习模型通过如下方式训练:对标注后的第一样本图像进行图像变换处理,生成第二样本图像;利用第一样本图像和第二样本图像,对机器学习算法对应的机器学习模型进行训练。In some embodiments, the information processing algorithm includes a machine learning algorithm. The machine learning model corresponding to the machine learning algorithm is trained by: performing image transformation processing on the annotated first sample image to generate a second sample image; and using the first sample image and the second sample image to train the machine learning model corresponding to the machine learning algorithm.
在一些实施例中,机器学习算法对应的机器学习模型通过如下方式训练:获取包含产品缺陷的产品图像;生成产品图像的背景图像;根据产品图像和背景图像,生成用于训练机器学习模型的样本图像。In some embodiments, the machine learning model corresponding to the machine learning algorithm is trained in the following manner: obtaining a product image containing product defects; generating a background image of the product image; and generating a sample image for training the machine learning model based on the product image and the background image.
在一些实施例中,机器学习算法对应的机器学习模型通过如下方式训练:在云端对机器学习算法对应的机器学习模型进行训练;将训练后的机器学习模型发送给边缘端以处理图像处理任务。在一些实施例中,响应于第一操作,确定图像处理任务所需的硬件接入模块和硬件接入模块与多个算法功能模块之间的连接关系,不同的硬件接入模块用于接入不同的硬件设备。In some embodiments, the machine learning model corresponding to the machine learning algorithm is trained in the following manner: the machine learning model corresponding to the machine learning algorithm is trained in the cloud; and the trained machine learning model is sent to the edge to process the image processing task. In some embodiments, in response to the first operation, the hardware access module required for the image processing task and the connection relationship between the hardware access module and the plurality of algorithm function modules are determined, and different hardware access modules are used to access different hardware devices.
在一些实施例中,响应于用户在流程图中的第二操作(如添加操作),获取至少一个新增的算法功能模块。例如,确定与宿主程序的新增功能相应的多个算法功能模块,新增功能用于处理图像处理任务。In some embodiments, in response to the second operation (such as adding operation) of the user in the flowchart, at least one newly added algorithm function module is obtained. For example, multiple algorithm function modules corresponding to the newly added functions of the host program are determined, and the newly added functions are used to process image processing tasks.
这样,可以在已完成开发的流程(如具有二维测量功能的宿主程序)的基础上,通过增加插件的方式,形成具有新功能的流程(如具有三维测量功能的流程)。从而,降低开发成本,提高开发效率。In this way, based on the completed development process (such as a host program with a two-dimensional measurement function), a process with new functions (such as a process with a three-dimensional measurement function) can be formed by adding plug-ins, thereby reducing development costs and improving development efficiency.
在一些实施例中,宿主程序具备在界面显示封装好的插件及其功能。在对插件进行封装后,能够形成流程中的节点;可以将节点加载到的流程引擎的列表中(例如,插件可以图标或列表形式出现在列表中),供用户进行选择(如通过拖、拉、拽、点击等操作)。In some embodiments, the host program has the ability to display packaged plug-ins and their functions in an interface. After the plug-ins are packaged, they can form nodes in the process; the nodes can be loaded into a list of the process engine (for example, the plug-ins can appear in the list in the form of icons or lists) for the user to select (such as by dragging, pulling, dropping, clicking, etc.).
例如,宿主程序具备把插件封装成节点的功能。宿主程序具备流程引擎功能,能够把加载的插件封装成各流程中的节点。For example, the host program has the function of encapsulating plug-ins into nodes. The host program has the function of a process engine, which can encapsulate the loaded plug-ins into nodes in each process.
例如,宿主程序对插件的封装可以是在界面中把整个插件封装成一个具有输入接口和输出接口的节点。节点的输出类型可以是插件的类型(如文本型、脚本型、程序型等),输入类型可以在业务功能中进行定义(如图像型或数值型)。For example, the host program can encapsulate the entire plug-in into a node with an input interface and an output interface in the interface. The output type of the node can be the type of the plug-in (such as text type, script type, program type, etc.), and the input type can be defined in the business function (such as image type or numeric type).
例如,宿主程序还可以具备拖、拉、拽、点击等对插件进行选择的功能。用户可以在列表区选择插件后,拖拽到流程编辑区,形成流程中的节点(例如,最少具备一个输入接口和一个输出接口)。For example, the host program may also have the function of selecting the plug-in by dragging, pulling, dropping, clicking, etc. After selecting the plug-in in the list area, the user may drag it to the process editing area to form a node in the process (for example, having at least one input interface and one output interface).
在一些实施例中,插件具有在流程中定义的通用接口,通用接口用于插件与流程进行交互。例如,利用宿主程序的流程引擎功能,为多个插件设置输入接口和输出接口。In some embodiments, the plug-in has a common interface defined in the process, and the common interface is used for the plug-in to interact with the process. For example, the process engine function of the host program is used to set input interfaces and output interfaces for multiple plug-ins.
例如,宿主程序具有定义插件的接口的能力。宿主程序可以定义要接入宿主程序的插件的通用接口,相当于定义一种与插件的“契约”。For example, the host program has the ability to define the interface of the plug-in. The host program can define the common interface of the plug-in to be connected to the host program, which is equivalent to defining a "contract" with the plug-in.
这样,插件通过在宿主程序中定义的接口,能够实现与宿主程序进行交互,从而完成图像处理任务。In this way, the plug-in can interact with the host program through the interface defined in the host program to complete the image processing task.
在一些实施例中,本公开的整体框架为插件式框架包括位于底层的算法层。算法层用于实现多个信息处理算法,包括图像处理、计算机视觉、深度学习等核心算法。例如,各信息处理算法以C++为编程语言实现。In some embodiments, the overall framework of the present disclosure is a plug-in framework including an algorithm layer at the bottom. The algorithm layer is used to implement multiple information processing algorithms, including core algorithms such as image processing, computer vision, and deep learning. For example, each information processing algorithm is implemented in C++ as a programming language.
在一些实施例中,各算法功能模块分别对应多个图像处理算法包含的各子功能。In some embodiments, each algorithm function module corresponds to each sub-function included in a plurality of image processing algorithms.
在一些实施例中,多个算法功能模块从多个图像处理功能集合包括的候选算法功能模块中选取,不同的图像处理功能集合对应具有不同图像处理功能的图像处理算法。In some embodiments, the plurality of algorithm function modules are selected from candidate algorithm function modules included in a plurality of image processing function sets, and different image processing function sets correspond to image processing algorithms with different image processing functions.
例如,根据能够实现的信息处理功能,将多个信息处理算法划分到多个图像处理 功能集合;在各图像处理功能集合中,分别分解出多个候选算法功能模块。例如,信息处理功能包括图像处理功能。For example, according to the information processing functions that can be realized, multiple information processing algorithms are divided into multiple image processing function sets; in each image processing function set, multiple candidate algorithm function modules are decomposed respectively. For example, the information processing function includes the image processing function.
在一些实施例中,候选算法功能模块通过将候选算法功能模块所在图像处理功能集合对应的图像处理算法分解为多个子功能获取。In some embodiments, the candidate algorithm function module is obtained by decomposing the image processing algorithm corresponding to the image processing function set where the candidate algorithm function module is located into multiple sub-functions.
例如,将各图像处理功能集合划分为多个子功能;根据多个子功能,分解出多个候选算法功能模块。例如,在算法层,将各图像处理功能集合相应的信息处理算法分解为多个功能函数,作为子功能;将多个功能函数封装为多个DLL,作为多个候选算法功能模块。For example, each image processing function set is divided into multiple sub-functions; and multiple candidate algorithm function modules are decomposed according to the multiple sub-functions. For example, at the algorithm level, the information processing algorithm corresponding to each image processing function set is decomposed into multiple function functions as sub-functions; and the multiple function functions are encapsulated into multiple DLLs as multiple candidate algorithm function modules.
在一些实施例中,候选算法功能模块为DLL形式,多个子功能为从对应的图像处理算法分解出来的多个功能函数,DLL通过封装功能函数获取。In some embodiments, the candidate algorithm function module is in the form of a DLL, and the multiple sub-functions are multiple functional functions decomposed from the corresponding image processing algorithm, and the DLL is obtained by encapsulating the functional functions.
例如,把信息处理算法中包含的各函数,封装成各DLL,以形成底层算法库。DLL是一个包含可由多个程序同时使用的代码和数据的库。For example, the functions contained in the information processing algorithm are encapsulated into DLLs to form the underlying algorithm library. DLL is a library containing code and data that can be used by multiple programs at the same time.
在一些实施例中,各图像处理功能集合包括多个分组,同一分组中的候选算法功能模块之间有交互关系,不同分组中的候选算法功能模块之间没有交互关系,各分组分别包括多个分层,多个分层根据各分组所在的图像处理功能集合对应的图像处理算法的执行顺序划分。In some embodiments, each image processing function set includes multiple groups, there is an interactive relationship between the candidate algorithm function modules in the same group, there is no interactive relationship between the candidate algorithm function modules in different groups, each group includes multiple layers, and the multiple layers are divided according to the execution order of the image processing algorithms corresponding to the image processing function set to which each group belongs.
例如,多个候选算法功能模块被划分到多个分组。属于不同分组的候选算法功能模块之间没有交互关系,属于同一分组的候选算法功能模块根据同一分组相应的图像处理算法的执行顺序被划分到多个分层中。例如,根据多个算法功能模块的分组和分层情况,生成至少一个插件。For example, multiple candidate algorithm function modules are divided into multiple groups. There is no interaction between candidate algorithm function modules belonging to different groups, and candidate algorithm function modules belonging to the same group are divided into multiple layers according to the execution order of the image processing algorithms corresponding to the same group. For example, at least one plug-in is generated according to the grouping and layering of multiple algorithm function modules.
在一些实施例中,插件式框架包括插件层。插件层用于形成处理信息处理任务的视觉工具。例如,视觉工具是由底层算法库中的DLL以及关联的控件组成。In some embodiments, the plug-in framework includes a plug-in layer. The plug-in layer is used to form a visual tool for processing information processing tasks. For example, the visual tool is composed of a DLL in an underlying algorithm library and associated controls.
这样,在产品设计阶段,产品采用了插件化结构,能够确保产品的拓展性和灵活性。In this way, during the product design phase, the product adopts a plug-in structure to ensure the scalability and flexibility of the product.
在一些实施例中,插件化结构主要是在框架中定义了插件的规范、插件管理器等。例如,插件的规范主要是定义了插件的UI(User Interface,用户界面)规范、接口规范等;插件管理器主要用于插件的发现、注册、调用、卸载、热更新等主要功能。In some embodiments, the plug-in structure mainly defines the plug-in specifications, plug-in manager, etc. in the framework. For example, the plug-in specifications mainly define the plug-in UI (User Interface) specifications, interface specifications, etc.; the plug-in manager is mainly used for the main functions of plug-in discovery, registration, calling, uninstallation, hot update, etc.
例如,信息处理任务包括3D测量任务,信息处理算法包括3D测量算法。按照插件的规范,创建3D测量算法的插件类。插件类包含实现规范中定义的运行环境定义、插件功能描述、插件的界面类型等。For example, information processing tasks include 3D measurement tasks, and information processing algorithms include 3D measurement algorithms. According to the plug-in specification, create a plug-in class for the 3D measurement algorithm. The plug-in class includes the operating environment definition, plug-in function description, plug-in interface type, etc. defined in the implementation specification.
实现插件接口中基础功能,包括:发现、注册、执行、退出、是否热启动、热更新等接口;开发3D测量算法的界面,包括在宿主程序(即主程序)出现的位置、图标等;开发3D测量算法包括的多个功能函数,包括:点云数据处理、高度测量、厚度测量、平整度测量等;进行插件类的编译,生成DLL。Implement the basic functions in the plug-in interface, including: discovery, registration, execution, exit, hot start, hot update and other interfaces; develop the interface of the 3D measurement algorithm, including the location and icon that appear in the host program (i.e., main program); develop multiple functional functions included in the 3D measurement algorithm, including: point cloud data processing, height measurement, thickness measurement, flatness measurement, etc.; compile the plug-in class and generate a DLL.
在一些实施例中,根据信息处理任务要实现的信息处理功能,在多个图像处理功能集合中选择信息处理任务相应的图像处理功能集合;在相应的图像处理功能集合的多个候选算法功能模块中,选择多个算法功能模块。In some embodiments, according to the information processing function to be implemented by the information processing task, an image processing function set corresponding to the information processing task is selected from multiple image processing function sets; and multiple algorithm function modules are selected from multiple candidate algorithm function modules of the corresponding image processing function set.
在一些实施例中,根据不同的算法功能,图像处理算法可以分为几个图像处理功能集合,每个图像处理功能集合包含多个子功能。对于每个视觉应用的场景,需要按照不同组合和流程顺序,将多个子功能组成一个完整的应用流程。In some embodiments, according to different algorithm functions, the image processing algorithm can be divided into several image processing function sets, each of which includes multiple sub-functions. For each visual application scenario, multiple sub-functions need to be combined into a complete application process in different combinations and process sequences.
例如,图像处理算法的图像处理功能集合包括:硬件接入、图像预处理、图像分割、图像测量、图像识别、图像定位和其他工具。For example, the image processing function set of image processing algorithms includes: hardware access, image preprocessing, image segmentation, image measurement, image recognition, image positioning and other tools.
例如,硬件接入可以包括:按相机类型(面阵、线扫等)、按品牌(basler/AVT、海康、Delsa)、按接口(1394/GIGE、USB、CAMLINK)等分为多个子功能。不同的相机的参数设置和输出格式均不一样,需要在选择相机后,设置对应的输出。相机的输出制约着后面一系列算法和算子的应用。For example, hardware access can include: multiple sub-functions by camera type (area scan, line scan, etc.), brand (basler/AVT, Hikvision, Delsa), interface (1394/GIGE, USB, CAMLINK), etc. Different cameras have different parameter settings and output formats. After selecting a camera, you need to set the corresponding output. The output of the camera restricts the application of a series of algorithms and operators.
例如,图像预处理可以包括:滤波(如中值、均值、高斯、低通等)、色度处理(RGB、YUV、YIQ、LAB等)、形态学(膨胀、腐蚀、开、关闭等)等多个子功能。For example, image preprocessing may include: filtering (such as median, mean, Gaussian, low-pass, etc.), chroma processing (RGB, YUV, YIQ, LAB, etc.), morphology (dilation, erosion, opening, closing, etc.), and other sub-functions.
例如,图像分割可以包括:边缘分割(sobel、Canny、分水平、水平集等)、区域分割(固定阈值、类间差、OSTU等)等子功能。For example, image segmentation may include sub-functions such as edge segmentation (sobel, Canny, level division, level set, etc.), region segmentation (fixed threshold, inter-class difference, OSTU, etc.), etc.
例如,图像测量可以包括:找线、找圆、线拟合、圆拟合、距离测量、角度测量等子功能。For example, image measurement may include sub-functions such as line finding, circle finding, line fitting, circle fitting, distance measurement, and angle measurement.
例如,图像识别可以包括:二维码、OCR(optical character recognition,文字识别)等子功能。For example, image recognition can include sub-functions such as QR code and OCR (optical character recognition).
例如,图像定位可以包括:BLOB(图像中的连通区域,用于图像的二值化处理)、形状匹配、边缘匹配、几何特征等子功能。For example, image positioning may include: BLOB (connected area in the image, used for image binarization), shape matching, edge matching, geometric features and other sub-functions.
例如,其他工具可以包括:涂胶检测、瑕疵检测、分类、计数等子功能。For example, other tools may include: glue detection, defect detection, classification, counting and other sub-functions.
在一些实施例中,在使用上述信息处理算法和图像处理功能集合时,需要进行模块间执行关系类型的检查。例如,图像的处理流程包含串行、并行、分支、条件执行、逻辑判断等过程。这些流程都需要流程引擎进行判断和执行。In some embodiments, when using the above information processing algorithm and image processing function set, it is necessary to check the execution relationship type between modules. For example, the image processing flow includes serial, parallel, branch, conditional execution, logical judgment and other processes. These processes need to be judged and executed by the process engine.
在一些实施例中,首先新建一个新流程,即此流程当前为不包含任何节点的空流程,并进行命名,设置保存路径和是否加密及权限;在该空流程中,在主程序的工具箱内通过对各功能模块拖拉拽,形成一个处理流程。In some embodiments, a new process is first created, that is, this process is currently an empty process that does not contain any nodes, and is named, and the save path and whether to encrypt and permissions are set; in this empty process, a processing flow is formed by dragging and dropping each functional module in the toolbox of the main program.
例如,在功能模块中选择图像滤波功能模块,用于滤除在激光采集过程的一些噪声点,形成的数据更加光滑,有利于后续的处理。例如,在选则滤波工具时,需要选择支持深度图的图像滤波功能模块,否则在拖拽其他工具后,把3D相机功能工具的输出连线到滤波功能工具时会出错,提示类型不匹配等。For example, in the function module, select the image filter function module to filter out some noise points in the laser acquisition process, so that the data formed is smoother and is conducive to subsequent processing. For example, when selecting the filter tool, you need to select the image filter function module that supports the depth map, otherwise after dragging other tools, when connecting the output of the 3D camera function tool to the filter function tool, an error will occur, prompting that the type does not match, etc.
例如,在增加横截面功能模块时,获取待处理产品各界面的切图,计算平整度;验证横截面功能模块的匹配性。For example, when adding a cross-sectional functional module, obtain the cut-out images of each interface of the product to be processed, calculate the flatness, and verify the matching of the cross-sectional functional module.
例如,在增加横截面功能模块之前,可以增加逻辑功能模块,用于判断产品是否支持3D点云数据和横截面工具等。For example, before adding a cross-section function module, a logic function module can be added to determine whether the product supports 3D point cloud data and cross-section tools, etc.
例如,把横截面功能模块的输出连接到平整度功能模块的输入;平整度功能模块的输出连接到最后结果输出,形成一个处理流程。For example, the output of the cross-section function module is connected to the input of the flatness function module; the output of the flatness function module is connected to the final result output to form a processing flow.
例如,由流程引擎控制整个处理流程的运行。如果存在多个处理流程,需要考虑计算机资源的内存、CPU(central processing unit,中央处理器)与流程的优化等;整个处理流程能够导出为ZIV文件。For example, the process engine controls the operation of the entire process. If there are multiple processes, it is necessary to consider computer resources such as memory, CPU (central processing unit) and process optimization; the entire process can be exported as a ZIV file.
ZIV文件作为一个流程文件,通过加密和序列化,可以支持在其他的工程中进行导入,同样也支持二次开发,提供了包含主流编程语言的接入。As a process file, ZIV file can be imported into other projects through encryption and serialization. It also supports secondary development and provides access to mainstream programming languages.
例如,流程引擎控制每个功能工具的输出和执行顺利、逻辑等。For example, the process engine controls the output and execution smoothness, logic, etc. of each functional tool.
在步骤120中,解析多个算法功能模块对应的多个插件,以记录多个算法功能模块之间的连接关系。In
在一些实施例中,在流程启动后,监控是否在预设存储位置存在符合定义规范的插件;在存在符合定义规范的插件的情况下,对插件进行解析。In some embodiments, after the process is started, it is monitored whether there is a plug-in that meets the definition specifications in the preset storage location; if there is a plug-in that meets the definition specifications, the plug-in is parsed.
例如,宿主程序具备发现插件功能。在宿主程序启动后,宿主程序具有独立的监控和发现规定的位置(例如,可以为宿主程序指定的文件夹\\PlugIn)是否存在符合宿主程序定义规范的插件;如果发现新的符合宿主程序定义规范的插件,解析该插件。For example, the host program has a plug-in discovery function. After the host program is started, the host program has the function of independently monitoring and discovering whether there is a plug-in that meets the host program definition specification in a specified location (for example, a folder \\PlugIn that can be specified for the host program); if a new plug-in that meets the host program definition specification is found, the plug-in is parsed.
在一些实施例中,对插件进行解析,获取插件的相关信息,以便在相关信息符合流程的要求的情况下,加载插件(如步骤130)。In some embodiments, the plug-in is parsed to obtain relevant information of the plug-in so that the plug-in can be loaded if the relevant information meets the requirements of the process (such as step 130).
例如,插件的相关信息可以包括对插件的描述信息,如插件的名称、类型、版本、创建者等。在宿主程序进行解析时,首先进行描述信息的解析;然后根据描述信息, 判断插件是否符合宿主程序的规范。For example, the plug-in related information may include description information of the plug-in, such as the plug-in name, type, version, creator, etc. When the host program performs parsing, the description information is first parsed; then, based on the description information, it is determined whether the plug-in complies with the host program specification.
在一些实施例中,以XML方式记录连接关系,生成流程的相关信息记录;根据相关信息记录,生成驱动程序;利用驱动程序,驱动并执行图像处理任务的流程。例如,解析多个插件的描述信息,描述信息用于判断多个插件是否符合定义规范。In some embodiments, the connection relationship is recorded in XML format to generate relevant information records of the process; a driver is generated based on the relevant information records; and the driver is used to drive and execute the process of the image processing task. For example, the description information of multiple plug-ins is parsed, and the description information is used to determine whether the multiple plug-ins meet the definition specifications.
例如,把生成的DLL及其描述文件等,如XML文件,拷贝的到宿主(即原本的主程序)的指定文件目录(如一般定义的Plugin)。For example, the generated DLL and its description files, such as XML files, are copied to the designated file directory (such as the generally defined Plugin) of the host (ie, the original main program).
例如,在实现了热更新功能函数的情况下,在把插件文件放置到指定文件目录后,宿主程序主动发现新的插件文件;宿主程序在发现插件文件后,解析XML文件中的描述信息;如果符合本产品定义的接口要求,宿主程序发起加载对应的DLL文件,然后判断DLL文件是否合格;启动加载功能,进行注册流程;按照规范实现的内容,把界面和算法等内容导入到主程序。For example, when the hot update function is implemented, after the plug-in file is placed in the specified file directory, the host program actively discovers the new plug-in file; after discovering the plug-in file, the host program parses the description information in the XML file; if it meets the interface requirements defined by this product, the host program initiates loading of the corresponding DLL file, and then determines whether the DLL file is qualified; starts the loading function and performs the registration process; imports the interface, algorithm and other content into the main program according to the content implemented in the specification.
例如,主程序系统会自动进行更新。按照设计时在规范接口中定义的位置或图标,在主程序的功能列表中展示新的3D测量模块;新的3D测量模块可以按照客户的要求,实现新的3D测量场景的相关功能。For example, the main program system will automatically update and display the new 3D measurement module in the function list of the main program according to the position or icon defined in the standard interface during design; the new 3D measurement module can realize the relevant functions of the new 3D measurement scene according to the customer's requirements.
例如,宿主程序具备创建流程引擎和记录流程引擎中插件之间的相互关系(如执行顺序、逻辑关系、类型匹配判断等)。在宿主程序中,支持创建一个流程(例如,流程包括输入图像、图像的业务处理、最后的输出,以及支持的逻辑和几何运算等)。在拖拽插件时,宿主程序需要对拖拽的插件数量、执行顺序、依赖关系、类型判断等进行记录。For example, the host program has the ability to create a process engine and record the relationships between plug-ins in the process engine (such as execution order, logical relationships, type matching judgment, etc.). In the host program, it supports the creation of a process (for example, the process includes input images, business processing of images, final output, and supported logical and geometric operations, etc.). When dragging plug-ins, the host program needs to record the number of dragged plug-ins, execution order, dependency relationships, type judgment, etc.
在一些实施例中,利用主程序根据解析信息,确定DLL的接口是否符合接口要求;在符合接口要求的情况下,利用主程序通过注册流程,将DLL导入主程序。In some embodiments, the main program is used to determine whether the interface of the DLL meets the interface requirements based on the parsed information; if it meets the interface requirements, the main program is used to import the DLL into the main program through a registration process.
例如,宿主程序具备解析插件功能。当发现插件文件(如DLL文件)后,宿主程序需要进行插件的解析,获取插件的相关信息。例如,相关信息可以包括解析插件的基本信息(如名称、版本、类型、创建者、接口实现是否完整等)。如果相关信息符合宿主程序的要求,则加载该插件。For example, the host program has the function of parsing plug-ins. When a plug-in file (such as a DLL file) is found, the host program needs to parse the plug-in and obtain relevant information about the plug-in. For example, the relevant information may include the basic information of the parsed plug-in (such as name, version, type, creator, whether the interface implementation is complete, etc.). If the relevant information meets the requirements of the host program, the plug-in is loaded.
在一些实施例中,解析硬件接入模块对应的插件,以记录硬件接入模块与多个算法功能模块之间的连接关系。In some embodiments, the plug-in corresponding to the hardware access module is parsed to record the connection relationship between the hardware access module and the plurality of algorithm function modules.
在一些实施例中,在插件层,根据多个算法功能模块及其关联的控件,生成至少一个插件。例如,采用数据与逻辑分离的方式,存储控件,控件具有接口。In some embodiments, at the plug-in layer, at least one plug-in is generated based on multiple algorithm function modules and their associated controls. For example, the controls are stored in a manner of separating data from logic, and the controls have interfaces.
在一些实施例中,插件采用视图部分和逻辑部分的分离存储,视图部分和逻辑部 分具有绑定关系例如,可以对插件进行可视化存储,包括界面、输入的参数、输出的结果、图标形式、位置等。还可以对输入的参数、输出的结果进行编辑,以便于在流程引擎中对插件进行无代码的参数设置。在宿主程序加载插件时,可以定义插件展现的形式和外观。In some embodiments, the plug-in adopts separate storage of the view part and the logic part, and the view part and the logic part have a binding relationship. For example, the plug-in can be stored visually, including the interface, input parameters, output results, icon form, location, etc. The input parameters and output results can also be edited to facilitate code-free parameter setting of the plug-in in the process engine. When the host program loads the plug-in, the form and appearance of the plug-in can be defined.
例如,底层算法分解出的各算法功能模块以DLL形式存在,控件利用WPF(Windows Presentation Foundation,窗口表现基础)编程的MVVM(Model-View-ViewMode)进行View(视图)和Model(逻辑)分开处理,并通过ViewModel进行交互;将整个插件(DLL及其关联的控件)封装成PlugIn(插件)形式。For example, the algorithm function modules decomposed from the underlying algorithm exist in the form of DLL, and the control uses MVVM (Model-View-ViewMode) programmed by WPF (Windows Presentation Foundation) to separate the View (view) and Model (logic), and interact through ViewModel; the entire plug-in (DLL and its associated controls) is encapsulated in the form of PlugIn.
在一些实施例中,根据信息处理任务,选择信息处理任务相应的硬件接入模块。不同的硬件接入模块用于接入不同的硬件设备;根据硬件接入模块和多个算法功能模块,生成至少一个插件。In some embodiments, a hardware access module corresponding to the information processing task is selected according to the information processing task. Different hardware access modules are used to access different hardware devices; and at least one plug-in is generated according to the hardware access module and multiple algorithm function modules.
例如,在选择硬件时,在多个硬件中选择3D相机中的轮廓仪;对轮廓仪的参数进行设置,包括视野、曝光时间、输出文件格式:包括灰度度、深度图、3D点云数据等。For example, when selecting hardware, select a profilometer from a 3D camera among multiple hardware; set the parameters of the profilometer, including field of view, exposure time, and output file format: including grayscale, depth map, 3D point cloud data, etc.
在步骤130中,根据记录的连接关系,驱动并执行图像处理任务的流程。例如,插件采用键值对结构。键值对结构的键包括插件的接口,键值对结构的值包括插件的名称。In
在一些实施例中,监控新增算法模块是否符合定义规范;在符合定义规范的情况下,将新增的算法功能模块导入图像处理任务的流程中。例如,利用宿主程序加载多个算法功能模块对应的多个插件,将多个插件导入宿主程序;调用导入了多个插件的宿主程序,驱动并执行图像处理任务的流程。In some embodiments, it is monitored whether the newly added algorithm module meets the definition specification; if it meets the definition specification, the newly added algorithm function module is imported into the process of the image processing task. For example, multiple plug-ins corresponding to multiple algorithm function modules are loaded by the host program, and the multiple plug-ins are imported into the host program; the host program with the imported multiple plug-ins is called to drive and execute the process of the image processing task.
在一些实施例中,判断用户是否具备调用插件的权限;在具备调用插件的权限的情况下,加载插件。In some embodiments, it is determined whether the user has the authority to call the plug-in; if the user has the authority to call the plug-in, the plug-in is loaded.
例如,宿主程序具备加载插件功能。宿主程序通过解析插件,获得插件的相关信息;宿主程序根据相关信息,检查是否具有权限(例如,宿主程序可以通过权限管理进行限定能加载的插件数量、类型、功能等信息)进行加载;如具备权限,则进行插件的加载,以加载插件的所有功能(如界面功能、业务功能、可视化功能等)。For example, the host program has the function of loading plug-ins. The host program obtains relevant information of the plug-in by parsing the plug-in; the host program checks whether it has the authority to load the plug-in based on the relevant information (for example, the host program can limit the number, type, function, etc. of plug-ins that can be loaded through authority management); if it has the authority, the plug-in is loaded to load all functions of the plug-in (such as interface functions, business functions, visualization functions, etc.).
例如,宿主程序具备管理插件功能。宿主程序具备对加载后的插件进行管理,包括加入宿主程序插件列表、权限管理、流程调用相关信息等。For example, the host program has the function of managing plug-ins. The host program has the function of managing loaded plug-ins, including adding them to the host program plug-in list, permission management, process call related information, etc.
例如,宿主程序具备卸载插件功能。在宿主程序退出或者在插件管理中,可以对 加载的插件进行卸载。For example, the host program has the function of uninstalling plug-ins. When the host program exits or in the plug-in management, the loaded plug-in can be uninstalled.
在一些实施例中,根据图像处理程序中多个算法功能模块之间的执行关系类型,执行多个插件,执行关系类型包括串行、并行、分支执行、条件执行、逻辑判断中的至少一项。In some embodiments, multiple plug-ins are executed according to the execution relationship type between multiple algorithm function modules in the image processing program, and the execution relationship type includes at least one of serial, parallel, branch execution, conditional execution, and logical judgment.
例如,宿主程序具备保存流程引擎的整个流程信息的功能。宿主层序能进行流程相关信息的记录,同时按照记录的信息进行生成流程引擎的执行的驱动程序。For example, the host program has the function of saving the entire process information of the process engine. The host layer can record the process-related information and generate the execution driver of the process engine according to the recorded information.
例如,宿主程序具备导入导出流程的信息的功能。宿主程序支持对流程及其信息的保存和导出,还支持导入流程的信息,形成新的流程。For example, the host program has the function of importing and exporting process information. The host program supports saving and exporting processes and their information, and also supports importing process information to form new processes.
图2a示出根据本公开一些实施例的插件式框架的示意图。FIG. 2 a shows a schematic diagram of a plug-in framework according to some embodiments of the present disclosure.
如图2a所示,整体架构为插件式框架,该框架可以包括交互配置功能、核心功能、基础功能。As shown in FIG. 2 a , the overall architecture is a plug-in framework, which may include interactive configuration functions, core functions, and basic functions.
例如,交互配置功能可以包括界面交互系统、系统配置管理等;核心功能可以包括多个图像处理功能集合,每个图像处理功能集合中可以包括多个子功能;基础功能可以包括具有多个信息处理算法的核心底层算法库、数据接入、通信管理、加速计算等。For example, the interactive configuration function may include an interface interaction system, system configuration management, etc.; the core function may include multiple image processing function sets, each image processing function set may include multiple sub-functions; the basic functions may include a core underlying algorithm library with multiple information processing algorithms, data access, communication management, accelerated computing, etc.
整体架构的核心包括底层算法库、衍生4大功能分区(如引导功能分区、测量功能分区、检测功能分区和识别功能分区)。整体架构充分考虑后续在UI和功能的扩展性(采用插件化结构设计,按照规范可灵活编辑)。在应对不同应用场景时,利用灵活工具链编程(内部逻辑检查、流程记录等)进行工程导出,适应不同的平台和开发语言环境调用。The core of the overall architecture includes the underlying algorithm library and four derived functional partitions (such as guidance functional partition, measurement functional partition, detection functional partition and identification functional partition). The overall architecture fully considers the subsequent extensibility of UI and functions (adopting plug-in structure design, which can be flexibly edited according to specifications). When dealing with different application scenarios, flexible tool chain programming (internal logic inspection, process recording, etc.) is used to export projects to adapt to different platforms and development language environment calls.
例如,整体架构的基础功能包括核心底层算法库、数据接入、通讯管理、加速计算等。例如,核心底层算法库主要包括实现图像处理、计算机视觉、深度学习等的核心算法,以C++为编程语言,把对应的算法函数封装成dll,形成底层算法库。For example, the basic functions of the overall architecture include core underlying algorithm library, data access, communication management, accelerated computing, etc. For example, the core underlying algorithm library mainly includes core algorithms for image processing, computer vision, deep learning, etc., using C++ as the programming language, and encapsulating the corresponding algorithm functions into dll to form the underlying algorithm library.
例如,整体架构的核心功能,包括通过对底层算法库中的算法分解出来的各算法功能模块进行组装,以实现的各种功能,即通过组装各算法功能模块形成的视觉工具。视觉工具是由底层算法库中dll以及配合控件组成。底层算法是dll形式存在,控件利用WPF编程MVVM进行View和ViewModel分开,整个插件封装成PlugIn形式。For example, the core functions of the overall architecture include assembling various algorithm function modules decomposed from the algorithm in the underlying algorithm library to achieve various functions, that is, visual tools formed by assembling various algorithm function modules. The visual tool is composed of dll and matching controls in the underlying algorithm library. The underlying algorithm exists in the form of dll, and the control uses WPF programming MVVM to separate View and ViewModel, and the entire plug-in is encapsulated in the form of PlugIn.
例如,整体架构的交互配置功能,即整个主程序框架,主要包括界面交互系统、系统配置管理等。For example, the interactive configuration function of the overall architecture, that is, the entire main program framework, mainly includes the interface interaction system, system configuration management, etc.
例如,主程序框架还可以包括插件管理器、非功能需求、通用功能、整体UI设计 等。插件管理器用于发现插件对象、加载、卸载、插件排版布局、调度插件;非功能需求包括设置、系统、帮助等;通用功能包括通讯模块、流程执行、结果展示、工程导入导出等;整体UI设计包括除了插件以外的MVVM架构设计的整体UI。For example, the main program framework can also include a plug-in manager, non-functional requirements, common functions, overall UI design, etc. The plug-in manager is used to discover plug-in objects, load, unload, layout and schedule plug-ins; non-functional requirements include settings, systems, help, etc.; common functions include communication modules, process execution, result display, project import and export, etc.; the overall UI design includes the overall UI of the MVVM architecture design except for plug-ins.
在一些实施例中,该框架的包括插件式结构。为了避免系统交互复杂、设计冗余、维护困难等现象,整体UI采用WPF界面技术和.NET Framework 4.0。插件式结构的主框架包含不同的类库;UI控件采用了MVVM数据结构,利用数据绑定实现界面与逻辑分离;使用的所有外部开源控件都对其做了接口抽象,因此可以在任何时候使用其他同功能控件,上层代码不需做更改。In some embodiments, the framework includes a plug-in structure. In order to avoid complex system interactions, redundant designs, and difficult maintenance, the overall UI uses WPF interface technology and .NET Framework 4.0. The main framework of the plug-in structure contains different class libraries; the UI control uses the MVVM data structure and uses data binding to separate the interface from the logic; all external open source controls used have their interfaces abstracted, so other controls with the same function can be used at any time without changing the upper-level code.
例如,插件的结构采用键值对的存储方式。键(Key)包括插件要求实现的接口,值包括对应的插件名称字典。插件管理器可以随时插入、删除(有安全隐患)插件字典中的数据。For example, the structure of the plugin adopts the storage method of key-value pairs. The key includes the interface that the plugin is required to implement, and the value includes the corresponding plugin name dictionary. The plugin manager can insert and delete (with security risks) data in the plugin dictionary at any time.
在一些实施例中,该框架的包括流程引擎算法组装器。将复杂的信息处理算法分解为不同的算法功能模块后再重新组装。因此,只需设计不同的算法功能模块,并定义它们的接口,用户即可根据信息处理任务的不同,对模块实现组装和配置,以解决实际中的处理工具开发复杂的技术问题。In some embodiments, the framework includes a process engine algorithm assembler. The complex information processing algorithm is decomposed into different algorithm function modules and then reassembled. Therefore, by simply designing different algorithm function modules and defining their interfaces, users can assemble and configure the modules according to different information processing tasks to solve complex technical problems in the development of actual processing tools.
例如,算法功能模块可以理解为拥有输入、输出接口的盒子。一个算法功能模块可能包含多个输入或多个输出,只有输入全部满足才能执行相应的算法,但可以不输出给其他算法功能模块。多个算法功能模块可以以复杂的形式组装为算法网络,实现自动化处理。For example, an algorithm function module can be understood as a box with input and output interfaces. An algorithm function module may contain multiple inputs or multiple outputs. Only when all inputs are satisfied can the corresponding algorithm be executed, but it may not be output to other algorithm function modules. Multiple algorithm function modules can be assembled into an algorithm network in a complex form to achieve automated processing.
例如,不同的算法功能模块之间可能存在耦合和分层。算法管理系统将对模块实现分层和分组。不同组之间的算法功能模块无交互,因此可以并行执行;同组算法功能模块由第一层依次执行到下层。For example, there may be coupling and stratification between different algorithm function modules. The algorithm management system will implement stratification and grouping of modules. Algorithm function modules between different groups have no interaction, so they can be executed in parallel; algorithm function modules in the same group are executed from the first layer to the lower layer in sequence.
图2b示出根据本公开一些实施例的插件式框架的示意图。FIG. 2 b shows a schematic diagram of a plug-in framework according to some embodiments of the present disclosure.
如图2b所示,基于插件式框架和流程引擎驱动的工作过程包括如下的步骤。As shown in FIG. 2b , the working process driven by the plug-in framework and the process engine includes the following steps.
例如,启动主程序(.exe);启动检测授权线程(一直工作、定时检测授权是否存在)。授权线程读取授权权限,调用对应的配置(主要是插件功能启用标志)。For example, start the main program (.exe); start the authorization detection thread (always working, regularly detecting whether the authorization exists). The authorization thread reads the authorization permission and calls the corresponding configuration (mainly the plug-in function enablement flag).
例如,授权过程可以包括两部分:用户对整体框架的各功能(如各项交互配置功能、各项基础功能等)的使用权限;用户对算法功能模块的使用权限。For example, the authorization process may include two parts: the user's access rights to the various functions of the overall framework (such as various interactive configuration functions, various basic functions, etc.); and the user's access rights to the algorithm function module.
例如,启动主程序所有功能包括插件管理器、非核心功能、通讯以及通用功能等;插件管理器根据授权配置信息加载对应插件。例如,如有异常时,进行异常报警。加 载完成后,在主程序界面中显示成对应的视觉工具和模块等。For example, all functions of the main program are started, including the plug-in manager, non-core functions, communication and general functions; the plug-in manager loads the corresponding plug-in according to the authorized configuration information. For example, if there is an abnormality, an abnormality alarm is issued. After loading is completed, the corresponding visual tools and modules are displayed in the main program interface.
例如,进行业务处理(如视觉工程的编程等);生成流程序列。例如,可以在流程编辑区新建功能,进行流程化编程形成视觉工程;系统实时以XML方式记录流程化过程,形成流程记录。For example, business processing (such as visual engineering programming, etc.); generating process sequences. For example, you can create new functions in the process editing area, perform process programming to form visual engineering; the system records the process in XML in real time to form process records.
例如,在保存工程流程中,把流程化记录、视觉工具参数设置、图像、文件等内容一并打包进行序列化,保存成自定义格式文件,形成视觉工程方案。For example, when saving the engineering process, process records, visual tool parameter settings, images, files and other contents are packaged together for serialization and saved as a custom format file to form a visual engineering plan.
例如,在关闭软件流程时,系统自动卸载插件,停止授权巡查,退出软件。For example, when closing a software process, the system automatically uninstalls the plug-in, stops authorization inspection, and exits the software.
例如,在加载工程方案时,首先进行工程解析,读取内容的流程记录文件主要包括涉及到的视觉工具数量、顺序、依赖关系等;读取每个视觉工具设定的参数,进行恢复,读取涉及的图像、文件等进行恢复;在软件中把整个工程进行恢复。For example, when loading a project plan, the project is analyzed first. The process record file of the read content mainly includes the number, sequence, dependencies, etc. of the visual tools involved; the parameters set for each visual tool are read and restored; the images and files involved are read and restored; and the entire project is restored in the software.
例如,在模型校验流程中,对模型进行MD5(Message-Digest Algorithm,消息摘要算法)校验,保证数据在传输过程中没有发生问题;检验模型的配置信息是否匹配当前业务,保证算法模型的确匹配当前的业务。For example, in the model verification process, the model is verified by MD5 (Message-Digest Algorithm) to ensure that there are no problems in the data transmission process; the model's configuration information is checked to see if it matches the current business to ensure that the algorithm model does match the current business.
图3a示出根据本公开另一些实施例的图像处理方法的流程图。FIG. 3 a shows a flowchart of an image processing method according to some other embodiments of the present disclosure.
如图3a所示,在步骤310a中,加载图像处理任务相关的方案(即处理流程)。As shown in FIG. 3 a , in
在步骤320a中,对方案进行编辑,修改其中的参数。In
在步骤330a中,保存编辑后的方案。In
在一些实施例中,方案通过步骤305a~335a进行维护。在步骤305a中,初始化相应的流程控件。在步骤315a中,创建空的方案。在步骤325a中,搭建并编辑方案。在步骤335a中,禁用或删除流程。In some embodiments, the scheme is maintained through
在步骤340a中,单次执行保存的方案;或者在步骤345a中,连续执行保存的方案,在步骤355中,停止执行。In
在步骤350a中,获取各算法功能模块的结果。In
在步骤360a中,关闭方案。In
在一些实施例中,以3D测量任务为例。已交付的产品为客户用于实现2D尺寸测量功能的工具。但是,随着客户产品和需求的变化,客户需要在现有的产品中增加对3D尺寸测量功能。即,不仅包括长宽、距离测量等还有厚度、平整度、斜坡夹角的测量。这就需要在原有的产品中增加相关的算法和工具模块。客户想要在不改变现有程序运行的前提下进行拓展相关的功能。In some embodiments, take the 3D measurement task as an example. The delivered product is a tool for customers to implement 2D dimension measurement functions. However, as customer products and needs change, customers need to add 3D dimension measurement functions to existing products. That is, it includes not only length, width, distance measurement, etc., but also thickness, flatness, and slope angle measurement. This requires adding relevant algorithms and tool modules to the original product. Customers want to expand related functions without changing the operation of the existing program.
例如,上述3D测量任务增加需要的新功能包括全新的UI界面、适应3D测量的 算法、新增加的3D测量算法能与原有的算法模块兼容和联动。For example, the new functions required for the above-mentioned 3D measurement tasks include a new UI interface, an algorithm adapted to 3D measurement, and the newly added 3D measurement algorithm can be compatible and linked with the original algorithm module.
新的算法功能模块需要遵循产品对插件的规范进行设计和定义接口;新插件(Plugin)需要使用一个独立的类,能被主程序(宿主程序)进行发现,利用类的加载器进行加载。The new algorithm function module needs to follow the product's plug-in specifications to design and define the interface; the new plug-in needs to use an independent class that can be discovered by the main program (host program) and loaded using the class loader.
例如,按照插件的规范,创建3D测量算法的插件的类。插件的类包含实现规范中定义的运行环境定义、插件功能描述、插件的界面类型等。For example, according to the plug-in specification, a plug-in class for a 3D measurement algorithm is created. The plug-in class includes the operating environment definition, plug-in function description, plug-in interface type, etc. defined in the implementation specification.
实现插件接口中基础功能,包括:发现、注册、执行、退出、是否热启动、热更新等接口;开发3D测量算法的界面,包括在宿主程序出现的位置、图标等;开发3D测量算法包括的多个功能函数,包括:点云数据处理、高度测量、厚度测量、平整度测量等;进行插件类的编译,生成DLL。Implement basic functions in the plug-in interface, including: discovery, registration, execution, exit, hot start, hot update and other interfaces; develop the interface of the 3D measurement algorithm, including the location and icon of the host program; develop multiple functional functions included in the 3D measurement algorithm, including: point cloud data processing, height measurement, thickness measurement, flatness measurement, etc.; compile the plug-in class and generate DLL.
例如,把生成的DLL及其描述文件等,如XML文件,拷贝的到宿主(即原本的主程序)的指定文件目录(如一般定义的Plugin)。For example, the generated DLL and its description files, such as XML files, are copied to the designated file directory (such as the generally defined Plugin) of the host (ie, the original main program).
例如,在实现了热更新功能函数的情况下,在把插件文件放置到指定文件目录后,宿主程序主动发现新的插件文件;宿主程序在发现插件文件后,解析XML文件中的描述信息;如果符合本产品定义的接口要求,宿主程序发起加载对应的DLL文件,然后判断DLL文件是否合格;启动加载功能,进行注册流程;按照规范实现的内容,把界面和算法等内容导入到主程序。For example, when the hot update function is implemented, after the plug-in file is placed in the specified file directory, the host program actively discovers the new plug-in file; after discovering the plug-in file, the host program parses the description information in the XML file; if it meets the interface requirements defined by this product, the host program initiates loading of the corresponding DLL file, and then determines whether the DLL file is qualified; starts the loading function and performs the registration process; imports the interface, algorithm and other content into the main program according to the content implemented in the specification.
例如,主程序系统会自动进行更新。按照设计时在规范接口中定义的位置或图标,在主程序的功能列表中展示新的3D测量模块;新的3D测量模块可以按照客户的要求,实现新的3D测量场景的相关功能。For example, the main program system will automatically update and display the new 3D measurement module in the function list of the main program according to the position or icon defined in the standard interface during design; the new 3D measurement module can realize the relevant functions of the new 3D measurement scene according to the customer's requirements.
图3b示出根据本公开又一些实施例的图像处理方法的流程图。FIG. 3 b shows a flowchart of an image processing method according to yet other embodiments of the present disclosure.
如图3b所示,在步骤310b中,加载方案。例如,在执行310b之前,还可以执行步骤305b中,进行流程控件的初始化。在执行310b之后,还可以执行步骤315b,对方案进行编辑、参数修改。As shown in FIG3b, in step 310b, the solution is loaded. For example, before executing step 310b,
在步骤320b中,获取算法功能模块。In
在步骤330b中,获取算法功能模块的参数对象。In
在步骤340b中,对算法功能模块的参数进行设置和获取。In
在一些实施例中,在执行了320b后,可以执行步骤325b,将算法功能模块与相应的参数配置控件进行绑定;步骤328b,对参数配置控件进行编辑,并修改参数。In some embodiments, after executing 320b,
在步骤350b中,保存方案。In
图3c示出根据本公开一些实施例的图像处理方法的示意图。FIG. 3 c shows a schematic diagram of an image processing method according to some embodiments of the present disclosure.
如图3c所示,仍以上述3D测量任务为例,图像处理方法可以包括下面的流程。As shown in FIG. 3c , still taking the above 3D measurement task as an example, the image processing method may include the following process.
例如,首先新建一个新流程,并进行命名,设置保存路径和是否加密及权限;在该空的流程中,在主程序的工具箱内通过对各功能模块拖拉拽,形成一个处理流程。For example, first create a new process, name it, set the save path, whether to encrypt, and permissions; in this empty process, drag and drop each functional module in the toolbox of the main program to form a processing flow.
例如,在选择硬件时,在多个硬件中选择3D相机中的轮廓仪作为图像源;对轮廓仪的参数进行设置,包括视野、曝光时间、输出文件格式:包括灰度、深度图、3D点云数据等。For example, when selecting hardware, select the profilometer in the 3D camera as the image source among multiple hardware; set the parameters of the profilometer, including field of view, exposure time, output file format: including grayscale, depth map, 3D point cloud data, etc.
例如,在功能模块中选择图像滤波功能模块,用于滤除在激光采集过程的一些噪声点,形成的数据更加光滑,有利于后续的处理。例如,在选在滤波工具时,需要选择支持深度图的图像滤波功能模块,否则在拖拽其他工具后,把3D相机功能工具的输出连线到滤波功能工具时会出错,提示类型不匹配等。For example, in the function module, select the image filter function module to filter out some noise points in the laser acquisition process, so that the data formed is smoother and is conducive to subsequent processing. For example, when selecting the filter tool, you need to select the image filter function module that supports the depth map, otherwise after dragging other tools, when connecting the output of the 3D camera function tool to the filter function tool, an error will occur, prompting that the type does not match, etc.
例如,在增加横截面功能模块时,获取待处理产品各界面的切图,计算平整度;验证横截面功能模块的匹配性。For example, when adding a cross-sectional functional module, obtain the cut-out images of each interface of the product to be processed, calculate the flatness, and verify the matching of the cross-sectional functional module.
例如,在增加横截面功能模块之前,可以增加逻辑功能模块,用于判断产品是否支持3D点云数据和横截面工具等。For example, before adding a cross-section function module, a logic function module can be added to determine whether the product supports 3D point cloud data and cross-section tools, etc.
例如,把横截面功能模块的输出连接到平整度功能模块的输入;平整度功能模块的输出连接到最后结果输出,形成一个处理流程。For example, the output of the cross-section function module is connected to the input of the flatness function module; the output of the flatness function module is connected to the final result output to form a processing flow.
例如,还可以选择用于彩色二值化、灰度权重处理、卡尺工具的算法功能模块加入处理流程。For example, you can also select algorithm function modules for color binarization, grayscale weight processing, and caliper tools to add to the processing flow.
例如,由流程引擎控制整个处理流程的运行。如果存在多个处理流程,需要考虑计算机资源的内存、CPU与流程的优化等;整个处理流程能够导出为ZIV文件。For example, the process engine controls the operation of the entire process. If there are multiple processes, it is necessary to consider the computer resources such as memory, CPU and process optimization; the entire process can be exported as a ZIV file.
ZIV文件作为一个流程文件,通过加密和序列化,可以支持在其他的工程中进行导入,同样也支持二次开发,提供了包含主流编程语言的接入。As a process file, ZIV file can be imported into other projects through encryption and serialization. It also supports secondary development and provides access to mainstream programming languages.
例如,流程引擎控制每个功能工具的输出和执行顺利、逻辑等。For example, the process engine controls the output and execution smoothness, logic, etc. of each functional tool.
图4示出根据本公开一些实施例的图像处理装置或信息处理装置的示意图。FIG. 4 shows a schematic diagram of an image processing device or an information processing device according to some embodiments of the present disclosure.
如图4所示,图像处理装置4,包括:选择单元41,用于根据图像处理任务,选择多个与图像处理任务相应的算法功能模块,多个相应的算法功能模块通过分解图像处理任务的相应图像处理算法获取;生成单元42,用于根据多个相应的算法功能模块,生成多个插件;处理单元43,用于利用多个插件,对图像处理任务进行处理。As shown in FIG4 , the
在一些实施例中,图像处理装置4还包括:分解单元44,用于根据能够实现的图 像处理功能,将多个图像处理算法划分到多个图像处理功能集合,在各图像处理功能集合中,分别分解出多个候选算法功能模块;选择单元41根据图像处理任务要实现的图像处理功能,在多个图像处理功能集合中选择图像处理任务相应的图像处理功能集合,在相应的图像处理功能集合的多个候选算法功能模块中,选择多个算法功能模块。In some embodiments, the
在一些实施例中,分解单元44将各图像处理功能集合划分为多个子功能,根据多个子功能,分解出多个候选算法功能模块。In some embodiments, the
在一些实施例中,分解单元44在算法层,将各图像处理功能集合相应的图像处理算法分解为多个功能函数,作为子功能,将多个功能函数封装为多个DLL,作为多个候选算法功能模块。In some embodiments, the
在一些实施例中,多个候选算法功能模块被划分到多个分组,属于不同分组的候选算法功能模块之间没有交互关系,属于同一分组的候选算法功能模块根据同一分组相应的图像处理算法的执行顺序被划分到多个分层中;生成单元42根据多个算法功能模块的分组和分层情况,生成至少一个插件。In some embodiments, multiple candidate algorithm function modules are divided into multiple groups, there is no interactive relationship between the candidate algorithm function modules belonging to different groups, and the candidate algorithm function modules belonging to the same group are divided into multiple layers according to the execution order of the corresponding image processing algorithms of the same group; the
在一些实施例中,生成单元42在插件层,根据多个算法功能模块及其关联的控件,生成至少一个插件。In some embodiments, the
在一些实施例中,图像处理装置4还包括:存储单元45,用于采用数据与逻辑分离的方式,存储控件,控件具有接口。In some embodiments, the
在一些实施例中,至少一个插件包括多个插件,处理单元43将多个插件,按顺序导入同一个处理流程,利用处理流程,对图像处理任务进行处理。In some embodiments, at least one plug-in includes multiple plug-ins, and the
在一些实施例中,处理单元在插件层,将多个插件编译为DLL;利用DLL的解析信息,将DLL导入同一个主程序中。In some embodiments, the processing unit compiles multiple plug-ins into DLLs at the plug-in layer; and uses the parsing information of the DLLs to import the DLLs into the same main program.
在一些实施例中,处理单元43利用主程序根据解析信息,确定DLL的接口是否符合接口要求,在符合接口要求的情况下,利用主程序通过注册流程,将DLL导入主程序。In some embodiments, the
在一些实施例中,插件采用键值对结构,键值对结构的键包括插件的接口,键值对结构的值包括插件的名称。In some embodiments, the plug-in adopts a key-value pair structure, the key of the key-value pair structure includes the interface of the plug-in, and the value of the key-value pair structure includes the name of the plug-in.
在一些实施例中,选择单元41根据图像处理任务,选择图像处理任务相应的硬件接入模块,不同的硬件接入模块用于接入不同的硬件设备;生成单元42根据硬件接入模块和多个算法功能模块,生成至少一个插件。In some embodiments, the
在一些实施例中,图像处理算法包括基于机器学习模型的图像处理算法,图像处 理任务包括引导功能、测量功能、检测功能和识别功能。In some embodiments, the image processing algorithm includes an image processing algorithm based on a machine learning model, and the image processing tasks include guidance function, measurement function, detection function and recognition function.
在一些实施例中,机器学习模型通过如下方式训练:对标注后的第一样本图像进行图像变换处理,生成第二样本图像;利用第一样本图像和第二样本图像,对机器学习算法对应的机器学习模型进行训练。In some embodiments, the machine learning model is trained in the following manner: performing image transformation processing on the labeled first sample image to generate a second sample image; and using the first sample image and the second sample image to train the machine learning model corresponding to the machine learning algorithm.
在一些实施例中,机器学习算法对应的机器学习模型通过如下方式训练:获取包含产品缺陷的产品图像;生成产品图像的背景图像;根据产品图像和所述背景图像,生成用于训练机器学习模型的样本图像。In some embodiments, the machine learning model corresponding to the machine learning algorithm is trained in the following manner: obtaining a product image containing product defects; generating a background image of the product image; and generating a sample image for training the machine learning model based on the product image and the background image.
在一些实施例中,机器学习算法对应的机器学习模型通过如下方式训练:在云端对所述机器学习算法对应的机器学习模型进行训练;将训练后的机器学习模型发送给边缘端处理图像处理任务。In some embodiments, the machine learning model corresponding to the machine learning algorithm is trained in the following manner: the machine learning model corresponding to the machine learning algorithm is trained in the cloud; and the trained machine learning model is sent to the edge to process the image processing task.
在一些实施例中,信息处理装置4包括:选择单元41,用于根据信息处理任务,选择与信息处理任务相应的多个算法功能模块,多个算法功能模块通过分解多个信息处理算法获取;生成单元42,用于根据多个算法功能模块,生成至少一个插件;处理单元43,用于利用至少一个插件,对信息处理任务进行处理。In some embodiments, the
在一些实施例中,信息处理装置4还包括:分解单元44,用于根据能够实现的信息处理功能,将多个信息处理算法划分到多个图像处理功能集合,在各图像处理功能集合中,分别分解出多个候选算法功能模块;选择单元41根据信息处理任务要实现的信息处理功能,在多个图像处理功能集合中选择信息处理任务相应的图像处理功能集合,在相应的图像处理功能集合的多个候选算法功能模块中,选择多个算法功能模块。In some embodiments, the
在一些实施例中,分解单元44将各图像处理功能集合划分为多个子功能,根据多个子功能,分解出多个候选算法功能模块。In some embodiments, the
在一些实施例中,分解单元44在算法层,将各图像处理功能集合相应的信息处理算法分解为多个功能函数,作为子功能,将多个功能函数封装为多个DLL,作为多个候选算法功能模块。In some embodiments, the
在一些实施例中,多个候选算法功能模块被划分到多个分组,属于不同分组的候选算法功能模块之间没有交互关系,属于同一分组的候选算法功能模块根据同一分组相应的信息处理算法的执行顺序被划分到多个分层中;生成单元42根据多个算法功能模块的分组和分层情况,生成至少一个插件。In some embodiments, multiple candidate algorithm function modules are divided into multiple groups, there is no interactive relationship between the candidate algorithm function modules belonging to different groups, and the candidate algorithm function modules belonging to the same group are divided into multiple layers according to the execution order of the corresponding information processing algorithms of the same group; the
在一些实施例中,生成单元42在插件层,根据多个算法功能模块及其关联的控件,生成至少一个插件。In some embodiments, the
在一些实施例中,信息处理装置4还包括:存储单元45,用于采用数据与逻辑分离的方式,存储控件,控件具有接口。In some embodiments, the
在一些实施例中,至少一个插件包括多个插件,处理单元43将多个插件,按顺序导入同一个处理流程,利用处理流程,对信息处理任务进行处理。In some embodiments, at least one plug-in includes multiple plug-ins, and the
在一些实施例中,处理单元在插件层,将多个插件编译为DLL;利用DLL的解析信息,将DLL导入同一个主程序中。In some embodiments, the processing unit compiles multiple plug-ins into DLLs at the plug-in layer; and uses the parsing information of the DLLs to import the DLLs into the same main program.
在一些实施例中,处理单元43利用主程序根据解析信息,确定DLL的接口是否符合接口要求,在符合接口要求的情况下,利用主程序通过注册流程,将DLL导入主程序。In some embodiments, the
在一些实施例中,插件采用键值对结构,键值对结构的键包括插件的接口,键值对结构的值包括插件的名称。In some embodiments, the plug-in adopts a key-value pair structure, the key of the key-value pair structure includes the interface of the plug-in, and the value of the key-value pair structure includes the name of the plug-in.
在一些实施例中,选择单元41根据信息处理任务,选择信息处理任务相应的硬件接入模块,不同的硬件接入模块用于接入不同的硬件设备;生成单元42根据硬件接入模块和多个算法功能模块,生成至少一个插件。In some embodiments, the
在一些实施例中,信息处理算法包括基于机器学习模型的图像处理算法,信息处理任务包括引导功能、测量功能、检测功能和识别功能。In some embodiments, the information processing algorithm includes an image processing algorithm based on a machine learning model, and the information processing tasks include guidance function, measurement function, detection function and recognition function.
在一些实施例中,机器学习模型通过如下方式训练:对标注后的第一样本图像进行图像变换处理,生成第二样本图像;利用第一样本图像和第二样本图像,对机器学习算法对应的机器学习模型进行训练。In some embodiments, the machine learning model is trained in the following manner: performing image transformation processing on the labeled first sample image to generate a second sample image; and using the first sample image and the second sample image to train the machine learning model corresponding to the machine learning algorithm.
在一些实施例中,机器学习模型通过如下方式训练:获取包含产品缺陷的产品图像;生成产品图像的背景图像;根据产品图像和所述背景图像,生成用于训练机器学习模型的样本图像。In some embodiments, the machine learning model is trained by: acquiring a product image containing a product defect; generating a background image of the product image; and generating a sample image for training the machine learning model based on the product image and the background image.
在一些实施例中,机器学习模型通过如下方式训练:在云端对所述机器学习算法对应的机器学习模型进行训练;将训练后的机器学习模型发送给边缘端处理图像处理任务。In some embodiments, the machine learning model is trained in the following manner: training the machine learning model corresponding to the machine learning algorithm in the cloud; and sending the trained machine learning model to the edge to process the image processing task.
图5示出根据本公开一些实施例的电子设备的一些实施例的框图。FIG. 5 shows a block diagram of some embodiments of an electronic device according to some embodiments of the present disclosure.
如图5所示,该实施例的电子设备5包括:存储器51以及耦接至该存储器51的处理器52,处理器52被配置为基于存储在存储器51中的指令,执行本公开中任意一个实施例中的图像处理方法或者信息处理方法。As shown in FIG5 , the
其中,存储器51例如可以包括系统存储器、固定非易失性存储介质等。系统存储 器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。The
图6示出根据本公开一些实施例的电子设备的另一些实施例的框图。FIG. 6 shows a block diagram of further embodiments of an electronic device according to some embodiments of the present disclosure.
如图6所示,该实施例的电子设备6包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行前述任意一个实施例中的图像处理方法或者信息处理方法。As shown in FIG6 , the
存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。The
电子设备6还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630、640、650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏、麦克、音箱等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为SD卡、U盘等外置存储设备提供连接接口。The
图7示出根据本公开另一些实施例的图像处理方法的示意图。FIG. 7 shows a schematic diagram of an image processing method according to some other embodiments of the present disclosure.
如图7所示,将实现业务的处理流程的开发插件化,是一种动态扩展的软件开发架构,也是一种利用符合规范的应用程序接口编写出来的程序。实现插件化主要依靠接口(如业务接口、插件接口)及其反射机制。接口其实是一种“契约”,宿主程序71是通过这种“契约”来约束是否存在符合期望的对象(如插件72),如果不符合就不会去加载该对象。As shown in FIG7 , the development of the processing flow of the business is plug-in-based, which is a dynamically extended software development architecture and a program written using a standardized application program interface. The plug-in is mainly implemented by relying on interfaces (such as business interfaces and plug-in interfaces) and their reflection mechanisms. The interface is actually a "contract". The host program 71 uses this "contract" to constrain whether there is an object that meets the expectations (such as plug-in 72). If it does not meet the requirements, the object will not be loaded.
插件72是通过动态链接共享的对象,是一种可复用、可灵活管理(如维护、替换、增加、删除等)的功能模块化的组件。基于插件72的扩展性,实现业务的不同功能模块的独立和解耦,增加程序开发的可维护性和可扩展性。Plug-in 72 is an object shared through dynamic links. It is a modular component with functions that can be reused and flexibly managed (such as maintenance, replacement, addition, deletion, etc.). Based on the extensibility of plug-in 72, the independence and decoupling of different functional modules of the business are realized, which increases the maintainability and extensibility of program development.
插件72能够在已有宿主程序71的基础上,增加新的功能而不破坏其现有的核心功能。这样,使得第三方开发人员可以为已有系统配置增值工作,也可以使其他开发人员协同开发相互配合。通过多个插件72能够将程序开发过程中的关注点分开处理,隐藏实现细节,且可以进行各关注点的独立测试。本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品 的形式。The plug-in 72 can add new functions on the basis of the existing host program 71 without destroying its existing core functions. In this way, third-party developers can add value to the existing system configuration, and other developers can also cooperate with each other in collaborative development. Through multiple plug-ins 72, the focus points in the program development process can be processed separately, the implementation details can be hidden, and independent testing of each focus point can be performed. It should be understood by those skilled in the art that the embodiments of the present disclosure can be provided as methods, systems, or computer program products. Therefore, the present disclosure can take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present disclosure can take the form of a computer program product implemented on one or more computer-usable non-transient storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
至此,已经详细描述了根据本公开的。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。So far, the present disclosure has been described in detail. In order to avoid obscuring the concept of the present disclosure, some details known in the art are not described. Based on the above description, those skilled in the art can fully understand how to implement the technical solution disclosed here.
可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。The method and system of the present disclosure may be implemented in many ways. For example, the method and system of the present disclosure may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware. The above order of steps for the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above, unless otherwise specifically stated. In addition, in some embodiments, the present disclosure may also be implemented as a program recorded in a recording medium, which includes machine-readable instructions for implementing the method according to the present disclosure. Therefore, the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。Although some specific embodiments of the present disclosure have been described in detail by way of example, it should be understood by those skilled in the art that the above examples are for illustration only and are not intended to limit the scope of the present disclosure. It should be understood by those skilled in the art that the above embodiments may be modified without departing from the scope and spirit of the present disclosure. The scope of the present disclosure is defined by the appended claims.
Claims (28)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202280004130.5A CN118355415A (en) | 2022-11-10 | 2022-11-10 | Image processing method, three-dimensional measurement method and electronic device |
| PCT/CN2022/131130 WO2024098325A1 (en) | 2022-11-10 | 2022-11-10 | Image processing method, three-dimensional measurement method, and electronic device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/131130 WO2024098325A1 (en) | 2022-11-10 | 2022-11-10 | Image processing method, three-dimensional measurement method, and electronic device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024098325A1 true WO2024098325A1 (en) | 2024-05-16 |
Family
ID=91031670
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/131130 Ceased WO2024098325A1 (en) | 2022-11-10 | 2022-11-10 | Image processing method, three-dimensional measurement method, and electronic device |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN118355415A (en) |
| WO (1) | WO2024098325A1 (en) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6763515B1 (en) * | 2000-06-05 | 2004-07-13 | National Instruments Corporation | System and method for automatically generating a graphical program to perform an image processing algorithm |
| US20170213101A1 (en) * | 2016-01-25 | 2017-07-27 | Koninklijke Philips N.V. | Image data pre-processing |
| CN110673844A (en) * | 2019-09-26 | 2020-01-10 | 苏州中科全象智能科技有限公司 | Image processing software development method and system |
| CN110780982A (en) * | 2018-07-27 | 2020-02-11 | 深圳百迈技术有限公司 | An image processing method, device and equipment |
| CN111402234A (en) * | 2020-03-16 | 2020-07-10 | 深圳市启灵图像科技有限公司 | Machine vision detection system |
| CN112445497A (en) * | 2020-11-25 | 2021-03-05 | 中国电子科技集团公司第五十四研究所 | Remote sensing image processing system based on plug-in extensible architecture |
-
2022
- 2022-11-10 CN CN202280004130.5A patent/CN118355415A/en active Pending
- 2022-11-10 WO PCT/CN2022/131130 patent/WO2024098325A1/en not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6763515B1 (en) * | 2000-06-05 | 2004-07-13 | National Instruments Corporation | System and method for automatically generating a graphical program to perform an image processing algorithm |
| US20170213101A1 (en) * | 2016-01-25 | 2017-07-27 | Koninklijke Philips N.V. | Image data pre-processing |
| CN110780982A (en) * | 2018-07-27 | 2020-02-11 | 深圳百迈技术有限公司 | An image processing method, device and equipment |
| CN110673844A (en) * | 2019-09-26 | 2020-01-10 | 苏州中科全象智能科技有限公司 | Image processing software development method and system |
| CN111402234A (en) * | 2020-03-16 | 2020-07-10 | 深圳市启灵图像科技有限公司 | Machine vision detection system |
| CN112445497A (en) * | 2020-11-25 | 2021-03-05 | 中国电子科技集团公司第五十四研究所 | Remote sensing image processing system based on plug-in extensible architecture |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118355415A (en) | 2024-07-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12379908B2 (en) | Systems and methods for code clustering analysis and transformation | |
| US11726760B2 (en) | Systems and methods for entry point-based code analysis and transformation | |
| US11789715B2 (en) | Systems and methods for transformation of reporting schema | |
| Bunte et al. | The mCRL2 toolset for analysing concurrent systems: improvements in expressivity and usability | |
| US20230244476A1 (en) | Systems and methods for code analysis heat map interfaces | |
| US20230244465A1 (en) | Systems and methods for automated retrofitting of customized code objects | |
| Rokis et al. | Exploring low-code development: a comprehensive literature review | |
| US9508039B2 (en) | Deployment pattern realization with models of computing environments | |
| US10296305B2 (en) | Method and device for the automated production and provision of at least one software application | |
| US10481884B2 (en) | Systems and methods for dynamically replacing code objects for code pushdown | |
| CN112163337B (en) | Avionics collaborative design method and system based on SysML | |
| Debreceni et al. | Query-driven incremental synchronization of view models | |
| CN114791824A (en) | Industrial automation multi-developer control code synchronization | |
| JP2011515755A (en) | Development method and apparatus for reserved component container base software | |
| WO2024098325A1 (en) | Image processing method, three-dimensional measurement method, and electronic device | |
| El Marzouki et al. | Toward a generic metamodel for model composition using transformation | |
| CN107783789B (en) | A requirement development process method and requirement development platform for project data | |
| Muctadir et al. | A Consistency Management Framework for Digital Twin Models | |
| Bexiga | Closing the Gap Between Designers and Developers in a Low-Code Ecosystem | |
| Klann et al. | Towards a Low-Code Tool for Developing Data Quality Rules. | |
| Mitwalli | Accelerating Graphical DSL Development: Live Metamodeling in Cinco Cloud | |
| Khachouch et al. | Architecture Driven Modernization: A Review on Reverse Engineering Techniques based on Models’ Approach | |
| CN120196320A (en) | An automated data processing system based on low-code RPA | |
| CN121166141A (en) | Method and system for managing Kubernetes deployment templates | |
| WO2023142058A1 (en) | Information processing method, apparatus, system, computing device, and computer-readable medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 202280004130.5 Country of ref document: CN |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22964795 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |