基于国产车规级处理器T507-H开发平台,如何用50行Python代码实现图传和人脸识别?
我们在米尔国产T507-H车规级处理器的开发板上尝试无线图传功能,并且叠加人脸识别检测视频中是否存在人脸。这次使用的是USB摄像头,可以直接接在开发板的接口上。
连接好摄像头后使用指令dmesg,看到能读取到摄像头。显示为HIK 720p Camera
(资料图)
接下来使用v4l来检测相机的详细参数。
安装v4l:sudo apt install v4l-utils
使用sudo v4l2-ctl --list-devices查看详细信息与设备号
在开始之前,先安装几个依赖。sudo apt update完成更新sudo apt install python3-opencvpip3 install --upgrade pippip3 install zmqpip3 install pybase64
首先在开发板上运行如下程序,读取摄像头数据并将数据发送至PC。
importcv2
importzmq
importbase64
defmain():
"""
主函数
"""
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运行如下内容
importcv2
importzmq
importbase64
importnumpy asnp
defmain():
"""
主函数
"""
context = zmq.Context()
footage_socket = context.socket(zmq.PAIR)
footage_socket.bind("tcp://*:5555")
cv2.namedWindow("Stream",flags=cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO)
whileTrue:
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) infaces:
cv2.rectangle(source, (x, y), (x + w, y + h), (0, 0, 255), 2)
cv2.imshow("frame", source)
ifcv2.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℃;
Ø核心板为邮票孔设计。
标签: