WO2023024421A1 - Method and system for splicing multiple channels of images, and readable storage medium and unmanned vehicle - Google Patents

Method and system for splicing multiple channels of images, and readable storage medium and unmanned vehicle Download PDF

Info

Publication number
WO2023024421A1
WO2023024421A1 PCT/CN2022/071845 CN2022071845W WO2023024421A1 WO 2023024421 A1 WO2023024421 A1 WO 2023024421A1 CN 2022071845 W CN2022071845 W CN 2022071845W WO 2023024421 A1 WO2023024421 A1 WO 2023024421A1
Authority
WO
WIPO (PCT)
Prior art keywords
spliced
data
line
image
images
Prior art date
Application number
PCT/CN2022/071845
Other languages
French (fr)
Chinese (zh)
Inventor
柴双林
Original Assignee
北京三快在线科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 北京三快在线科技有限公司 filed Critical 北京三快在线科技有限公司
Publication of WO2023024421A1 publication Critical patent/WO2023024421A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/32Indexing scheme for image data processing or generation, in general involving image mosaicing

Definitions

  • the present disclosure relates to the technical field of vehicles, and in particular, relates to a multi-channel image stitching method and system, a readable storage medium, and an unmanned vehicle.
  • the vehicle surround view system is widely used in automatic driving and remote control driving to assist the driver in driving safely.
  • the surround-view perspective can improve the full-coverage obstacle detection capability.
  • the surround-view perspective can maximize the assistance of remote control driving to remove people from the scene and minimize the ratio of people to vehicles.
  • the present disclosure proposes a multi-channel image stitching method, system, readable storage medium, and unmanned vehicle.
  • the purpose of the present disclosure is to provide a multi-channel image stitching method, system, readable storage medium, and unmanned vehicle, so as to at least partially solve the above-mentioned problems in the related art.
  • a multi-channel image stitching method which is characterized in that it is applied to a field programmable gate array platform, and the method includes:
  • the preset mapping table is obtained based on the mapping relationship of the pixel data between the historical image to be stitched and the historical stitched image;
  • writing the multiple lines of line buffer data of each of the multiple lines of images to be spliced into a frame buffer, and performing filling of the multiple lines of line buffer data of each of the multiple lines of images to be spliced Processing to get spliced framebuffer data including:
  • writing the multiple lines of line buffer data of each line of the multiple lines of images to be spliced into the frame buffer in a row writing unit includes:
  • the obtaining row data includes:
  • format conversion is performed on the row data to obtain row data in a target format.
  • the following processing is performed to obtain multiple rows of line buffer data for each of the multiple paths of images to be spliced, including:
  • the processing is executed in parallel to obtain the multiple lines of line buffer data of each path of the multiple paths of images to be spliced.
  • performing preprocessing on the spliced frame buffer data to obtain a spliced image includes:
  • the coded image is decoded to obtain a spliced image.
  • encoding processing is performed on the line buffer data of the preset line until a second preset condition is met to obtain an encoded image
  • the encoding process is performed on the row buffer data of the preset row until the row buffer data of the preset row is satisfied.
  • the second preset condition is to obtain the coded image.
  • a multi-channel image stitching system which is applied to a field programmable gate array platform, and the system includes:
  • the multi-line buffer module is used to repeatedly execute the acquisition of line data for each of the multiple lines of images to be spliced, and based on the preset mapping table, write the pixel data included in the line data into the line corresponding to the line of images to be spliced Buffering, the process of obtaining line buffer data until the first preset condition is met, so as to obtain the multiple lines of line buffer data of the image to be spliced; wherein, the preset mapping table is based on historical images to be spliced and The mapping relationship of the pixel data between historical mosaic images is obtained;
  • a frame buffer writing module configured to write the multiple lines of line buffer data of each of the multiple channels of images to be spliced into a frame buffer, and execute Filling processing to obtain spliced frame buffer data
  • the splicing processing module is configured to perform preprocessing on the spliced frame buffer data to obtain a spliced image.
  • the frame buffer writing module includes:
  • the parallel filling sub-module is used to write the multi-line line buffer data of each line in the multiple lines of images to be spliced into the frame buffer in units of line writing, and write the line buffer data of each line into the frame buffer. During the writing process, the filling process is performed on the line buffer data to obtain the spliced frame buffer data.
  • the parallel filling submodule includes:
  • the arbitration writing subunit is used to write the multiple rows of line buffer data of each channel in the multiple channels of images to be spliced into the frame buffer based on the polling arbitration mode in the writing unit of the behavior .
  • the multiline buffer module includes:
  • the decoding sub-module is used to decode the preset interface signal output by the target camera device received based on the preset interface to obtain decoding information; wherein, the decoding information includes at least line and field synchronization signals and pixel data of the image to be spliced ;
  • the target imaging device is the imaging device of the image to be stitched;
  • a format conversion sub-module configured to convert the format of the row data to obtain the row data of the target format after obtaining the row data in the initial format from the pixel data of the image to be spliced based on the row and field synchronization signals data.
  • the multiline buffer module includes:
  • the parallel row buffering submodule is configured to execute the processing in parallel for each of the multiple paths of images to be spliced, so as to obtain the multiple rows of row buffer data for each path of the multiple paths of images to be spliced.
  • the splicing processing module includes:
  • the encoding submodule is configured to perform encoding processing on the line buffer data of the preset line after writing the line buffer data of the preset line each time, until the second preset condition is met, and obtain an encoded image;
  • the decoding submodule is used to decode the coded image to obtain a spliced image.
  • the encoding submodule includes:
  • the encoding subunit is used to use the built-in encoder of the field programmable gate array system to perform the following operation on the line buffer data of the preset line after writing the line buffer data of the preset line each time.
  • the encoding process is performed until the second preset condition is satisfied, and the encoded image is obtained.
  • a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, the steps of any one of the methods described in the first aspect are implemented.
  • an unmanned vehicle including the multi-channel image stitching system described in the second aspect.
  • a computing processing device including: a memory, in which computer-readable codes are stored; and one or more processors, when the computer-readable codes are stored by the one or more When executed by two processors, the computing processing device executes the multi-channel image stitching method as described in the first aspect above.
  • a computer program including computer readable code, which, when the computer readable code is run on a computing processing device, causes the computing processing device to execute the computer program according to the above first aspect.
  • the pixel data of the row data is written into the row buffer based on the preset mapping table, and the pixels included in the row data can be accurately written to the corresponding mapping position of the row buffer. Avoiding the writing error caused by de-distortion through the fitting algorithm, and then solving the problem of image distortion and nonlinear distortion caused by the fitting algorithm to achieve image stitching, and can realize seamless alignment on the stitching hypotenuse; and the multi-channel image stitching method disclosed in the present disclosure Realized by the field programmable gate array platform, it is hardware improvement, the algorithm is simple, and it occupies less logic resources.
  • FIG. 1 is a flow chart of a multi-channel image stitching method shown in an exemplary embodiment of the present disclosure
  • Fig. 2 is an exemplary schematic diagram of a process of writing pixel data of row-by-row data shown in an exemplary embodiment of the present disclosure
  • Fig. 3 is a flowchart of obtaining row data shown in an exemplary embodiment of the present disclosure
  • Fig. 4 is a block diagram of a multi-channel image stitching system shown in an exemplary embodiment of the present disclosure
  • Figure 5 schematically illustrates a block diagram of a computing processing device for performing a method according to the present disclosure.
  • Fig. 6 schematically shows a storage unit for holding or carrying program codes implementing the method according to the present disclosure.
  • the application scenarios of the present disclosure are firstly introduced.
  • the various embodiments provided in the present disclosure can be used in a surround-view stitching scene of multiple images collected by multiple cameras of an unmanned vehicle.
  • unmanned vehicles may at least include self-driving vehicles and remote-controlled vehicles. It is worth noting that the various embodiments provided in the present disclosure can also be used in other scenarios where surround-view stitched images need to be obtained. For example, a video surveillance scenario.
  • the look-around mosaic of multiple images can be realized by a pure software algorithm, but at least one of the following defects exists in this method: (1) the algorithm deployed on the field programmable gate array (Field Programmable Gate Array, FPGA) platform side It is complex and requires a lot of logic resources such as Digital Signal Processing (DSP), block RAM (BRAM, BRAM) and look-up tables (LUTs) when deployed on the FPGA platform, which is not conducive to cost reduction; (2) through the algorithm Distortion correction is completed in a combined way.
  • DSP Digital Signal Processing
  • BRAM block RAM
  • LUTs look-up tables
  • FIG. 1 is a flow chart of a multi-channel image stitching method shown in an exemplary embodiment of the present disclosure, and the method can be used on a Field Programmable Gate Array (Field Programmable Gate Array, FPGA) platform.
  • the FPGA platform can be a semi-custom circuit in an ASIC, a programmable logic array.
  • the FPGA platform can be deployed in the unmanned vehicle to display stitched images on the display screen of the unmanned vehicle to assist the safe driving of the unmanned vehicle.
  • the methods include:
  • Step 102 for each of the multiple channels of images to be spliced, perform the following processing to obtain multiple rows of line buffer data for each of the multiple channels of images to be spliced: repeatedly execute the acquisition of row data, and based on the preset mapping table, The process of writing the pixel data included in the line data into the line buffer corresponding to the image to be spliced to obtain the line buffer data, until the first preset condition is met, and obtaining the multiple lines of the image to be spliced Row buffered data.
  • the image to be spliced may be an image that requires surround-view stitching.
  • Surround view splicing may refer to splicing images collected in multiple directions (ie, multi-channel images) to obtain a panoramic view image.
  • the multiple images to be stitched can be acquired by multiple camera devices. For example, corresponding image frames are respectively extracted from video data collected by multiple cameras.
  • the multi-camera equipment may be the camera equipment installed on the unmanned vehicle, which is used to collect images from different directions of the vehicle.
  • the number of multi-camera devices can be specifically set according to actual conditions, for example, four cameras, six cameras, and so on. Taking the four-way camera equipment as an example, the camera equipment can be installed at the front, rear, left, and right positions of the vehicle to collect images in four directions.
  • the type of camera device may at least include a fisheye camera and/or a wide-angle camera. It is worth noting that the respective installation positions and types of the multi-channel cameras can be flexibly set according to actual conditions, and this disclosure does not impose any limitation on this.
  • the multiple lines of line buffer data may be buffered data obtained after all line data of the image to be spliced is written into the line buffer.
  • multiple paths of images to be spliced may correspond to different line buffers, and correspondingly, row data of each path of images to be spliced may be written into corresponding line buffers.
  • the FPGA platform can perform the following processing to obtain multiple lines of line buffer data for each image to be spliced: For each of the multiple lines of images to be spliced, repeatedly execute the acquisition of line data, and based on the preset mapping table, the line data includes The process of writing the pixel data of the image into the line buffer corresponding to the image to be spliced to obtain the line buffer data, until the preset conditions are met, and obtaining the multiple lines of the line buffer data of the image to be spliced.
  • the images to be stitched may have different resolutions. For example, 1920*1080 pixels, 2560*1440 pixels.
  • the resolution of the image to be spliced may be the same as that of the display screen used to display the spliced image.
  • the pixel resolution of a 1080P display is 1920*1080 pixels.
  • the pixel resolution of a 2K display screen is 2560*1440 pixels.
  • the image can be divided into multiple rows of data, and each row of data includes corresponding pixel data. For example, taking the resolution of 1920*1080 pixels as an example, the image to be stitched can be divided into 1920 lines, each line has 1080 pixels, and the 1080 pixels are the pixel data corresponding to the line data of the line.
  • the FPGA platform can acquire row data through a preset interface, and perform format conversion on the row data. Details about obtaining row data can be found in FIG. 3 and related descriptions, and will not be repeated here.
  • the preset mapping table may be obtained based on a mapping relationship of pixel data between historical images to be stitched and historical stitched images. Based on the historical image to be stitched and the historical stitched image, the coordinate transformation relationship between the corresponding pixels of the two can be obtained, so as to obtain the mapping relationship between the corresponding pixel points, and a preset mapping table can be constructed based on the mapping relationship. Therefore, the preset mapping table can reflect the mapping relationship between the pixel points at each position in the historical image to be spliced and the coordinate value of the pixel point at each position in the historical spliced image.
  • the preset mapping table reflects the first pixel of the first row of data in the historical image to be spliced, and there is a corresponding mapping relationship with the first pixel of the first row of data in the historical image to be spliced.
  • the preset mapping table may be pre-stored in the memory area. For example, it is stored in a double-rate SDRAM (Double Data Rate SDRAM, DDR) parameter block.
  • DDR Double Data Rate SDRAM
  • the first preset condition may be that the writing of pixel data of all lines of image data to be spliced is completed, thus, multiple rows of line buffer data of the path of image to be spliced may be obtained.
  • FIG. 2 is an exemplary schematic diagram of a process of writing pixel data of row-by-row data according to an exemplary embodiment of the present disclosure.
  • the first pixel in T1 can be mapped to the first line T' of the line buffer according to the preset mapping table For the first pixel of 1 , map the second pixel in T1 to the second pixel of the second row T ′ of the line buffer, and map the third pixel in T1 to the line buffer
  • the de-distortion and affine transformation process of the image to be stitched may be reflected as remapping of pixel coordinate values on the image to be stitched and the stitched image.
  • a preset mapping table reflecting the mapping relationship of pixel data is pre-constructed through the historical image to be stitched and the historical stitching image, which is a point-to-point mapping relationship. Query the mapping position of the corresponding pixel in the preset mapping table for precise writing. It avoids the error caused by de-distortion through the fitting algorithm, and then solves the problem of image distortion and nonlinear distortion caused by the fitting algorithm to achieve image stitching, and can seamlessly align the stitching hypotenuse.
  • a preset memory space can be reserved in the line buffer corresponding to each image to be spliced for the pixel data of the line data of each image to be spliced. write. Still taking the above example as an example, assuming that the camera device is a fisheye camera, and the actual distortion of the fisheye camera needs to write 100 lines of data, 100 lines of preset memory space can be reserved. In some embodiments, an imaging device with less actual distortion may be selected to reduce the number of times of writing to the line buffer, thereby reducing splicing delay.
  • the above processing of obtaining multiple lines of line buffer data may be performed in parallel, so as to obtain multiple lines of line buffer data of each path of the multiple paths of images to be spliced.
  • the delay in the image stitching process can be reduced.
  • Step 104 write the multiple lines of line buffer data of each of the multiple lines of images to be spliced into the frame buffer, and perform filling processing on the multiple lines of line buffer data of each of the multiple lines of the images to be spliced, to obtain Stitching framebuffer data.
  • filling processing may be performed on multiple rows of line buffer data, so as to fill in missing data.
  • padding may include weighted reconstruction padding, eg, linear interpolation.
  • stitching the framebuffer data may include writing linebuffer data to the framebuffer.
  • the filling process in the process of writing the multiple lines of line buffer data of each line of multiple lines of images to be spliced into the frame buffer, the filling process can be performed on the multiple lines of line buffer data of each line of images to be spliced to obtain the splicing Framebuffer data.
  • the FPGA platform may write multiple lines of line buffer data of each line of the multiple lines of images to be spliced into the frame buffer in a line write unit. For example, taking the first image to be spliced as an example, one line of line buffer data can be written each time.
  • the delay is the write delay of the row data
  • the frame buffer data is written as the unit
  • the delay is the write delay of the frame data.
  • the write delay of the row data is significantly lower than that of the frame data. Input delay, it can be seen that the writing delay can be reduced in line writing units, which in turn can reduce the delay of image splicing.
  • the FPGA platform may perform filling processing on each row of row buffer data during the writing process of the row buffer data. By performing the padding process in parallel during the writing process of each row of buffer data, the delay of image mosaic can be further reduced.
  • the FPGA platform writes multiple lines of line-buffered data for each line of the multiple lines of images to be spliced into the frame buffer based on the polling arbitration mode in line write units.
  • the polling arbitration mode can be used to dynamically adjust the order in which each line of the multiple lines of line buffer data of multiple images to be spliced is written into the frame buffer.
  • the polling arbitration mode can be used to write multiple lines of line buffer data of multiple lines of images to be spliced into the frame based on the read time sequence of each line of line buffer data of multiple lines of images to be spliced by the FPGA platform buffer.
  • the chronological order of reading the line buffer data is: the first line buffer data of the first image to be stitched, the first line buffer data of the third image to be stitched, the first line of the second image to be stitched
  • the aforementioned line buffer data of each line can be sequentially written to the frame buffer.
  • the dynamic writing of the multi-line buffer data of multiple images to be spliced can be realized, avoiding the same image to be spliced It is always processed, and other images to be stitched are not processed, thereby further reducing the delay of image stitching.
  • the multi-channel image stitching method provided by the embodiments of the present disclosure may be applied to an AXI (Advanced eXtensible Interface) bus system.
  • the FPGA platform can write multiple lines of line buffer data of each line of the multiple lines of images to be spliced into the frame buffer through the AXI4 bus.
  • Step 106 perform preprocessing on the spliced frame buffer data to obtain a spliced image.
  • preprocessing may include encoding processing and decoding processing.
  • the FPGA platform can perform encoding processing on the line buffer data of the preset line after writing the line buffer data of the preset line each time, until the second preset condition is met, and an encoded image is obtained; for the encoded image Decoding is performed to obtain a spliced image.
  • the preset row can be specifically set according to actual conditions.
  • the second preset condition may include that the multi-line buffer data of the multiple images to be spliced is completely written.
  • the encoding delay is the delay of the preset line data instead of the delay of a whole frame of data, which can greatly reduce the encoding delay, thereby reducing the delay of image splicing.
  • the built-in encoder of the field programmable gate array platform can be used to perform the above-mentioned operation on the row buffer data of the preset row after writing the row buffer data of the preset row each time. Encoding processing, until the second preset condition is met, to obtain the encoded image.
  • the encoder may be a hardcore H265 encoder, in which case the preset lines may be 16 lines. Based on its own performance, the H265 encoder can encode the written 16 lines of line buffer data after every 16 lines of line buffer data are written into the frame buffer, thereby reducing the encoding delay.
  • the encoding delay can be reduced through the built-in encoder of the field programmable gate array platform, hardware devices can be reduced, and the design complexity of the field programmable gate array platform can be reduced.
  • the multi-channel image mosaic method of the present disclosure is implemented through an FPGA platform, only uses storage resources inside the FPGA, has a simple algorithm, and occupies less storage and logic resources.
  • FPGA is a hardware platform, which can be applied to high frame rate (for example, 1080P60), high number of channels (for example, 6 channels or above), low distortion, and high line-of-sight camera equipment data access bandwidth requirements.
  • Fig. 3 is a flow chart of obtaining row data shown in an exemplary embodiment of the present disclosure. As shown in Figure 3, the process can include:
  • Step 302 decoding the preset interface signal output by the target camera device received based on the preset interface, to obtain decoded information; wherein, the decoded information includes at least line and field synchronization signals and pixel data of the image to be spliced; the The target imaging device is the imaging device of the path of images to be spliced.
  • the preset interface may be an interface for the FPGA platform to receive a signal output by the camera device.
  • the preset interface may be specifically set according to actual conditions, for example, a MIPI interface.
  • the preset interface signal is a MIPI signal, and by decoding the MIPI signal, decoding information including a line and field synchronization signal and pixel data of an image to be spliced can be obtained.
  • Step 304 After obtaining the line data in the original format from the pixel data of the image to be spliced based on the line and field synchronization signals, perform format conversion on the line data to obtain line data in the target format.
  • Line and field synchronization signals can reflect the information of the end of a line (field). Therefore, the line data of each line can be obtained from the pixel data of the image to be spliced through the line and field synchronization information.
  • the initial format of the pixel data transmitted through the MIPI interface is the YUV422 format, that is, the initial format of the line data is the YUV422 format.
  • the format required for processing the pixel data in the row data is RGB format or NV12 format, therefore, in some embodiments, the row data can be format-converted to obtain row data in RGB format or NV12 format, the RGB format Or NV12 format which is the target format.
  • obtaining row data in the original format and format transcoding can be performed in parallel, and the delay of image splicing can be further reduced through the parallel execution.
  • FIG. 4 is a block diagram of a multi-channel image stitching system shown in the present disclosure.
  • the institute system 400 includes:
  • the multi-line buffering module 402 is configured to repeatedly execute the acquisition of line data for each of the multiple lines of images to be spliced, and based on the preset mapping table, write the pixel data included in the line data into the image corresponding to the line of images to be spliced.
  • Line buffer the process of obtaining line buffer data until the first preset condition is met, so as to obtain the multiple lines of line buffer data of the image to be spliced; wherein, the preset mapping table is based on historical images to be spliced The mapping relationship between the pixel data and the historical mosaic image is obtained;
  • a frame buffer writing module 404 configured to write the multiple lines of line buffer data of each of the multiple lines of images to be spliced into the frame buffer, and write the multiple lines of line buffer data of each of the multiple lines of the image to be spliced Perform filling processing to obtain spliced frame buffer data;
  • the splicing processing module 406 is configured to perform preprocessing on the spliced frame buffer data to obtain a spliced image.
  • the frame buffer writing module 404 includes:
  • the parallel filling sub-module is used to write the multi-line line buffer data of each line in the multiple lines of images to be spliced into the frame buffer in units of line writing, and write the line buffer data of each line into the frame buffer. During the writing process, the filling process is performed on the line buffer data to obtain the spliced frame buffer data.
  • the parallel filling submodule includes:
  • the arbitration writing subunit is used to write the multiple rows of line buffer data of each channel in the multiple channels of images to be spliced into the frame buffer based on the polling arbitration mode in the writing unit of the behavior .
  • the multiline buffering module 402 includes:
  • the decoding sub-module is used to decode the preset interface signal output by the target camera device received based on the preset interface to obtain decoding information; wherein, the decoding information includes at least line and field synchronization signals and pixel data of the image to be spliced ;
  • the target imaging device is the imaging device of the image to be stitched;
  • a format conversion sub-module configured to convert the format of the row data to obtain the row data of the target format after obtaining the row data in the initial format from the pixel data of the image to be spliced based on the row and field synchronization signals data.
  • the multiline buffering module 402 includes:
  • the parallel row buffering submodule is configured to execute the processing in parallel for each of the multiple paths of images to be spliced, so as to obtain the multiple rows of row buffer data for each path of the multiple paths of images to be spliced.
  • the splicing processing module 406 includes:
  • the encoding submodule is configured to perform encoding processing on the line buffer data of the preset line after writing the line buffer data of the preset line each time, until the second preset condition is met, and obtain an encoded image;
  • the decoding submodule is used to decode the coded image to obtain a spliced image.
  • the encoding submodule includes:
  • the encoding subunit is used to use the built-in encoder of the field programmable gate array system to perform the following operation on the line buffer data of the preset line after writing the line buffer data of the preset line each time.
  • the encoding process is performed until the second preset condition is satisfied, and the encoded image is obtained.
  • a computer-readable storage medium including program instructions is also provided, and when the program instructions are executed by a processor, the steps of the above-mentioned multi-channel image stitching method are implemented.
  • an unmanned vehicle including the multi-channel image stitching system provided in the present disclosure. Based on the multi-channel image stitching system, the unmanned vehicle can stitch the multi-channel images collected by the unmanned vehicle and display it on the display screen of the unmanned vehicle, which can assist the safe driving of the unmanned vehicle. Parking improves the safety performance of unmanned vehicles.
  • the device embodiments described above are only illustrative, and the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in One place, or it can be distributed to multiple network elements. Part or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. It can be understood and implemented by those skilled in the art without any creative efforts.
  • the various component embodiments of the present disclosure may be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof.
  • a microprocessor or a digital signal processor (DSP) may be used in practice to implement some or all functions of some or all components in the computing processing device according to the embodiments of the present disclosure.
  • DSP digital signal processor
  • the present disclosure can also be implemented as an apparatus or apparatus program (eg, computer program and computer program product) for performing a part or all of the methods described herein.
  • Such a program realizing the present disclosure may be stored on a computer-readable medium, or may have the form of one or more signals.
  • Such a signal may be downloaded from an Internet site, or provided on a carrier signal, or provided in any other form.
  • FIG. 5 illustrates a computing processing device that may implement methods according to the present disclosure.
  • the computing processing device conventionally includes a processor 510 and a computer program product or computer readable medium in the form of memory 520 .
  • Memory 520 may be an electronic memory such as flash memory, EEPROM (Electrically Erasable Programmable Read Only Memory), EPROM, hard disk, or ROM.
  • the memory 520 has a storage space 530 for program code 531 for performing any method steps in the methods described above.
  • the storage space 530 for program codes may include respective program codes 531 for respectively implementing various steps in the above methods. These program codes can be read from or written into one or more computer program products.
  • These computer program products comprise program code carriers such as hard disks, compact disks (CDs), memory cards or floppy disks.
  • Such a computer program product is typically a portable or fixed storage unit as described with reference to FIG. 6 .
  • the storage unit may have storage segments, storage spaces, etc. arranged similarly to the memory 520 in the computing processing device of FIG. 5 .
  • the program code can eg be compressed in a suitable form.
  • the storage unit includes computer readable code 531', i.e. code readable by, for example, a processor such as 510, which code, when executed by a computing processing device, causes the computing processing device to perform the above-described method. each step.
  • references herein to "one embodiment,” “an embodiment,” or “one or more embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Additionally, please note that examples of the word “in one embodiment” herein do not necessarily all refer to the same embodiment.
  • any reference signs placed between parentheses shall not be construed as limiting the claim.
  • the word “comprising” does not exclude the presence of elements or steps not listed in a claim.
  • the word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements.
  • the disclosure can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a unit claim enumerating several means, several of these means can be embodied by one and the same item of hardware.
  • the use of the words first, second, and third, etc. does not indicate any order. These words can be interpreted as names.
  • any combination of various implementations of the present disclosure can also be made, as long as they do not violate the idea of the present disclosure, they should also be regarded as the content disclosed in the present disclosure.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

The present disclosure relates to a method and system for splicing multiple channels of images, and a readable storage medium and an unmanned vehicle. The method is applied to a field programmable gate array platform, and the method comprises: for each of multiple channels of images to be spliced, executing the following processing to obtain multiple rows of row buffer data of each of said multiple channels of images: repeatedly executing the process of acquiring row data, and on the basis of a preset mapping table, writing pixel data comprised in the row data into a row buffer area corresponding to said channel of image to obtain row buffer data until a first preset condition is met, so as to obtain the multiple rows of row buffer data of said channel of image; writing the multiple rows of row buffer data of each of said multiple channels of images into a frame buffer area, and executing filling processing on the multiple rows of row buffer data of each said channel of image, so as to obtain spliced frame buffer data; and preprocessing the spliced frame buffer data, so as to obtain a spliced image.

Description

多路图像拼接方法、系统、可读存储介质、及无人车Multi-channel image stitching method, system, readable storage medium, and unmanned vehicle
相关申请的交叉引用Cross References to Related Applications
本公开要求在2021年08月25日提交中国专利局、申请号为202110984382.6、名称为“多路图像拼接方法、系统、可读存储介质、及无人车”的中国专利申请的优先权,其全部内容通过引用结合在本公开中。This disclosure claims the priority of the Chinese patent application with application number 202110984382.6 and titled "multi-channel image stitching method, system, readable storage medium, and unmanned vehicle" submitted to the China Patent Office on August 25, 2021. The entire contents are incorporated by reference in this disclosure.
技术领域technical field
本公开涉及车辆技术领域,具体地,涉及一种多路图像拼接方法、系统、可读存储介质、及无人车。The present disclosure relates to the technical field of vehicles, and in particular, relates to a multi-channel image stitching method and system, a readable storage medium, and an unmanned vehicle.
背景技术Background technique
目前在无人车领域中,车载环视系统被广泛的应用于自动驾驶和远程遥控驾驶,以辅助司机安全驾驶。对于自动驾驶系统而言,基于环视视角能够提高全覆盖障碍物检测能力,对于远程遥控驾驶而言,环视视角能最大限度辅助远程遥控驾驶现场去人,及最大限度减少人车比。At present, in the field of unmanned vehicles, the vehicle surround view system is widely used in automatic driving and remote control driving to assist the driver in driving safely. For the automatic driving system, the surround-view perspective can improve the full-coverage obstacle detection capability. For remote remote control driving, the surround-view perspective can maximize the assistance of remote control driving to remove people from the scene and minimize the ratio of people to vehicles.
相关技术中,车载环视系统大多采用纯软件算法实现多路图像拼接,存在拼接性能瓶颈,无法实现高帧率和高路数的图像拼接,且拼接的图像存在扭曲、拼接延迟高。为此,本公开提出一种多路图像拼接方法、系统、可读存储介质、及无人车。In the related technologies, most of the vehicle surround view systems use pure software algorithms to realize multi-channel image stitching, and there is a bottleneck in stitching performance. It is impossible to achieve high frame rate and high-channel image stitching, and the stitched images are distorted and the stitching delay is high. To this end, the present disclosure proposes a multi-channel image stitching method, system, readable storage medium, and unmanned vehicle.
发明内容Contents of the invention
本公开的目的是提供一种多路图像拼接方法、系统、可读存储介质、及无人车,以至少部分地解决相关技术中存在的上述问题。The purpose of the present disclosure is to provide a multi-channel image stitching method, system, readable storage medium, and unmanned vehicle, so as to at least partially solve the above-mentioned problems in the related art.
为了实现上述目的,根据本公开实施例的第一方面,提供一种多路图像拼接方法,其特征在于,应用于现场可编程门阵列平台,所述方法包括:In order to achieve the above purpose, according to the first aspect of the embodiments of the present disclosure, a multi-channel image stitching method is provided, which is characterized in that it is applied to a field programmable gate array platform, and the method includes:
针对多路待拼接图像中的每路,执行以下处理,以得到所述多路待拼接图像中每路的多行行缓冲数据:For each path in the multiple paths of images to be spliced, perform the following processing to obtain multiple rows of line buffer data for each path in the multiple paths of images to be spliced:
重复执行获取行数据,并基于预设映射表,将所述行数据包括的像素数据写入该路待拼接图像对应的行缓冲区,得到行缓冲数据的过程,直至满足第一预设条件,得到所述该路待拼接图像的所述多行行缓冲数据;Repeatedly performing the process of obtaining row data, and writing pixel data included in the row data into the row buffer corresponding to the image to be spliced based on the preset mapping table, to obtain the row buffer data, until the first preset condition is met, Obtaining the multiple lines of line buffer data of the path of images to be spliced;
其中,所述预设映射表基于历史待拼接图像与历史拼接图像之间的所述像素数据的映射关系得到;Wherein, the preset mapping table is obtained based on the mapping relationship of the pixel data between the historical image to be stitched and the historical stitched image;
将所述多路待拼接图像中每路的所述多行行缓冲数据写入帧缓冲区,并对每路所述待拼接图像的所述多行行缓冲数据执行填充处理,得到拼接帧缓冲数据;Writing the multiple lines of line buffer data of each of the multiple lines of images to be spliced into a frame buffer, and performing filling processing on the multiple lines of line buffer data of each of the multiple lines of images to be spliced to obtain a spliced frame buffer data;
对所述拼接帧缓冲数据执行预处理,得到拼接图像。Perform preprocessing on the spliced frame buffer data to obtain a spliced image.
可选地,所述将所述多路待拼接图像中每路的所述多行行缓冲数据写入帧缓冲区,并对每路所述待拼接图像的所述多行行缓冲数据执行填充处理,得到拼接帧缓冲数据,包括:Optionally, writing the multiple lines of line buffer data of each of the multiple lines of images to be spliced into a frame buffer, and performing filling of the multiple lines of line buffer data of each of the multiple lines of images to be spliced Processing to get spliced framebuffer data, including:
以行为写入单位,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区,并在每行所述行缓冲数据的写入过程中,对该行行缓冲数据执行所述填充处理,得到所述拼接帧缓冲数据。Write the multiple lines of line buffer data of each line of the multiple lines of images to be spliced into the frame buffer in a line writing unit, and write the line buffer data to the frame buffer during the writing process of each line of the line buffer data The filling process is performed on the line buffer data to obtain the spliced frame buffer data.
可选地,所述以行为写入单位,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区,包括:Optionally, writing the multiple lines of line buffer data of each line of the multiple lines of images to be spliced into the frame buffer in a row writing unit includes:
以所述行为所述写入单位,基于轮询仲裁模式,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区。Write the multiple rows of line buffer data of each channel in the multiple channels of images to be spliced into the frame buffer based on the writing unit of the row and based on a polling arbitration mode.
可选地,所述获取行数据,包括:Optionally, the obtaining row data includes:
对基于预设接口接收的目标摄像设备输出的预设接口信号进行解码,得到解码信息;其中,所述解码信息至少包括行场同步信号和所述待拼接图像的像素数据;所述目标摄像设备为所述该路待拼接图像的摄像设备;Decoding the preset interface signal output by the target camera device received based on the preset interface to obtain decoded information; wherein, the decoded information includes at least line and field synchronization signals and pixel data of the image to be spliced; the target camera device It is the camera equipment of the image to be spliced;
在基于所述行场同步信号,从所述待拼接图像的所述像素数据中获取到初始格式的行数据后,对该行数据进行格式转换,得到目标格式的行数据。After the row data in the initial format is obtained from the pixel data of the image to be spliced based on the row and field synchronous signals, format conversion is performed on the row data to obtain row data in a target format.
可选地,所述针对多路待拼接图像中的每路,执行以下处理,以得到所述多路待拼接图像中每路的多行行缓冲数据,包括:Optionally, for each of the multiple paths of images to be spliced, the following processing is performed to obtain multiple rows of line buffer data for each of the multiple paths of images to be spliced, including:
针对所述多路待拼接图像中的每路,并行执行所述处理,以得到所述多路待拼接图像中每路的所述多行行缓冲数据。For each path of the multiple paths of images to be spliced, the processing is executed in parallel to obtain the multiple lines of line buffer data of each path of the multiple paths of images to be spliced.
可选地,所述对所述拼接帧缓冲数据执行预处理,得到拼接图像,包括:Optionally, performing preprocessing on the spliced frame buffer data to obtain a spliced image includes:
在每次写入预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行编码处理,直至满足第二预设条件,得到编码图像;After writing the line buffer data of a preset line each time, performing encoding processing on the line buffer data of the preset line until a second preset condition is met to obtain an encoded image;
对所述编码图像进行解码,得到拼接图像。The coded image is decoded to obtain a spliced image.
可选地,所述在每次写入预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行编码处理,直至满足第二预设条件,得到编码图像;Optionally, after each writing of the line buffer data of a preset line, encoding processing is performed on the line buffer data of the preset line until a second preset condition is met to obtain an encoded image;
利用所述现场可编程门阵列系统内置的编码器,在每次写入所述预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行所述编码处理,直至满足所述第二预设条件,得到所述编码图像。Using the built-in encoder of the field programmable gate array system, after writing the row buffer data of the preset row each time, the encoding process is performed on the row buffer data of the preset row until the row buffer data of the preset row is satisfied. The second preset condition is to obtain the coded image.
根据本公开实施例的第二方面,提供一种多路图像拼接系统,应用于现场可编程门阵列平台,所述系统包括:According to the second aspect of the embodiments of the present disclosure, a multi-channel image stitching system is provided, which is applied to a field programmable gate array platform, and the system includes:
多行缓冲模块,用于针对多路待拼接图像中的每路,重复执行获取行数据,并基于预设映射表,将所述行数据包括的像素数据写入该路待拼接图像对应的行缓冲区,得到行缓冲数据的过程,直至满足第一预设条件,以得到所述该路待拼接图像的所述多行行缓冲数据;其中,所述预设映射表基于历史待拼接图像与历史拼接图像之间的所述像素数据的映射关系得到;The multi-line buffer module is used to repeatedly execute the acquisition of line data for each of the multiple lines of images to be spliced, and based on the preset mapping table, write the pixel data included in the line data into the line corresponding to the line of images to be spliced Buffering, the process of obtaining line buffer data until the first preset condition is met, so as to obtain the multiple lines of line buffer data of the image to be spliced; wherein, the preset mapping table is based on historical images to be spliced and The mapping relationship of the pixel data between historical mosaic images is obtained;
帧缓冲写模块,用于将所述多路待拼接图像中每路的所述多行行缓冲数据写入帧缓冲区,并对每路所述待拼接图像的所述多行行缓冲数据执行填充处理,得到拼接帧缓冲数据;A frame buffer writing module, configured to write the multiple lines of line buffer data of each of the multiple channels of images to be spliced into a frame buffer, and execute Filling processing to obtain spliced frame buffer data;
拼接处理模块,用于对所述拼接帧缓冲数据执行预处理,得到拼接图像。The splicing processing module is configured to perform preprocessing on the spliced frame buffer data to obtain a spliced image.
可选地,所述帧缓冲写模块包括:Optionally, the frame buffer writing module includes:
并行填充子模块,用于以行为写入单位,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区,并在每行所述行缓冲数据的写入过程中,对该行行缓冲数据执行所述填充处理,得到所述拼接帧缓冲数据。The parallel filling sub-module is used to write the multi-line line buffer data of each line in the multiple lines of images to be spliced into the frame buffer in units of line writing, and write the line buffer data of each line into the frame buffer. During the writing process, the filling process is performed on the line buffer data to obtain the spliced frame buffer data.
可选地,所述并行填充子模块包括:Optionally, the parallel filling submodule includes:
仲裁写入子单元,用于以所述行为所述写入单位,基于轮询仲裁模式,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区。The arbitration writing subunit is used to write the multiple rows of line buffer data of each channel in the multiple channels of images to be spliced into the frame buffer based on the polling arbitration mode in the writing unit of the behavior .
可选地,所述多行缓冲模块包括:Optionally, the multiline buffer module includes:
解码子模块,用于对基于预设接口接收的目标摄像设备输出的预设接口信号进行解码,得到解码信息;其中,所述解码信息至少包括行场同步信号和所述待拼接图像的像素数据;所述目标摄像设备为所述该路待拼接图像的摄像设备;The decoding sub-module is used to decode the preset interface signal output by the target camera device received based on the preset interface to obtain decoding information; wherein, the decoding information includes at least line and field synchronization signals and pixel data of the image to be spliced ; The target imaging device is the imaging device of the image to be stitched;
格式转换子模块,用于在基于所述行场同步信号,从所述待拼接图像的所述像素数据中获取到初始格式的行数据后,对该行数据进行格式转换,得到目标格式的行数据。A format conversion sub-module, configured to convert the format of the row data to obtain the row data of the target format after obtaining the row data in the initial format from the pixel data of the image to be spliced based on the row and field synchronization signals data.
可选地,所述多行缓冲模块包括:Optionally, the multiline buffer module includes:
并行行缓冲子模块,用于针对所述多路待拼接图像中的每路,并行执行所述处理,以得到所述多路待拼接图像中每路的所述多行行缓冲数据。The parallel row buffering submodule is configured to execute the processing in parallel for each of the multiple paths of images to be spliced, so as to obtain the multiple rows of row buffer data for each path of the multiple paths of images to be spliced.
可选地,所述拼接处理模块包括:Optionally, the splicing processing module includes:
编码子模块,用于在每次写入预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行编码处理,直至满足第二预设条件,得到编码图像;The encoding submodule is configured to perform encoding processing on the line buffer data of the preset line after writing the line buffer data of the preset line each time, until the second preset condition is met, and obtain an encoded image;
解码子模块,用于对所述编码图像进行解码,得到拼接图像。The decoding submodule is used to decode the coded image to obtain a spliced image.
可选地,所述编码子模块包括:Optionally, the encoding submodule includes:
编码子单元,用于利用所述现场可编程门阵列系统内置的编码器,在每次写入所述预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行所述编码处理,直至满足所述第二预设条件,得到所述编码图像。The encoding subunit is used to use the built-in encoder of the field programmable gate array system to perform the following operation on the line buffer data of the preset line after writing the line buffer data of the preset line each time. The encoding process is performed until the second preset condition is satisfied, and the encoded image is obtained.
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述方法的步骤。According to a third aspect of the embodiments of the present disclosure, there is provided a computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, the steps of any one of the methods described in the first aspect are implemented.
根据本公开实施例的第四方面,提供一种无人车,包括第二方面所述的多路图像拼接系统。According to a fourth aspect of the embodiments of the present disclosure, there is provided an unmanned vehicle, including the multi-channel image stitching system described in the second aspect.
根据本公开实施例的第五方面,提供一种计算处理设备,包括:存储器,其中存储有计算机可读代码;以及一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行如上述第一方面所述的多路图像拼接方法。According to a fifth aspect of the embodiments of the present disclosure, there is provided a computing processing device, including: a memory, in which computer-readable codes are stored; and one or more processors, when the computer-readable codes are stored by the one or more When executed by two processors, the computing processing device executes the multi-channel image stitching method as described in the first aspect above.
根据本公开实施例的第六方面,提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算处理设备上运行时,导致所述计算处理设备执行根据上述第一方面所述的多路图像拼接方法。According to a sixth aspect of the embodiments of the present disclosure, there is provided a computer program, including computer readable code, which, when the computer readable code is run on a computing processing device, causes the computing processing device to execute the computer program according to the above first aspect. The multi-channel image stitching method described above.
通过上述技术方案,基于预设映射表将行数据的像素数据写入行缓冲区,可以将行数据包括的像素点精准写入至行缓冲区对应的映射位置。避免通过拟合算法去畸变导致的写入误差,进而解决了拟合算法实现图像拼接导致的图像扭曲非线性畸变问题,能够在拼接斜边实现无缝对齐;且本公开的多路图像拼接方法由现场可编程门阵列平台实现,为硬件改进,算法简单,占用逻辑资源少。Through the above technical solution, the pixel data of the row data is written into the row buffer based on the preset mapping table, and the pixels included in the row data can be accurately written to the corresponding mapping position of the row buffer. Avoiding the writing error caused by de-distortion through the fitting algorithm, and then solving the problem of image distortion and nonlinear distortion caused by the fitting algorithm to achieve image stitching, and can realize seamless alignment on the stitching hypotenuse; and the multi-channel image stitching method disclosed in the present disclosure Realized by the field programmable gate array platform, it is hardware improvement, the algorithm is simple, and it occupies less logic resources.
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。Other features and advantages of the present disclosure will be described in detail in the detailed description that follows.
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技 术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。The above description is only an overview of the technical solution of the present disclosure. In order to better understand the technical means of the present disclosure, it can be implemented according to the contents of the description, and in order to make the above and other purposes, features and advantages of the present disclosure more obvious and understandable , the specific embodiments of the present disclosure are enumerated below.
附图说明Description of drawings
为了更清楚地说明本公开实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present disclosure or related technologies, the following will briefly introduce the drawings that need to be used in the descriptions of the embodiments or related technologies. Obviously, the drawings in the following description are the For some disclosed embodiments, those skilled in the art can also obtain other drawings based on these drawings without any creative work.
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:The accompanying drawings are used to provide a further understanding of the present disclosure, and constitute a part of the description, together with the following specific embodiments, are used to explain the present disclosure, but do not constitute a limitation to the present disclosure. In the attached picture:
图1是本公开一示例性实施例所示出的一种多路图像拼接方法的流程图;FIG. 1 is a flow chart of a multi-channel image stitching method shown in an exemplary embodiment of the present disclosure;
图2是本公开一示例性实施例所示出的一行行数据的像素数据的写入过程的示例性示意图;Fig. 2 is an exemplary schematic diagram of a process of writing pixel data of row-by-row data shown in an exemplary embodiment of the present disclosure;
图3是本公开一示例性实施例所示出的获取行数据的流程图;Fig. 3 is a flowchart of obtaining row data shown in an exemplary embodiment of the present disclosure;
图4是本公开一示例性实施例所示出的一种多路图像拼接系统的框图;Fig. 4 is a block diagram of a multi-channel image stitching system shown in an exemplary embodiment of the present disclosure;
图5示意性地示出了用于执行根据本公开的方法的计算处理设备的框图;并且Figure 5 schematically illustrates a block diagram of a computing processing device for performing a method according to the present disclosure; and
图6示意性地示出了用于保持或者携带实现根据本公开的方法的程序代码的存储单元。Fig. 6 schematically shows a storage unit for holding or carrying program codes implementing the method according to the present disclosure.
具体实施例specific embodiment
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。In order to make the purpose, technical solutions and advantages of the embodiments of the present disclosure clearer, 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 It is a part of the embodiments of the present disclosure, but not all of them. Based on the embodiments in the present disclosure, all other embodiments obtained by persons of ordinary skill in the art without creative efforts fall within the protection scope of the present disclosure.
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。Specific embodiments of the present disclosure will be described in detail below in conjunction with the accompanying drawings. It should be understood that the specific embodiments described here are only used to illustrate and explain the present disclosure, and are not intended to limit the present disclosure.
在介绍本公开的多路图像拼接方法、系统、可读存储介质、及无人车之前,首先对本公开的应用场景进行介绍。本公开所提供的各实施例可以用于对无人车的多路摄像头采集的多路图像的环视拼接场景。在一些实施例中, 无人车至少可以包括自动驾驶车辆和远程遥控驾驶车辆。值得说明的,本公开所提供的各实施例还可以用于其他需要得到环视拼接图像的场景。例如,视频监控场景。Before introducing the multi-channel image stitching method, system, readable storage medium, and unmanned vehicle of the present disclosure, the application scenarios of the present disclosure are firstly introduced. The various embodiments provided in the present disclosure can be used in a surround-view stitching scene of multiple images collected by multiple cameras of an unmanned vehicle. In some embodiments, unmanned vehicles may at least include self-driving vehicles and remote-controlled vehicles. It is worth noting that the various embodiments provided in the present disclosure can also be used in other scenarios where surround-view stitched images need to be obtained. For example, a video surveillance scenario.
相关技术中,可以通过纯软件算法实现多路图像的环视拼接,然而,该方法至少存在以下的一种缺陷:(1)部署于现场可编程门阵列(Field Programmable Gate Array,FPGA)平台端的算法复杂,在FPGA平台部署时需占用大量数字信号处理(Digital Signal Processing,DSP)、块RAM(Block RAM,BRAM)及查找表(LUTs)等逻辑资源,不利于降成本;(2)通过算法拟合方式完成畸变校正,校正后图像普遍存在扭曲变形失真情况,导致拼接图像存在扭曲变形失真;(3)延迟大,仅适合低速泊车等应用场景;(4)多通道视频数据接入、拼接数据的读写需占用大量存储带宽;(5)纯软件的拼接存在拼接性能瓶颈,无法应对高帧率、高路数、低畸变、高视距摄像头数据接入带宽需求。In related technologies, the look-around mosaic of multiple images can be realized by a pure software algorithm, but at least one of the following defects exists in this method: (1) the algorithm deployed on the field programmable gate array (Field Programmable Gate Array, FPGA) platform side It is complex and requires a lot of logic resources such as Digital Signal Processing (DSP), block RAM (BRAM, BRAM) and look-up tables (LUTs) when deployed on the FPGA platform, which is not conducive to cost reduction; (2) through the algorithm Distortion correction is completed in a combined way. After correction, the image is generally distorted and deformed, resulting in distortion and distortion of the spliced image; (3) The delay is large, and it is only suitable for low-speed parking and other application scenarios; (4) Multi-channel video data access, splicing The reading and writing of data requires a large amount of storage bandwidth; (5) There is a bottleneck in the splicing performance of pure software splicing, which cannot meet the data access bandwidth requirements of high frame rate, high number of channels, low distortion, and high viewing distance cameras.
为此,本公开提供一种多路图像拼接方法。图1是本公开一示例性实施例所示出的一种多路图像拼接方法的流程图,所述方法可以用于现场可编程门阵列(Field Programmable Gate Array,FPGA)平台。FPGA平台可以是专用集成电路中的一种半定制电路,是可编程的逻辑阵列。在一些实施例中,FPGA平台可以部署于无人车中,以在无人车的显示屏上显示拼接图像,辅助无人车的安全驾驶。所述方法包括:To this end, the present disclosure provides a multi-channel image stitching method. FIG. 1 is a flow chart of a multi-channel image stitching method shown in an exemplary embodiment of the present disclosure, and the method can be used on a Field Programmable Gate Array (Field Programmable Gate Array, FPGA) platform. The FPGA platform can be a semi-custom circuit in an ASIC, a programmable logic array. In some embodiments, the FPGA platform can be deployed in the unmanned vehicle to display stitched images on the display screen of the unmanned vehicle to assist the safe driving of the unmanned vehicle. The methods include:
步骤102,针对多路待拼接图像中的每路,执行以下处理,以得到所述多路待拼接图像中每路的多行行缓冲数据:重复执行获取行数据,并基于预设映射表,将所述行数据包括的像素数据写入该路待拼接图像对应的行缓冲区,得到行缓冲数据的过程,直至满足第一预设条件,得到所述该路待拼接图像的所述多行行缓冲数据。Step 102, for each of the multiple channels of images to be spliced, perform the following processing to obtain multiple rows of line buffer data for each of the multiple channels of images to be spliced: repeatedly execute the acquisition of row data, and based on the preset mapping table, The process of writing the pixel data included in the line data into the line buffer corresponding to the image to be spliced to obtain the line buffer data, until the first preset condition is met, and obtaining the multiple lines of the image to be spliced Row buffered data.
在一些实施例中,待拼接图像可以是需要进行环视拼接的图像。环视拼接可以是指将采集的多个方向的图像(即多路图像)进行拼接,得到全景环视图像。多路待拼接图像可以由多路摄像设备获取。例如,从多路摄像设备采集的视频数据中分别提取对应的图像帧。在一种可实施的场景,多路摄像设备可以是无人车上安装的摄像设备,用于采集车辆不同方向的图像。In some embodiments, the image to be spliced may be an image that requires surround-view stitching. Surround view splicing may refer to splicing images collected in multiple directions (ie, multi-channel images) to obtain a panoramic view image. The multiple images to be stitched can be acquired by multiple camera devices. For example, corresponding image frames are respectively extracted from video data collected by multiple cameras. In an implementable scenario, the multi-camera equipment may be the camera equipment installed on the unmanned vehicle, which is used to collect images from different directions of the vehicle.
在一些实施例中,多路摄像设备的数量可以根据实际情况进行具体设置, 例如,四路、六路等。以四路摄像设备为例,摄像设备可以安装在车辆前后左右的位置去采集四个方向的图像。在一些实施例中,摄像设备的类型至少可以包括鱼眼摄像头和/或广角摄像头。值得说明的,多路摄像头各自的安装位置及类型可根据实际情况灵活设置,本公开并不对此做任何限制。In some embodiments, the number of multi-camera devices can be specifically set according to actual conditions, for example, four cameras, six cameras, and so on. Taking the four-way camera equipment as an example, the camera equipment can be installed at the front, rear, left, and right positions of the vehicle to collect images in four directions. In some embodiments, the type of camera device may at least include a fisheye camera and/or a wide-angle camera. It is worth noting that the respective installation positions and types of the multi-channel cameras can be flexibly set according to actual conditions, and this disclosure does not impose any limitation on this.
在一些实施例中,多行行缓冲数据可以是对待拼接图像的所有行数据写入行缓冲区后得到缓冲数据。在一些实施例中,多路待拼接图像可以对应不同的行缓冲区,对应的,每路待拼接图像的行数据可以写入对应的行缓冲区。具体的,FPGA平台可以执行以下处理得到每路待拼接图像的多行行缓冲数据:针对多路待拼接图像中的每路,重复执行获取行数据,并基于预设映射表,将行数据包括的像素数据写入该路待拼接图像对应的行缓冲区,得到行缓冲数据的过程,直至满足预设条件,得到该路待拼接图像的多行行缓冲数据。In some embodiments, the multiple lines of line buffer data may be buffered data obtained after all line data of the image to be spliced is written into the line buffer. In some embodiments, multiple paths of images to be spliced may correspond to different line buffers, and correspondingly, row data of each path of images to be spliced may be written into corresponding line buffers. Specifically, the FPGA platform can perform the following processing to obtain multiple lines of line buffer data for each image to be spliced: For each of the multiple lines of images to be spliced, repeatedly execute the acquisition of line data, and based on the preset mapping table, the line data includes The process of writing the pixel data of the image into the line buffer corresponding to the image to be spliced to obtain the line buffer data, until the preset conditions are met, and obtaining the multiple lines of the line buffer data of the image to be spliced.
在一些实施例中,待拼接图像可以具备不同的分辨率。例如,1920*1080像素、2560*1440像素。一般地,待拼接图像的分辨率可以与用于显示拼接图像的显示屏的分辨率相同。例如,1080P显示屏的像素分辨率为1920*1080像素。又例如,2K显示屏的像素分辨率为2560*1440像素。基于待拼接图像的分辨率可以将图像分为多行行数据,每行行数据包括对应的像素数据。例如,以分辨率为1920*1080像素为例,待拼接图像可以被分为1920行,每行中有1080个像素点,该1080个像素点即为该行的行数据对应的像素数据。In some embodiments, the images to be stitched may have different resolutions. For example, 1920*1080 pixels, 2560*1440 pixels. Generally, the resolution of the image to be spliced may be the same as that of the display screen used to display the spliced image. For example, the pixel resolution of a 1080P display is 1920*1080 pixels. For another example, the pixel resolution of a 2K display screen is 2560*1440 pixels. Based on the resolution of the image to be spliced, the image can be divided into multiple rows of data, and each row of data includes corresponding pixel data. For example, taking the resolution of 1920*1080 pixels as an example, the image to be stitched can be divided into 1920 lines, each line has 1080 pixels, and the 1080 pixels are the pixel data corresponding to the line data of the line.
在一些实施例中,FPGA平台可以通过预设接口获取行数据,并对行数据进行格式转换。关于获取行数据的具体细节可以参加图3及其相关描述,在此不再赘述。In some embodiments, the FPGA platform can acquire row data through a preset interface, and perform format conversion on the row data. Details about obtaining row data can be found in FIG. 3 and related descriptions, and will not be repeated here.
在一些实施例中,预设映射表可以基于历史待拼接图像与历史拼接图像之间的像素数据的映射关系得到。基于历史待拼接图像和历史拼接图像,可以得到两者对应的像素点之间的坐标变换关系,从而得到两者对应的像素点之间的映射关系,基于该映射关系可以构建预设映射表。因此,预设映射表可以反映历史待拼接图像中各位置的像素点,与历史拼接图像中各位置的像素点的坐标值映射关系。例如,预设映射表反映历史待拼接图像中第1行行数据的第1个像素点,与历史拼接图像中第1行行数据的第1个像素点存在对应映射关系,则可以将待拼接图像的第1行行数据的第1个像素点写入行缓冲区的第1行的第1个像素点。In some embodiments, the preset mapping table may be obtained based on a mapping relationship of pixel data between historical images to be stitched and historical stitched images. Based on the historical image to be stitched and the historical stitched image, the coordinate transformation relationship between the corresponding pixels of the two can be obtained, so as to obtain the mapping relationship between the corresponding pixel points, and a preset mapping table can be constructed based on the mapping relationship. Therefore, the preset mapping table can reflect the mapping relationship between the pixel points at each position in the historical image to be spliced and the coordinate value of the pixel point at each position in the historical spliced image. For example, the preset mapping table reflects the first pixel of the first row of data in the historical image to be spliced, and there is a corresponding mapping relationship with the first pixel of the first row of data in the historical image to be spliced. Write the first pixel of the first row data of the image to the first pixel of the first row of the line buffer.
在一些实施例中,预设映射表可以预先存储于内存区域中。例如,存储于双倍速率的SDRAM(Double Data Rate SDRAM,DDR)参数块中。通过将预设映射表存储于内存区域中,在对行数据的像素数据进行写入时,可以直接从内存中读取预设映射表即可执行写入操作,减少了读写带宽。In some embodiments, the preset mapping table may be pre-stored in the memory area. For example, it is stored in a double-rate SDRAM (Double Data Rate SDRAM, DDR) parameter block. By storing the preset mapping table in the memory area, when writing the pixel data of the row data, the preset mapping table can be directly read from the memory to execute the write operation, which reduces the read and write bandwidth.
在一些实施例中,第一预设条件可以是待拼接图像数据的所有行数据的像素数据写入完成,由此,可以得到该路待拼接图像的多行行缓冲数据。参考图2,图2是本公开一示例性实施例所示出的一行行数据的像素数据的写入过程的示例性示意图。如图2所示,假设待拼接图像中的第1行行数据T1包含10个像素点,根据预设映射表可以将T1中的第1个像素点映射为行缓冲区的第1行T′ 1的第1个像素点,将T1中的第2个像素点映射为行缓冲区的第2行T′ 2的第2个像素点,将T1中的第3个像素点映射为行缓冲区的第100行T′ 100的第6个像素点,为避免赘述,关于T1中的第4-10个像素点的映射过程省略。假设待拼接图像的行数据包括的像素点最多只能映射到T′ 100,由此可知,通过对每路待拼接图像的每行行数据执行图2示例的行数据的像素数据的写入过程,可以得到多行的行缓冲数据,即100行的行缓冲数据。 In some embodiments, the first preset condition may be that the writing of pixel data of all lines of image data to be spliced is completed, thus, multiple rows of line buffer data of the path of image to be spliced may be obtained. Referring to FIG. 2 , FIG. 2 is an exemplary schematic diagram of a process of writing pixel data of row-by-row data according to an exemplary embodiment of the present disclosure. As shown in Figure 2, assuming that the first line of data T1 in the image to be spliced contains 10 pixels, the first pixel in T1 can be mapped to the first line T' of the line buffer according to the preset mapping table For the first pixel of 1 , map the second pixel in T1 to the second pixel of the second row T of the line buffer, and map the third pixel in T1 to the line buffer The 6th pixel point of the 100th line T′ 100 of the 100th line, in order to avoid redundant description, the mapping process of the 4th-10th pixel point in T1 is omitted. Assuming that the pixel points included in the row data of the image to be spliced can only be mapped to T′ 100 at most, it can be seen that by performing the writing process of the pixel data of the row data in the example in Figure 2 for each row of row data of each image to be spliced , you can get multiple lines of line buffer data, that is, 100 lines of line buffer data.
在一些实施例中,对待拼接图像的去畸变和仿射变换过程,可以反映为像素坐标值在待拼接图像和拼接图像上的重映射。本说明书实施例通过历史待拼接图像和历史拼接图像,预先构建反映像素数据的映射关系的预设映射表,其为点点映射关系,因此,在行数据的像素点的写入过程中,可以通过查询预设映射表中的对应像素点的映射位置进行精准写入。避免通过拟合算法去畸变导致的误差,进而解决了拟合算法实现图像拼接导致的图像扭曲非线性畸变问题,能够在拼接斜边无缝对齐。In some embodiments, the de-distortion and affine transformation process of the image to be stitched may be reflected as remapping of pixel coordinate values on the image to be stitched and the stitched image. In the embodiment of this specification, a preset mapping table reflecting the mapping relationship of pixel data is pre-constructed through the historical image to be stitched and the historical stitching image, which is a point-to-point mapping relationship. Query the mapping position of the corresponding pixel in the preset mapping table for precise writing. It avoids the error caused by de-distortion through the fitting algorithm, and then solves the problem of image distortion and nonlinear distortion caused by the fitting algorithm to achieve image stitching, and can seamlessly align the stitching hypotenuse.
在一些实施例中,可以基于每路摄像设备的实际畸变大小,在每路待拼接图像对应的行缓冲区中预留预设内存空间,以供每路待拼接图像的行数据的像素数据的写入。仍以上述示例为例,假设摄像设备为鱼眼摄像头,该鱼眼摄像头的实际畸变大小需要进行100行行数据的写入,则可以预留100行的预设内存空间。在一些实施例中,可以选择实际畸变小的摄像设备,以减少写入行缓冲区的次数,从而降低拼接延迟。In some embodiments, based on the actual distortion of each camera device, a preset memory space can be reserved in the line buffer corresponding to each image to be spliced for the pixel data of the line data of each image to be spliced. write. Still taking the above example as an example, assuming that the camera device is a fisheye camera, and the actual distortion of the fisheye camera needs to write 100 lines of data, 100 lines of preset memory space can be reserved. In some embodiments, an imaging device with less actual distortion may be selected to reduce the number of times of writing to the line buffer, thereby reducing splicing delay.
在一些实施例中,针对多路待拼接图像中的每路,可以并行执行上述得到多行行缓冲数据的处理,以得到多路待拼接图像中每路的多行行缓冲数据。 通过多路待拼接图像的并行处理,可以降低图像拼接过程中的延迟。In some embodiments, for each path of the multiple paths of images to be spliced, the above processing of obtaining multiple lines of line buffer data may be performed in parallel, so as to obtain multiple lines of line buffer data of each path of the multiple paths of images to be spliced. Through the parallel processing of multiple images to be stitched, the delay in the image stitching process can be reduced.
步骤104,将所述多路待拼接图像中每路的所述多行行缓冲数据写入帧缓冲区,并对每路所述待拼接图像的所述多行行缓冲数据执行填充处理,得到拼接帧缓冲数据。Step 104, write the multiple lines of line buffer data of each of the multiple lines of images to be spliced into the frame buffer, and perform filling processing on the multiple lines of line buffer data of each of the multiple lines of the images to be spliced, to obtain Stitching framebuffer data.
由于待拼接图像存在畸变,因此,将待拼接图像的行数据的像素数据写入行缓冲区时,原像素数据被稀疏化,进而,得到的多行行缓冲数据存在数据缺失,即存在缺失像素值。在一些实施例中,可以对多行行缓冲数据执行填充处理,以实现对缺失数据的填充。在一些实施例中,填充处理可以包括加权重构填充处理,例如,线性插值。填充处理可以参见相关技术中的说明,本公开对此不做赘述。Due to the distortion of the image to be spliced, when the pixel data of the line data of the image to be spliced is written into the line buffer, the original pixel data is thinned out, and then the obtained multi-line line buffer data has missing data, that is, there are missing pixels value. In some embodiments, filling processing may be performed on multiple rows of line buffer data, so as to fill in missing data. In some embodiments, padding may include weighted reconstruction padding, eg, linear interpolation. For the filling process, reference may be made to descriptions in related technologies, which will not be described in detail in this disclosure.
在一些实施例中,拼接帧缓冲数据可以包括写入至帧缓存区的行缓冲数据。在一些实施例中,可以在将多路待拼接图像中每路的多行行缓冲数据写入帧缓冲区的过程中,对每路待拼接图像的多行行缓冲数据执行填充处理,得到拼接帧缓冲数据。通过在写入帧缓冲区的过程中,执行填充处理,相当于帧缓冲写入和填充处理并行执行,从而进一步降低图像拼接的延迟。In some embodiments, stitching the framebuffer data may include writing linebuffer data to the framebuffer. In some embodiments, in the process of writing the multiple lines of line buffer data of each line of multiple lines of images to be spliced into the frame buffer, the filling process can be performed on the multiple lines of line buffer data of each line of images to be spliced to obtain the splicing Framebuffer data. By performing filling processing in the process of writing to the frame buffer, it is equivalent to performing parallel execution of frame buffer writing and filling processing, thereby further reducing the delay of image splicing.
在一些实施例中,FPGA平台可以以行为写入单位,将多路待拼接图像中每路的多行行缓冲数据写入帧缓冲区。例如,以第1路待拼接图像为例,则可以每次写入一行行缓冲数据。通过以行为写入单位,其延迟为行数据的写入延迟,而以帧缓冲数据为写入单位,其延迟为帧数据的写入延迟,行数据的写入延迟明显低于帧数据的写入延迟,由此可知,以行为写入单位可以降低写入延迟,进而可以降低图像拼接的延迟。同时,以行为写入单位,可以降低行数据写入过程中由反复读取产生的带宽占用。在一些实施例中,FPGA平台可以在每行行缓冲数据的写入过程中,对该行行缓冲数据执行填充处理。通过在每行行缓冲数据的写入过程中,并行执行填充处理,可以进一步降低图像拼接的延迟。In some embodiments, the FPGA platform may write multiple lines of line buffer data of each line of the multiple lines of images to be spliced into the frame buffer in a line write unit. For example, taking the first image to be spliced as an example, one line of line buffer data can be written each time. By using the line write unit, the delay is the write delay of the row data, and the frame buffer data is written as the unit, and the delay is the write delay of the frame data. The write delay of the row data is significantly lower than that of the frame data. Input delay, it can be seen that the writing delay can be reduced in line writing units, which in turn can reduce the delay of image splicing. At the same time, the bandwidth occupation caused by repeated reading in the process of writing row data can be reduced by writing in row units. In some embodiments, the FPGA platform may perform filling processing on each row of row buffer data during the writing process of the row buffer data. By performing the padding process in parallel during the writing process of each row of buffer data, the delay of image mosaic can be further reduced.
在一些实施例中,FPGA平台以行为写入单位,基于轮询仲裁模式,将多路待拼接图像中每路的多行行缓冲数据写入帧缓冲区。在一些实施例中,轮询仲裁模式可以用于动态调整多路待拼接图像的多行行缓冲数据中每行写入帧缓冲区的顺序。在一些实施例中,轮询仲裁模式可以用于:基于FPGA平台对多路待拼接图像的每行行缓冲数据的读取时间顺序,将多路待拼接图像 的多行行缓冲数据写入帧缓冲区。例如,假设读取行缓冲数据的时间顺序依次为:第1路待拼接图像的第1行行缓冲数据第3路待拼接图像的第1行行缓冲数据第2路待拼接图像的第1行行缓冲数据第4路待拼接图像的第1行行缓冲数据,则基于轮询仲裁模式可以按顺序将前述每行行缓冲数据依次写入至帧缓冲区。通过采用轮询仲裁模式对多路待拼接图像的多行行缓冲数据写入帧缓冲区,可以实现对多路待拼接图像的多行行缓冲数据的动态写入,避免对同一路待拼接图像一直进行处理,不处理其他路待拼接图像,从而进一步降低图像拼接的延迟。In some embodiments, the FPGA platform writes multiple lines of line-buffered data for each line of the multiple lines of images to be spliced into the frame buffer based on the polling arbitration mode in line write units. In some embodiments, the polling arbitration mode can be used to dynamically adjust the order in which each line of the multiple lines of line buffer data of multiple images to be spliced is written into the frame buffer. In some embodiments, the polling arbitration mode can be used to write multiple lines of line buffer data of multiple lines of images to be spliced into the frame based on the read time sequence of each line of line buffer data of multiple lines of images to be spliced by the FPGA platform buffer. For example, assume that the chronological order of reading the line buffer data is: the first line buffer data of the first image to be stitched, the first line buffer data of the third image to be stitched, the first line of the second image to be stitched For the line buffer data of the first line of the fourth image to be spliced, based on the polling arbitration mode, the aforementioned line buffer data of each line can be sequentially written to the frame buffer. By using the polling arbitration mode to write the multi-line buffer data of multiple images to be spliced into the frame buffer, the dynamic writing of the multi-line buffer data of multiple images to be spliced can be realized, avoiding the same image to be spliced It is always processed, and other images to be stitched are not processed, thereby further reducing the delay of image stitching.
在一些实施例中,本公开实施例提供的多路图像拼接方法可以应用于AXI(Advanced eXtensible Interface)总线系统。在一些实施例中,FPGA平台可以通过AXI4总线将多路待拼接图像中每路的多行行缓冲数据写入帧缓冲区。In some embodiments, the multi-channel image stitching method provided by the embodiments of the present disclosure may be applied to an AXI (Advanced eXtensible Interface) bus system. In some embodiments, the FPGA platform can write multiple lines of line buffer data of each line of the multiple lines of images to be spliced into the frame buffer through the AXI4 bus.
步骤106,对所述拼接帧缓冲数据执行预处理,得到拼接图像。Step 106, perform preprocessing on the spliced frame buffer data to obtain a spliced image.
在一些实施例中,预处理可以包括编码处理和解码处理。在一些实施例中,FPGA平台可以在每次写入预设行的行缓冲数据后,对预设行的行缓冲数据进行编码处理,直至满足第二预设条件,得到编码图像;对编码图像进行解码,得到拼接图像。在一些实施例中,预设行可以根据实际情况具体设置。第二预设条件可以包括多路待拼接图像的多行行缓冲数据写入完毕。通过每写入预设行行缓冲数据即执行编码处理,使得编码延迟是预设行行数据的延迟,而非一整帧数据的延迟,可以大大降低编码延迟,进而降低图像拼接的延迟。In some embodiments, preprocessing may include encoding processing and decoding processing. In some embodiments, the FPGA platform can perform encoding processing on the line buffer data of the preset line after writing the line buffer data of the preset line each time, until the second preset condition is met, and an encoded image is obtained; for the encoded image Decoding is performed to obtain a spliced image. In some embodiments, the preset row can be specifically set according to actual conditions. The second preset condition may include that the multi-line buffer data of the multiple images to be spliced is completely written. By performing encoding processing every time the preset line buffer data is written, the encoding delay is the delay of the preset line data instead of the delay of a whole frame of data, which can greatly reduce the encoding delay, thereby reducing the delay of image splicing.
在一些实施例中,可以利用现场可编程门阵列平台内置的编码器,在每次写入所述预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行所述编码处理,直至满足所述第二预设条件,得到所述编码图像。在一些实施例中,编码器可以是硬核H265编码器,在此情况下,预设行可以是16行。H265编码器可以基于自身性能,在每16行行缓冲数据写入帧缓冲区后,对写入的16行行缓冲数据进行编码,进而降低编码延迟。且通过现场可编程门阵列平台内设的编码器即可实现降低编码延迟,减少硬件器件,降低现场可编程门阵列平台的设计复杂度。In some embodiments, the built-in encoder of the field programmable gate array platform can be used to perform the above-mentioned operation on the row buffer data of the preset row after writing the row buffer data of the preset row each time. Encoding processing, until the second preset condition is met, to obtain the encoded image. In some embodiments, the encoder may be a hardcore H265 encoder, in which case the preset lines may be 16 lines. Based on its own performance, the H265 encoder can encode the written 16 lines of line buffer data after every 16 lines of line buffer data are written into the frame buffer, thereby reducing the encoding delay. In addition, the encoding delay can be reduced through the built-in encoder of the field programmable gate array platform, hardware devices can be reduced, and the design complexity of the field programmable gate array platform can be reduced.
在本说明书实施例中,本公开的多路图像拼接方法通过FPGA平台实现,仅使用FPGA内部的储存资源,算法简单,占用储存和逻辑资源小。且FPGA 为硬件平台,可以适用于高帧率(例如,1080P60)、高路数(例如,6路或以上)、低畸变、高视距摄像设备数据接入带宽需求。In the embodiment of this specification, the multi-channel image mosaic method of the present disclosure is implemented through an FPGA platform, only uses storage resources inside the FPGA, has a simple algorithm, and occupies less storage and logic resources. And FPGA is a hardware platform, which can be applied to high frame rate (for example, 1080P60), high number of channels (for example, 6 channels or above), low distortion, and high line-of-sight camera equipment data access bandwidth requirements.
图3是本公开一示例性实施例所示出的获取行数据的流程图。如图3所示,该流程可以包括:Fig. 3 is a flow chart of obtaining row data shown in an exemplary embodiment of the present disclosure. As shown in Figure 3, the process can include:
步骤302,对基于预设接口接收的目标摄像设备输出的预设接口信号进行解码,得到解码信息;其中,所述解码信息至少包括行场同步信号和所述待拼接图像的像素数据;所述目标摄像设备为所述该路待拼接图像的摄像设备。 Step 302, decoding the preset interface signal output by the target camera device received based on the preset interface, to obtain decoded information; wherein, the decoded information includes at least line and field synchronization signals and pixel data of the image to be spliced; the The target imaging device is the imaging device of the path of images to be spliced.
在一些实施例中,预设接口可以是FPGA平台接收摄像设备输出的信号的接口。在一些实施例中,预设接口可以根据实际情况具体设置,例如,MIPI接口。对应的,预设接口信号为MIPI信号,通过对MIPI信号进行解码,可以得到包括行场同步信号和待拼接图像的像素数据的解码信息。In some embodiments, the preset interface may be an interface for the FPGA platform to receive a signal output by the camera device. In some embodiments, the preset interface may be specifically set according to actual conditions, for example, a MIPI interface. Correspondingly, the preset interface signal is a MIPI signal, and by decoding the MIPI signal, decoding information including a line and field synchronization signal and pixel data of an image to be spliced can be obtained.
步骤304,在基于所述行场同步信号,从所述待拼接图像的所述像素数据中获取到初始格式的行数据后,对该行数据进行格式转换,得到目标格式的行数据。Step 304: After obtaining the line data in the original format from the pixel data of the image to be spliced based on the line and field synchronization signals, perform format conversion on the line data to obtain line data in the target format.
行场同步信号可以反映一行(场)结束的信息。因此,通过行场同步信息,可以从待拼接图像的像素数据中得到每行的行数据。一般地,通过MIPI接口传输的像素数据的初始格式为YUV422格式,即,行数据的初始格式为YUV422格式。而对行数据中的像素数据进行处理所需的格式为RGB格式或NV12格式,因此,在一些实施例中,可以对行数据进行格式转换,得到RGB格式或NV12格式的行数据,该RGB格式或NV12格式即目标格式。在一些实施例中,获取初始格式的行数据和格式转码可以并行执行,通过该并行执行可以进一步降低图像拼接的延迟。Line and field synchronization signals can reflect the information of the end of a line (field). Therefore, the line data of each line can be obtained from the pixel data of the image to be spliced through the line and field synchronization information. Generally, the initial format of the pixel data transmitted through the MIPI interface is the YUV422 format, that is, the initial format of the line data is the YUV422 format. The format required for processing the pixel data in the row data is RGB format or NV12 format, therefore, in some embodiments, the row data can be format-converted to obtain row data in RGB format or NV12 format, the RGB format Or NV12 format which is the target format. In some embodiments, obtaining row data in the original format and format transcoding can be performed in parallel, and the delay of image splicing can be further reduced through the parallel execution.
基于同一发明构思,本公开还提供了一种多路图像拼接系统,应用于现场可编程门阵列平台。图4是本公开所示出的多路图像拼接系统的框图,如图4所示,该所系统400包括:Based on the same inventive concept, the present disclosure also provides a multi-channel image mosaic system, which is applied to a field programmable gate array platform. FIG. 4 is a block diagram of a multi-channel image stitching system shown in the present disclosure. As shown in FIG. 4, the institute system 400 includes:
多行缓冲模块402,用于针对多路待拼接图像中的每路,重复执行获取行数据,并基于预设映射表,将所述行数据包括的像素数据写入该路待拼接图像对应的行缓冲区,得到行缓冲数据的过程,直至满足第一预设条件,以得到所述该路待拼接图像的所述多行行缓冲数据;其中,所述预设映射表基于历史待拼接图像与历史拼接图像之间的所述像素数据的映射关系得到;The multi-line buffering module 402 is configured to repeatedly execute the acquisition of line data for each of the multiple lines of images to be spliced, and based on the preset mapping table, write the pixel data included in the line data into the image corresponding to the line of images to be spliced. Line buffer, the process of obtaining line buffer data until the first preset condition is met, so as to obtain the multiple lines of line buffer data of the image to be spliced; wherein, the preset mapping table is based on historical images to be spliced The mapping relationship between the pixel data and the historical mosaic image is obtained;
帧缓冲写模块404,用于将所述多路待拼接图像中每路的所述多行行缓冲数据写入帧缓冲区,并对每路所述待拼接图像的所述多行行缓冲数据执行填充处理,得到拼接帧缓冲数据;A frame buffer writing module 404, configured to write the multiple lines of line buffer data of each of the multiple lines of images to be spliced into the frame buffer, and write the multiple lines of line buffer data of each of the multiple lines of the image to be spliced Perform filling processing to obtain spliced frame buffer data;
拼接处理模块406,用于对所述拼接帧缓冲数据执行预处理,得到拼接图像。The splicing processing module 406 is configured to perform preprocessing on the spliced frame buffer data to obtain a spliced image.
可选地,所述帧缓冲写模块404包括:Optionally, the frame buffer writing module 404 includes:
并行填充子模块,用于以行为写入单位,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区,并在每行所述行缓冲数据的写入过程中,对该行行缓冲数据执行所述填充处理,得到所述拼接帧缓冲数据。The parallel filling sub-module is used to write the multi-line line buffer data of each line in the multiple lines of images to be spliced into the frame buffer in units of line writing, and write the line buffer data of each line into the frame buffer. During the writing process, the filling process is performed on the line buffer data to obtain the spliced frame buffer data.
可选地,所述并行填充子模块包括:Optionally, the parallel filling submodule includes:
仲裁写入子单元,用于以所述行为所述写入单位,基于轮询仲裁模式,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区。The arbitration writing subunit is used to write the multiple rows of line buffer data of each channel in the multiple channels of images to be spliced into the frame buffer based on the polling arbitration mode in the writing unit of the behavior .
可选地,所述多行缓冲模块402包括:Optionally, the multiline buffering module 402 includes:
解码子模块,用于对基于预设接口接收的目标摄像设备输出的预设接口信号进行解码,得到解码信息;其中,所述解码信息至少包括行场同步信号和所述待拼接图像的像素数据;所述目标摄像设备为所述该路待拼接图像的摄像设备;The decoding sub-module is used to decode the preset interface signal output by the target camera device received based on the preset interface to obtain decoding information; wherein, the decoding information includes at least line and field synchronization signals and pixel data of the image to be spliced ; The target imaging device is the imaging device of the image to be stitched;
格式转换子模块,用于在基于所述行场同步信号,从所述待拼接图像的所述像素数据中获取到初始格式的行数据后,对该行数据进行格式转换,得到目标格式的行数据。A format conversion sub-module, configured to convert the format of the row data to obtain the row data of the target format after obtaining the row data in the initial format from the pixel data of the image to be spliced based on the row and field synchronization signals data.
可选地,所述多行缓冲模块402包括:Optionally, the multiline buffering module 402 includes:
并行行缓冲子模块,用于针对所述多路待拼接图像中的每路,并行执行所述处理,以得到所述多路待拼接图像中每路的所述多行行缓冲数据。The parallel row buffering submodule is configured to execute the processing in parallel for each of the multiple paths of images to be spliced, so as to obtain the multiple rows of row buffer data for each path of the multiple paths of images to be spliced.
可选地,所述拼接处理模块406包括:Optionally, the splicing processing module 406 includes:
编码子模块,用于在每次写入预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行编码处理,直至满足第二预设条件,得到编码图像;The encoding submodule is configured to perform encoding processing on the line buffer data of the preset line after writing the line buffer data of the preset line each time, until the second preset condition is met, and obtain an encoded image;
解码子模块,用于对所述编码图像进行解码,得到拼接图像。The decoding submodule is used to decode the coded image to obtain a spliced image.
可选地,所述编码子模块包括:Optionally, the encoding submodule includes:
编码子单元,用于利用所述现场可编程门阵列系统内置的编码器,在每次写入所述预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行所 述编码处理,直至满足所述第二预设条件,得到所述编码图像。The encoding subunit is used to use the built-in encoder of the field programmable gate array system to perform the following operation on the line buffer data of the preset line after writing the line buffer data of the preset line each time. The encoding process is performed until the second preset condition is satisfied, and the encoded image is obtained.
关于上述实施例中的系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。Regarding the system in the above embodiment, the specific manner in which each module executes operations has been described in detail in the embodiment of the method, and will not be described in detail here.
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的多路图像拼接方法的步骤。In another exemplary embodiment, a computer-readable storage medium including program instructions is also provided, and when the program instructions are executed by a processor, the steps of the above-mentioned multi-channel image stitching method are implemented.
在另一示例性实施例中,还提供了一种无人车,包括本公开所提供的多路图像拼接系统。无人车可以基于多路图像拼接系统,将无人车采集的多路图像进行拼接,并在无人车的显示屏中显示,可以辅助无人车的安全驾驶,例如,辅助无人车的泊车,提高了无人车的安全性能。In another exemplary embodiment, an unmanned vehicle is also provided, including the multi-channel image stitching system provided in the present disclosure. Based on the multi-channel image stitching system, the unmanned vehicle can stitch the multi-channel images collected by the unmanned vehicle and display it on the display screen of the unmanned vehicle, which can assist the safe driving of the unmanned vehicle. Parking improves the safety performance of unmanned vehicles.
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。The preferred embodiments of the present disclosure have been described in detail above in conjunction with the accompanying drawings. However, the present disclosure is not limited to the specific details of the above embodiments. Within the scope of the technical concept of the present disclosure, various simple modifications can be made to the technical solutions of the present disclosure. These simple modifications all belong to the protection scope of the present disclosure.
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。In addition, it should be noted that the various specific technical features described in the above specific implementation manners may be combined in any suitable manner if there is no contradiction. In order to avoid unnecessary repetition, various possible combinations are not further described in this disclosure.
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。The device embodiments described above are only illustrative, and the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in One place, or it can be distributed to multiple network elements. Part or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. It can be understood and implemented by those skilled in the art without any creative efforts.
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的计算处理设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。The various component embodiments of the present disclosure may be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. Those skilled in the art should understand that a microprocessor or a digital signal processor (DSP) may be used in practice to implement some or all functions of some or all components in the computing processing device according to the embodiments of the present disclosure. The present disclosure can also be implemented as an apparatus or apparatus program (eg, computer program and computer program product) for performing a part or all of the methods described herein. Such a program realizing the present disclosure may be stored on a computer-readable medium, or may have the form of one or more signals. Such a signal may be downloaded from an Internet site, or provided on a carrier signal, or provided in any other form.
例如,图5示出了可以实现根据本公开的方法的计算处理设备。该计算处理设备传统上包括处理器510和以存储器520形式的计算机程序产品或者计算机可读介质。存储器520可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器520具有用于执行上述方法中的任何方法步骤的程序代码531的存储空间530。例如,用于程序代码的存储空间530可以包括分别用于实现上面的方法中的各种步骤的各个程序代码531。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为如参考图6所述的便携式或者固定存储单元。该存储单元可以具有与图5的计算处理设备中的存储器520类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码531’,即可以由例如诸如510之类的处理器读取的代码,这些代码当由计算处理设备运行时,导致该计算处理设备执行上面所描述的方法中的各个步骤。For example, FIG. 5 illustrates a computing processing device that may implement methods according to the present disclosure. The computing processing device conventionally includes a processor 510 and a computer program product or computer readable medium in the form of memory 520 . Memory 520 may be an electronic memory such as flash memory, EEPROM (Electrically Erasable Programmable Read Only Memory), EPROM, hard disk, or ROM. The memory 520 has a storage space 530 for program code 531 for performing any method steps in the methods described above. For example, the storage space 530 for program codes may include respective program codes 531 for respectively implementing various steps in the above methods. These program codes can be read from or written into one or more computer program products. These computer program products comprise program code carriers such as hard disks, compact disks (CDs), memory cards or floppy disks. Such a computer program product is typically a portable or fixed storage unit as described with reference to FIG. 6 . The storage unit may have storage segments, storage spaces, etc. arranged similarly to the memory 520 in the computing processing device of FIG. 5 . The program code can eg be compressed in a suitable form. Typically, the storage unit includes computer readable code 531', i.e. code readable by, for example, a processor such as 510, which code, when executed by a computing processing device, causes the computing processing device to perform the above-described method. each step.
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本公开的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。Reference herein to "one embodiment," "an embodiment," or "one or more embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Additionally, please note that examples of the word "in one embodiment" herein do not necessarily all refer to the same embodiment.
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the present disclosure may be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure the understanding of this description.
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" does not exclude the presence of elements or steps not listed in a claim. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The disclosure can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a unit claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The use of the words first, second, and third, etc. does not indicate any order. These words can be interpreted as names.
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其 不违背本公开的思想,其同样应当视为本公开所公开的内容。In addition, any combination of various implementations of the present disclosure can also be made, as long as they do not violate the idea of the present disclosure, they should also be regarded as the content disclosed in the present disclosure.

