树莓派应用--AI项目实战篇来啦-9.OpenCV实现汽车检测

news/2025/3/5 6:24:06/

1.介绍

        该项目使用的汽车检测使用的也是 haar 模型。这是一种基于机器学习的汽车检测算法。它使用了 Haar 特征来检测汽车,可以在图像中快速检测到汽车并输出其位置。采用该方法检测速度较快,但准确率略低。

2.OpenCV 实现汽车检测

        可以采用官方自带的汽车检测 HAAR 分类器实现对视频的汽车检测,也可以自己改成摄像头的方式。

 3.源程序代码

# 载入必要的库
import cv2
import time
import numpy as np# 载入HAAR分类器
car_classifier = cv2.CascadeClassifier('./images/haarcascade_car.xml')
# 载入视频文件
cap = cv2.VideoCapture('./images/cars.avi')# 线程函数操作库
import threading # 线程
import ctypes
import inspect# 线程结束代码
def _async_raise(tid, exctype):tid = ctypes.c_long(tid)if not inspect.isclass(exctype):exctype = type(exctype)res = ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, ctypes.py_object(exctype))if res == 0:raise ValueError("invalid thread id")elif res != 1:ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)raise SystemError("PyThreadState_SetAsyncExc failed")def stop_thread(thread):_async_raise(thread.ident, SystemExit)# 创建显示控件
def bgr8_to_jpeg(value, quality=75):return bytes(cv2.imencode('.jpg', value)[1])import traitlets
import ipywidgets.widgets as widgets
from IPython.display import display
car_imge = widgets.Image(format='jpeg', width=480, height=320)
display(car_imge)#一旦视频成功加载,循环播放
def car_Video_display():while cap.isOpened():time.sleep(.05)# Read first frameret, frame = cap.read()gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# Pass frame to our car classifiercars = car_classifier.detectMultiScale(gray, 1.4, 2)       # Extract bounding boxes for any bodies identifiedfor (x,y,w,h) in cars:cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 255), 2)car_imge.value = bgr8_to_jpeg(frame)cap.release()t = threading.Thread(target=car_Video_display)
t.setDaemon(True)
t.start()# 结束线程
stop_thread(t)


http://www.ppmy.cn/news/1538206.html

相关文章

DJN人机交互解决方案

当前,人类社会正处于工业4.0时代。这是一个以智能、网络和定制化为特征的新时代,也是信息时代之后新的科技发展阶段。在工业4.0时代,智能技术贯穿于整个制造领域,生产过程更加自动化和智能化。 触控显示技术是智能化中不可或缺的…

Liunx各系统中间件查询脚本

Centos 6 #!/bin/bashecho "CentOS 6 系统软件信息收集"# 检查操作系统版本 echo "操作系统版本信息:" cat /etc/redhat-release# 检查JDK echo "检查JDK版本..." if command -v java &> /dev/null; thenjava -versionwhich …

特征工程在机器学习中的重要性及实践

文章目录 引言1. 什么是特征工程?2. 特征工程的重要性2.1 提高模型的表现能力2.2 提升模型的泛化能力2.3 减少维度、提高计算效率 3. 特征工程的主要步骤3.1 特征理解3.2 特征处理3.3 特征选择3.4 特征构造 4. 特征工程的常用方法4.1 数据清洗4.2 数据变换4.3 类别编…

Java分布式锁

分布式锁是一种在分布系统环境下,通过多个节点对共享资源进行访问控制的一种同步机制。 主要的目的是防止多个节点同时操作同一份数据,从而避免数据的不一致性。分布式锁的实现比线程锁和进程锁要复杂得多,因为它需要在网诺中的多个节点之间…

Centos基线自动化检查脚本

此脚本是一个用于检查Linux系统安全配置的Bash脚本。它通过多项安全标准对系统进行评估,主要检查以下内容: IP地址获取:脚本首先获取主机的IP地址,确保其以10.115开头。 密码策略检查: 检查最小密码长度(P…

【aws】从s3里拉取驱动 需要后台创建凭证

简答:建一个有s3readonlyaccess的role,绑定给e2就好了 详细步骤: 1.在控制台搜IAM----左侧导航栏点role/角色----右上角创建角色 2.使用案例里选EC2 3.搜s3readonlyaccess这个策略----创建角色 4.选中指定实例,设置,绑…

初识数据结构--时间复杂度 和 空间复杂度

数据结构前言 数据结构 数据结构是计算机存储、组织数据的方式(指不仅能存储数据,还能够管理数据-->增删改)。指相互之间存在一种或多种特定关系的数据元素的集合。没有单一的数据结构对所有用途都有用,所以我们要学习各种的数据结构,比…

太阳能电池特性及其应用

中南民族大学-通信工程2024-大学物理下实验 目录 代码实现结果显示 🛠工具使用 MarsCode(插件,集成在PyCharm); python编程(豆包AI智能体) 💻编程改进 此处是用「Matplotlib」来作图…