单片机/MCU论坛
直播中

疯壳科技

7年用户 1201经验值
擅长:嵌入式技术
私信 关注
[资料]

【CC3200AI实验教程16】疯壳·AI语音人脸识别-AI人脸图像采集

CC3200AI实验教程
——疯壳·开发板系列
AI人脸图像采集






    人脸图像采集硬件部分主要由CC3200和MT9D111摄像头组成。摄像头主要是作为人脸采集部分,CC3200则作为主控制核心。如图1.0.1所示为MT9D111摄像头模组的实物图。

1.png    
    图1.0.1 MT9D111摄像头模组
    图1
    MT9D111摄像头模组及其外围的原理图,如图1.0.2所示。

2.png    
    图1.0.2 MT9D111及其外围原理图
    图2
    其中SDA为I2C数据、SCK为I2C时钟、PWDN摄像头工作状态选择、PCLK  像素点的时钟、MLKIN 是主时钟、RESET 复位引脚、VD为 列同步信号、HD为行同步信号、D0-D7 摄像头的并行数据口。
    使用IAR打开AI_OCR里面的工程,在该工程的main()函数中可见如图1.0.3所示的程序段,该程序段为MT9D111摄像头初始化部分,初始化函数为camera_init(),初始化成功返回0(SUCCESS),并且通过串口1打印“camera_init SUCCESS!!!”并把标志位g_camera_init_ok函数置为1,用于作为摄像头初始化成功的一个标志位。

3.png    
    图1.0.3 摄像头初始化部分
    图3
    摄像头底层驱动部分主要包含在mt9d111.c和camera_app.c中。获取摄像头PEG图像数据的函数如图1.0.4所示。

4.png
    图1.0.4 获取摄像头JPEG图像数据函数
    图4
    其中camera_get_jpg_head()函数为摄像头采集到的JPEG图像的头部信息,长度为head_length,存储在指针pHeadBuffer指向的空间中。
    而camera_get_one_frame()函数为摄像头采集到的JPEG图像的信息,长度为frame_length,存储在指针pFrameBuffer指向的空间中。
    打开文件夹getaframe下的工程,编译下载到CC3200,打开串口调试助手,波特率为115200选择对应的串口号,点击打开,向CC3200发送“fk+getaframe#”指令,串口即可接收到返回的JPEG数据。

5.png    
    图1.0.4 串口接收到的图片数据
    图5
    把这些数据复制下来保存到一个新建的frame.txt文件下,打开我们提供的java程序“Hex2Image.java”该java程序的功能是把16进制的JPEG图片数据转换成一张JPEG格式的图片。
    如图1.0.5所示为该JAVA程序的部分代码。

6.png    
    图1.0.5 “Hex2Image”Java程序代码
    图6
    需要修改的部分为箭头处,即txt文件的路径,以及生成图片的路径。接下来便是编译该java文件(需要预先装好java环境以及设置好java的环境变量)。
    “WIN+R”,输入“cmd”进入windows的DOS系统界面,如图1.0.6所示。

7.png    
    图1.0.6 DOS界面
    图7
    首先在dos中定位到“Hex2Image.java”的路径输入“javac Hex2Image.java”对其进行编译。如图1.0.7所示。

8.png    
    图1.0.7 编译java源文件
    图8
    此刻在目录下会出现一个“Hex2Image.class”文件是编译过后生成的可执行文件,接下来运行该可执行文件在dos中输入“java Hex2Image”执行该文件,如图1.0.8所示为dos下执行“Hex2Image.class”。

9.png    
    图1.0.8 dos下执行“Hex2Image.class”
    图9
    此后在java程序中预先写好的路径下会出现一张JPEG格式的图片。打开该图片如图1.0.9所示。

10.png    
    图1.0.9 获取到的图片
    图10





    文件下载请点击:
【6】AI人脸图像采集.pdf (1.59 MB)
(下载次数: 5, 2022-9-1 15:00 上传)



更多回帖

发帖
×
20
完善资料,
赚取积分