Claims (12)

  1. 一种多路图像拼接方法,其特征在于,应用于现场可编程门阵列平台,所述方法包括:A multi-channel image stitching method is characterized in that it is applied to a field programmable gate array platform, and the method includes:
    针对多路待拼接图像中的每路,执行以下处理,以得到所述多路待拼接图像中每路的多行行缓冲数据:For each path in the multiple paths of images to be spliced, perform the following processing to obtain multiple rows of line buffer data for each path in the multiple paths of images to be spliced:
    重复执行获取行数据,并基于预设映射表,将所述行数据包括的像素数据写入该路待拼接图像对应的行缓冲区,得到行缓冲数据的过程,直至满足第一预设条件,得到所述该路待拼接图像的所述多行行缓冲数据;Repeatedly performing the process of obtaining row data, and writing the pixel data included in the row data into the row buffer corresponding to the image to be spliced based on the preset mapping table, to obtain the row buffer data, until the first preset condition is met, Obtaining the multiple lines of line buffer data of the path of images to be spliced;
    其中,所述预设映射表基于历史待拼接图像与历史拼接图像之间的所述像素数据的映射关系得到;Wherein, the preset mapping table is obtained based on the mapping relationship of the pixel data between the historical image to be stitched and the historical stitched image;
    将所述多路待拼接图像中每路的所述多行行缓冲数据写入帧缓冲区,并对每路所述待拼接图像的所述多行行缓冲数据执行填充处理,得到拼接帧缓冲数据;Writing the multiple lines of line buffer data of each of the multiple lines of images to be spliced into a frame buffer, and performing filling processing on the multiple lines of line buffer data of each of the multiple lines of images to be spliced to obtain a spliced frame buffer data;
    对所述拼接帧缓冲数据执行预处理,得到拼接图像。Perform preprocessing on the spliced frame buffer data to obtain a spliced image.
  2. 如权利要求1所述的方法,其特征在于,所述将所述多路待拼接图像中每路的所述多行行缓冲数据写入帧缓冲区,并对每路所述待拼接图像的所述多行行缓冲数据执行填充处理,得到拼接帧缓冲数据,包括:The method according to claim 1, wherein the multi-line buffer data of each path in the multiple paths of images to be spliced is written into a frame buffer, and the data of each path of the image to be spliced is The multiple rows of line buffer data are filled to obtain spliced frame buffer data, including:
    以行为写入单位,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区,并在每行所述行缓冲数据的写入过程中,对该行行缓冲数据执行所述填充处理,得到所述拼接帧缓冲数据。Write the multiple lines of line buffer data of each line of the multiple lines of images to be spliced into the frame buffer in a line write unit, and write the line buffer data to the The filling process is performed on the line buffer data to obtain the spliced frame buffer data.
  3. 如权利要求2所述的方法,其特征在于,所述以行为写入单位,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区,包括:The method according to claim 2, wherein writing the multiple lines of line buffer data of each line of the multiple lines of images to be spliced into the frame buffer in units of line writing comprises:
    以所述行为所述写入单位,基于轮询仲裁模式,将所述多路待拼接图像中每路的所述多行行缓冲数据写入所述帧缓冲区。Write the multiple rows of line buffer data of each channel in the multiple channels of images to be spliced into the frame buffer based on the writing unit of the row and based on a polling arbitration mode.
  4. 如权利要求1所述的方法,其特征在于,所述获取行数据,包括:The method according to claim 1, wherein said acquiring row data comprises:
    对基于预设接口接收的目标摄像设备输出的预设接口信号进行解码,得到解码信息;其中,所述解码信息至少包括行场同步信号和所述待拼接图像的像素数据;所述目标摄像设备为所述该路待拼接图像的摄像设备;Decoding the preset interface signal output by the target camera device received based on the preset interface to obtain decoded information; wherein, the decoded information includes at least line and field synchronization signals and pixel data of the image to be spliced; the target camera device It is the camera equipment of the image to be spliced;
    在基于所述行场同步信号,从所述待拼接图像的所述像素数据中获取到初始格式的行数据后,对该行数据进行格式转换,得到目标格式的行数据。After the row data in the initial format is obtained from the pixel data of the image to be spliced based on the row and field synchronous signals, format conversion is performed on the row data to obtain row data in a target format.
  5. 如权利要求1所述的方法,其特征在于,所述针对多路待拼接图像中的每路,执行以下处理,以得到所述多路待拼接图像中每路的多行行缓冲数据,包括:The method according to claim 1, wherein, for each of the multiple paths of images to be spliced, the following processing is performed to obtain multiple lines of line buffer data of each path of the multiple paths of images to be spliced, including :
    针对所述多路待拼接图像中的每路,并行执行所述处理,以得到所述多路待拼接图像中每路的所述多行行缓冲数据。For each path of the multiple paths of images to be spliced, the processing is executed in parallel to obtain the multiple lines of line buffer data of each path of the multiple paths of images to be spliced.
  6. 如权利要求2所述的方法,其特征在于,所述对所述拼接帧缓冲数据执行预处理,得到拼接图像,包括:The method according to claim 2, wherein the performing preprocessing on the spliced frame buffer data to obtain a spliced image comprises:
    在每次写入预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行编码处理,直至满足第二预设条件,得到编码图像;After writing the line buffer data of a preset line each time, performing encoding processing on the line buffer data of the preset line until a second preset condition is met to obtain an encoded image;
    对所述编码图像进行解码,得到拼接图像。The coded image is decoded to obtain a spliced image.
  7. 如权利要求6所述的方法,其特征在于,所述在每次写入预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行编码处理,直至满足第二预设条件,得到编码图像;The method according to claim 6, characterized in that, after writing the line buffer data of the preset line each time, the line buffer data of the preset line is encoded until the second predetermined line is satisfied. Set the condition to get the coded image;
    利用所述现场可编程门阵列系统内置的编码器,在每次写入所述预设行的所述行缓冲数据后,对所述预设行的行缓冲数据进行所述编码处理,直至满足所述第二预设条件,得到所述编码图像。Using the built-in encoder of the field programmable gate array system, after writing the row buffer data of the preset row each time, the encoding process is performed on the row buffer data of the preset row until the row buffer data of the preset row is satisfied. The second preset condition is to obtain the coded image.
  8. 一种多路图像拼接系统,其特征在于,应用于现场可编程门阵列平台,所述系统包括:A multi-channel image stitching system is characterized in that it is applied to a field programmable gate array platform, and the system includes:
    多行缓冲模块,用于针对多路待拼接图像中的每路,重复执行获取行数据,并基于预设映射表,将所述行数据包括的像素数据写入该路待拼接图像对应的行缓冲区,得到行缓冲数据的过程,直至满足第一预设条件,以得到所述该路待拼接图像的所述多行行缓冲数据;其中,所述预设映射表基于历史待拼接图像与历史拼接图像之间的所述像素数据的映射关系得到;The multi-line buffer module is used to repeatedly execute the acquisition of line data for each of the multiple lines of images to be spliced, and based on the preset mapping table, write the pixel data included in the line data into the line corresponding to the line of images to be spliced Buffering, the process of obtaining line buffer data until the first preset condition is met, so as to obtain the multiple lines of line buffer data of the image to be spliced; wherein, the preset mapping table is based on historical images to be spliced and The mapping relationship of the pixel data between historical mosaic images is obtained;
    帧缓冲写模块,用于将所述多路待拼接图像中每路的所述多行行缓冲数据写入帧缓冲区,并对每路所述待拼接图像的所述多行行缓冲数据执行填充处理,得到拼接帧缓冲数据;A frame buffer writing module, configured to write the multiple lines of line buffer data of each of the multiple channels of images to be spliced into a frame buffer, and execute Filling processing to obtain spliced frame buffer data;
    处理模块,用于对所述拼接帧缓冲数据执行预处理,得到拼接图像。A processing module, configured to perform preprocessing on the spliced frame buffer data to obtain a spliced image.
  9. 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。A computer-readable storage medium, on which a computer program is stored, characterized in that, when the program is executed by a processor, the steps of the method in any one of claims 1-7 are implemented.
  10. 一种无人车,其特征在于,包括如权利要求8所述的多路图像拼接 系统。An unmanned vehicle is characterized in that comprising the multi-channel image stitching system as claimed in claim 8.
  11. 一种计算处理设备,其特征在于,包括:A computing processing device, characterized in that it includes:
    存储器,其中存储有计算机可读代码;以及a memory having computer readable code stored therein; and
    一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行如权利要求1-7中任一项所述的多路图像拼接方法。One or more processors, when the computer readable code is executed by the one or more processors, the computing processing device executes the multi-channel image stitching method according to any one of claims 1-7 .
  12. 一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算处理设备上运行时,导致所述计算处理设备执行根据权利要求1-7中任一项所述的多路图像拼接方法。A computer program, comprising computer-readable codes, when the computer-readable codes are run on a computing processing device, causing the computing processing device to perform the multi-channel image mosaic according to any one of claims 1-7 method.
