找回密码
 注册
关于网站域名变更的通知
查看: 203|回复: 0
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-10 16:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

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

! @0 ~% ?. n1 _6 z2 U0 K$ f0 J
7 S6 Z) s' ~. X8 n/ N: h+ E3 x
- |6 F' `1 s2 E  H7 X
' S6 y% y- c; l+ I# [: P
9 D) f, J0 q% y( V: q/ H( A5 w4 P9 H- @6 [
    人脸图像采集硬件部分主要由CC3200和MT9D111摄像头组成。摄像头主要是作为人脸采集部分,CC3200则作为主控制核心。如图1.0.1所示为MT9D111摄像头模组的实物图。
. ^6 A: m1 L1 W, r8 O- G0 u' F( C, h5 l/ p7 n' S$ Z/ W3 l

# t5 B% H$ j: w" T& h    图1.0.1 MT9D111摄像头模组
6 J5 ^" [# w5 Q( d3 d    图12 C! T7 m- r) o/ C# b$ z
    MT9D111摄像头模组及其外围的原理图,如图1.0.2所示。
7 Y" R: Z3 m% O: Q" j! @3 @; v0 f% P
   . z0 v2 }+ v7 C, c1 r! f
    图1.0.2 MT9D111及其外围原理图7 V8 l$ _' p* f* q. t
    图27 M9 V9 _" q4 k* w+ A/ T
    其中SDA为I2C数据、SCK为I2C时钟、PWDN摄像头工作状态选择、PCLK  像素点的时钟、MLKIN 是主时钟、RESET 复位引脚、VD为 列同步信号、HD为行同步信号、D0-D7 摄像头的并行数据口。
, I. m- o! q$ v  v' G' G2 _- t4 A    使用IAR打开AI_OCR里面的工程,在该工程的main()函数中可见如图1.0.3所示的程序段,该程序段为MT9D111摄像头初始化部分,初始化函数为camera_init(),初始化成功返回0(SUCCESS),并且通过串口1打印“camera_init SUCCESS!!!”并把标志位g_camera_init_ok函数置为1,用于作为摄像头初始化成功的一个标志位。8 U$ R) c5 p# t  G% `, O! t1 E! Z# O
, `+ q6 t# E  X
  
, |/ x; q: b0 W) U' C    图1.0.3 摄像头初始化部分
0 u- w: l8 F8 J: y) c0 Q2 i    图3
: T& o& o# l: f    摄像头底层驱动部分主要包含在mt9d111.c和camera_app.c中。获取摄像头PEG图像数据的函数如图1.0.4所示。
$ u# J8 {! f6 e% N1 f5 i
% T' f# s5 Z# g2 Z! }* f     " t+ ^5 g7 `" ~7 s' i7 F4 b
    图1.0.4 获取摄像头JPEG图像数据函数
. ?4 j, i. e1 l# Q; Y  H+ }: b0 b    图4
0 H2 p& Y( R# o9 A$ z    其中camera_get_jpg_head()函数为摄像头采集到的JPEG图像的头部信息,长度为head_length,存储在指针pHeadBuffer指向的空间中。
4 S9 M: u+ i' c; W8 B" @    而camera_get_one_frame()函数为摄像头采集到的JPEG图像的信息,长度为frame_length,存储在指针pFrameBuffer指向的空间中。
% k. _3 O3 K1 z! g1 |  ~0 N6 S3 {    打开文件夹getaframe下的工程,编译下载到CC3200,打开串口调试助手,波特率为115200选择对应的串口号,点击打开,向CC3200发送“fk+getaframe#”指令,串口即可接收到返回的JPEG数据。
: z; ]: c/ s0 ^2 W4 D: [( M- S
: O4 _7 Q. D7 M6 R* R% b* f     
: S" f$ u1 T$ k/ n    图1.0.4 串口接收到的图片数据& _  ^) u  Q* R' e) u% U# B; g
    图5
$ |6 Y8 o! \2 R* V# k+ r0 v) N+ C    把这些数据复制下来保存到一个新建的frame.txt文件下,打开我们提供的java程序“Hex2Image.java”该java程序的功能是把16进制的JPEG图片数据转换成一张JPEG格式的图片。* u, e6 r: Q9 a8 x1 u
    如图1.0.5所示为该JAVA程序的部分代码。5 M+ M! e+ M  \# l

& z* d4 I! a* k# ?9 }9 T/ n; L- r9 i     9 U! i% h. H- g+ P2 D
    图1.0.5 “Hex2Image”Java程序代码* P, c( y* Z2 T; I( u  L
    图6" F( t. a0 \: u# Y/ L, S
    需要修改的部分为箭头处,即txt文件的路径,以及生成图片的路径。接下来便是编译该java文件(需要预先装好java环境以及设置好java的环境变量)。1 s' z- N2 M% }( Y  X; t" z
    “WIN+R”,输入“cmd”进入windows的DOS系统界面,如图1.0.6所示。$ l$ m4 W0 i+ T+ ^( ~5 I" U# E

: |5 V+ x! c; T5 f2 q" L4 b     , _% c! q/ A$ ?, |6 ?
    图1.0.6 DOS界面
$ S  Z6 P" w7 E, W    图7* R5 P2 W/ o) b) }  s
    首先在dos中定位到“Hex2Image.java”的路径输入“javac Hex2Image.java”对其进行编译。如图1.0.7所示。# }8 b3 v3 b& l' m! `# d( ?
. \! `0 j  J: o* L7 D9 l
   
' B; n+ U, Z" N( E- h) B7 H    图1.0.7 编译java源文件6 c( V8 q4 c; E5 F  G0 M/ F+ [' @
    图81 A$ _& w$ l/ L* s
    此刻在目录下会出现一个“Hex2Image.class”文件是编译过后生成的可执行文件,接下来运行该可执行文件在dos中输入“java Hex2Image”执行该文件,如图1.0.8所示为dos下执行“Hex2Image.class”。
% {1 v; _$ \" E0 F) r! g8 ~$ w+ U/ U- Q
  
9 u% j! @% X! c) Q2 ~/ B2 i/ J* {    图1.0.8 dos下执行“Hex2Image.class”
0 ~, S8 C' c0 ~3 T+ i    图9
# x' H! b* ^4 m( O0 J0 t  ]    此后在java程序中预先写好的路径下会出现一张JPEG格式的图片。打开该图片如图1.0.9所示。
7 [3 t( h/ t5 U4 s- ?1 z* G+ c/ y0 |5 }3 U- M. H, ]
     
7 V. k: ^& N1 D: W6 _    图1.0.9 获取到的图片
: e' |4 c5 l6 o8 r. r    图10( b. X5 ^5 u1 A

5 |( P" n0 x! j; @4 m( N) k) s7 n4 l/ w/ i/ S+ z) [
) c5 b0 F1 B( `& Q  B. G
1 @( Z* k# f! \3 Z3 p$ S2 f8 l5 i8 B
) u) M, f- w0 h- O2 m
    文件下载请点击: 【6】AI人脸图像采集.pdf (1.59 MB, 下载次数: 0) ( y" |! E. @. d

0 H7 N  R1 f3 w7 M& v6 K8 k0 V9 D  j# m2 H5 F- Z

2 D! V& ^) v8 h9 J2 s# I0 w4 F! Z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-28 19:53 , Processed in 0.140625 second(s), 28 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表