可编程逻辑
未曾想到,因为突然心血来潮,调研总结的内窥镜一文,竟然会得到大家如此的关注,不知不觉用户关注数量井喷,咨询及探讨的人也是应接不暇,超出了我原有的想象。或许这是本公众号成立以来,正经文章阅读量d NO.1(写哲库关门的那篇近10W的不算)。
那么,趁热打铁,赶紧连夜开始我们的第二篇:拆解几千块的软镜内窥镜,找到FPGA的突破口!!!
内窥镜的组成
这是一款入门级别的软镜内窥镜,采OVM6946+OV426方案实现,其中镜头部分长度为1.5m,USB信号线部分为1.5m,合计约3米。该设备设计相对简单,价格也比较亲民,主要应用于动物的手术内窥。但用来研究入门级内窥的结构,应该是够了。So,如下图所示:
信号接口:供电及信号输出,连接到后续尾板
汽水通道:手术时通过此通道,传说或者送气
操作手柄:主要用于控制镜头部位蛇骨的转向
器械通道:用来安装进抓钳,
弯曲蛇骨:内窥镜镜头后可弯曲的部分,由操作手柄调节方向:
但我拿到的这个入门级内窥,他这个弯曲蛇骨竟然不是万向的,因此想要进入体内,还得靠一定的技术。
OVM6946实测图像分析
该设备用了一个ASIC,将OV426输出的图像转成UVC后,通过USB2.0传输。因此直接将USB插入Windows,自动识别到UVC Camera,采用系统自带的相机,即可打开相机(识别到400*400@30的UVC相机)。
首先我尝试着拿了个色卡,看一下OV426的ISP做的咋样,如下图所示:
我只能说成像效果太感人了,都赶上几十年前的诺基亚了。当然分辨率低也情有可原,但这噪声也确实大的感人了一点。
当然了,内窥主要用于腔体内的成像,镜头焦距(多少呢?)较短,拿出来看效果肯定不会理想,同时那么远的距离,补光灯几乎可以忽略了。那么大胆勇敢地插入自己的鼻孔,此刻我就是1个动物!!!!
好激动又好恐怖,第一次0距离深入观察了自己的鼻孔,看看困扰我n年的鼻炎,我命由我不由天!进去一点,再进去一点,继续勇敢深入进去:
Finally,我得到了想要的图片,我看清楚了那些年阻碍我大口呼吸的恶魔,我懂得我之所以老是头痛眼胀的缘由了——一块鼻息肉。此刻给我一个抓钳,恨不得一刀下去(据说切了之后还会增生,没完没了,还是要控制生活及饮食,不能这么晚睡觉(0点51分了)。
那么,先简短总结一下测试效果:
环境: 在腔体成像,补光才有意义
实时性:还行
帧率: 还行
分辨率:太低了
噪声: 还是略大
再看镜头,寻找FPGA的突破口
OK,我们再会过来看看我们的镜头,分析一下根源的所在。如下是内窥镜头的核心部分,前端为OVM6946镜头+补光:
这还不够清晰,专门放大看镜头部分,窥一斑可见全豹,如下:
在这狭小的2mm不到的空间,容纳了1个摄像头,2个LED补光,以及1个传气/水孔。所谓靶大一级比死人,OVM6946成相差的根本原因,就是因为1/18寸实在太小了,并且感光区域只有0.5平方毫米,像素只有1.75um,为了捅进尿道,在尺寸上真是耗尽了心血。
那么,强大的FPGA出场,我们是否有机会找到突破口呢?
先看OV426的ISP功能,如下图所示,就简单的黑电平矫正、自动曝光、白平衡。OV明明是专业做Sensor的,对ISP为啥只做到这个份上呢?一切为了成本吗?
FPGA有高速并行的特性,在有限的RTL上我们可以释放我们无限的想象空间,进行释放我们的图像和算法,并且采用流水线特性提高我们的处理效率。那么,提前总结下FPGA进行内窥相机ISP处理的优势:
1)不再受ASIC限制,用户可自定义ISP算法
2)不再千篇一律,不同的厂家百花齐放
3)可新增例如宽动态、去雾、3D降噪等对进一步优化效果的算法
4)接口多样化,任意扩展LCD/HDMI/以太网等,不再单一的UVC
5)进一步打开格局,实现3D成像、深度识别、AI分析等功能
对于我,现在最想做,除了用FPGA实现完整流水线Pipeline的ISP外,那就是FPGA超分辨率算法。400*400实在太低了,OV9734又太大了,采用FPGA实现超分辨率算法,先从第一视角提升用户的感官!给个图先秀一下:
另外,号外下:OV426解码板PCB已经投了,正式开始接受内窥市场的洗礼,一切都值得尝试,哪怕失败也要先被摩擦,敬请期待吧!
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !