|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
CC3200AI实验教程 ——疯壳·开发板系列 AI人脸图像采集 + P3 G# m6 X5 b" o
; S+ f8 ~; x6 P* M% K1 s4 x) r5 ^- D! l! {
: O% o4 @, K: d- L4 R6 U [7 |/ Q# e p
2 l% i3 ^: g) {- D1 |) @
人脸图像采集硬件部分主要由CC3200和MT9D111摄像头组成。摄像头主要是作为人脸采集部分,CC3200则作为主控制核心。如图1.0.1所示为MT9D111摄像头模组的实物图。
+ w3 O) R7 |* T& I1 u9 V# a5 M+ _" S1 E7 `' O
" y+ d5 V! {6 I# g; |* q+ c 图1.0.1 MT9D111摄像头模组
8 t7 d5 Z; G9 a5 ?2 o$ Y 图1
* q) A4 t0 @6 K$ F MT9D111摄像头模组及其外围的原理图,如图1.0.2所示。: a- E* M( e: c0 G$ Z+ O
; u* f- y$ M& D9 S# B' }; N
5 V0 H& o% Y3 N# D& C
图1.0.2 MT9D111及其外围原理图- V8 t1 [) e5 _
图2
* u' @" O' ^- x$ B& y2 O 其中SDA为I2C数据、SCK为I2C时钟、PWDN摄像头工作状态选择、PCLK 像素点的时钟、MLKIN 是主时钟、RESET 复位引脚、VD为 列同步信号、HD为行同步信号、D0-D7 摄像头的并行数据口。3 ^. |0 s. Q: g% r
使用IAR打开AI_OCR里面的工程,在该工程的main()函数中可见如图1.0.3所示的程序段,该程序段为MT9D111摄像头初始化部分,初始化函数为camera_init(),初始化成功返回0(SUCCESS),并且通过串口1打印“camera_init SUCCESS!!!”并把标志位g_camera_init_ok函数置为1,用于作为摄像头初始化成功的一个标志位。
3 _ ?) q9 Q" a9 n, o" ?3 @6 L: j' h8 W& G- b- Q3 S
# `" S7 Z# j4 ^; q) T 图1.0.3 摄像头初始化部分
n0 x' R$ z( ?! Z$ [ ]$ E) I 图3) J1 F9 ^% K1 k! z
摄像头底层驱动部分主要包含在mt9d111.c和camera_app.c中。获取摄像头PEG图像数据的函数如图1.0.4所示。& a& p7 Q# D" ]- i4 \9 h
- |8 x0 R# i/ C# G7 L
( M/ f% H/ |# }
图1.0.4 获取摄像头JPEG图像数据函数" h( A/ C2 h4 X! P' w4 Z- o3 G
图4! D" H% `% n# C! z) r3 U, d
其中camera_get_jpg_head()函数为摄像头采集到的JPEG图像的头部信息,长度为head_length,存储在指针pHeadBuffer指向的空间中。$ c8 A$ f6 I2 X2 @( Q
而camera_get_one_frame()函数为摄像头采集到的JPEG图像的信息,长度为frame_length,存储在指针pFrameBuffer指向的空间中。
" @$ v2 R" c- ~: ^* z 打开文件夹getaframe下的工程,编译下载到CC3200,打开串口调试助手,波特率为115200选择对应的串口号,点击打开,向CC3200发送“fk+getaframe#”指令,串口即可接收到返回的JPEG数据。
7 o. @. H$ a( f" x, P8 O6 `% o' C" {2 _7 j7 f
B* r$ z2 w1 M4 A* Q 图1.0.4 串口接收到的图片数据
! t8 w9 t; P \! v) d$ w8 N5 b- j 图5, X, H# Q8 @+ W
把这些数据复制下来保存到一个新建的frame.txt文件下,打开我们提供的java程序“Hex2Image.java”该java程序的功能是把16进制的JPEG图片数据转换成一张JPEG格式的图片。
6 s+ d4 _# P1 |- q3 d 如图1.0.5所示为该JAVA程序的部分代码。
9 P) M5 d3 z6 U4 L( P/ J
; _# Q9 a P9 E/ v) P
) g" h" V2 Y$ R8 o* [6 ^ 图1.0.5 “Hex2Image”Java程序代码
/ p1 f9 j, m$ C; e% m7 d& o 图6
7 b+ g+ a6 [) l- u; ~/ w 需要修改的部分为箭头处,即txt文件的路径,以及生成图片的路径。接下来便是编译该java文件(需要预先装好java环境以及设置好java的环境变量)。6 \9 g0 v E2 W- g6 o E* z) a' V
“WIN+R”,输入“cmd”进入windows的DOS系统界面,如图1.0.6所示。
1 v/ j& B' N" S3 L/ ?
6 D/ R! ^) C, E+ }) \3 m( S
" q. I r' o, @ @$ y
图1.0.6 DOS界面! b) t8 k- i l; a, J3 i# Q
图7- u' a4 P G( D( N. Y
首先在dos中定位到“Hex2Image.java”的路径输入“javac Hex2Image.java”对其进行编译。如图1.0.7所示。; a M0 U. b9 I# ]; k3 P* B* s
1 i3 D) B$ X* \! E" B9 n
0 h6 v, N$ K2 ~+ T/ j) H7 c 图1.0.7 编译java源文件) w; Y' `1 w" }" [
图8
" f/ _& P' n V4 K' w 此刻在目录下会出现一个“Hex2Image.class”文件是编译过后生成的可执行文件,接下来运行该可执行文件在dos中输入“java Hex2Image”执行该文件,如图1.0.8所示为dos下执行“Hex2Image.class”。" O5 A$ I; ~7 m. {( B" f" n5 f
. L! }0 ?6 P( y; K }; k l
3 y% d% S/ n) ^+ T: ]$ o0 M9 c. J
图1.0.8 dos下执行“Hex2Image.class”
1 k0 x% Z# x+ o0 h7 M( ]; z 图9
$ k% ]. h% R' q+ _, i" G2 h9 z& d: T 此后在java程序中预先写好的路径下会出现一张JPEG格式的图片。打开该图片如图1.0.9所示。
1 d% \/ p0 B C* `( u7 W1 Y7 v, a" Y$ I
. r1 v# Q2 r3 o" C, p6 A& H# P
图1.0.9 获取到的图片 ( P2 p9 o3 t2 ~5 o
图10
" y" i# ^1 W4 Z1 B" k5 L3 G+ }5 g0 T
7 L! H9 |# G( z
% K3 d; [' A$ [6 c: u# n. E% O$ G, ?1 A
# f: K( Z* S4 K# b7 b 文件下载请点击:
【6】AI人脸图像采集.pdf
(1.59 MB, 下载次数: 0)
9 j+ f7 q" P1 a4 h$ v+ C
8 Z4 b% x8 g; ~7 [+ ~# p n5 h o8 y
+ }* J$ n; X6 W8 w7 S( h+ i
: [# {7 s. o" }- g |
|