查看: 534|回复: 0

[经验] 国产车规级处理器T507-H,用50行Python代码实现图传和人脸识别

[复制链接]
  • TA的每日心情

    2019-10-15 10:48
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2023-3-31 19:54:00 | 显示全部楼层 |阅读模式
    分享到:
    我们在米尔国产T507-H车规级处理器的开发板上尝试无线图传功能,并且叠加人脸识别检测视频中是否存在人脸。这次使用的是USB摄像头,可以直接接在开发板的接口上。
    1. 连接摄像头
    连接好摄像头后使用指令dmesg,看到能读取到摄像头。显示为HIK 720p Camera
    3.png


    接下来使用v4l来检测相机的详细参数。
    安装v4lsudo apt install v4l-utils
    使用sudo v4l2-ctl --list-devices查看详细信息与设备号
    4.png


    2. 使用OpenCV进行人脸识别
    这里使用的识别程序借鉴了这个CSDN博主的代码https://blog.csdn.net/qianbin3200896/article/details/123643791
    在开始之前,先安装几个库。
    sudo apt update完成更新
    sudo apt install python3-opencv
    pip3 install --upgrade pip
    pip3 install zmq
    pip3 install pybase64
    首先在开发板上运行如下程序,读取摄像头数据并将数据发送至PC
    4-5.png


    1. import cv2

    2. import zmq

    3. import base64





    4. def main():

    5.     '''

    6.     主函数

    7.     '''

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



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

    10.     cap = cv2.VideoCapture(0)

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

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

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



    14.     # 建立TCP通信协议

    15.     contest = zmq.Context()

    16.     footage_socket = contest.socket(zmq.PAIR)

    17.     footage_socket.connect('tcp://%s:5555'%IP)
    复制代码

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

    2. import zmq

    3. import base64

    4. import numpy as np



    5. def main():

    6.     '''

    7.     主函数

    8.     '''

    9.     context = zmq.Context()

    10.     footage_socket = context.socket(zmq.PAIR)

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

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





    13.     while True:

    14.         print("监听中")

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

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

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

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

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

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

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

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

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

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

    25.         cv2.imshow('frame', source)

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

    27.             capture.release()

    28.             break



    29. if __name__ == '__main__':

    30.     '''

    31.     程序入口

    32.     '''

    33.     main()
    复制代码


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




    此时可以在pc上弹出的窗口中看到摄像头画面,有人脸出现也能自动识别。不过存在一定的延迟。
    7.jpg
    MYD-YT507H开发板由米尔电子于2022年推出和销售,搭载了全志的车规级T507-H处理器,具有超高性能和丰富的外设资源,是优秀的国产工业CPU平台。屏蔽罩下的是全志的T507-H处理器:
    55.png
    米尔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℃;Ø核心板为邮票孔设计。

    米尔电子,是一家专注于嵌入式处理器模组设计研发、生产、销售于一体的高新技术企业。米尔电子在嵌入式处理器领域具有10多年的研发经验,为客户提供基于ARM架构、FPGA架构的CPU模组及充电控制系统等产品和服务;为智能医疗、智能交通、智能安防、物联网、边缘计算、工业网关、人工智能等行业客户,提供定制解决方案和OEM服务。公司通过专业高效的服务帮助客户加速产品上市进程,目前已为行业内10000家以上的企业客户服务。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-2-25 10:37 , Processed in 0.084488 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.