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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
CC3200AI实验教程
——疯壳·开发板系列
AI人脸图像采集
. c* N* X8 S! q! F7 I9 X6 R, f' B

; Y4 L: m8 B4 i2 E% A" }( _5 N2 F1 `# ]2 {7 N
% D: i2 W% Q. z; }" O2 H

2 n% n3 R: i+ Y/ Q3 o& I) T2 s5 ?
; d8 c+ l3 {$ G2 j2 [9 U    人脸图像采集硬件部分主要由CC3200和MT9D111摄像头组成。摄像头主要是作为人脸采集部分,CC3200则作为主控制核心。如图1.0.1所示为MT9D111摄像头模组的实物图。
9 @3 p% p  m0 }  T8 c2 J+ F5 {/ P. t- S1 o9 p! m" E

9 |- r9 s' v% E7 i' X5 H3 F    图1.0.1 MT9D111摄像头模组! J2 c# B/ ]" D
    图1, J  f: K1 x% ^6 p) ?9 w
    MT9D111摄像头模组及其外围的原理图,如图1.0.2所示。
: k* [3 Z/ h& b; ~7 Q$ ~. E4 `# h: |  [& H& z
     I7 M7 d& \& d- W! O) c
    图1.0.2 MT9D111及其外围原理图
6 w/ b8 H' p6 d9 d5 ~    图2
; z& \% E0 D2 L( ?3 P    其中SDA为I2C数据、SCK为I2C时钟、PWDN摄像头工作状态选择、PCLK  像素点的时钟、MLKIN 是主时钟、RESET 复位引脚、VD为 列同步信号、HD为行同步信号、D0-D7 摄像头的并行数据口。2 S; \) ~- i1 N
    使用IAR打开AI_OCR里面的工程,在该工程的main()函数中可见如图1.0.3所示的程序段,该程序段为MT9D111摄像头初始化部分,初始化函数为camera_init(),初始化成功返回0(SUCCESS),并且通过串口1打印“camera_init SUCCESS!!!”并把标志位g_camera_init_ok函数置为1,用于作为摄像头初始化成功的一个标志位。
: h  e) g2 C' b8 Q- l2 m+ o  q$ Q3 ]( ]
  ! A. X: J+ E( ^  j% f7 c
    图1.0.3 摄像头初始化部分7 J5 E* t% r+ V2 I. W0 y2 P" ^7 U6 w
    图3
9 i* ?( N, e8 ]* }4 [6 `    摄像头底层驱动部分主要包含在mt9d111.c和camera_app.c中。获取摄像头PEG图像数据的函数如图1.0.4所示。
+ K3 t! j6 R( r
6 J4 g* |" d. @' X- U9 r# z     1 G: w- j! s( Y' U
    图1.0.4 获取摄像头JPEG图像数据函数, |- P' z, X- t- `$ s, I
    图4. l( j+ S/ U: H
    其中camera_get_jpg_head()函数为摄像头采集到的JPEG图像的头部信息,长度为head_length,存储在指针pHeadBuffer指向的空间中。
, `0 S) L* i7 I2 D$ `7 A    而camera_get_one_frame()函数为摄像头采集到的JPEG图像的信息,长度为frame_length,存储在指针pFrameBuffer指向的空间中。$ W% I) b8 y8 E7 z5 |
    打开文件夹getaframe下的工程,编译下载到CC3200,打开串口调试助手,波特率为115200选择对应的串口号,点击打开,向CC3200发送“fk+getaframe#”指令,串口即可接收到返回的JPEG数据。/ D/ I2 s* K8 K9 b0 z, I
0 t( g- j3 K' U) b: }
     
. y8 i: M. u8 e5 {6 p6 h: N6 `    图1.0.4 串口接收到的图片数据
8 f; Z  y2 k# K# M    图5
" k3 V' Q) k5 ]& K    把这些数据复制下来保存到一个新建的frame.txt文件下,打开我们提供的java程序“Hex2Image.java”该java程序的功能是把16进制的JPEG图片数据转换成一张JPEG格式的图片。) N( n! x3 ?& b/ G0 ]- Y
    如图1.0.5所示为该JAVA程序的部分代码。) d4 _  K0 T# \' v. z2 q. H! ~
9 [9 M4 o3 O& I7 `3 }
    - ]4 H. ^/ G& K/ ~
    图1.0.5 “Hex2Image”Java程序代码' e7 w3 x% a  |, K) E
    图6
& G1 Y# a+ D3 b7 l, P- I" ?( c    需要修改的部分为箭头处,即txt文件的路径,以及生成图片的路径。接下来便是编译该java文件(需要预先装好java环境以及设置好java的环境变量)。+ e( R' ?) ]: H. ~, U" t* I- Q
    “WIN+R”,输入“cmd”进入windows的DOS系统界面,如图1.0.6所示。# `5 u6 I: [+ K' G$ I& G# z8 f

& ?, }' z# _3 ]; ]. p) F' `     
" m& r  l$ o7 H; D6 Y    图1.0.6 DOS界面
- m) y. w+ D% n3 I0 D    图7! @6 f% V3 K) ?6 ^: z. B: @, j
    首先在dos中定位到“Hex2Image.java”的路径输入“javac Hex2Image.java”对其进行编译。如图1.0.7所示。
( G3 @( n; x, ?; K- R6 J
1 o' l; D3 p' _) G# r+ `0 Y: e9 W    & |1 [2 b* W2 @2 ^* {/ Y2 u- Z' L9 B
    图1.0.7 编译java源文件7 L+ X/ N: _' I1 Z, Y
    图87 Y5 X# b9 d* }/ z' y8 X
    此刻在目录下会出现一个“Hex2Image.class”文件是编译过后生成的可执行文件,接下来运行该可执行文件在dos中输入“java Hex2Image”执行该文件,如图1.0.8所示为dos下执行“Hex2Image.class”。
8 ?8 a* T, K+ w; r4 k0 c3 s7 {9 I; W) U
  
6 k, }! D$ A1 x- j$ z* {% Z    图1.0.8 dos下执行“Hex2Image.class”
2 W, G1 A$ r5 e( C+ x    图9
; [, C* _, W0 G/ \    此后在java程序中预先写好的路径下会出现一张JPEG格式的图片。打开该图片如图1.0.9所示。, b; |  J4 g  ^5 _0 @6 Z3 a
- v4 v- F( c+ B  S  I% y. r8 Q
     
; k* Z! A/ n! _4 h    图1.0.9 获取到的图片
5 R2 U! G- x( O# A$ W    图10
* G$ V* ]: J  m# q' b2 k8 Q& q( w
% y2 Z. y0 h$ G# t% N! @0 w% n( |# V3 D6 b4 Y: I, N

1 H4 K8 y0 j2 o, D! @
- W2 R! _; g  Z( M2 V: m4 |5 F! E" M9 x2 [- W; e) `6 k
    文件下载请点击: 【6】AI人脸图像采集.pdf (1.59 MB, 下载次数: 0) . K4 b, Y" `; l' r0 i, {
' D, @  ~, T, v1 A1 x( v/ ^

& y( h: r) X6 B/ n
1 }' C4 u2 w/ S0 n
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-8 02:01 , Processed in 0.125000 second(s), 28 queries , Gzip On.

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

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

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