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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
CC3200AI实验教程
——疯壳·开发板系列
AI人脸图像采集
/ S! y: W8 e  q! _
) k0 w6 V3 ^2 t2 ?: o
# _! d2 S0 v' L
+ j9 R7 ?8 r1 S( \. O9 J
* X) ]1 Z. a+ O+ I/ b
* D! d  h. i+ f/ M5 d
    人脸图像采集硬件部分主要由CC3200和MT9D111摄像头组成。摄像头主要是作为人脸采集部分,CC3200则作为主控制核心。如图1.0.1所示为MT9D111摄像头模组的实物图。" a; w4 x0 k. r: r

4 F. k  a: i3 `1 O # i4 W, p! ?/ j: F; P/ \
    图1.0.1 MT9D111摄像头模组
3 v% n3 S' {3 d! w/ o! e    图12 @- _  T3 u1 B1 X, A# \
    MT9D111摄像头模组及其外围的原理图,如图1.0.2所示。
1 w$ N0 U2 m* t( L# c  w: `; q, T7 K, ^3 s% B. u- z: T
   ' J) s- [& G% g: h6 T8 N0 f
    图1.0.2 MT9D111及其外围原理图
7 B0 |- \% f+ q) v- z( p' u# t) {3 N) ^    图2
" }& Z1 {8 i% ~/ s. q    其中SDA为I2C数据、SCK为I2C时钟、PWDN摄像头工作状态选择、PCLK  像素点的时钟、MLKIN 是主时钟、RESET 复位引脚、VD为 列同步信号、HD为行同步信号、D0-D7 摄像头的并行数据口。
$ x: s+ T5 T3 y" C$ p/ `0 {4 D    使用IAR打开AI_OCR里面的工程,在该工程的main()函数中可见如图1.0.3所示的程序段,该程序段为MT9D111摄像头初始化部分,初始化函数为camera_init(),初始化成功返回0(SUCCESS),并且通过串口1打印“camera_init SUCCESS!!!”并把标志位g_camera_init_ok函数置为1,用于作为摄像头初始化成功的一个标志位。" T) j% l  d( I) X2 D. m* [

  e: G6 x( V! c" i, }   + l, M# v* d# e. d
    图1.0.3 摄像头初始化部分8 u& v/ l/ C" ?3 K
    图3* Y0 e5 X+ W9 ?, Q& h$ S) c9 y
    摄像头底层驱动部分主要包含在mt9d111.c和camera_app.c中。获取摄像头PEG图像数据的函数如图1.0.4所示。; j6 l; k( \) h! K. ?

) p( m' u6 }& V$ C3 f0 z( o    
6 _# W2 ?1 R, j0 h0 w# c    图1.0.4 获取摄像头JPEG图像数据函数* x$ H3 z6 w0 @! G* d  {
    图4
2 h9 u4 }/ z  D5 C( K( M    其中camera_get_jpg_head()函数为摄像头采集到的JPEG图像的头部信息,长度为head_length,存储在指针pHeadBuffer指向的空间中。4 V3 h* h' v: x& y
    而camera_get_one_frame()函数为摄像头采集到的JPEG图像的信息,长度为frame_length,存储在指针pFrameBuffer指向的空间中。) X# S: `% A! \/ f% Y6 H
    打开文件夹getaframe下的工程,编译下载到CC3200,打开串口调试助手,波特率为115200选择对应的串口号,点击打开,向CC3200发送“fk+getaframe#”指令,串口即可接收到返回的JPEG数据。
4 s8 w  |9 y& A/ ]+ W! t$ k& i& _8 e9 A1 ~2 N3 _9 k; E
     8 `4 k( Z0 S7 d4 e) z
    图1.0.4 串口接收到的图片数据6 z, v  R$ Y5 t8 I; S
    图59 Z) j: u4 {! w" E
    把这些数据复制下来保存到一个新建的frame.txt文件下,打开我们提供的java程序“Hex2Image.java”该java程序的功能是把16进制的JPEG图片数据转换成一张JPEG格式的图片。
5 a% Z: K1 b, `    如图1.0.5所示为该JAVA程序的部分代码。
8 E$ D9 L! ^; i9 v4 ]3 |1 L2 M
. D$ b0 t4 S) N# `: g    
: ?5 E. D' F2 w7 G9 n    图1.0.5 “Hex2Image”Java程序代码
+ P; B+ E2 F6 j  J    图6
5 Y  k: q5 z- s2 W    需要修改的部分为箭头处,即txt文件的路径,以及生成图片的路径。接下来便是编译该java文件(需要预先装好java环境以及设置好java的环境变量)。
# R% G  C3 w4 P) p- t: O4 \) P% s    “WIN+R”,输入“cmd”进入windows的DOS系统界面,如图1.0.6所示。% `8 C3 }3 J* Z3 k' {2 t4 K
9 L" B0 ]' Q7 P( ]$ i- P7 ?
     & U$ f& c+ `- E, ^+ T
    图1.0.6 DOS界面8 E9 Y2 v; n4 ~' u1 q' t4 n
    图7
3 @/ {$ H9 o4 }    首先在dos中定位到“Hex2Image.java”的路径输入“javac Hex2Image.java”对其进行编译。如图1.0.7所示。6 U: ?- y) X6 j! o7 j
1 l/ Z6 w; a3 N: {6 o  y
   & F% }2 |/ k$ X3 y9 q, ^9 @
    图1.0.7 编译java源文件& s  r# F/ b" B6 A7 q& ^% d
    图8/ r9 p) h5 u( L- ^/ A
    此刻在目录下会出现一个“Hex2Image.class”文件是编译过后生成的可执行文件,接下来运行该可执行文件在dos中输入“java Hex2Image”执行该文件,如图1.0.8所示为dos下执行“Hex2Image.class”。8 H: n! J9 f, f9 S
8 A9 P% x, o2 J: X
  
) F4 j! H) [4 V1 X3 B    图1.0.8 dos下执行“Hex2Image.class”
( ]  j$ L- @) m' b1 f  c5 }, s1 t    图9
7 B$ R. ]) E! B; c    此后在java程序中预先写好的路径下会出现一张JPEG格式的图片。打开该图片如图1.0.9所示。# e, N- r( L& k; B0 D; K3 W# R- p2 l

; f) _; A5 p2 Q     
( I, P8 [7 Z9 i) J    图1.0.9 获取到的图片
- z1 ^8 `# n9 A" @, g    图103 z! ~# j. _3 c1 P& U
- w+ K/ p* w/ m0 h) u+ V7 O

' I( j9 P- s& W; w0 _. ^% ^( w/ A+ K4 o* |( t9 P
/ C* v% }) o4 m6 d
5 Q; c1 l' S. Y' [7 Z
    文件下载请点击: 【6】AI人脸图像采集.pdf (1.59 MB, 下载次数: 0) % u) Z; o. F; I* Z' O* g' |9 n

3 x, b: h: [! U: ]: K; Y4 e7 s5 r% P$ q

. D& B% b, C/ M! F
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-13 04:38 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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