Image Processing for Embedded Devices <1>

前言

         自20世纪末10年起,随着数字图像设备的巨大变革,嵌入式设备中的图像处理越来越成为令人感兴趣的领域,并且将在本世纪发展成新的尖端领域。不论其关联,据本人所知,目前还没有一本综合性的围绕图像处理设计的实际应用方面的刊物。

         在经验丰富的学术界的研究员和工业界的研究员及工程师的共同努力下,本书涵盖基本的嵌入式端图像处理内容,有曝光矫正,自动聚焦,颜色重现,降噪,去马赛克,编码,去红眼,图像分类,相关的质量度量和图像相关的最新趋势。

         所有有关现有图像系统的基础内容每天都在不停地延展的背景下,编者在表达撰稿者的思想做出了杰出的工作,这些撰稿者工作中面领着思考图像处理的解决方案并且在嵌入式图像设备中实现该方案的挑战。

         我相信,本刊物将不仅仅有助于图像学和工程学的学生,也将是图像行业的学术研究员和工程师的参考书。

         本刊物也是独特的,它跟随电子书潮流,不以传统纸质书本形式出版。通过现有市场上的电子阅读器将更易获取,更轻便,并且不进行印刷会潜在利于环境。电子刊物也具有其特性,通过电子翻译器更便于多种语种阅读和用于文语转换软件。

         很荣幸可以为这权威的多作者的国际化刊物撰写前言,出版物论题切合图像行业。最后,我对所有编者和撰稿者表示敬意,因为他们的努力创造了如此成功的刊物。

基本原则和软硬件区分

摘要:本章节的目的在于说明涉及单传感器图像设备相关的技术论题的基本原则。简单认为典型图像处理流程中每一个组成部分都需要重视在所有图像设备中的表现,从低端到高端,是几个组成部分组合在一起构成的复杂系统的处理结果。最终图像/视频的质量取决于明确的几个功能的选择,总的来说,包括所有的软硬件技术。如序言中简短的声明,本书目标涵盖应用于消费级图形设备的数字图像处理的算法和方法。说得更确切点,我们将介绍具体的CFA(颜色滤波排列)域图像处理的基本原则,包括去马赛克,增强,降噪,点对点矩阵化压缩,色彩平衡和曝光矫正技术,作用于sensor输出的数据。总结一下,本章包含pipeline中基本模块的相关议题和对软硬件区分设计方面的简单描述。

 

1.1      最简单的图像处理流

 

图1.1 典型图像处理pipeline,数据(典型Bayer格式)从sensor输出被初次解析获取用于配参的统计数据(前采集模块),然后适当处理使其可获取,最后获得场景对应的压缩的RGB图像(后采集模块和相机应用模块)

 

一个典型的图像pipeline(如图1.1)由两个功能模块(前采集和后采集)组成,模块中对sensor输出CFA格式数据进行适当的处理。前采集模块是指对sensor输出的实时数据进行解析并收集用于矫正配参的统计数据的阶段。某些情况下还会提供一些应用功能。

         最初的数据源自sensor,以矩形形式呈现。每一个像素具有一种颜色的数值,根据所用的CFA,一般采用经典的Bayer格式。我们暂时先忽略光学和sensor性能相关的细节,这些会在接下来的章节详细介绍。通过点对点的算法和方法的应用从CFA数据最终得到场景对应的压缩的RGB图像。一些高端设备可以保存不经任何处理包括压缩的输入数据,以raw格式这种中间格式提供,raw数据中各个像素值与sensor中对应感光像元采集所得一一对应。

在余下情况下,一个图形处理pipeline用于重构丢失的数据,尽可能最大化相关图像质量。接下来的部分我们用几个例子简单总结下典型的必要的处理步骤,介绍下相关算法的初步概述,更多详细内容会在书本后面章节展示。

         如图1.1描述,会有一系列功能应用在特定的相机应用模块:这些功能不是必须的,常包括全景,缩放,去红眼等。某些还会有输入场景在不同曝光下/不同聚焦设置下的多帧采集功能。举个通过黑白sensor采集所得的Bayer图像的例子,在pipeline末尾得到对应的RGB图像,如图1.2,1.3所示。

 

图1.2 例子:黑白sensor采集得到Bayer图像(a),在pipeline末尾得到对应的RGB图像(b)

 

 

图1.3 图1.2的局部放大细节

转载于:https://www.cnblogs.com/yhszjm/p/11179553.html

Preface xi Acknowledgements xvii 1 Image Processing 1 1.1 Basic Definitions 2 1.2 Image Formation 3 1.3 Image Processing Operations 7 1.4 Example Application 9 1.5 Real-Time Image Processing 11 1.6 Embedded Image Processing 12 1.7 Serial Processing 12 1.8 Parallelism 14 1.9 Hardware Image Processing Systems 18 2 Field Programmable Gate Arrays 21 2.1 Programmable Logic 21 2.1.1 FPGAs vs. ASICs 24 2.2 FPGAs and Image Processing 25 2.3 Inside an FPGA 26 2.3.1 Logic 27 2.3.2 Interconnect 28 2.3.3 Input and Output 29 2.3.4 Clocking 30 2.3.5 Configuration 31 2.3.6 Power Consumption 32 2.4 FPGA Families and Features 33 2.4.1 Xilinx 33 2.4.2 Altera 38 2.4.3 Lattice Semiconductor 44 2.4.4 Achronix 46 2.4.5 SiliconBlue 47 2.4.6 Tabula 47 2.4.7 Actel 48 2.4.8 Atmel 49 2.4.9 QuickLogic 50 2.4.10 MathStar 50 2.4.11 Cypress 51 2.5 Choosing an FPGA or Development Board 51 3 Languages 53 3.1 Hardware Description Languages 56 3.2 Software-Based Languages 61 3.2.1 Structural Approaches 63 3.2.2 Augmented Languages 64 3.2.3 Native Compilation Techniques 69 3.3 Visual Languages 72 3.3.1 Behavioural 73 3.3.2 Dataflow 73 3.3.3 Hybrid 74 3.4 Summary 77 4 Design Process 79 4.1 Problem Specification 79 4.2 Algorithm Development 81 4.2.1 Algorithm Development Process 82 4.2.2 Algorithm Structure 83 4.2.3 FPGA Development Issues 86 4.3 Architecture Selection 86 4.3.1 System Level Architecture 87 4.3.2 Computational Architecture 89 4.3.3 Partitioning between Hardware and Software 93 4.4 System Implementation 96 4.4.1 Mapping to FPGA Resources 97 4.4.2 Algorithm Mapping Issues 100 4.4.3 Design Flow 101 4.5 Designing for Tuning and Debugging 102 4.5.1 Algorithm Tuning 102 4.5.2 System Debugging 104 5 Mapping Techniques 107 5.1 Timing Constraints 107 5.1.1 Low Level Pipelining 107 5.1.2 Process Synchronisation 110 5.1.3 Multiple Clock Domains 111 5.2 Memory Bandwidth Constraints 113 5.2.1 Memory Architectures 113 5.2.2 Caching 116 5.2.3 Row Buffering 117 5.2.4 Other Memory Structures 118 vi Contents 5.3 Resource Constraints 122 5.3.1 Resource Multiplexing 122 5.3.2 Resource Controllers 125 5.3.3 Reconfigurability 130 5.4 Computational Techniques 132 5.4.1 Number Systems 132 5.4.2 Lookup Tables 138 5.4.3 CORDIC 142 5.4.4 Approximations 150 5.4.5 Other Techniques 152 5.5 Summary 154 6 Point Operations 155 6.1 Point Operations on a Single Image 155 6.1.1 Contrast and Brightness Adjustment 155 6.1.2 Global Thresholding and Contouring 159 6.1.3 Lookup Table Implementation 162 6.2 Point Operations on Multiple Images 163 6.2.1 Image Averaging 164 6.2.2 Image Subtraction 166 6.2.3 Image Comparison 170 6.2.4 Intensity Scaling 171 6.2.5 Masking 173 6.3 Colour Image Processing 175 6.3.1 False Colouring 175 6.3.2 Colour Space Conversion 176 6.3.3 Colour Thresholding 192 6.3.4 Colour Correction 193 6.3.5 Colour Enhancement 197 6.4 Summary 197 7 Histogram Operations 199 7.1 Greyscale Histogram 199 7.1.1 Data Gathering 201 7.1.2 Histogram Equalisation 206 7.1.3 Automatic Exposure 210 7.1.4 Threshold Selection 211 7.1.5 Histogram Similarity 219 7.2 Multidimensional Histograms 219 7.2.1 Triangular Arrays 220 7.2.2 Multidimensional Statistics 222 7.2.3 Colour Segmentation 226 7.2.4 Colour Indexing 229 7.2.5 Texture Analysis 231 Contents vii 8 Local Filters 233 8.1 Caching 233 8.2 Linear Filters 239 8.2.1 Noise Smoothing 239 8.2.2 Edge Detection 241 8.2.3 Edge Enhancement 243 8.2.4 Linear Filter Techniques 243 8.3 Nonlinear Filters 248 8.3.1 Edge Orientation 250 8.3.2 Non-maximal Suppression 251 8.3.3 Zero-Crossing Detection 252 8.4 Rank Filters 252 8.4.1 Rank Filter Sorting Networks 255 8.4.2 Adaptive Histogram Equalisation 260 8.5 Colour Filters 261 8.6 Morphological Filters 264 8.6.1 Binary Morphology 264 8.6.2 Greyscale Morphology 269 8.6.3 Colour Morphology 270 8.7 Adaptive Thresholding 271 8.7.1 Error Diffusion 271 8.8 Summary 273 9 Geometric Transformations 275 9.1 Forward Mapping 276 9.1.1 Separable Mapping 277 9.2 Reverse Mapping 282 9.3 Interpolation 285 9.3.1 Bilinear Interpolation 286 9.3.2 Bicubic Interpolation 288 9.3.3 Splines 290 9.3.4 Interpolating Compressed Data 292 9.4 Mapping Optimisations 292 9.5 Image Registration 294 9.5.1 Feature-Based Methods 295 9.5.2 Area-Based Methods 299 9.5.3 Applications 305 10 Linear Transforms 309 10.1 Fourier Transform 310 10.1.1 Fast Fourier Transform 311 10.1.2 Filtering 318 10.1.3 Inverse Filtering 320 10.1.4 Interpolation 321 10.1.5 Registration 322 viii Contents 10.1.6 Feature Extraction 323 10.1.7 Goertzel’s Algorithm 324 10.2 Discrete Cosine Transform 325 10.3 Wavelet Transform 328 10.3.1 Filter Implementations 330 10.3.2 Applications of the Wavelet Transform 335 10.4 Image and Video Coding 336 11 Blob Detection and Labelling 343 11.1 Bounding Box 343 11.2 Run-Length Coding 346 11.3 Chain Coding 347 11.3.1 Sequential Implementation 347 11.3.2 Single Pass Algorithms 348 11.3.3 Feature Extraction 350 11.4 Connected Component Labelling 352 11.4.1 Random Access Algorithms 353 11.4.2 Multiple-Pass Algorithms 353 11.4.3 Two-Pass Algorithms 354 11.4.4 Single-Pass Algorithms 356 11.4.5 Multiple Input Labels 358 11.4.6 Further Optimisations 358 11.5 Distance Transform 359 11.5.1 Morphological Approaches 360 11.5.2 Chamfer Distance 360 11.5.3 Separable Transform 362 11.5.4 Applications 365 11.5.5 Geodesic Distance Transform 365 11.6 Watershed Transform 366 11.6.1 Flow Algorithms 366 11.6.2 Immersion Algorithms 367 11.6.3 Applications 369 11.7 Hough Transform 370 11.7.1 Line Hough Transform 371 11.7.2 Circle Hough Transform 373 11.7.3 Generalised Hough Transform 374 11.8 Summary 375 12 Interfacing 377 12.1 Camera Input 378 12.1.1 Camera Interface Standards 378 12.1.2 Deinterlacing 383 12.1.3 Global and Rolling Shutter Correction 384 12.1.4 Bayer Pattern Processing 384 Contents ix 12.2 Display Output 387 12.2.1 Display Driver 387 12.2.2 Display Content 390 12.3 Serial Communication 393 12.3.1 PS2 Interface 393 12.3.2 I2C 395 12.3.3 SPI 397 12.3.4 RS-232 397 12.3.5 USB 398 12.3.6 Ethernet 398 12.3.7 PCI Express 399 12.4 Memory 400 12.4.1 Static RAM 400 12.4.2 Dynamic RAM 401 12.4.3 Flash Memory 402 12.5 Summary 402 13 Testing, Tuning and Debugging 405 13.1 Design 405 13.1.1 Random Noise Sources 406 13.2 Implementation 409 13.2.1 Common Implementation Bugs 410 13.3 Tuning 412 13.4 Timing Closure 412 14 Example Applications 415 14.1 Coloured Region Tracking 415 14.2 Lens Distortion Correction 418 14.2.1 Characterising the Distortion 419 14.2.2 Correcting the Distortion 421 14.3 Foveal Sensor 424 14.3.1 Foveal Mapping 425 14.3.2 Using the Sensor 429 14.4 Range Imaging 429 14.4.1 Extending the Unambiguous Range 431 14.5 Real-Time Produce Grading 433 14.5.1 Software Algorithm 434 14.5.2 Hardware Implementation 436 14.6 Summary 439 References 441 Index 475 x Content
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值