PCT/CN2022/071845 2021-08-25 2022-01-13 Method and system for splicing multiple channels of images, and readable storage medium and unmanned vehicle WO2023024421A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110984382.6 2021-08-25
CN202110984382.6A CN113781302B (en) 2021-08-25 2021-08-25 Multi-path image splicing method and system, readable storage medium and unmanned vehicle

Publications (1)

Publication Number Publication Date
WO2023024421A1 true WO2023024421A1 (en) 2023-03-02

Family

ID=78839408

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/071845 WO2023024421A1 (en) 2021-08-25 2022-01-13 Method and system for splicing multiple channels of images, and readable storage medium and unmanned vehicle

Country Status (2)

Country Link
CN (1) CN113781302B (en)
WO (1) WO2023024421A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117240934A (en) * 2023-11-14 2023-12-15 四川赛狄信息技术股份公司 Heterogeneous signal conversion system based on frame processing

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113781302B (en) * 2021-08-25 2022-05-17 北京三快在线科技有限公司 Multi-path image splicing method and system, readable storage medium and unmanned vehicle

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108475416A (en) * 2017-06-30 2018-08-31 深圳市大疆创新科技有限公司 The method and apparatus for handling image
CN110910312A (en) * 2019-11-21 2020-03-24 北京百度网讯科技有限公司 Image processing method and device, automatic driving vehicle and electronic equipment
CN113286098A (en) * 2021-05-27 2021-08-20 深圳爱特天翔科技有限公司 Image processing method and image splicing equipment
CN113781302A (en) * 2021-08-25 2021-12-10 北京三快在线科技有限公司 Multi-path image splicing method and system, readable storage medium and unmanned vehicle

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103165104A (en) * 2011-12-12 2013-06-19 宁波Gqy视讯股份有限公司 Video signal synchronously displaying method of spliced screen
CN103686314B (en) * 2012-09-04 2017-05-24 深圳中兴力维技术有限公司 Demultiplex device and method adopting HD (high definition) video channel to transmit SD (standard definition) videos
CN104601935A (en) * 2013-10-31 2015-05-06 深圳市朗驰欣创科技有限公司 Frame splicing method and device
TWI565303B (en) * 2015-08-24 2017-01-01 晨星半導體股份有限公司 Image processing system and image processing method
CN109168068B (en) * 2018-08-23 2020-06-23 Oppo广东移动通信有限公司 Video processing method and device, electronic equipment and computer readable medium
CN110874817B (en) * 2018-08-29 2022-02-01 上海商汤智能科技有限公司 Image stitching method and device, vehicle-mounted image processing device, equipment and medium
CN112422888B (en) * 2019-08-23 2022-07-19 浙江宇视科技有限公司 Video splicing method and device, electronic equipment and computer readable storage medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108475416A (en) * 2017-06-30 2018-08-31 深圳市大疆创新科技有限公司 The method and apparatus for handling image
CN110910312A (en) * 2019-11-21 2020-03-24 北京百度网讯科技有限公司 Image processing method and device, automatic driving vehicle and electronic equipment
CN113286098A (en) * 2021-05-27 2021-08-20 深圳爱特天翔科技有限公司 Image processing method and image splicing equipment
CN113781302A (en) * 2021-08-25 2021-12-10 北京三快在线科技有限公司 Multi-path image splicing method and system, readable storage medium and unmanned vehicle

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117240934A (en) * 2023-11-14 2023-12-15 四川赛狄信息技术股份公司 Heterogeneous signal conversion system based on frame processing
CN117240934B (en) * 2023-11-14 2024-01-23 四川赛狄信息技术股份公司 Heterogeneous signal conversion system based on frame processing

Also Published As

Publication number Publication date
CN113781302B (en) 2022-05-17
CN113781302A (en) 2021-12-10

Similar Documents

Publication Publication Date Title
US11039092B2 (en) Sparse scanout for image sensors
WO2023024421A1 (en) Method and system for splicing multiple channels of images, and readable storage medium and unmanned vehicle
US10554882B2 (en) Panoramic camera and photographing method thereof
US8125523B2 (en) Device and method for ultrasonic video display
US8570334B2 (en) Image processing device capable of efficiently correcting image data and imaging apparatus capable of performing the same
CN111064906A (en) Domestic processor and domestic FPGA multi-path 4K high-definition video comprehensive display method
CN103248797A (en) Video resolution enhancing method and module based on FPGA (field programmable gate array)
CN105072353B (en) A kind of image decoding based on more GPU spells prosecutor method
US10764581B2 (en) Multi-resolution regionalized data transmission
US20070236511A1 (en) Techniques to facilitate use of small line buffers for processing of small or large images
US11615509B2 (en) Picture processing method and device
US8102399B2 (en) Method and device for processing image data stored in a frame buffer
EP3174294A1 (en) Reference buffer compression
JP2015053644A (en) Imaging device
CN115209145A (en) Video compression method, system, device and readable storage medium
US8639029B2 (en) Image processor and image processing method
US11302035B2 (en) Processing images using hybrid infinite impulse response (TTR) and finite impulse response (FIR) convolution block
CN211909012U (en) Mosaic image processing apparatus
CN113298712A (en) Image processing method, electronic device and readable medium thereof
CN104539851A (en) High speed imaging system and method based on pixel optimization coding exposure
US20170272490A1 (en) System and Method to Process the Slices of the Video Data to Achieve Low Latency Video Streaming and Display
JP2871438B2 (en) Graphics display processor
US20060170708A1 (en) Circuits for processing encoded image data using reduced external memory access and methods of operating the same
US20100254618A1 (en) Method for Accessing Image Data and Related Apparatus
CN107241601B (en) Image data transmission method, device and terminal

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22859781

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE