加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 1. 连接摄像头
    • 2. 使用OpenCV进行人脸识别
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

米尔国产T507-H开发板,用50行Python代码实现图传和人脸识别

2023/03/30
2747
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

基于国产车规级处理器T507-H开发平台,如何用50行Python代码实现图传和人脸识别?

我们在米尔国产T507-H车规级处理器的开发板上尝试无线图传功能,并且叠加人脸识别检测视频中是否存在人脸。这次使用的是USB摄像头,可以直接接在开发板的接口上。

1. 连接摄像头

连接好摄像头后使用指令dmesg,看到能读取到摄像头。显示为HIK 720p Camera

接下来使用v4l来检测相机的详细参数。

安装v4l:sudo apt install v4l-utils

使用sudo v4l2-ctl --list-devices查看详细信息与设备号

2. 使用OpenCV进行人脸识别

在开始之前,先安装几个依赖。
sudo apt update完成更新
sudo apt install python3-opencv
pip3 install --upgrade pip
pip3 install zmq
pip3 install pybase64

首先在开发板上运行如下程序,读取摄像头数据并将数据发送至PC。

import cv2

import zmq

import base64

def main():

'''

主函数

'''

IP = '192.168.2.240' #上位机视频接受端的IP地址

# 创建并设置视频捕获对象

cap = cv2.VideoCapture(0)

print("open? {}".format(cap.isOpened()))

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)  # 设置图像宽度

cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)  # 设置图像高度

# 建立TCP通信协议

contest = zmq.Context()

footage_socket = contest.socket(zmq.PAIR)

footage_socket.connect('tcp://%s:5555'%IP)

接着需要在PC上接收开发板传来的信息,将视频分为一帧帧的内容分别存储和处理。当识别到人脸时会用红框圈出。

打开anaconda prompt运行如下内容

import cv2

import zmq

import base64

import numpy as np

def main():

'''

主函数

'''

context = zmq.Context()

footage_socket = context.socket(zmq.PAIR)

footage_socket.bind('tcp://*:5555')

cv2.namedWindow('Stream',flags=cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO)

while True:

print("监听中")

frame = footage_socket.recv_string() #接收TCP传输过来的一帧视频图像数据

img = base64.b64decode(frame) #把数据进行base64解码后储存到内存img变量中

npimg = np.frombuffer(img, dtype=np.uint8) #把这段缓存解码成一维数组

source = cv2.imdecode(npimg, 1) #将一维数组解码为图像source

# img=cv2.imread('1.png',1)

grayimg = cv2.cvtColor(source, cv2.COLOR_BGR2GRAY)

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

faces = face_cascade.detectMultiScale(grayimg, 1.2, 5)

for (x, y, w, h) in faces:

cv2.rectangle(source, (x, y), (x + w, y + h), (0, 0, 255), 2)

cv2.imshow('frame', source)

if cv2.waitKey(1) == ord('q'):

capture.release()

break

if __name__ == '__main__':

'''

程序入口

'''

main()

正常工作时会一直print监听中。

此时可以在pc上弹出的窗口中看到摄像头画面,有人脸出现也能自动识别。不过存在一定的延迟。

MYD-YT507H开发板由米尔电子于2022年推出和销售,搭载了全志的车规级T507-H处理器,具有超高性能和丰富的外设资源,是优秀的国产工业CPU平台。屏蔽罩下的是全志的T507-H处理器:

米尔MYD-YT507H开发板

Ø 集成四核Cortex–A53,主频1.5GHz,符合汽车AEC-Q100测试要求;

Ø 支持4K视频编解码;

Ø 支持LVDS、HDMI、RGB以及CVBS四种显示输出接口;

Ø 支持双屏同显、双屏异显,支持MIPI CSI 、DVP摄像头输入;提供流畅的用户体验和专业的视觉效果。

Ø 搭载的1GB DDR4内存与8GB eMMC;

Ø 开发板拥有丰富的外设扩展:SD卡槽、持双路网口,4个USB2.0接口,1个SPI,2个SDIO;

Ø 工业级板卡的工作温度范围为-40℃ - +85℃;

Ø 核心板为邮票孔设计。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
CB3LV-3I-50M0000 1 CTS Corporation HCMOS/TTL Output Clock Oscillator, 1.5MHz Min, 107MHz Max, 50MHz Nom, GREEN, CERAMIC PACKAGE-4

ECAD模型

下载ECAD模型
$4.13 查看
LAN8720A-CP-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC24, 4 X 4 MM, 0.85 MM HEIGHT, ROHS COMPLIANT, QFN-24

ECAD模型

下载ECAD模型
$1.09 查看
TJA1055T/1J 1 NXP Semiconductors TJA1055 - Enhanced fault-tolerant CAN transceiver SOIC 14-Pin
$1.72 查看
米尔科技

米尔科技

米尔电子,是一家专注于嵌入式处理器模组设计、研发、生产和销售于一体的国家级高新技术企业,也被评为专精特新企业。米尔电子深耕嵌入式领域10多年,致力于为企业级客户提供基于ARM、FPGA、RISC-V和AI等各种架构,稳定可靠的处理器模组,满足客户大批量产品应用部署的需求,同时为客户提供产品定制设计、行业应用解决方案和OEM的一站式服务。

米尔电子,是一家专注于嵌入式处理器模组设计、研发、生产和销售于一体的国家级高新技术企业,也被评为专精特新企业。米尔电子深耕嵌入式领域10多年,致力于为企业级客户提供基于ARM、FPGA、RISC-V和AI等各种架构,稳定可靠的处理器模组,满足客户大批量产品应用部署的需求,同时为客户提供产品定制设计、行业应用解决方案和OEM的一站式服务。 收起

查看更多

相关推荐

电子产业图谱

米尔电子,是一家专注于嵌入式处理器模组设计、研发、生产和销售于一体的国家级高新技术企业,也被评为专精特新企业。米尔电子深耕嵌入式领域10多年,致力于为企业级客户提供基于ARM、FPGA、RISC-V和AI等各种架构,稳定可靠的处理器模组,满足客户大批量产品应用部署的需求,同时为客户提供产品定制设计、行业应用解决方案和OEM的一站式服务。 米尔英文简称“MYIR”,是“Make Your Idea Real”第一个大写字母的缩写。我们的理念是“专业服务助力客户成功”,目前米尔已通过专业高效的服务,帮助全球数万家企业的产品成功上市。