新聞中心

        EEPW首頁 > 嵌入式系統 > 業界動態 > 米爾國產T507-H開發板,用50行Python代碼實現圖傳和人臉識別

        米爾國產T507-H開發板,用50行Python代碼實現圖傳和人臉識別

        —— 米爾產品測評
        作者: 時間:2023-03-31 來源:電子產品世界 收藏

        基于國產-H開發平臺,如何用50行Python代碼實現圖傳和人臉識別?

        本文引用地址:http://www.104case.com/article/202303/445162.htm

        我們在米爾國產-H的開發板上嘗試無線圖傳功能,并且疊加人臉識別檢測視頻中是否存在人臉。這次使用的是USB攝像頭,可以直接接在開發板的接口上。

        1.連接攝像頭

        連接好攝像頭后使用指令dmesg,看到能讀取到攝像頭。顯示為HIK 720p Camera

        image.png

        接下來使用v4l來檢測相機的詳細參數。

        安裝v4l:sudo apt install v4l-utils

        使用sudo v4l2-ctl --list-devices查看詳細信息與設備號

        image.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。

        1680244550630943.png

        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監聽中。

        image.png

        此時可以在pc上彈出的窗口中看到攝像頭畫面,有人臉出現也能自動識別。不過存在一定的延遲。

        1680244603139080.png

        MYD-YH開發板由米爾電子于2022年推出和銷售,搭載了全志的車規級處理器,具有超高性能和豐富的外設資源,是優秀的國產工業CPU平臺。屏蔽罩下的是全志的T507-H處理器:

        1680244667307077.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家以上的企業客戶服務。

        1680244695395253.png



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新田县| 西乌| 九龙城区| 大港区| 克拉玛依市| 花垣县| 绍兴市| 吴旗县| 香河县| 淮北市| 罗平县| 宁都县| 襄樊市| 吴旗县| 岐山县| 互助| 黔西县| 天柱县| 陆河县| 桃江县| 盱眙县| 当阳市| 翁牛特旗| 定襄县| 和田县| 驻马店市| 政和县| 金昌市| 东至县| 积石山| 金乡县| 平顺县| 汕尾市| 根河市| 平阴县| 江安县| 华阴市| 卢湾区| 安溪县| 武穴市| 石渠县|