|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
CC3200AI实验教程 ——疯壳·开发板系列 AI人脸图像采集 ' f' R/ s [+ Q
" ?) O7 u; D2 C; S4 R7 U, o* D; d$ d3 o2 A2 l: L
$ M; b! D) l6 a) `: S4 f' @
7 d3 x+ M6 U) L' |1 z; s `
% D9 w; F2 d8 N7 K: z) ^ 人脸图像采集硬件部分主要由CC3200和MT9D111摄像头组成。摄像头主要是作为人脸采集部分,CC3200则作为主控制核心。如图1.0.1所示为MT9D111摄像头模组的实物图。
: g/ h2 i2 J( y4 ]# X6 |- J. X! ]4 Y0 ^1 B
2 n$ `4 z( [' P$ i5 O2 q/ ^; E. n
图1.0.1 MT9D111摄像头模组+ z7 n7 @5 t# C) I% j2 |4 y5 ^
图1
8 Q( |0 N" ^8 | MT9D111摄像头模组及其外围的原理图,如图1.0.2所示。# u8 c' b! f O% m/ }6 K+ ]
- S! ?, g0 ~- G
6 y# y T) Y( J. m- L" W3 a- y 图1.0.2 MT9D111及其外围原理图. w& w3 [" j( o5 g
图25 [0 @- R. p0 q' b7 [$ E* v
其中SDA为I2C数据、SCK为I2C时钟、PWDN摄像头工作状态选择、PCLK 像素点的时钟、MLKIN 是主时钟、RESET 复位引脚、VD为 列同步信号、HD为行同步信号、D0-D7 摄像头的并行数据口。
! ?& d3 b; \$ G$ }7 U c 使用IAR打开AI_OCR里面的工程,在该工程的main()函数中可见如图1.0.3所示的程序段,该程序段为MT9D111摄像头初始化部分,初始化函数为camera_init(),初始化成功返回0(SUCCESS),并且通过串口1打印“camera_init SUCCESS!!!”并把标志位g_camera_init_ok函数置为1,用于作为摄像头初始化成功的一个标志位。! G; ~% D/ s' n- L
" N3 O W& e) ]! _
0 K, R) ~+ o# | 图1.0.3 摄像头初始化部分
3 W7 K7 T, K, J( O9 U0 ]7 L 图38 X' L g9 [9 I2 c- v1 f
摄像头底层驱动部分主要包含在mt9d111.c和camera_app.c中。获取摄像头PEG图像数据的函数如图1.0.4所示。
+ H0 X, T ~9 n6 ^( T8 ?) o1 U
- Q- {2 s: A, d- l 图1.0.4 获取摄像头JPEG图像数据函数
% C5 G2 o: [, r, L; v9 i 图4
6 H' Y3 w) E- Y( S0 @: h$ i* \ 其中camera_get_jpg_head()函数为摄像头采集到的JPEG图像的头部信息,长度为head_length,存储在指针pHeadBuffer指向的空间中。" i1 R1 w' P) U3 q( N: M7 M; p
而camera_get_one_frame()函数为摄像头采集到的JPEG图像的信息,长度为frame_length,存储在指针pFrameBuffer指向的空间中。% ]) T' p' r& k$ p9 I7 E
打开文件夹getaframe下的工程,编译下载到CC3200,打开串口调试助手,波特率为115200选择对应的串口号,点击打开,向CC3200发送“fk+getaframe#”指令,串口即可接收到返回的JPEG数据。
& c" G( S, E% O5 E: e8 D7 a, w- f8 `" W
0 }+ H" m0 I/ @6 j+ R6 C8 O4 ^ 图1.0.4 串口接收到的图片数据6 {; }# \7 V* C8 i* l V
图5& m" u. P) b; n8 e2 E7 ?9 ?
把这些数据复制下来保存到一个新建的frame.txt文件下,打开我们提供的java程序“Hex2Image.java”该java程序的功能是把16进制的JPEG图片数据转换成一张JPEG格式的图片。: N7 N& N5 Z. H$ o% i4 ?5 f
如图1.0.5所示为该JAVA程序的部分代码。4 Y0 }3 u* d4 g0 s9 m2 _ Q( o. v
( A5 K( e7 s6 D2 \3 ]" S
& [% i( y! t# U1 B y: U 图1.0.5 “Hex2Image”Java程序代码 H& z3 N& k1 l! [: _; i2 E/ V
图6
/ ^6 x# Q0 h" f% F5 [% n! R 需要修改的部分为箭头处,即txt文件的路径,以及生成图片的路径。接下来便是编译该java文件(需要预先装好java环境以及设置好java的环境变量)。
" C+ V @9 ^' b# s( m “WIN+R”,输入“cmd”进入windows的DOS系统界面,如图1.0.6所示。
6 g/ T' B$ F3 ]- s, y7 t. j
, _8 c; k" H6 _+ p3 l
: c0 U1 e, @; _- `
图1.0.6 DOS界面4 ^2 r8 j: f( z. Q4 J
图7' p$ w6 N- }5 u0 ]$ S+ N- T
首先在dos中定位到“Hex2Image.java”的路径输入“javac Hex2Image.java”对其进行编译。如图1.0.7所示。9 b" s4 @, C+ O" y% P3 a
8 E! F0 S8 ?$ L& G: G0 j: |' ^) d
+ u l6 N7 w- N% w
图1.0.7 编译java源文件
4 g$ K9 e+ m& G 图8' b1 W$ a) k) I$ v2 ^0 d
此刻在目录下会出现一个“Hex2Image.class”文件是编译过后生成的可执行文件,接下来运行该可执行文件在dos中输入“java Hex2Image”执行该文件,如图1.0.8所示为dos下执行“Hex2Image.class”。
3 I: Y, H2 h3 K7 J4 U2 D
( B, S/ r* J- G/ `) Y
3 E) X' K' u% y
图1.0.8 dos下执行“Hex2Image.class”* i7 F7 |. i# S3 B( ~# ~
图9' y a, E0 X2 N3 o& y7 \; m
此后在java程序中预先写好的路径下会出现一张JPEG格式的图片。打开该图片如图1.0.9所示。
) Z% ]& ~4 V* b: ^/ S( D5 Q8 S/ ?- v0 Q& O2 A! y
6 Z! D V1 {+ i1 U/ j 图1.0.9 获取到的图片
# x3 T% a" n. v: ` 图10! O4 V- O) ]: Y) L9 s4 n* X$ K. [
/ [1 G. h" f& j2 j7 u& q2 s4 v0 c8 b" V- M. E7 ]
9 x) I( R3 e8 |6 z7 Z* t7 J
$ ^8 ~2 `- w1 \& O$ v. f$ \
' J, Q4 P1 ?6 V. w. g: ^5 X 文件下载请点击:
【6】AI人脸图像采集.pdf
(1.59 MB, 下载次数: 0)
+ u( J+ I0 h7 w% r, \9 p* o
6 p& i, b: y1 m1 {# e8 j, r5 Z# e. r5 n
6 r' R3 m+ {( p; |( \' X5 J S- z, m7 Z, s8 k! P/ S' J( \
|
|