介绍
查看《isp算法及架构分析介绍》
今天项目的顺序就是先介绍几个关于isp算法架构的项目,包括python、matlab、c等高级语言实现的isp算法架构,最后介绍一个fpga实现isp的项目。
openisp
https://github.com/cruxopen/openisp
项目介绍
用python实现的isp架构,该架构涉及到的知识如下:
下图是最新实现的模块:
主要模块如下:
死点校正
黑电平补偿
镜头阴影校正
抗混叠噪声滤波器
awb 增益控制
降噪(拜耳领域)
去马赛克
伽玛校正
颜色校正矩阵
色彩空间转换
亮度/色度噪声过滤器
亮度降噪
双边过滤
非局部均值去噪
边缘增强
假色抑制
色相/饱和度控制
亮度/对比度控制
关于项目的其他介绍,可以查看项目代码
isp
https://github.com/mushfiqulalam/isp
用python实现的isp架构,整体项目架构不如openisp,但是有几个算法是openisp没有的,可以综合两者看下,主要实现的算法如下:
=> 黑电平校正[e]
=> 渐晕/镜头阴影校正[e]
=> 坏像素校正[e]
=> 通道增益白平衡[e]
=> bayer denoise[d]
=> demosaic[m]
=> demosaic 伪影减少 [m]
=> 颜色校正[e]
=> gamma[e]
=> 色差校正 [m]
=> 色调映射[e]
=> 颜色增强[m]
=> 降噪[e]
=> 锐化[e]
=> 失真校正[e]
其中,[e]、[m] 和 [d] 分别表示当前算法上的简单、中等或困难。
利用 matlab 和 dcraw 处理数码相机 raw 文件的完整流程
http://t.csdn.cn/zv6j8
这篇文章非常详细地介绍了利用matlab处理raw图像流程,包括每一步处理后图像的现象以及代码,非常值得一看~
matlab_isp
https://github.com/ericmiukyqin/raw_image_processing_pipeline
https://github.com/waterdropskun/isp_matlab
https://github.com/sauravgupta139/image_processing
https://github.com/xiaoshipipi/isp_matlab
以上都是matlab实现isp架构的源码,但是项目不完整,没有说明,建议结合上面文章一起了解相关函数作用。
isp-pipeline-hdrplus
https://github.com/jhfmat/isp-pipeline-hdrplus
matlib 是一个开源(c/c++)图像算法库,可在多平台(window、linux、android)下使用,包含各种常规图像处理算法,所有功能均采用底层优化技术,包括(neon、openmp、linebuf、mempool等),性能比opencv快,代码只有1m,非常简化,没有依赖,使用起来非常方便,我们可以在上面使用neon指令窗口平台开发,开发使用非常友好,可以快速将开发集成到自己的代码中。
这也是使用c/c++开发的isp架构,据作者介绍,自己也是非常喜欢isp这个领域,项目里也有作者建立的交流群,
zynq_isp
https://github.com/bxinquan/zynq_camera_vdma_lcd
介绍
本项目基于zynq-7020(正点原子启明星+ov5640+4.3'800x480)实现了isp图像处理(将ov5640的isp关闭,在7020上实现isp功能),输出到lcd和hdmi,软件基于sdk裸机开发
实现的算法
处理模块
isp_dpc - 坏点校正 (5x5领域内的8个临近像素同时大于或同时小于中心像素,且差值大于门限,则认为坏点,使用中值替换)
isp_blc - 黑电平校正 (rggb四通道分别减去配置好的黑电平值)
isp_bnr - 拜耳降噪 (可选择的高斯滤波器)
isp_dgain - 数字增益 (直接乘以配置好增益值)
isp_demosaic - 去马赛克 (g基于边缘方向上插值 rb基于色差恒定理论插值)
isp_wb - 白平衡增益 (rgb三通道乘以配置的增益值)
isp_ccm - 色彩校正矩阵 (rgb三通道乘以配置的3x3矩阵)
isp_csc - 色彩空间转换 (基于整数优化的rgb2yuv转换公式)
isp_gamma - gamma校正 (对亮度基于查表的gamma校正)
isp_2dnr - 2d降噪(7x7双边滤波降噪)
isp_ee - 边缘增强 (基于特定的3x3滤波器)
统计模块
isp_stat_ae - 自动曝光统计 (支持统计选取区域内亮度总和与像素个数,支持rggb四通道直方图统计)
isp_stat_awb - 自动白平衡统计 (支持符合白点限定条件的rgb三通道数值总和与白像素个数,支持rgb三通道直方图统计)
isp lite ip
位置: zynq_camera_vdma_lcd/xil_ip_repo/xil_isp_lite_1.0
这个项目包含了常规的算法,基本可以覆盖常规的snsor,虽然项目介绍的比较少(基本齐全),但是提供了vivado的完整工程,包含所有的源码,亲测编译没问题,功能尚未验证。
总结
今天介绍了3个主流高级语言(matlab、c/c++、python)实现的isp架构,前面三个平台架构适合学习isp架构,如果之前没有任何高级语言的基础,建议使用python(人生苦短,我用python)入门。最后fpga实现的方案也是非常值得学习的,zynq020价格不贵,值得深入学习。
还有就是最近使用hls实现的isp架构也很快和大家见面了,还在努力中...
最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。
RMA是什么意思?IC芯片设计失效分析和RMA流程分解
中软国际AIGC研究院成功举办首届JointPilot Hackathon微应用创新大赛
鱼塘水质检测仪的特点及技术参数
智能连接设备的时代,分布式网络尤为重要
米尔科技Z-turn IO Cape简介
介绍几个关于ISP算法架构的项目
太阳能微型逆变器的解决方案介绍
走不出品牌误区,难抓得住粉丝流量
大唐移动:SPAN ADT自动路测系统介绍
“元件强基”与“电机提效”两大产业政策为万物互联与智能制造铺就创新发展道路
iPhoneSE是高端手机吗?oppo、vivo到底是不是高端机?
数字源表如何测试MOS管电性能
苹果关闭iOS 17.2验证通道
特斯拉“入华”新进展:特斯拉上海公司5月10日正式注册成立
“华芯邦”杯2013优质供应商评选颁奖典礼在深圳隆重举行
十大亮点闪耀业内, CS Show 2016打造pcb高效采购平台
萨科微Slkor宋仕强之深圳华强北的昨天今天和明天(中)
蓝牙和Wi-Fi以及ZigBee三种常见无线通信技术优缺点对比
机器人核心技术之控制电机的应用
单片机仿真器的五大作用