在树莓派上使用SSD模型进行图像中人物检测

在本系列文章中,已经介绍了如何使用SSD模型在图像中检测人物的Python代码。本文将介绍如何在树莓派设备上安装Python-OpenCV,以及如何在这个设备上运行Python代码。

树莓派操作系统的安装

首先,需要下载并安装树莓派操作系统——这是树莓派系列设备的官方操作系统。使用的是带有桌面和推荐软件的32位树莓派操作系统。操作系统可以通过磁盘映像工具安装到设备的SD卡上。对于Windows桌面,使用了Win32DiskImager。在首次启动时,系统会提示更新所有预安装的系统包——建议这样做。更新可能需要几分钟时间。

树莓派上安装Python-OpenCV

现在该在设备上安装Python-OpenCV了。有两种主要的安装方式:在设备上编译OpenCV源代码,或者在系统上安装现有的包。为了简便选择了后者。幸运的是,树莓派对Python包有很好的支持。在安装OpenCV库之前,需要安装一些先决条件,如HD5和Qt包。之后,需要为OpenCV包的进一步使用设置一个虚拟环境。安装了virtualenv和virtualenvwrapper工具,然后激活了一个名为'cv'的虚拟环境。然后,在该环境中安装了opencv-contrib-python包。这个包非常推荐,因为它包含了所有必需的OpenCV模块。

树莓派上运行Python代码

import cv2 from utils import * from SSD import SSD from CaffeModelLoader import CaffeModelLoader from FrameProcessor import FrameProcessor # 测试SSD proto_file = r"/home/pi/Desktop/PI_RPD/mobilenet.prototxt" model_file = r"/home/pi/Desktop/PI_RPD/mobilenet.caffemodel" ssd_net = CaffeModelLoader.load(proto_file, model_file) print("Caffe模型载入自: " + model_file) proc_frame_size = 300 # MobileNet的帧处理器 ssd_proc = FrameProcessor(proc_frame_size, 1.0/127.5, 127.5) person_class = 15 ssd = SSD(ssd_proc, ssd_net) im_dir = r"/home/pi/Desktop/PI_RPD/test_images" im_name = "woman_640x480_01.png" im_path = os.path.join(im_dir, im_name) image = cv2.imread(im_path) print("图像读取自: " + im_path) obj_data = ssd.detect(image) persons = ssd.get_objects(image, obj_data, person_class, 0.5) person_count = len(persons) print("图像中人物数量: " + str(person_count)) Utils.draw_objects(persons, "PERSON", (0, 0, 255), image) res_dir = r"/home/pi/Desktop/PI_RPD/results" res_path = os.path.join(res_dir, im_name) cv2.imwrite(res_path, image) print("结果写入至: " + res_path)

如果代码位于一个单独的Python文件中,比如pi_rpd_run_img.pi3.py,可以通过两个连续的命令从终端启动它:

workon cv python /home/pi/Desktop/PI_RPD/pi_rpd_run_img.pi3.py
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485