|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
CC3200AI实验教程 ——疯壳·开发板系列 AI人脸图像采集
; Y: j1 {& W/ {+ D
" y: V2 l2 C& O3 v$ u! V1 M, l, g. S' G; W
% D& Q9 c Y9 P, s* d
2 a# D0 c$ Z: O
: I/ k) e5 S c' t 人脸图像采集硬件部分主要由CC3200和MT9D111摄像头组成。摄像头主要是作为人脸采集部分,CC3200则作为主控制核心。如图1.0.1所示为MT9D111摄像头模组的实物图。
4 P* R+ a; ?/ e, X" Y) W4 a6 [ {, L0 @# T
' J( H" V0 C5 H. }4 {
图1.0.1 MT9D111摄像头模组' z" y! ^# U% Y7 ~0 `
图1
7 b$ c+ T0 B+ e% ` MT9D111摄像头模组及其外围的原理图,如图1.0.2所示。; D S9 C4 ^. P. n; Q( `' j
0 b1 g9 i2 Q5 t9 l% x j; x
! g* a% |7 ~7 J T6 ? C5 Y
图1.0.2 MT9D111及其外围原理图
9 G: a; I7 W6 m 图2( g9 _/ B4 E3 f7 W3 j9 O
其中SDA为I2C数据、SCK为I2C时钟、PWDN摄像头工作状态选择、PCLK 像素点的时钟、MLKIN 是主时钟、RESET 复位引脚、VD为 列同步信号、HD为行同步信号、D0-D7 摄像头的并行数据口。
3 T4 g0 T9 Y \4 P" ^ 使用IAR打开AI_OCR里面的工程,在该工程的main()函数中可见如图1.0.3所示的程序段,该程序段为MT9D111摄像头初始化部分,初始化函数为camera_init(),初始化成功返回0(SUCCESS),并且通过串口1打印“camera_init SUCCESS!!!”并把标志位g_camera_init_ok函数置为1,用于作为摄像头初始化成功的一个标志位。
8 m2 y6 ?5 Q- h* i. {) Y2 x* o+ ~2 O! E" @% K
6 s6 m' y J: X4 o) | v
图1.0.3 摄像头初始化部分5 A4 ~) O% n6 m! O5 k
图3: P! G6 {; R/ j( n- i
摄像头底层驱动部分主要包含在mt9d111.c和camera_app.c中。获取摄像头PEG图像数据的函数如图1.0.4所示。: ~! \5 r3 N$ I
" d; g) `: g' b& ?
- ^+ c, ?6 o2 Y! l* p 图1.0.4 获取摄像头JPEG图像数据函数
9 T h5 b& V3 O3 ?" Q- v5 C 图4* g& x( R1 Q( r5 Q3 I
其中camera_get_jpg_head()函数为摄像头采集到的JPEG图像的头部信息,长度为head_length,存储在指针pHeadBuffer指向的空间中。. h6 k9 d' K4 E4 {5 \3 c# n
而camera_get_one_frame()函数为摄像头采集到的JPEG图像的信息,长度为frame_length,存储在指针pFrameBuffer指向的空间中。
- w) o9 M2 a' Q) k/ Q8 a8 E 打开文件夹getaframe下的工程,编译下载到CC3200,打开串口调试助手,波特率为115200选择对应的串口号,点击打开,向CC3200发送“fk+getaframe#”指令,串口即可接收到返回的JPEG数据。# t7 V4 k8 J n! p" H% H/ U! `
( P( m' F: x( A& |
$ ~' q, E6 s$ R, z" c! q 图1.0.4 串口接收到的图片数据
! j3 @- |3 { ~) K9 }- I 图5. W/ D4 X) _( b
把这些数据复制下来保存到一个新建的frame.txt文件下,打开我们提供的java程序“Hex2Image.java”该java程序的功能是把16进制的JPEG图片数据转换成一张JPEG格式的图片。+ h& {/ S9 B; D( }' p
如图1.0.5所示为该JAVA程序的部分代码。$ P7 X6 u/ X) T; g! _ \
; ?7 t% {5 ~6 h7 s l3 j! O
6 t( y3 z: X. X& h# i6 R
图1.0.5 “Hex2Image”Java程序代码
8 L! f6 e& v' A( k+ }% C 图67 p) U8 W, s( {9 A
需要修改的部分为箭头处,即txt文件的路径,以及生成图片的路径。接下来便是编译该java文件(需要预先装好java环境以及设置好java的环境变量)。* U; `* f; x$ k* O
“WIN+R”,输入“cmd”进入windows的DOS系统界面,如图1.0.6所示。! J$ ]& S* u& W: y! ~
3 P" j8 q) s( R/ f: l1 N9 z
/ w5 Q. H% P9 ?( g( R0 X: w
图1.0.6 DOS界面
' p. A$ a* d2 x& [& d 图7- ]4 ^1 t i1 @$ C4 c
首先在dos中定位到“Hex2Image.java”的路径输入“javac Hex2Image.java”对其进行编译。如图1.0.7所示。7 u! t( @. c. B& `( {( K1 d: E
5 k: A, B* ~+ ?; ~& A1 ]/ ]
, P0 f/ ]3 y& @+ U; h1 E5 a# Q 图1.0.7 编译java源文件
2 t/ q6 y* E3 t" Z' ]" C7 H! C 图8: A9 @9 L1 Q' I5 N0 V+ \+ M
此刻在目录下会出现一个“Hex2Image.class”文件是编译过后生成的可执行文件,接下来运行该可执行文件在dos中输入“java Hex2Image”执行该文件,如图1.0.8所示为dos下执行“Hex2Image.class”。
; W+ c$ ]' X0 e! F5 O! d6 |) u( L/ D# X
, G7 i! {1 v4 p; \/ c# z 图1.0.8 dos下执行“Hex2Image.class”. ]- J4 Q f( K4 W3 q
图9
+ G2 ~: H. t7 Q6 N) L 此后在java程序中预先写好的路径下会出现一张JPEG格式的图片。打开该图片如图1.0.9所示。* P- S# _+ w7 M/ e1 _1 y1 d" n
" H) i9 |: |" j# }' i1 |$ j
$ } g1 V) c; ?" i7 w3 m
图1.0.9 获取到的图片 8 ]) a. D7 }4 X+ s$ J
图100 V1 g- n' e9 i2 Z% y W) J7 u/ |
0 j, b- W9 r5 U9 V8 D
- c4 T' ?9 d/ U" K0 u" D! W
y" H1 d+ ^- \0 p( s. O4 O" {. V0 v
8 c$ ^9 D# b- j) k
文件下载请点击:
【6】AI人脸图像采集.pdf
(1.59 MB, 下载次数: 0)
4 X2 ?" M8 b1 z) w0 L4 Q
) o/ A/ Q6 W5 X y! S
4 M0 b) P. A2 v% {# m& [
- `1 J3 A+ U) C2 s0 @* I1 K
|
|