Toybrick

标题: 摄像头的图像ISP 问题 [打印本页]

作者: nopattern    时间: 2019-8-13 16:34
标题: 摄像头的图像ISP 问题
      购买了一个MIPI摄像头,可以通过看到图像,但是图像偏绿。板子的系统是FEDORA,
请教应该自己做ISP 吗?



作者: troy    时间: 2019-8-13 17:12
参考http://t.rock-chips.com/wiki.php?mod=view&id=57
RK已经封装了ISP库,需要调用ISP库才可以获取到正常颜色的图像。
作者: nopattern    时间: 2019-8-13 17:52
本帖最后由 nopattern 于 2019-8-13 18:11 编辑

谢谢,看了一下需要C 接口,有没有python 接口的?另外,还需要一个tuningFile ,应该哪里下载?



作者: elooon    时间: 2019-8-13 22:07
MIPI摄像头应该是需要官方tuning的吧?你这个sensor有在官方支持列表里面吗?
作者: nopattern    时间: 2019-8-14 10:48
专门配套的摄像头,芯片是OV9750,应该是在官方支持列表里。
作者: troy    时间: 2019-8-14 14:41
nopattern 发表于 2019-8-14 10:48
专门配套的摄像头,芯片是OV9750,应该是在官方支持列表里。

安装完ISP库之后,在/etc目录下有两个文件,cam_iq_ov9750.xml和cam_iq_imx258.xml,这两个就是tuningFile。
作者: nopattern    时间: 2019-8-14 16:22
Ok, 多谢!
作者: nopattern    时间: 2019-8-15 10:07
根据上面的,写了个isp 调用,结果发生如下错误:
  1. CAMHALInfo:   CAMHALVERSION is: 2.0.8.0

  2. CAMHALError:  ERR(getSensorModeData): RK_VIDIOC_SENSOR_MODE_DATA failed, err: Inappropriate ioctl for device

  3. CAMHALInfo:   CAMIAVERSION is: 2.0.9.0

  4. CAMHALInfo:   init:tuningFile //etc//cam_iq_ov9750.xml
  5. CAMHALInfo:   load tunning file success.
  6. AWB: AwbConfigure: AWB_VERSION_10

  7. AWB: AwbPrepareCalibDbAccess: resolution (127x47360@1585696608) not found in database

  8. CAMHALError:  initDynamic:awb config failure!
  9. CAMHALError:  cam_ia10_isp_dpcc_config: resolution (0x0) not found in database

  10. CAMHALError:  runManISP:config DPCC failed !
  11. CAMHALError:  cam_ia10_isp_bls_config: resolution (0x0) not found in database

  12. CAMHALError:  runManISP:config BLS failed !
  13. CAMHALInfo:   (null): resolution (0x1585693208) not found in database

  14. CAMHALError:  runManISP:config FLT failed !
复制代码


调用代码如下:
  1. void *g_engine = NULL;

  2. int  init_rkisp(int vidFd)
  3. {

  4.     //int vidFd = 0;
  5.     const char *ispNode = "//dev//video1";
  6.     const char* tuningFile = "//etc//cam_iq_ov9750.xml";
  7.     //const char* tuningFile = "//etc//cam_iq_imx258.xml";
  8.     int ret;
  9.     ret = rkisp_start(g_engine, vidFd, ispNode,tuningFile);

  10.     return ret;
  11. }
复制代码


vidFd 0,1,2,3 都试过了。同样错误,请问是什么原因,应如何解决?

作者: nopattern    时间: 2019-8-16 08:34
@troy  能否解决一下?
作者: cr7jj    时间: 2019-12-4 16:44
大神,后面是如何解决的,可以分享一下吗

作者: troy    时间: 2019-12-9 11:02
nopattern 发表于 2019-8-16 08:34
@troy  能否解决一下?

你使用的是OV9750的摄像头吗,使用video2节点就可以
作者: huangzk    时间: 2019-12-11 15:34
troy 发表于 2019-12-9 11:02
你使用的是OV9750的摄像头吗,使用video2节点就可以

大神您好, android rk3399 prod如果要接一个新的模组,比如 IMX334, 看这个不在官方支持列表里面,这个是要自己加吗?
作者: troy    时间: 2019-12-13 09:44
huangzk 发表于 2019-12-11 15:34
大神您好, android rk3399 prod如果要接一个新的模组,比如 IMX334, 看这个不在官方支持列表里面,这个 ...

不支持的摄像头需要自己写驱动,还有图像质量调试。
作者: huangzk    时间: 2019-12-13 10:57
troy 发表于 2019-12-13 09:44
不支持的摄像头需要自己写驱动,还有图像质量调试。

我看 RK_ISP10_Camera_User_Manual_v2.2.pdf 这个文档里面有写:
2.4. RAW Camera Sensor 选型说明
1、事先获取 RockChip 的认证列表:《RKISPV1_Camera_Module_AVL》;
2、列表中已经有相关型号,并且状态显示 Ready,那么建议按照列表中的模组配 置信息让模组厂进行打样; 3、列表中没有相关型号,或是想选择不同配置(镜头、VCM)的模组,那么建议 填写《RockChip 摄像头模组调试需求申请表》,同时发给 RockChip。

注:RAW Camera Sensor 调试周期在 4 周左右;
模组配置更换 调试周期在 3 周左右;

但是目前还不知道是个什么流程
作者: troy    时间: 2019-12-13 11:14
huangzk 发表于 2019-12-13 10:57
我看 RK_ISP10_Camera_User_Manual_v2.2.pdf 这个文档里面有写:
2.4. RAW Camera Sensor 选型说明
1、 ...

这个是针对客户camera的调试申请流程
作者: mahongwei    时间: 2019-12-19 15:02
cr7jj 发表于 2019-12-4 16:44
大神,后面是如何解决的,可以分享一下吗

你的好了吗?我的imx258加入了isp还是颜色不太正常
作者: puresoy    时间: 2019-12-23 14:32
troy 发表于 2019-8-13 17:12
参考http://t.rock-chips.com/wiki.php?mod=view&id=57。
RK已经封装了ISP库,需要调用ISP库才可以获取到正 ...

可是
对于debian系统(ubuntu)
rk有已经封装好了的isp库么?
如果有的话
又在哪里可以找到?
作者: cr7jj    时间: 2019-12-28 08:46
troy 发表于 2019-12-9 11:02
你使用的是OV9750的摄像头吗,使用video2节点就可以

@troy你好,我用的是imx258,图像偏绿,现在调用isp库也出现前面所说的错误,isNode节点选哪个。还有vidFd 用哪个,请麻烦解决一下
作者: troy    时间: 2019-12-30 08:53
cr7jj 发表于 2019-12-28 08:46
@troy你好,我用的是imx258,图像偏绿,现在调用isp库也出现前面所说的错误,isNode节点选哪个。还有vidF ...

请认真查看wiki说明。
1、对于内置摄像头而言,n个摄像头会枚举出4个video节点。

video(4*(n-1)+2)节点为用户捕获图像操作的video节点,如video2,video6。

video(4*(n-1)+1)节点为ISP库进行3A操作的video节点,如video1,video5。

2、 使用结束后必须使用rkisp_stop停止ISP引擎,释放占用的资源。

3、必须选择与摄像头相互匹配的tuningFile,否则ISP引擎无法工作。

4、目前ISP摄像头获取的图像格式V4L2_PIX_FMT_NV12
作者: cr7jj    时间: 2019-12-30 10:00
troy 发表于 2019-12-30 08:53
请认真查看wiki说明。
1、对于内置摄像头而言,n个摄像头会枚举出4个video节点。

imx258,这是我的调用代码

    void *g_engine = NULL;
    int  init_rkisp(int vidFd)
{
    const char *ispNode = "/dev/video1";
    const char* tuningFile = "/etc/cam_iq_imx258.xml";
    int ret;
    ret = rkisp_start(g_engine, vidFd, ispNode,tuningFile);

    return ret;
}

int main(int argc,char *argv[])
{
    cout << "Built with OpenCV " << CV_VERSION << endl;

       
            init_rkisp(2);

        VideoCapture capture(0);    // 打开摄像头
        if(!capture.isOpened())    // 判断是否打开成功
        {
                cout << "open camera failed. " << endl;
                return -1;
        }
       
        while(true)
        {
                Mat frame;
                capture >> frame;    // 读取图像帧至frame
                if(!frame.empty())        // 判断是否为空
                {
                        imshow("camera", frame);
                }
               
                if(waitKey(30) > 0)                // delay 30 ms等待按键
                {
                        break;
                }
        }
       
        rkisp_stop(g_engine);
    return 0;
}

作者: cr7jj    时间: 2019-12-30 10:02
cr7jj 发表于 2019-12-30 10:00
imx258,这是我的调用代码

    void *g_engine = NULL;

出现这样的错误
CAMHALInfo:   CAMHALVERSION is: 2.0.8.0

CAMHALError:  ERR(getSensorModeData): RK_VIDIOC_SENSOR_MODE_DATA failed, err: Inappropriate ioctl for device

CAMHALInfo:   CAMIAVERSION is: 2.0.9.0

CAMHALInfo:   init:tuningFile /etc/cam_iq_imx258.xml
CAMHALInfo:   load tunning file success.
AWB: AwbConfigure: AWB_VERSION_10

AWB: AwbPrepareCalibDbAccess: resolution (127x47360@1585696608) not found in database

CAMHALError:  initDynamic:awb config failure!
CAMHALError:  cam_ia10_isp_dpcc_config: resolution (0x0) not found in database

CAMHALError:  runManISP:config DPCC failed !
CAMHALError:  cam_ia10_isp_bls_config: resolution (0x0) not found in database

CAMHALError:  runManISP:config BLS failed !
CAMHALInfo:   (null): resolution (0x1585693208) not found in database

CAMHALError:  runManISP:config FLT failed !
作者: troy    时间: 2019-12-30 14:23
cr7jj 发表于 2019-12-30 10:00
imx258,这是我的调用代码

    void *g_engine = NULL;

请认真看清楚wiki上的参数说明,第二个参数是使用的video节点句柄。参数vidFd是文件句柄!!!!!!!!!!!
rkisp_start: 创建ISP引擎实例

int rkisp_start(void* &engine, int vidFd, const char* ispNode, const char* tuningFile);
参数说明:

1)Engine:ISP引擎实例地址,rkisp_start创建引擎实例后,由该参数返回实例地址。

2)vidFd:Video stream fd,用户捕获图像时,使用的video节点句柄。

3)ispNode:ISP节点名,例如”/dev/video1”,该节点与用户捕获图像的节点不同。

4)tuningFile:IQ xml 文件。例如”/etc/cam_iq_ov9750.xml”,里面记录了摄像头3A(自动白平衡,自动曝光,自动对焦)操作所需的参数。

返回值:成功返回0且engine不为NULL。
作者: cr7jj    时间: 2019-12-30 15:13
troy 发表于 2019-12-30 14:23
请认真看清楚wiki上的参数说明,第二个参数是使用的video节点句柄。参数vidFd是文件句柄!!!!!!!! ...

你好,我改了 vidFd = open("/dev/video2", O_RDWR);
编译成功,运行程序还是会有错误
作者: cr7jj    时间: 2019-12-30 15:13
cr7jj 发表于 2019-12-30 15:13
你好,我改了 vidFd = open("/dev/video2", O_RDWR);
编译成功,运行程序还是会有错误 ...

CAMHALInfo:   CAMHALVERSION is: 2.0.8.0

CAMHALError:  ERR(getSensorModeData): RK_VIDIOC_SENSOR_MODE_DATA failed, err: Invalid argument

CAMHALInfo:   CAMIAVERSION is: 2.0.9.0

CAMHALInfo:   init:tuningFile /etc/cam_iq_imx258.xml
CAMHALInfo:   load tunning file success.
AWB: AwbConfigure: AWB_VERSION_10

AWB: AwbPrepareCalibDbAccess: resolution (0x1@-2147045536) not found in database

CAMHALError:  initDynamic:awb config failure!
CAMHALError:  cam_ia10_isp_dpcc_config: resolution (0x0) not found in database

CAMHALError:  runManISP:config DPCC failed !
CAMHALError:  cam_ia10_isp_bls_config: resolution (0x0) not found in database

CAMHALError:  runManISP:config BLS failed !
CAMHALInfo:   (null): resolution (0x-2147048936) not found in database

CAMHALInfo:   fail to get no FilterProfile, ret: 13
CAMHALError:  runManISP:config FLT failed !

作者: cr7jj    时间: 2019-12-30 15:54
troy 发表于 2019-12-30 14:23
请认真看清楚wiki上的参数说明,第二个参数是使用的video节点句柄。参数vidFd是文件句柄!!!!!!!! ...

@troy 大神,怎么解决呢
作者: troy    时间: 2020-1-7 09:11
nopattern 发表于 2019-8-16 08:34
@troy  能否解决一下?

该问题为isp库与驱动不匹配导致,等待这几天isp驱动升级




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3