AIAS/5_bigdata_sdks/flink_face_sdk
2021-10-28 14:33:22 +08:00
..
src no message 2021-10-27 15:59:26 +08:00
flink_face_sdk.iml no message 2021-10-03 22:25:35 +08:00
pom.xml no message 2021-10-27 15:59:26 +08:00
README.md no message 2021-10-28 14:33:22 +08:00

人工智能技术如何与大数据技术栈协同工作?

人工智能模型训练很大程度依赖标注的数据。而需要标注数据量大的话,离不开大数据平台提供技术支持。 训练好的模型,反过来同样可以用于大数据技术栈。

场景1ToB

在企业内部的大数据平台中,有两个典型环节可能用到人工智能技术:

  • 数据采集环节 - 非结构化数据解析,如:图片,文本,音频等。

  • 数据挖掘分析服务 - 图片搜索基于深度学习的推荐NLP问答智能客服等。

  • 人工智能 & 大数据 bigdata

场景2泛安防

近几年,人工智能在泛安防领域得到了广泛的应用。 人脸识别技术目前已经广泛应用于包括人脸门禁系统、刷脸支付等各行各业。随着人脸识别技术的提升, 应用越来越广泛。目前中国的人脸识 别技术已经在世界水平上处于领先地位,在安防行业, 国内主流安防厂家也都推出了各自的人脸识别产品和解决方案,泛安防行业是人脸识别技术主要应用领域。 这个例子给出了人脸识别技术是如何与大数据技术栈协同工作的。 后续结合人脸特征提取,特征向量保存到向量搜索引擎,形成人像底库,然后就可以实现人像大数据搜索。 安防领域一个典型的架构,如下图所示。端边侧提取出含人像的大小图后,发送到云端,由云端的更高精度的大模型来继续处理。

  • 端边云架构 dec

  • 人脸检测
    face

图像识别 - kafka,flink,人脸识别

下面的例子给出了图像识别结合kafka,flink协同工作的流程

1. 启动 zookeeper:

zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties

2. 启动 kafka:

启动前先需环境配置kafka的server.properties(添加message.max.bytes=10485760), 支持大消息。 因为图片转成base64字符串后会超过kafka的默认消息大小设置。如果不增加配置kafka不会接收消息。 kafka-server-start /usr/local/etc/kafka/server.properties

3. 创建 topic:

kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic face-data

4. 查看创建的topic

kafka-topics --list --zookeeper localhost:2181

5. 运行例子 - FaceDetectionExample

flink启动并监听kafka的"face-data"topic。

    ...
    Properties props = new Properties();
    props.put("bootstrap.servers", "localhost:9092");
    props.put("group.id", "test-consumer-group");

    // get input data by connecting to the kafka
    FlinkKafkaConsumer<String> consumer =
            new FlinkKafkaConsumer<>("face-data", new SimpleStringSchema(), props);

    // Run inference with Flink streaming
    DataStream<String> detection = env
            .addSource(consumer)
            .flatMap(new SEFlatMap());
   ...         

6. 运行例子 - MyKafkaProducer

读取图片转成base64格式发送给kafka的"face-data"topic。

7. 查看 FaceDetectionExample的输出Console

consumer接受到图片的base64数据, 转换成图片并解析:

[
	class: "Face", probability: 0.99958, bounds: [x=0.485, y=0.198, width=0.122, height=0.230]
	class: "Face", probability: 0.99952, bounds: [x=0.828, y=0.270, width=0.116, height=0.225]
	class: "Face", probability: 0.99937, bounds: [x=0.180, y=0.234, width=0.119, height=0.231]
]

Mac环境安装kafka

brew install kafka

Mac环境配置kafka支持大消息

编辑/usr/local/etc/kafka/server.properties增加下面的配置项

message.max.bytes=10485760

帮助

引擎定制化配置,可以提升首次运行的引擎下载速度,解决外网无法访问或者带宽过低的问题。
引擎定制化配置